TLS1.2 握手流程
时间: 2023-09-15 16:15:33 浏览: 143
TLS1.2 握手流程包括以下步骤:
1. 客户端向服务器发送 Client Hello 消息,其中包含客户端支持的密钥交换算法、加密算法和消息摘要算法等信息。
2. 服务器收到 Client Hello 消息后,向客户端发送 Server Hello 消息,其中包含服务器选择的密钥交换算法、加密算法和消息摘要算法等信息。
3. 服务器向客户端发送 Certificate 消息,其中包含服务器的证书以及服务器公钥。
4. 如果服务器要求客户端进行身份验证,则服务器发送 Server Key Exchange 消息或 Certificate Request 消息。
5. 服务器向客户端发送 Server Hello Done 消息,表示服务器已经完成握手流程的一部分。
6. 客户端收到服务器的消息后,验证服务器的证书,并使用服务器的公钥加密一个随机数,然后发送 Client Key Exchange 消息。
7. 客户端生成主密钥、会话密钥和客户端随机数,并使用服务器证书中的公钥进行加密,然后向服务器发送 Change Cipher Spec 消息。
8. 客户端向服务器发送 Finished 消息,其中包含使用主密钥对整个握手流程进行摘要的结果。
9. 服务器收到客户端的消息后,使用自己的私钥解密客户端发送的随机数,并根据客户端发送的消息生成主密钥、会话密钥和服务器随机数。
10. 服务器向客户端发送 Change Cipher Spec 消息,表示从现在开始使用新的加密算法进行通信。
11. 服务器向客户端发送 Finished 消息,其中包含使用主密钥对整个握手流程进行摘要的结果。
12. 客户端收到服务器的消息后,验证服务器发送的 Finished 消息,并向服务器发送 Change Cipher Spec 消息,表示从现在开始使用新的加密算法进行通信。
13. 握手流程完成,客户端和服务器可以开始使用会话密钥进行加密通信。
阅读全文