MS12-006:SSL/TLS 中的漏洞可能允许信息泄露:2012 年 1 月 10 日

应用对象
Windows 7 Service Pack 1 Windows 7 Enterprise Windows 7 Home Premium Windows 7 Professional Windows 7 Ultimate Windows 7 Home Basic Windows 7 Enterprise Windows 7 Home Premium Windows 7 Professional Windows 7 Ultimate Windows 7 Home Basic Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 Service Pack 2 Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Microsoft Windows Server 2003 Service Pack 2 Microsoft Windows XP Professional x64 Edition

简介

Microsoft已发布安全公告 MS12-006。 若要查看完整的安全公告,请转到以下Microsoft网站之一:

如何获取此安全更新的相关帮助和支持

有关安装更新的帮助:
Microsoft 更新支持

IT 专业人员安全解决方案:
TechNet 安全疑难解答与支持

帮助保护运行 Windows 的计算机不受病毒和恶意软件的侵害:
病毒解决方案和安全中心

基于国家/地区的本地支持:
国际支持

解决问题

有两种修复解决方案可用。

  • 修复 Internet Explorer 中传输层安全性 (TLS) 1.1 的解决方案:此解决方案在 Windows Internet Explorer 中启用不受此漏洞影响的 TLS 1.1。 大多数典型用户应安装此 Fix it 解决方案。
  • 修复基于 Windows 的服务器上的 TLS 1.1 解决方案:此解决方案启用不受漏洞影响的 TLS 1.1。

本部分中介绍的 Fix it 解决方案不用作任何安全更新的替代项。 建议始终安装最新的安全更新。 但是,我们提供了这些修复解决方案作为某些方案的解决方法选项。 

有关解决方法的详细信息,请参阅安全公告 MS12-006:

http://technet.microsoft.com/security/bulletin/ms12-006 公告提供了有关此问题的详细信息,并包括以下内容:

  • 应用或禁用解决方法的方案
  • 缓解因素
  • 解决方法
  • 常见问题解答

具体而言,若要查看此信息,请查找漏洞信息部分,然后展开 SSL 和 TLS 协议漏洞 - CVE-2011-3389 段落下的解决方法段落。

修复 Internet Explorer 上的 TLS 1.1 解决方案

若要启用或禁用此修复解决方案,请单击“启用或禁用”标题下的修复此问题”按钮或链接。 在“文件下载”对话框中单击“运行”,然后按照修复向导中的步骤操作。

启用 Disable

便笺

  • 这些向导可能仅以英语提供。 但是,自动修复也适用于其他语言版本的 Windows。
  • 如果你不在有问题的计算机上,可以将自动修复保存到闪存驱动器或 CD,然后可以在有问题的计算机上运行它。

修复基于 Windows 的服务器上的 TLS 1.1 解决方案

若要启用或禁用此修复解决方案,请单击“启用或禁用”标题下的修复此问题”按钮或链接。 在“文件下载”对话框中单击“运行”,然后按照修复向导中的步骤操作。

启用 Disable

便笺

  • 这些向导可能仅以英语提供。 但是,自动修复也适用于其他语言版本的 Windows。
  • 如果你不在有问题的计算机上,可以将自动修复保存到闪存驱动器或 CD,然后可以在有问题的计算机上运行它。

此安全更新的已知问题

安装此安全更新后,可能会遇到身份验证失败或与某些 HTTPS 服务器断开连接的情况。 出现此问题的原因是此安全更新更改了记录发送到 HTTPS 服务器的方式。

若要暂时禁用或重新启用此安全更新,请单击“禁用安全更新”或“重新启用安全更新”标题下的“修复此问题”按钮或链接。 在“文件下载”对话框中单击“运行”,然后按照修复向导中的步骤操作。

禁用安全更新 重新启用安全更新

便笺

  • 这些向导可能仅以英语提供。 但是,自动修复也适用于其他语言版本的 Windows。
  • 如果你不在有问题的计算机上,可以将自动修复保存到闪存驱动器或 CD,然后可以在有问题的计算机上运行它。

下表显示了这些 Fix it 解决方案应用于 SendExtraRecord 注册表 DWORD 条目的值:

标题 应用于 SendExtraRecord 条目的值
禁用安全更新 2
重新启用安全更新 0

注意 SendExtraRecord 设置将包含在 Windows 的未来版本中。

关于本安全更新的已知问题和其他信息

下列文章包含此安全更新针对具体产品版本的其他信息。 文章可能包含已知问题信息。 如果是这种情况,已知问题将在每个文章链接下方列出:

  • 2585542 MS12-006:Windows 中 Webio、Winhttp 和 schannel 的安全更新说明:2012 年 1 月 10 日
  • 2638806 MS12-006:Windows Server 2003 和 Windows XP Professional x64 Edition 中的 Winhttp 安全更新说明:2012 年 1 月 10 日

注册表信息

不建议我们不建议使用以下过程来禁用此安全更新。 但是,对于可能使用与此安全更新不兼容的应用程序的情况,我们将提供此过程,这将为所有应用程序启用拆分 SSL 记录。

