- client Hello,客户端(通常是浏览器)先向服务器发出加密通信的请求
(1) 支持的协议版本,比如TLS 1.0版。
(2) 一个客户端生成的随机数 random1,稍后用于生成"对话密钥"。
(3) 支持的加密方法,比如RSA公钥加密。
(4) 支持的压缩方法。 - 服务器收到请求,然后响应 (server Hello)
(1) 确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
(2) 一个服务器生成的随机数random2,稍后用于生成"对话密钥"。
(3) 确认使用的加密方法,比如RSA公钥加密。
(4) 服务器证书。 - 客户端收到证书之后会首先会进行验证
(1)浏览器就可以使用CA机构的公钥对服务器的证书进行验签
(2)验证通过之后,客户端会生成一个随机数pre-master secret,然后使用证书中的公钥进行加密,然后传递给服务器端 - 服务器收到使用公钥加密的内容,在服务端使用私钥解密后得到pre-master secret,然后根据random1,random2,pre-master secret生成sessionKey 和MAC算法秘钥,作为后面交互的对称秘钥。客户端也会用同样的方法生成sessionKey 和MAC算法秘钥
-
然后再后续的交互中就使用session Key和MAC算法的秘钥对传输的内容进行加密和解密。
HTTPS流程
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...