什么是“多协议统一 Hello”,禁用/启用它有什么影响?

信息安全 tls 视窗
2021-08-30 05:08:37

本文介绍了如何禁用旧版本的 TLS,但除此之外,“多协议统一 Hello”也被禁用。

# Disable Multi-Protocol Unified Hello
md 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server' -Force
New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server' -name Enabled -value 0 -PropertyType 'DWord' -Force

我搜索了该术语,除了禁用此功能的其他注册表编辑之外,没有看到任何内容。

什么是多协议 Hello,为什么/何时应该禁用/启用它?

1个回答

不确定,但考虑到上下文和 MS 对平淡名称的偏好,它可能是 SSLv2/更高版本的兼容性。

当 SSLv3 出现时(很久以前),它使用与 SSLv2 不同的消息格式,并且将 v3 ClientHello 发送到 v2 服务器根本不起作用。相反,通常的做法是发送 v2格式ClientHello 包含指示客户端更喜欢 v3 协议和密码的标志。支持 v3 的服务器可以用 v3 ServerHello 响应,然后 v3 将继续;仅 v2 的服务器将忽略 v3 标志,在 v2 中响应并且 v2 将继续。TLS 1、1.1 和 1.2(内部编号为 SSL 3.1、3.2、3.3)保持消息格式足够接近,这主要是继续工作,以及在 v3 和更高版本的协议之间进行协商。OpenSSL 将此称为“SSLv23 方法”,直到大约 2 年前他们切换到 v3-and-up-only 时,它仍然是默认设置;Java 将其称为“SSLv2Hello”,但实际上不接受选择 v2。

长期以来,使用 SSLv2 一直是一个糟糕的选择,2011 年的 RFC 6176 终于正式“禁止”了它,但一些(很多?)软件仍然支持它,因为它结合了 let-sleeping-dogs-lie 和 just-in -case-you-never-know,我敢打赌,这包括 SCHANNEL,所以采取措施禁用 v2 的这些残余可能是一件好事。