HTTPS
HTTPS
HTTP over SSL/TLS
定义:在HTTP之下增加一个安全层
本质:在客户端与服务器之间用非对称加密协商出一套对称秘钥,每次传输用此秘钥加密解密,为啥不直接非对称加密,因为效率低
流程:
Client Hello,客户端请求建立TLS连接,发送tls版本、可选加密套件,客户端随机数
Server Hello,发送tls版本、可选加密套件,服务端随机数
服务器发回证书
客户端验证服务器证书
服务器证书包含了公钥和服务器主机名、地址与证书的签名,签名可由下方证书签发机构的公钥验证
证书签发机构的证书
根证书机构的证书(这个在本地,信息可从上方证书查询)
客户端信任服务器证书后,和服务器协商对称秘钥(客户端会再生成一个premaster-secret,加密后给到服务端,两端各自使用自己的随机数生成Master secret,里面包含各自的加密秘钥和MAC secret)
两个随机数,客户端服务器各一个加密秘钥
使用秘钥开始通信
使用随机数是为了防止别人使用你的老数据攻击服务器
使用两个秘钥是为了防止别人把你发出的数据原样发给你,这样你解密不会出错,可能会误认为是正常数据
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 炎武的学习笔记!