重要:本节、方法或任务包含如何修改注册表的步骤。 但如果注册表修改不当,可能造成严重问题。 因此,请务必仔细遵循以下步骤。 为增强保护,请在修改前备份注册表。 如果出现问题,可以还原注册表。 有关如何备份和还原注册表的更多信息,请单击下面的文章编号查看 Microsoft 知识库中相应的文章:

322756 如何在 Windows 中备份和还原注册表

默认情况下,由于应用程序兼容性问题,此安全更新会在通道级别设置选择加入模式。 若要为系统范围的所有应用程序禁用此安全更新,必须将名为 SendExtraRecord 且值为 2 的 DWORD 值添加到以下注册表子项:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL若要添加此 schannel 注册表项注册表项,请执行以下步骤:

  1. 依次单击“开始”、“运行”,在“打开”框中键入“regedit”,然后单击“确定”

  2. 在注册表中找到并单击以下子项:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL

  3. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。

  4. 键入 SendExtraRecord 作为 DWORD 值的名称,然后按 Enter。

  5. 右键单击“发送”“ExtraRecord”,然后单击“ 修改”。

  6. “值数据 ”框中,键入 2 以禁用 schannel 中的拆分记录,然后单击“ 确定”。

  7. 退出注册表编辑器。

此注册表项可以有三个值,每个值提供不同的操作模式:

正则键值 说明
0 默认情况下,schannel 包含在“Optin Mode”中。这意味着,此安全更新适用于向 schannel 发送安全标志的所有调用方。 安全包不会创建“SendExtraRecord”schannel 注册表项。 因此,没有 schannel 注册表项意味着系统正在运行此模式。 如果有人创建此注册表项并将值设置为 0,schannel 将再次在此模式下运行。

此设置与根本不创建此注册表项具有相同的效果。 在会话初始化期间向 schannel 发送安全标志的应用程序将仅执行固定的安全代码路径。 对于其他应用程序,通道行为不会发生更改。

此安全更新还修复了 Web 浏览所涉及的应用程序层,方法是使用 Internet Explorer 发送安全标志,以帮助保护浏览器使用方案。

注意 在 Windows Server 2003 中,必须安装安全更新2638806来帮助保护使用 WinHTTP API 的 HTTP 客户端应用程序。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2638806 MS12-006:Windows Server 2003 和 Windows XP Professional x64 Edition 中的 Winhttp 安全更新说明:2012 年 1 月 10 日
1 将值设置为 1 表示“已为所有启用”。这意味着调用方不必发送标志,通道将拆分所有 SSL 记录。 设置此值后,应用程序无需进行任何更改。 非常关注系统安全性的客户可以通过启用此注册表项来帮助提高系统的安全性。
2 将值设置为 2 表示“已全部禁用”。这意味着通道不会拆分应用程序进行的任何加密调用的记录。 此模式不支持应用程序发送的安全标志。

根据内部测试,我们发现你无法将注册表值设置为 1,因为它可能会中断企业中的太多方案。 因此,我们不建议用户使用它。

启用 SendExtraRecord 注册表项的已知问题

  • 将 SendExtraRecord 注册表值设置为 1 会在每次调用中强制实施记录拆分,以加密 schannel 中的数据。 无论调用方在会话初始化期间是否发送了 Secure 标志,都会发生这种情况。
  • 许多使用通道的应用程序都是写入的,以便接收方假定应用程序数据将打包到单个数据包中。 即使应用程序调用 schannel 进行解密,也会发生这种情况。 应用程序忽略由 schannel 设置的标志。 标志向应用程序指示接收方需要解密和选取更多数据。 此方法不遵循 MSDN 规定的使用 schannel 的方法。 由于安全更新强制实施记录拆分,因此会中断此类应用程序。
  • 损坏的应用程序包括Microsoft产品和内置组件。 下面是当 SendExtraRecord 注册表值设置为 1 时可能会中断的方案示例:
    • 所有 SQL 产品和构建在 SQL 上的应用程序。
    • ) 启用网络级别身份验证 (NLA 的终端服务器。 默认情况下,NLA 在 Windows Vista 和更高版本的 Windows 中处于启用状态。
    • 某些路由远程访问服务 (RRAS) 方案。

将 SendExtraRecord 注册表值设置为 1 将强制使用 Windows TLS/SSL 的所有应用程序进行安全记录拆分。 但是,此设置可能会有应用程序兼容性问题。 因此,建议客户配置 TLS 1.1 和 TLS 1.2,而不是使用此注册表设置。 TLS 1.1 和 TLS 1.2 不容易受到此问题影响。

如果用户打算使用此注册表设置,我们建议他们在实现应用程序兼容性测试之前对其进行广泛测试。 已知受此设置影响的一些常见产品包括Microsoft SQL 产品、Windows 终端 Server 和 Windows 远程访问服务器。

常见问题解答

问:Microsoft可以做些什么来帮助我修复服务器端应用程序?
答:确保应用程序可以处理 SSL/TLS 应用程序记录的碎片,如以下 RFC 中所述: