TLS 1.3 Post-Handshake 消息全面解析
TLS 1.3 在握手效率和安全机制上做了重大改进。除了优化的握手流程外,协议还定义了一系列 Post-Handshake 消息,在握手完成后处理会话恢复、密钥更新等重要功能。理解这些消息对于深入掌握 TLS 1.3 至关重要。 什么是 Post-Handshake 消息? 在 TLS 1.3 中,握手完成后双方进入加密通信阶段。此时协议定义了一组特殊消息,用于处理握手后的事务: NewSessionTicket:发送会话票据,用于后续会话恢复 KeyUpdate:更新加密密钥,保持前向安全性 CertificateRequest:请求客户端证书(握手后认证) Certificate:提供客户端证书 CertificateVerify:验证客户端证书 这些消息与主握手流程独立,通过独立的加密通道传输。 NewSessionTicket(会话票据) 原理 NewSessionTicket 是 TLS 1.3 会话恢复机制的核心。当客户端和服务器完成完整握手后,服务器可以发送一个加密的会话票据给客户端。下次连接时,客户端可以使用这个票据恢复会话,无需完整握手,从而实现 1-RTT 甚至 0-RTT 的快速连接。 工作流程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 完整握手: 客户端 服务器 | | |--------------- ClientHello ----------------->| | (附 session_id / session_ticket) | |<-------------- ServerHello ------------------| |<-------------- Certificate ------------------| |<-------------- CertificateVerify ------------| |<---------------- Finished -------------------| |--------------- Finished -------------------->| | | |================ 加密通道 ====================| | | |<------------- NewSessionTicket -------------| | | 快速恢复(0-RTT): 客户端 服务器 | | |-------- ClientHello + EarlyData + Ticket -->| |<-------- ServerHello + EarlyData ------------| |<---------------- Finished -------------------| |--------------- Finished -------------------->| | | 实际验证 使用 OpenSSL 查看 TLS 1....