3、被冒充的风险:第三方可以伪装成通信方与你通信
HTTP因为存在以上三大安全风险,所以才有了HTTPS的出现。
HTTPS涉及到了很多概念,比如SSL/TLS,数字证书、数字签名、加密、认证、公钥和私钥等,比较容易混淆。我们先从一次简单的安全通信故事讲起吧,其中穿插复习一些密码学的概念。
阮一峰老师也翻译过:
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
(不过阮老师里面没有很好的区分加密和认证的概念,以及最后HTTPS的说明不够严谨,评论区的针对这些问题的讨论比较激烈,挺有意思的)
这里重新叙述一下这个故事:
故事的主人公是Bob,他有三个好朋友Pat、Doug和Susan。Bob经常跟他们写信,因为他的信是明文传输的,在传递过程可能被人截获偷窥,也可能被人截获然后又篡改了,更有可能别人伪装成Bob本人跟他的好朋友通信,总之是不安全的。他很苦恼,经过一番苦苦探索,诶,他发现计算机安全学里有一种叫非对称加密算法的东东,好像可以帮助他解决这个问题
说明:非对称加密算法(RSA)是内容加密的一类算法,它有两个秘钥:公钥与私钥。公钥是公开的钥匙,所有人都可以知道,私钥是保密的,只有持有者知道。通过公钥加密的内容,只能通过私钥解开。非对称加密算法的安全性很高,但是因为计算量庞大,比较消耗性能。
好了,来看看Bob是怎么应用非对称加密算法与他的好朋友通信的:

2、Bob自己保留下了私钥,把公钥复制成三份送给了他的三个好朋友Pat、Doug和Susan。
3、此时,Bob总算可以安心地和他的好朋友愉快地通信了。比如Susan要和他讨论关于去哪吃午饭的事情,Susan就可以先把自己的内容(明文)首先用Bob送给他的公钥做一次加密,然后把加密的内容传送给Bob。Bob收到信后,再用自己的私钥解开信的内容。



7、Bob最终发现了自己的公钥被Jerry截获了,他感觉自己的公钥通过网络传输给自己的小伙伴似乎也是不安全的,不怀好意的家伙可以截获这个明文传输的公钥。为此他想到了去第三方权威机构“证书中心”(certificate authority,简称CA)做认证。证书中心用自己的私钥对Bob的公钥和其它信息做了一次加密。这样Bob通过网络将数字证书传递给他的小伙伴后,小伙伴们先用CA给的公钥解密证书,这样就可以安全获取Bob的公钥了。
4.3 浏览器生成一个随机数R,并使用网站公钥对R进行加密。

原文链接:深入浅出讲解HTTPS工作原理,转载请注明来源!