HTTP的风险
HTTP协议是由明文传输的,因此会带来三大风险:
- 被窃听的风险:第三方可以截获查看你请求的内容
- 被篡改的风险:第三方可以修改你请求的内容
- 被冒充的风险:第三方可以伪装成通信方与你通信
正是由于HTTP的不完美,才有HTTPS的出现。
HTTPS涉及到的概念比较多,比如SSL/TLS,数字证书、数字签名、加密、认证、公钥、私钥等,比较容易混淆。我们先从一次简单的安全通信故事讲起,中间穿插复习一些密码学的概念。
一、关于Bob与他好朋友通信的故事
故事的主人公是Bob,他有三个朋友Pat,Doug,Susan。Bob经常跟他们写信,因为他的信是明文传输的,在传输过程中可能被别人截取偷窥,也可能被别人截取后篡改,更可怕是可能有人伪装成Bob给他的好友通信,总之这是不安全的。他很苦恼,经过了一番苦苦的探索后,他发现在计算机科学里面有一种叫做非对称加密算法的东西,好像可以帮他解决这个问题。
说明:非对称加密算法(RSA)是内容加密的一类算法,它有两个密钥:公钥和私钥。公钥是公开的钥匙,所有人都可以知道,私钥是保密的,只有持有者知道。通过公钥加密的内容,只能通过私钥解开。非对称加密算法安全性很高,但是计算量庞大,比较消耗性能。
好了,看看Bob是如何使用非对称加密算法与他的好友通信的:
-
首先Bo