为什么 Windows Server 2008 R2 上禁用 TLS 1.1 和 1.2?

为什么 Windows Server 2008 R2 上禁用 TLS 1.1 和 1.2?

Windows Server 2008 R2 似乎支持 TLS 1.1 和 1.2,但它们默认是禁用的。

为什么默认情况下它们被禁用?

它们有什么缺点吗?

答案1

Server 2008 R2/Windows 7 为 Windows 引入了 TLS 1.1 和 TLS 1.2 支持,并且是在 TLS 1.0 受到攻击之前发布的,因此 TLS 1.0 可能是默认版本,因为它是 Server 2008 R2 发布时(2009 年 7 月)使用最广泛的 TLS 版本。

不确定您如何才能确切知道,或者找出“为什么”做出设计决定,但考虑到 Windows 7 和 Server 2008 R2 将该功能引入 Windows 系列,而 Windows Server 2012 默认使用 TLS 1.2,这似乎表明这是当时“做事方式”的问题。TLS 1.0 仍然“足够好”,因此它是默认设置,但支持 TLS 1.1 和 1.2 以实现前向支持和前向可操作性。

这是来自微软员工的技术博客建议启用较新版本的 TLS,并指出(截至 2011 年 10 月):

在 Web 服务器中,IIS 7.5 是唯一支持 TLS 1.1 和 TLS 1.2 的。截至目前,Apache 不支持这些协议,因为 OPENSSL 不支持这些协议。希望他们能赶上行业的新标准。

这进一步支持了这样一种观点,即 Server 2008 R2 中默认未启用较新的 TLS 版本,原因很简单,因为它们较新,而且当时没有得到广泛支持或使用 - Apache 和 OpenSSL 甚至没有支持还没有它们,更不用说将它们用作默认设置了。

有关如何启用和禁用各种 SSL/TLS 版本的详细信息,请参阅Microsoft KB 文章编号 245030,标题为How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll。显然,Client键控制 Internet Explorer,Server键覆盖 IIS。

答案2

我自己也在想这个问题...也许只是因为当时已知的兼容性问题...我发现了这个 MSDN 博客条目(来自 2011 年 3 月 24 日):

http://blogs.msdn.com/b/ieinternals/archive/2011/03/25/misbehaving-https-servers-impair-tls-1.1-and-tls-1.2.aspx

它谈论的是一些网络服务器在响应不支持的协议请求时出现“行为不当”,导致客户端无法回退到支持的协议,最终结果是用户无法访问网站。

此处引用该博客文章的部分内容:

服务器不应该以这种方式运行 - 相反,它应该使用它支持的最新 HTTPS 协议版本(例如“3.1”,又名 TLS 1.0)进行回复。现在,如果服务器此时正常关闭连接,那就没问题了 - WinINET 中的代码将回退并重试仅提供 TLS 1.0 的连接。WinINET 包含的代码使得 TLS1.1 和 1.2 回退到 TLS1.0,然后回退到 SSL3(如果启用),然后回退到 SSL2(如果启用)。回退的缺点是性能 - 新的较低版本握手所需的额外往返通常会导致数十或数百毫秒的损失。

但是,该服务器使用 TCP/IP RST 中止连接,从而禁用 WinINET 中的后备代码并导致整个连接序列被放弃,并向用户显示“Internet Explorer 无法显示网页”错误消息。

相关内容