在 TLS1.3 握手捕获中哪里可以找到服务器证书

Ala*_*oun 1 certificate handshake tls1.3

我使用wireshark捕获了在都支持TLSv1.3的客户端和服务器之间建立的TLSv1.3握手。我知道证书是以加密形式发送的,但我找不到任何字段表明我们在这里找到了加密证书。有什么帮助吗?

Pak*_*ula 5

在 TLS 1.3 中,服务器发送加密的证书。

在 TLS 1.3 中,客户端和服务器在一开始就交换密钥:客户端在 ClientHello 中发送其选择,服务器key_share在 ServerHello 中发送其选择。ServerHello 之后的所有内容都被加密。

它与 TLS 1.3 之前的 SSL/TLS 有很大不同,后者在身份验证之后进行密钥交换。在 SSL 和 TLS 1-1.2 中,证书以纯文本形式发送。

如果您打开第 11 页的 RFC 8446,您将看到消息交换图。请查找服务器端{Certificate*}消息。符号的{*}意思是:

  • 星号 (*) 表示这是一条可选消息,
  • 大括号{}表示

使用从 [sender]_handshake_traffic_secret 派生的密钥保护消息

RFC 8446 第 4.4 节更正式地规定:

正如第 2 节中所讨论的,TLS 通常使用一组通用消息来进行身份验证、密钥确认和握手完整性:Certificate、CertificateVerify 和 Finished。...这些消息使用从 [sender]_handshake_traffic_secret 派生的密钥进行加密。