文章目录[隐藏]

  • 什么是http?
  • 什么是https?为什么使用https?
    • 什么是证书?
  • 捕获https数据包的原理

https和http有什么区别(什么是https,httpS和HTTP有什么区别)

每天,我都上网。你注意到网站之间的区别了吗?本文主要分析探讨https和http的异同,与大家分享。

https和http有什么区别(什么是https与http有什么区别)-冯金伟博客园

有一天,产品王突然发现自己的产品在电脑浏览器和微信浏览器中被打开,被提示“不安全”!这样,用户就能看到它有多麻烦。

谷歌浏览器对不安全网站的提示:

https和http有什么区别(什么是https与http有什么区别)-冯金伟博客园

打开微信不安全网站时,提示“防诈骗、防黑客,请勿支付或输入qq密码”:

https和http有什么区别(什么是https与http有什么区别)-冯金伟博客园

小王很无聊。我们什么都没做。为什么不安全?经过一番研究,原来自家产品的网站都是从http开始的,而不是https。和程的哥哥沟通后,所有的链接都换成了https,这样就不会再有这样的提示了。

什么是http?

在搞清楚什么是https之前,首先应该知道什么是http。

HTTP(超文本传输协议)是互联网上使用最广泛的网络传输协议,所有的WWW文件都必须遵守这个标准。我们常见到我网站上的很多接口,我手机上的H5,甚至后端服务器上的很多接口都是用HTTP协议实现的。

所以我们需要去百度,只需要在浏览器中输入http://www.baidu.com,然后我们就可以访问百度的网站了。当然,如果不在通用浏览器中输入http://的话,会帮助你自动完成这部分。

https和http有什么区别(什么是https与http有什么区别)-冯金伟博客园

以谷歌浏览器为例,进入访问sports.sina.com.cn/nba/和新浪体育的NBA频道,然后点击地址栏复制网址。贴在任何地方:
http://sports.sina.com.cn/NBA/,and你会发现http://protocol的logo已经在前面了。

Http传输简单灵活,但其缺点是采用明文传输,因此请求和响应不会确认通信伙伴,无法保护数据的完整性,传输内容容易被窃取。

https和http有什么区别(什么是https与http有什么区别)-冯金伟博客园

什么是https?为什么使用https?

HTTPS(全称:安全套接字层上的超文本传输协议)是一个以安全为目标的HTTP通道。在HTTP的基础上,通过传输加密和身份认证来保证传输过程的安全性。

https和http有什么区别(什么是https与http有什么区别)-冯金伟博客园

网页内容通过https传输后,客户端和服务器端会利用“非对称加密算法”交换密钥。服务器,也就是上图中的小红,会先生成一个公钥和一个私钥。然后,用证书封装公钥后,将证书交给用户,也就是上图中的小明。

什么是证书?

CA证书是指由证书颁发机构(CA)颁发的数字证书,即颁发数字证书的机构,颁发给相应的公司。CA是负责颁发和管理数字证书的权威机构,作为电子商务交易中受信任的第三方,负责公钥系统中公钥的合法性检查。一般来说,证书业务是要收费的。

世界上认证机构很多,程兄弟也可以自己生成证书,但是很多证书是“不可信”的。我们使用微信、谷歌Chrome浏览器、iPhone的iOS系统等。,并且只选择信任那些信誉良好的证书颁发机构颁发的证书。

发证机构就像我们用的四方快递。人们选择他们是因为他们觉得值得信任,快递被取代的可能性很低。那些小公司,或者说自发证书,就像是一个没听说过的快递公司。当人们选择收发快递时,使用快递并非不可能,但快递被盗的概率可能会上升。

从服务器获取证书后,用户觉得证书值得信任,于是打开证书获取里面的公钥。同时,用户会生成一个随机字符串,然后用服务器的公钥对该字符串进行加密,并将加密后的内容发送给服务费。

服务器获取用户发送的密文后,用私钥解密,得到用户的密码。这个过程叫做非对称加密。

服务器知道用户密码后,在传输数据之前,双方用用户生成的密码对数据进行加密,然后传输给对方,再由对方用这个密码解密。当加密和解密使用相同的密钥时,这个过程称为对称加密。

https的传输过程就是这样。首先利用非对称加密传输让双方获得一个对称加密密钥,然后双方利用这个对称密钥对数据传输进行加密,既能兼顾安全性,又能兼顾速度。由于密文传输,第三方此时无法窃听用户与服务器之间传输的内容,此时网站的安全性得到提升。

然而就在这个时候,小王想到了另一个问题。通常,会有一个bug。程的兄弟们总是说“抓住袋子”。他们想抓住袋子,看看是什么导致了错误。我们的网站使用https协议后,数据是加密的,所以我们不知道传输了什么。以后遇到bug怎么办?然后程序员的哥哥开心地笑了,说:其实什么都没有。https也可以抓取包。只需安装一个证书。

捕获https数据包的原理

如前所述,当服务器将公钥发送给用户时,它使用一个证书来封装公钥,就像我们给别人发送东西时,先通过快递打包,然后再发送出去一样。如果我们选择一家不靠谱的快递公司,快递员会偷偷拆开快递袋,更换里面的东西(也可能只是拆开看看里面是什么),重新包装,然后继续把快递交给对方,从而实现https的抢袋过程。

https和http有什么区别(什么是https与http有什么区别)-冯金伟博客园

程的哥哥说,“安装证书”其实就是信任抓包软件的第三方证书,然后这个“黑心快递员”就会充当不诚实的中间人,窃取客户端生成的对称密钥,然后不断记录用户和服务器之间传输的密文,用窃取的密钥解密,这样就可以知道双方之间传输的内容。

这时,小王突然意识到,难怪网上常说,电脑和手机不要乱装软件。虽然网站使用https对传输的内容进行加密,但如果你在手机上安装了类似抓包软件的病毒软件,就相当于泄露了你的账号密码和聊天内容!