拜读了阮一峰大神关于HTTPS的文章,恍然大悟了不少以前看的似懂非懂的HTTPS知识。特此整理下来,让本身可以完全消化,同时也但愿能帮助到你们。html
消息使用同一个密钥进行加密和解密。算法
A向B发送消息 使用B的公钥进行加密 B收到密文后使用本身的私钥进行解密 反之亦然安全
A先生成一个对话密钥,而后把对话密钥发送给B。可是这个对话密钥要通过B的公钥进行加密,B收到后用本身的私钥进行解密。这样就解决了对称加密时公钥容易被截取的缺陷。服务器
2,3两种方法在加密时都使用B的公钥进行加密。可是B的公钥哪来的呢?加密
是链接一开始B把本身的公钥发送给A。可是在这个时候,有个中间人截取了B的公钥,而后把本身的公钥发送给A。A在给B发送消息时,想用B的公钥进行加密。但实际上用的是中间人的公钥。中间人截取了A给B发送的消息,而后用本身的私钥解密。就能够随意读取消息的内容。
此外,由于中间人能够把本身的公钥发给A,让B误觉得中间人就是A3d
数字证书包括 公钥和数字签名 公钥经过hash算法能够获得数据摘要,数据摘要使用CA的私钥加密获得数字签名。cdn
HTTPS是安全版的HTTP,是以安全为目标的HTTP通道。在HTTP的基础下加入了SLSL/TSL层,这也HTTPS的安全基础。现被普遍应用于互联网上的敏感通信,如交易支付的过程。HTTPS创建链接的阶段也就是非对称加密+对称加密+数字证书协同做用的过程。服务器和客户端各产生一个随机数,互相传给对方。而后再生成第三个随机数,经过服务器公钥加密传给服务器,服务器用私钥解密得到第三个随机数。这样双方都有了三个随机数。因而用这三个随机数来生成对话密钥,来加密以后的通讯过程。htm
参考资料: 阮一峰 图解SSL/TLS协议blog