TLS supported_versions 扩展中发送的协议版本是什么
What is this protocl version sent in the TLS supported_versions extension
我正在使用 Chrome 版本 85.0.4183.83(官方构建)(64 位)检查 TLS 客户端 hello 的简单连接。
有一个意外的版本被标记为“未知”,带有一个奇怪的代码。我知道 TLS 版本,它们的编号在标准中有注明。我看着奇怪的版本号,想不通。
谁能帮我确定这个未知版本号的用途是什么? Chrome 是否出于任何目的这样做?
这是版本:
Supported Version: Unknown (0x3a3a)
这是 TLS“Grease”的一部分,其中 TLS 客户端发送不存在的密码套件、受支持的版本、TLS 扩展等,以确保 TLS 堆栈的实现不会过多地依赖于它们的特定实现已经在网上看到了。
在过去的实施中,通常不会真正实施标准,而是根据现实世界中使用的标准做出假设。这导致这些实现因更新的 TLS 版本、新密码等而失败。这使得有必要使用 TLS 降级之类的东西解决此类损坏的 TLS 堆栈,这会导致其自身的问题。
为了清理这个混乱并在 TLS 堆栈中强制执行更稳健的行为,一些 TLS 实现(如 Chrome 中的 BoringSSL)添加 RFC 8701 中定义的随机内容。
我正在使用 Chrome 版本 85.0.4183.83(官方构建)(64 位)检查 TLS 客户端 hello 的简单连接。 有一个意外的版本被标记为“未知”,带有一个奇怪的代码。我知道 TLS 版本,它们的编号在标准中有注明。我看着奇怪的版本号,想不通。 谁能帮我确定这个未知版本号的用途是什么? Chrome 是否出于任何目的这样做?
这是版本:
Supported Version: Unknown (0x3a3a)
这是 TLS“Grease”的一部分,其中 TLS 客户端发送不存在的密码套件、受支持的版本、TLS 扩展等,以确保 TLS 堆栈的实现不会过多地依赖于它们的特定实现已经在网上看到了。
在过去的实施中,通常不会真正实施标准,而是根据现实世界中使用的标准做出假设。这导致这些实现因更新的 TLS 版本、新密码等而失败。这使得有必要使用 TLS 降级之类的东西解决此类损坏的 TLS 堆栈,这会导致其自身的问题。
为了清理这个混乱并在 TLS 堆栈中强制执行更稳健的行为,一些 TLS 实现(如 Chrome 中的 BoringSSL)添加 RFC 8701 中定义的随机内容。