赞
踩
本文参考:HTTPS是什么?加密原理和证书。SSL/TLS握手过程_哔哩哔哩_bilibili
再结合本地抓包整理。
TLS 1.2 握手过程主要步骤如下图:
Client首先发送Hello,告诉Server支持的TLS版本以及支持的加密套件,再把Client随机数发给Server。
Server收到Client Hello也给Client发送Hello,并告知Server确认支持的TLS版本以及选择的加密算法。同样,也会把Server随机数发给Client。
Server接着再发送自己的证书给Client,这样Client浏览器就可以对照自己的证书信任列表来确认这个服务器是否可信。
发送完证书,Server就把公钥发送给Client。
最后,Server告诉Client响应发送完了。
Client用刚刚收到的公钥加密pre-master预主密钥,并把这个加密后的随机数发送给Server。
Change Cipher Spec: 这一步就是告诉服务器往后的数据就用商议好的算法和密钥来加密。
Encrypted Handshake Message: 表示Client这边的TLS协商已经OK了。
Server收到加密后的预主密钥,会用自己的私钥进行解密从而得到预主密钥。
Client会用Client随机数、Server随机数和预主密钥计算出会话密钥。Server也同样计算出和Client一样的会话密钥。
之后,Client和Server就都只使用这个会话密钥对数据进行加密。
这一步表示Server这边TLS协商也OK了,可以给数据进行加密交换了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。