引言
最近上海连续下了一周的雨,一夜之间气温就回到了解放前的气温,但即使穿着夏装,我还是冻得瑟瑟发抖,躲在家里。我想去任何地方。
当我在家无聊浏览网页时,看到公众号后台显示一条消息,有同学问我“HTTP和HTTPS有什么区别?”。
当然,HTTPS 比HTTP 更安全。 S很安全。
然后同学的下一个问题让我困惑了。为什么穿S更安全?你能告诉我更多吗?
让我告诉你,我不是吹牛,我在这里已经很多年了。
我从来没有遇到过像你这样好奇的同学,总是对自己不明白的事情提出这样的问题。
听到这个问题我脸红了,但我有“我不会,但我会学”的不要脸的精神。
HTTP
首先,我们来了解一下HTTP。
HTTP 协议的正式名称是“超文本传输协议”。使用百度翻译进行翻译。不要质疑这个翻译。
大家应该都知道TCP/IP的四层模型,包括数据链路层、网络层、传输层、应用层。
HTTP协议位于TCP/IP四层模型的应用层。
这里很多人混淆了TCP和HTTP。事实上,HTTP是基于TCP连接的。
简单来说,TCP只是建立连接,没有实际需要请求的数据,只是发送而已。 HTTP是用来发送和接收数据的,也就是实际使用的。
HTTP 协议通过请求和响应在客户端和服务器之间发送和接收数据来进行通信。
HTTPS
HTTP协议似乎没有问题。唯一的问题是HTTP 协议不是很安全,因为它完全以明文形式发送,没有任何加密。因此,恶意攻击是可能的。人们有机会利用。
这种传输方法会引发中间人攻击,这是一种经典的攻击方法。
在这种情况下,使用加密解决方案的最简单方法是服务器和客户端最初就随机生成的密钥达成一致。 AES 加密使用此密钥来存储所有信息。
后续通信过程是安全的,但首次发送AES 密钥时仍存在被中介拦截的风险。一旦中介拦截了密钥,它就可以替换它或直接解密请求的内容。
目前,可以使用非对称加密为密钥传输提供额外的保护。
非对称加密有两个密钥,一个公钥和一个私钥。明文可以通过使用公钥加密私钥,或者使用私钥加密公钥来解密。
目前最常见的非对称加密算法是RSA。
看到这里的学生可能想知道为什么当每个人都使用非对称加密时我们只对AES 密钥使用非对称加密。看来没有必要这样做了。所有后续通信都可以使用非对称加密。信息。
与对称加密相比,非对称加密有明显的性能劣势,所以虽然你可能认为一个请求多消耗几毫秒或纳秒是可以的,但一旦到达就必须解密,并且每个请求都必须解密。累计起来需要几毫秒的时间,但仍然非常令人印象深刻。
上述方案似乎即使中介拦截了我们的公钥,它也无法解密它,因为它不知道我们的私钥。
事实上,中介机构根本不需要解密我们的信息。您可以生成新的公钥/私钥对并将其发送给客户端进行攻击。然后,客户端的通信中介使用您创建的私钥对其进行解密。然后使用服务器生成的公钥将其加密回服务器。
CA 证书
此时仅靠客户端和服务器端已经无法解决上述问题,必须引入新的第三方机构来颁发CA证书。
常见的第三方CA 组织包括Symantec、Comodo、GeoTrust、GoDaddy、Thawte 和daoRapidSSL。
中间人攻击遇到的问题不是加密算法不够神奇或者密钥方法不够严格,而是没有办法将公钥呈现给客户端。这不就像我们给他的吗?如何证明我是我的问题。
这样,第三方机构只需在客户端收到公钥后,在服务器的公钥上盖上我们的名字即可。通过这里查询,可以查出该公钥是否是正版服务器,并使用CA证书解密后的公钥加密生成的AES密钥并发送给服务器。
最后服务器使用私钥解密得到AES密钥,可以成功与客户端通信。
最后,说到CA机构验证,不用每次都去CA机构去检查。这太愚蠢了,而且花费的时间太长,尤其是因为许多CA 机构在海外提供服务。
CA机构的巧妙之处在于,当你去CA机构注册你的公钥时,他们会使用注册的另一家公司的私钥对你的公钥进行加密,然后打印你的公钥的指纹(这是唯一的)在世界上)。然后将公司的公钥信息(实际上也是证书)与我们公司的公钥、公钥指纹一起打包成证书。
当您使用HTTPS 向客户端颁发证书进行验证时,客户端(例如浏览器)会从证书中查找证书信息。这个证书存在于浏览器中(或者你的本地机器上),浏览器只需使用这个证书的公钥解密公钥指纹,并对比公钥信息,确认其合法性就可以看到。这是因为假证书的公钥签名无法使用合法的高级证书的公钥进行解密。
这一部分有点复杂,但是如果你慢慢地读几遍,你就会明白。
参考
https://www.jianshu.com/p/691b8ba3a70f
https://blog.csdn.net/u010144805/article/details/80803059
https://blog.csdn.net/caofengtao1314/article/details/87912078
作者:宅男挖掘机
来源:https://www.cnblogs.com/babycomeon/p/13041439.html
原创文章,作者:共创,如若转载,请注明出处:https://www.sudun.com/ask/94381.html