使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

查看本文适用的产品。

概要

Microsoft .NET Framework 的此安全更新修复了 .NET Framework(和 .NET Core)组件未完全验证证书时的安全功能绕过漏洞。 若要了解有关此漏洞的更多信息,请参阅 Microsoft 常见漏洞和披露 CVE-2017-0248

此更新还包含 Windows Presentation Framework PackageDigitalSignatureManager 组件使用 SHA256 哈希算法签署程序包的能力的安全增强修补程序。

重要说明

  • 如果在安装此更新后安装语言包,则必须重新安装此更新。 因此,我们建议你先安装所需的全部语言包,然后再安装此更新。 有关更多信息,请参阅添加语言包至 Windows

有关此安全更新程序的其他信息

使用注册表编辑器或其他方法修改注册表不当可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 不能保证可解决这些问题。 请自行承担修改注册表的风险。

  • 增强型密钥使用 (EKU) 在 RFC 5280 的第 4.2.1.12 节中进行了描述: 除了或替代在密钥使用扩展中表明的基本目的之外,此扩展表明可以使用认证公钥的一个或多个目的。 例如,用于客户端到服务器的身份验证的证书必须配置为“客户端身份验证”。 同样,用于服务器的身份验证的证书必须配置为“服务器身份验证”。

    当证书用于身份验证时,验证器检查客户端证书,并在应用程序策略扩展中查找正确的目的对象标识符。 例如,客户端身份验证的对象标识符为 1.3.6.1.5.5.7.3.2。 当证书用于客户端身份验证时,此对象标识符必须存在于证书的 EKU 扩展中,否则身份验证会失败。 没有 EKU 扩展的证书将继续正确地进行身份验证。

    如果暂时无法访问正确地重新颁发的证书,可以选择加入或退出跨所有计算机操作的安全更改,以避免任何连接效果。 为此,根据应用程序的目标 .NET Framework 版本,指定以下注册表项设置。

    方法 1: 更新注册表项(适用于所有版本)

    注意 此注册表项必须为 DWORD 项。

    • 对于 32 位系统上的 32 位进程和 64 位系统上的 64 位进程:

      HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v4.0.30319@RequireCertificateEKUs=0

    • 对于 64 位系统上的 32 位进程:

      HKEY_LOCAL_MACHINE \Software\Wow6432Node\Microsoft\.NETFramework\v4.0.30319@RequireCertificateEKUs=0

    你还可以根据每个应用程序选择退出。 以下选项可用于禁用此更改,以确保维护应用程序兼容性。

    方法 2: 对各个应用程序禁用策略

    注意 此注册表项必须为 DWORD 项。 唯一的有效值为 0。 忽略其他任何值。

    • 对于 32 位系统上的 32 位进程和 64 位系统上的 64 位进程:

      HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v4.0.30319@System.Net.ServicePointManager.RequireCertificateEKUs
      S:\Prj\console_pg\console_pg45\bin\Release\console_pg45.exe=0
      C:\MyApp\MyApp.exe=0

    • 对于 64 位系统上的 32 位进程:

      HKEY_LOCAL_MACHINE \Software\Wow6432Node\Microsoft\.NETFramework\v4.0.30319@System.Net.ServicePointManager.RequireCertificateEKUs
      S:\Prj\console_pg\console_pg45\bin\Release\console_pg45.exe=0
      C:\MyApp\MyApp.exe=0

    方法 3: 使用配置 API(适用于 .NET Framework 4.6 及更高版本)

    从 .NET Framework 4.6 开始,你可以通过代码、应用程序配置或注册表更改来更改应用程序级别的配置。

    在 .NET Framework 4.6 中配置开关

    注意 以下示例可禁用安全功能。

    • 通过编程方式

      应用程序应首先运行以下代码。 这是因为服务点管理器只初始化一次。
        private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontCheckCertificateEKUsName= @"Switch.System.Net.DontCheckCertificateEKUs"; AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontCheckCertificateEKUsName, true);

    • 应用程序配置

      若要更改应用程序配置,请添加以下条目:
        <runtime> <AppContextSwitchOverrides value="Switch.System.Net.DontCheckCertificateEKUsName=true"/> </runtime>

    • 注册表项(全局计算机):

      注册表位置: HKEY_LOCAL_MACHINE\Software\[Wow6432Node\]Microsoft\.NETFramework\AppContext\Switch.System.Net.DontCheckCertificateEKUsName

      类型:字符串
      值: “true”

    注意 默认情况下,对于在 .NET Framework 4.6 及更高版本上运行的所有 .NET Framework 4.x 应用程序,Switch.System.Net.DontCheckCertificateEKUsName = True

  • 如需了解与 Windows 7 Service Pack 1 和 Windows Server 2008 R2 Service Pack 1 安全更新相关的更多信息,请参阅 Microsoft 知识库中的下列文章:

    4019108 适用于 Windows 7 Service Pack 1 和 Windows Server 2008 R2 Service Pack 1 的 .NET Framework 3.5.1、4.5.2、4.6、4.6.1 和 4.6.2 仅安全更新: 2017 年 5 月 9 日

    如需了解与 Windows Server 2008 Service Pack 2 安全更新相关的更多信息,请参阅 Microsoft 知识库中的下列文章:

    4019109 适用于 Windows Server 2008 Service Pack 2 的 .NET Framework 2.0 Service Pack 2、4.5.2 和 4.6 仅安全更新: 2017 年 5 月 9 日

