【问题标题】:What is the difference between TLS Record Layer and Handshake layer versionTLS Record Layer 和 Handshake layer 版本有什么区别
【发布时间】:2020-12-13 00:11:52
【问题描述】:

它们是网络上的一些帖子,谈论和围绕它,但没有解释差异和意义。可以看到 Client Hello 数据包具有记录层和握手协议版本 - 0x0301 和 0x0303。它们之间有什么区别?当其中一个显示 1.0 而另一个显示 1.2 时,使用的是哪个 TLS 版本?

【问题讨论】:

  • 这一切都在TLS RFCs 中进行了解释,所以这就是你应该去的地方。特别注意附录E。
  • RFC 试图通过说“但这是一个超出本文档范围的复杂主题”来避免回答。这些版本范围的低端和高端是客户端支持的吗?还是客户端支持这两个确切的版本,当然在 PlainTextVersion 中可以使用 XX 正则表达式?

标签: ssl cryptography tls1.2


【解决方案1】:

TLS 记录层版本是 1.0,因为 TLS 版本是根据客户端 hello 中提到的版本协商的。例如,如果客户端要求使用 1.2 并向服务器发送客户端问候,而服务器要求严格使用 1.3,则 TLS 记录永远不会知道将协商哪个版本。 因此,它使用 1.0 作为通用版本。

The RFC 告诉你同样的:

TLS 规范的早期版本并未完全明确 记录层版本号(TLSPlaintext.version)应该是什么 在发送 ClientHello 时包含(即,在知道哪个 将采用协议的版本)。因此,TLS 服务器 符合本规范必须接受任何值 {03,XX} 作为 ClientHello 的记录层版本号。”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 2018-01-15
    • 2015-02-17
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    相关资源
    最近更新 更多