首页/安全/加密与证书速查/TLS 1.3 握手流程(1-RTT)
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条
证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

TLS 1.3 握手流程(1-RTT)

TLS 1.3 把密钥交换压缩到一次往返:ClientHello 直接携带 key_share,服务端回 ServerHello 即可计算握手密钥,随后在加密信道中发送证书与 Finished。

加密与证书速查安全更新于 2026-10-12
消息序列ClientHello(key_share) → ServerHello(key_share) → {EncryptedExtensions, Certificate, CertificateVerify, Finished} → {Finished}
轮次1-RTT
0-RTT使用 PSK + early data(有重放风险)
密钥派生HKDF:Early/Handshake/Master Secrets

观察 TLS 1.3 握手与密钥交换组

观察 TLS 1.3 握手与密钥交换组
openssl s_client -connect example.com:443 -tls1_3 </dev/null 2>&1 | grep -E 'Protocol|Cipher|Server Temp Key|Peer Temp Key'
TLS 1.3 的 HelloRetryRequest 会让握手变为 2-RTT(客户端 key_share 组不被接受时);握手时长异常时可关注该现象。

易错点

  • 选择冷门曲线组会触发 HelloRetryRequest,增加一次往返;服务端按主流组优先级配置可避免
  • 证书体积大(如 RSA 4096)时握手消息可能跨越多个 TCP 段,弱网表现变差

数据来源与参考

  • RFC 8446 §4(握手协议)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