如何获取并安装更新

方法 1: Microsoft 更新目录

若要获取此更新的独立程序包,请访问 Microsoft 更新目录。

  • 对于 Windows Server 2008,单击此处

  • 对于 Windows 7 或 Windows Server 2008 R2,单击此处

方法 2: Windows Server Update Services(WSUS)

请在 DFS 服务器上按照以下步骤操作:

  1. 依次点击开始管理工具以及Microsoft Windows Server Update Services 3.0

  2. 展开计算机名,然后点击动作

  3. 点击导入更新

  4. WSUS 将打开一个浏览器窗口,其中可能会提示您安装 ActiveX 控件。 必须安装 ActiveX 控件才能继续。

  5. 安装该控件后,你将看到“Microsoft 更新目录”屏幕。根据你的 Windows 版本,在“搜索”框中输入以下值之一,然后单击“搜索”。

    • 对于 Windows Server 2008,输入 4019109

    • 对于 Windows 7 或 Windows Server 2008 R2,输入 4019108

  6. 定位与当前环境下操作系统、语言和处理器匹配的 .NET Framework 程序包。 点击添加将其添加至集合。

  7. 选中所有需要的程序包之后,请点击查看选择项

  8. 然后点击导入,将程序包导入至 WSUS 服务器。

  9. 只要程序包已导入并返回至 WSUS,即可点击关闭

现在,即可通过 WSUS 安装更新了。

更新部署信息

有关此安全更新的部署详细信息,请参阅 Microsoft 知识库中的以下文章:

20170509 安全更新部署信息: 2017 年 5 月 9 日

更新删除信息

注意 我们不建议你删除任何安全更新。

若要删除此更新,请使用“控制面板”中的“程序和功能”项。

更新重新启动信息

仅当正在更新的文件被锁定或正在使用时,才需要在应用此安全更新之后重启系统。

更新替换信息

此更新不会替换任何以前发布的更新。

文件信息

程序包名称

程序包哈希 SHA 1

程序包哈希 SHA 2

NDP46-KB4014591-x64.exe

9BCDEC650701D5E98AA21B47B50771817C9504DF

8088F07D8B0CEAD556AD5F9FA9CE22074E4D3641089A82D88A116C4F69681058

NDP46-KB4014591-x86.exe

C4BF652A33F988DC0494CCFB35B49465977B6B56

B77D6839D80A2D0085E061DE29F2FE1422D4DCE5679E9C85A49F7335141E95FE


此修补程序的英语(美国)版本将安装具有下表所列属性的文件。 这些文件的日期和时间使用协调世界时 (UTC) 列出。 这些文件在你本地计算机上显示的日期和时间是你的本地时间再加上当前夏令时 (DST) 偏差。 此外,如果对这些文件执行某些操作,日期和时间可能会更改。

对于所有基于 x86 的系统

文件名

文件版本

文件大小

日期

时间

PenIMC.dll

4.6.1099.0

77,976

29-Mar-2017

00:19

PresentationCore.dll

4.6.1099.0

3,491,168

29-Mar-2017

00:19

PresentationFramework.dll

