0

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

4

1 回答 1

1

在 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 的密钥下加密。

于 2020-03-02T08:34:35.110 回答