摘要
传输层安全性 (TLS) 1.0 和 1.1 是用于通过计算机网络创建加密通道的安全协议。 自 Windows XP 和 Windows Server 2003 以来,Microsoft一直支持它们。 但是,法规要求正在发生变化。 此外,TLS 1.0 中还存在新的安全漏洞。 因此,Microsoft建议删除 TLS 1.0 和 1.1 依赖项。 我们还建议尽可能在操作系统级别禁用 TLS 1.0 和 1.1。 有关详细信息,请参阅 TLS 1.0 和 1.1 禁用。 在 2022 年 9 月 20 日预览版更新中,我们将默认禁用基于 winhttp 和 wininet 的应用程序的 TLS 1.0 和 1.1。 这是正在进行的工作的一部分。 本文将帮助你重新启用它们。 这些更改将在安装 2022 年 9 月 20 日或之后发布的 Windows 更新后反映出来。
在浏览器中访问 TLS 1.0 和 1.1 链接时的行为
2022 年 9 月 20 日之后,当浏览器打开使用 TLS 1.0 或 1.1 的网站时,将显示一条消息。 请参阅图 1。 消息指出站点使用过时或不安全的 TLS 协议。 若要解决此问题,可以将 TLS 协议更新为 TLS 1.2 或更高版本。 如果无法执行此操作,可以启用 TLS,如 启用 TLS 1.1 及更低版本中所述。
图 1:访问 TLS 1.0 和 1.1 网页时的浏览器窗口
访问 winhttp 应用程序中的 TLS 1.0 和 1.1 链接时的行为
更新后,基于 winhttp 的应用程序可能会失败。 错误消息为“在执行 WinHttpSendRequest 操作时ERROR_WINHTTP_SECURE_FAILURE”。
访问基于 winhttp 或 wininet 的自定义 UI 应用程序中的 TLS 1.0 和 1.1 链接时的行为
当应用程序尝试使用 TLS 1.1 及更低版本创建连接时,连接可能会失败。 关闭应用程序或应用程序停止工作时,将显示“程序兼容性助手 (PCA) 对话框,如图 2 所示。
图 2:关闭应用程序后的“程序兼容性助手”对话框
PCA 对话框指出,“此程序可能未正确运行。” 在该选项下,有两个选项:
-
使用兼容性设置运行程序
-
此程序已正确运行
使用兼容性设置运行程序
选择此选项时,应用程序将重新打开。 现在,使用 TLS 1.0 和 1.1 的所有链接都正常工作。 从此以后,将不会显示 PCA 对话框。 注册表编辑器将条目添加到以下路径:
-
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store。
-
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers。
如果错误地选择此选项,可以删除这些条目。 如果删除它们,下次打开应用时将看到 PCA 对话框。
图 3:应使用兼容性设置运行的程序列表
此程序已正确运行
选择此选项时,应用程序会正常关闭。 下次重新打开应用程序时,不会显示 PCA 对话框。 系统会阻止所有 TLS 1.0 和 1.1 内容。 注册表编辑器将以下条目添加到 路径Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store。 请参阅图 4。 如果错误地选择此选项,可以删除此项。 如果删除条目,下次打开应用时将看到 PCA 对话框。
图 4:注册表编辑器中的条目,指出应用正确运行
重要 仅针对特定应用程序启用旧版 TLS 协议。 即使它们在系统范围的设置中被禁用,也是如此。
启用 TLS 版本 1.1 及更低版本 (wininet 和 Internet Explorer 设置)
建议不要启用 TLS 1.1 及更低版本,因为它们不再被视为安全。 它们容易受到各种攻击,例如 POODLE 攻击。 因此,在启用 TLS 1.1 之前,请执行下列操作之一:
-
检查是否有较新版本的应用程序可用。
-
要求应用开发人员在应用中进行配置更改,以删除 TLS 1.1 及更低版本的依赖项。
如果解决方案均不起作用,则可通过两种方法在系统范围的设置中启用旧 TLS 协议:
-
Internet 选项
-
组策略编辑器
Internet 选项
若要打开“Internet 选项”,请在任务栏上的搜索框中键入“ Internet 选项 ”。 还可以从图 1 所示的对话框中选择“ 更改设置 ”。 在“ 高级 ”选项卡上,在 “设置” 面板中向下滚动。 可以在那里启用或禁用 TLS 协议。
图 5:“Internet 属性”对话框
组策略编辑器
若要打开组策略编辑器,请在任务栏搜索框中键入 gpedit.msc。 此时会显示一个如图 6 所示的窗口。
图 6:组策略编辑器窗口
-
导航到“本地计算机策略> (计算机配置”或“用户配置”) >,> Windows 组件>Internet Explorer > Internet 控制面板 > 高级页面>关闭加密支持。 请参阅图 7。
-
双击“ 关闭加密支持”。
图 7:在组策略编辑器中关闭加密支持的路径
-
选择 “已启用” 选项。 然后使用下拉列表选择要启用的 TLS 版本,如图 8 所示。
图 8:启用“关闭加密支持和下拉列表”
在组策略编辑器中启用策略后,无法在 Internet 选项中对其进行更改。 例如,如果选择“ 使用 SSL3.0 和 TLS 1.0”,则所有其他选项在“Internet 选项”中将不可用。 请参阅图 9。 如果在“组策略编辑器”中启用“关闭加密支持”,则无法更改“Internet 选项”中的任何设置。
图 9:显示 SSL 和 TLS 设置不可用的 Internet 选项
启用 TLS 版本 1.1 及更低版本 (winhttp 设置)
重要的注册表路径 (wininet 和 Internet Explorer 设置)
-
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
-
在这里可以找到 SecureProtocols,如果使用组策略编辑器,它将存储当前启用的协议的值。
-
-
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
-
在这里可以找到 SecureProtocols,如果使用 Internet 选项,它将存储当前启用的协议的值。
-
-
组策略 SecureProtocols 将优先于 Internet 选项设置的协议。
启用不安全的 TLS 回退
上述修改将启用 TLS 1.0 和 TLS 1.1。 但是,它们不会启用 TLS 回退。 若要启用 TLS 回退,必须在注册表中的以下路径下将 EnableInsecureTlsFallback 设置为 1。
-
更改设置:SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
-
设置策略:SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
如果 EnableInsecureTlsFallback 不存在,则必须创建新的 DWORD 条目并将其设置为 1。
重要的注册表路径
-
ForceDefaultSecureProtocols
-
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
-
默认情况下,它为 FALSE。 设置非零值将阻止应用程序使用 winhttp 选项设置自定义协议。
-
-
EnableInsecureTlsFallback
-
更改设置:SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
-
设置策略:SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
-
默认情况下,它为 FALSE。 如果握手失败, (tls1.2 及更高) 的安全协议,则设置非零值将使应用程序能够回退到不安全的协议 (TLS1.0 和 1.1) 。
-