4.6.1099.0

6,079,864

29-Mar-2017

00:19

PresentationHost_v0400.dll

4.6.1099.0

181,464

29-Mar-2017

00:19

PresentationHost_v0400.dll.mui

4.6.1099.0

84,720

29-Mar-2017

00:19

PresentationNative_v0400.dll

4.6.1099.0

791,264

29-Mar-2017

00:19

System.Core.dll

4.6.1099.0

1,312,928

29-Mar-2017

00:19

System.dll

4.6.1099.0

3,462,784

29-Mar-2017

00:19

System.Security.dll

4.6.1099.0

292,528

29-Mar-2017

00:19

System.Windows.Controls.Ribbon.dll

4.6.1099.0

740,248

29-Mar-2017

00:19

System.Xaml.dll

4.6.1099.0

626,848

29-Mar-2017

00:19

WindowsBase.dll

4.6.1099.0

1,256,776

29-Mar-2017

00:19

WPFFontCache_v0400.exe.mui

4.6.1099.0

19,168

29-Mar-2017

00:19

WPFFontCache_v0400.exe

4.6.1099.0

25,720

29-Mar-2017

00:19

wpfgfx_v0400.dll

4.6.1099.0

1,685,680

29-Mar-2017

00:19

VsVersion.dll

14.0.1099.0

19,104

29-Mar-2017

00:19

对于所有基于 x64 的系统

文件名

文件版本

文件大小

日期

时间

PenIMC.dll

4.6.1099.0

93,336

29-Mar-2017

00:33

PenIMC.dll

4.6.1099.0

77,976

29-Mar-2017

00:19

PresentationCore.dll

4.6.1099.0

3,468,992

29-Mar-2017

00:33

PresentationCore.dll

4.6.1099.0

3,491,168

29-Mar-2017

00:19

PresentationFramework.dll

4.6.1099.0

6,079,864

29-Mar-2017

00:19

PresentationHost_v0400.dll

4.6.1099.0

230,616

29-Mar-2017

00:33

PresentationHost_v0400.dll.mui

4.6.1099.0

84,712

29-Mar-2017

00:33

PresentationHost_v0400.dll

4.6.1099.0

181,464

29-Mar-2017

00:19

PresentationHost_v0400.dll.mui

4.6.1099.0

84,720

29-Mar-2017

00:19

PresentationNative_v0400.dll

4.6.1099.0

1,071,848

29-Mar-2017

00:33

PresentationNative_v0400.dll

4.6.1099.0

791,264

29-Mar-2017

00:19

System.Core.dll

4.6.1099.0

1,312,928

29-Mar-2017

00:19

System.dll

4.6.1099.0

3,462,784

29-Mar-2017

00:19

System.Security.dll

4.6.1099.0

292,528

29-Mar-2017

00:19

System.Windows.Controls.Ribbon.dll

4.6.1099.0

740,248

29-Mar-2017

00:19

System.Xaml.dll

4.6.1099.0

626,848

29-Mar-2017

00:19

WindowsBase.dll

4.6.1099.0

1,256,776

29-Mar-2017

00:19

WPFFontCache_v0400.exe.mui

4.6.1099.0

19,160

29-Mar-2017

02:23

WPFFontCache_v0400.exe.mui

4.6.1099.0

19,168

29-Mar-2017

00:19

WPFFontCache_v0400.exe

4.6.1099.0

26,744

29-Mar-2017

02:23

WPFFontCache_v0400.exe

4.6.1099.0

25,720

29-Mar-2017

00:19

wpfgfx_v0400.dll

4.6.1099.0

2,144,944

29-Mar-2017

00:33

wpfgfx_v0400.dll

4.6.1099.0

1,685,680

29-Mar-2017

00:19

VsVersion.dll

14.0.1099.0

19,112

29-Mar-2017

00:33

VsVersion.dll

14.0.1099.0

19,104

29-Mar-2017

00:19

 

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

适用范围

本文适用于以下对象:
 

  • Microsoft .NET Framework 4.6 和 4.6.1,与以下版本一起使用时:

    • Windows Server 2008 R2 Service Pack 1

    • Windows 7 Service Pack 1

  • Microsoft .NET Framework 4.6,与以下版本一起使用时:

    • Windows Server 2008 Service Pack 2

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×