信鸽
来完成,虽然有点随意,但是有利于我们更加容易的学习HTTPS工作原理。Alice
用来表示客户端
;Bob
用来表示服务端
;Mallory
用来表示图谋不轨的消息拦截者
。凯撒密码
。非常简单,将字母表中的字母左移三个位置即可。例如,D->A,E->B,F->C。文本信息“secret message”编码结果为“pbzobq jbppxdb”。对称密钥加密
。移动3位
。Alice和Bob能使用该密钥进行安全通信有个前提条件,就是他们必须提前商定好使用该种密钥进行加密,但是如果Alice和Bob从来没有碰过面,他们如何约定安全的密钥?这在网络互联的场景中再正常不过了。中间人攻击
,要想避免这种中间人攻击,只能选取一套全新的加密系统:非对称密钥加密算法。非对称密钥加密
,之所以是非对称
,是因为即便一方知道怎么加密信息(锁箱),他也无法解密(开锁)。技术实现上一般将带锁的箱子
称为公钥
,将开锁的钥匙
称为私钥
,具体实现比如有RSA加密算法
等。Ted
来负责签名盖章。HTTPS证书颁发机构
,比如DigiCert、Symantec等。签名算法私钥
来生成签名,而客户端一般会内置这些权威机构的签名算法公钥
,因此拿到服务端发送过来的证书时可以根据签名算法公钥
来判断签名的可靠性。非对称加密算法
虽然也有私钥和公钥,但是不要和这里的数字签名算法
弄混,这是两套不同的算法,用途完全不一样,前者是为了实现加密,后者是为了验证签名可靠性。感兴趣的可以去搜索对比RSA加密算法
和RSA签名算法
。