针对 Windows 和 WSUS 的 2019 SHA-2 代码签名支持要求

应用对象
Windows 7 Service Pack 1 Windows Server 2008 R2 Service Pack 1 Windows Server 2008 Service Pack 2 Windows 10, version 1607, all editions Windows 10, version 1703, all editions Windows 10, version 1709, all editions Windows 10, version 1803, all editions Windows 10, version 1809, all editions Windows 10 Windows Server 2012 Standard Windows Server 2012 R2 Windows 8.1 Windows Server 2019, all editions Windows Server Update Services 3.0 Service Pack 2

摘要

为了帮助保护 Windows 操作系统的安全性,以前对更新进行了签名(同时使用 SHA-1 和 SHA-2 哈希算法)。 签名用于验证更新是否直接来自 Microsoft,并且在传递过程中未被篡改。 由于 SHA-1 算法中的缺陷,同时也为了符合行业标准,我们将 Windows 更新的签名更改为只使用更安全的 SHA-2 算法。 此更改从 2019 年 4 月到 2019 年 9 月分阶段完成,以便顺利迁移(有关更改的更多详细信息,请参阅“产品更新计划”部分)。

运行旧操作系统版本(Windows 7 SP1、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2)的客户将需要在其设备上安装 SHA-2 代码签名支持以便安装在 2019 年 7 月及以后发布的更新。 从 2019 年 7 月开始,任何没有安装 SHA-2 支持的设备都不能再安装 Windows 更新。 为了帮助您做好准备,我们从 2019 年 3 月开始发布了对 SHA-2 签署的支持,并进行了逐步改进。 Windows Server Update Services (WSUS) 3.0 SP2 将接收 SHA-2 支持以正确地提供 SHA-2 签名的更新。 有关仅 SHA-2 的迁移时间表,请参阅“产品更新计划”部分。

详细背景信息

安全哈希算法1 (SHA-1) 是一种不可逆的哈希函数,在代码签名中得到了广泛的应用。 遗憾的是,由于算法中存在的漏洞、处理器性能的提高以及云计算的出现,SHA-1 哈希算法的安全性随着时间的推移变得越来越不安全了。 安全哈希算法 2 (SHA-2) 等更强大的替代方案现在非常受欢迎,因为它们不具有相同的问题。 有关替代 SHA-1 的更多信息 , 请参阅哈希和签名算法

产品更新计划

从 2019 年初开始迁移至 SHA-2 的过程 支持分阶段进行,并且支持将以独立更新的形式提供。 Microsoft 针对以下计划提供 SHA-2 支持。 请注意,下面的时间线可能会被更改。 我们将根据需要更新此页。

目标日期 事件 应用于
2019 年 3 月 12 日 发布独立安全更新 KB4474419KB4490628 以引进 SHA-2 代码签名支持。 Windows 7 SP1
Windows Server 2008 R2 SP1
2019 年 3 月 12 日 支持交付 SHA-2 签名更新的 WSUS 3.0 SP2 Windows 更新 目录上提供了独立更新KB4484071。 对于使用 WSUS 3.0 SP2 的客户,应在 2019 年 6 月 18 日以前手动安装此更新。 WSUS 3.0 SP2
2019 年 4 月 9 日 独立更新 KB4493730 引入了对服务堆栈 (SSU) 的 SHA-2 代码签名支持,并作为安全更新发布。 Windows Server 2008 SP2
2019 年 5 月 14 日 发布了独立安全更新 KB4474419 以引进 SHA-2 代码签名支持。 Windows Server 2008 SP2
2019 年 6 月 11 日 独立 安全更新 KB4474419 重新发布,以添加缺少的 MSI SHA-2 代码签名支持。 Windows Server 2008 SP2
2019 年 6 月 18 日 Windows 10 更新签名已从双重签名 (SHA-1/SHA-2) 更改为仅 SHA-2。 无需客户操作。 Windows 10,版本 1709
Windows 10,版本 1803
Windows 10,版本 1809
Windows Server 2019
2019 年 6 月 18 日 必填: 对于使用 WSUS 3.0 SP2 的客户,必须在此日期前手动安装 KB4484071 才能支持 SHA-2 更新。 WSUS 3.0 SP2
2019 年 7 月 9 日 必需:对于旧 Windows 版本,汇报需要安装 SHA-2 代码签名支持。 将需要在 4 月和 5 月发布的支持 (KB4493730KB4474419) 以便继续接收这些 Windows 版本的更新。
仅在此时,所有旧版的 Windows 更新签名已从 SHA1 和双重签名 (SHA-1/SHA-2) 更改为 SHA-2。
Windows Server 2008 SP2
2019 年 7 月 16 日 Windows 10 更新签名已从双重签名 (SHA-1/SHA-2) 更改为仅 SHA-2。 无需客户操作。 Windows 10 版本 1507
Windows 10 版本 1607
Windows Server 2016
Windows 10 版本 1703
2019 年 8 月 13 日 必需:对于旧 Windows 版本,汇报需要安装 SHA-2 代码签名支持。 需要三月份发布的支持(KB4474419KB4490628)才能继续接收这些 Windows 版本的更新。 如果您有使用 EFI 启动的设备或 VM,请参阅常见问题解答部分,了解有关防止设备无法启动的问题的其他步骤。
所有旧版 Windows 更新签名从此时起已从 SHA-1 和双重签名 (SHA-1/SHA-2) 更改为仅 SHA-2。
Windows 7 SP1
Windows Server 2008 R2 SP1
2019 年 9 月 10 日 旧版 Windows 更新签名从双重签名 (SHA-1/SHA-2) 更改为仅 SHA-2。 无需客户操作。 Windows Server 2012
Windows 8.1
Windows Server 2012 R2
2019 年 9 月 10 日 独立安全更新 KB4474419 已重新发布,以添加缺少的 EFI 引导管理器。 请确保已安装了此版本。 Windows 7 SP1
Windows Server 2008 R2 SP1
Windows Server 2008 SP2
2020 年 1 月 28 日 Microsoft 可信根计划的证书信任列表 (CTL) 上的签名从双签名 (SHA-1/SHA-2) 更改为仅 SHA-2。 无需客户操作。 所有受支持的 Windows 平台
2020 年 8 月 基于 Windows 更新 SHA-1 的服务终结点已停止。 这仅影响未使用相应安全更新进行更新的较旧 Windows 设备。 有关更多信息,请参阅 KB4569557 Windows 7
Windows 7 SP1
Windows Server 2008
Windows Server 2008 SP2
Windows Server 2008 R2
Windows Server 2008 R2 SP1
2020 年 8 月 3 日 从Microsoft下载中心Microsoft Windows 签名的安全哈希算法 1 (SHA-1) 的已停用内容。 有关详细信息,请参阅将于 2020 年 8 月 3 日停用的 Windows IT 专业人员博客 SHA-1 Windows 内容 Windows Server 2000
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
Windows 8
Windows Server 2012
Windows 8.1
Windows Server 2012 R2
Windows 10
Windows 10服务器

当前状态

Windows 7 SP1 和 Windows Server 2008 R2 SP1

在安装 2019 年 8 月 13 日或之后发布的任何更新之前,必须安装以下必需的更新,然后重新启动设备。 所需的更新可以按任意顺序安装,并且不需要被重新安装,除非有所需更新的新版本。

  • 服务堆栈更新 (SSU) (KB4490628)。 如果您使用的是 Windows 更新,则将自动为您提供所需的 SSU。
  • SHA-2 更新 (KB4474419) 已于 2019 年 9 月 10 日发布。 如果您使用的是 Windows 更新,则将自动为您提供所需的 SHA-2 更新。

重要 在安装任何每月汇总更新、仅限安全的更新、每月汇总预览版或独立更新之前,必须重启设备。

Windows Server 2008 SP2

在安装 2019 年 9 月 10 日或之后发布的任何汇总之前,必须安装以下更新,然后重新启动设备。 所需的更新可以按任意顺序安装,并且不需要被重新安装,除非有所需更新的新版本。

  • 服务堆栈更新 (SSU) (KB4493730)。 如果您使用的是 Windows 更新,则将自动为您提供所需的 SSU 更新。
  • 2019 年 9 月 10 日发布了最新 SHA-2 更新 (KB4474419)。 如果您使用的是 Windows 更新,则将自动为您提供所需的 SHA-2 更新。

重要 在安装任何每月汇总更新、仅限安全的更新、每月汇总预览版或独立更新之前,必须重启设备。

常见问题解答

一般信息、规划和问题预防

1. KB3033929和KB4039648更新与 3 月和 4 月发布的独立更新有何不同?

SHA-2 代码签名支持是更早提供的,以确保大多数客户在 Microsoft 更改为 SHA-2 签名以更新这些系统之前都能获得支持。 独立更新包括一些额外的修复程序,并且可用于确保所有的 SHA-2 更新都包含在少量易于识别的更新中。 Microsoft 建议维护这些操作系统的系统映像的客户将这些更新应用于映像。

2. 其他版本的 WSUS 是否会添加 SHA-2 支持?

从 Windows Server 2012 上的 WSUS 4.0 开始,WSUS 已支持 SHA-2 签名更新,并且这些版本不需要客户操作。

只有 WSUS 3.0 SP2 需要 安装KB4484071 ,以支持仅 SHA2 签名的更新。

3. 我有一个 Windows Server 2008 SP2 系统,该系统使用 Windows Server 2008 R2 (或 Windows 7) 进行双启动。应如何更新到 SHA-2 支持?

假设您运行 Windows Server 2008 SP2。 如果使用 Windows Server 2008 R2 SP1/Windows 7 SP1 进行双启动,则此类系统的启动管理器来自于 Windows Server 2008 R2/Windows 7 系统。 为了成功更新这两个系统以使用 SHA-2 支持,您必须首先更新 Windows Server 2008 R2/Windows 7 系统,以便使启动管理器更新到支持 SHA-2 的版本。 然后,使用 SHA-2 支持更新 Windows Server 2008 SP2 系统。

4. 我的系统具有两个分区,一个具有 Windows Server 2008 SP2,另一个具有 Windows 7 PE (WinPE) 启动环境。如何实现更新到 SHA-2 支持?

与双启动方案类似,Windows 7 PE 环境必须更新为 SHA-2 支持。 然后,Windows Server 2008 SP2 系统必须更新为 SHA-2 支持。

5. 我正在使用安装程序执行 Windows 7 SP1 或 Windows Server 2008 R2 SP1 的全新安装。我使用的是已使用更新 (自定义的映像,例如使用 dism.exe) 。如何实现更新到 SHA-2 支持?
  1. 运行 Windows 安装程序以完成并在安装 2019 年 8 月 13 日或更高版本的更新之前启动 Windows
  2. 打开管理员命令提示符窗口,运行 bcdboot.exe。 这将从 Windows 目录复制启动文件并设置启动环境。 有关详细信息,请参阅 BCDBoot 命令行选项
  3. 在安装任何其他更新之前,请安装 2019 年 8 月 13 日针对 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的 KB4474419 和KB4490628的重新安装。
  4. 重新启动此操作系统。 需要重新启动
  5. 安装任何剩余的更新。

6. 我将 Windows 7 SP1 或 Windows Server 2008 R2 SP1 的映像直接安装到磁盘,而无需运行安装程序。如何实现使此方案正常工作?
  1. 在磁盘上安装映像并启动 Windows。
  2. 在命令提示符处,运行 bcdboot.exe。 这将从 Windows 目录复制启动文件并设置启动环境。 有关详细信息,请参阅 BCDBoot 命令行选项
  3. 安装任何其他更新之前,请安装适用于 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的 KB4474419KB4490628 2019 年 9 月 23 日重新安装。
  4. 重新启动此操作系统。 需要重新启动
  5. 安装任何剩余的更新。
7. Windows 7 SP1 和 Windows Server 2008 R2 SP1 上的此 SHA-2 更新是否支持使用 EFI 启动的 x64 设备或 VM?

是的,在继续操作之前,需要安装所需的更新:SSU (KB4490628) 和 SHA-2 更新 (KB4474419) 。  此外,您需要在安装所需的更新后重新启动设备,然后再安装任何其他更新。

8. Windows 10版本 1903 未在上表中列出,它是否支持 SHA-2 更新?是否需要执行任何操作?

自从 SHA-2 发行后,Windows 10 1903 版本就支持 SHA-2,所有更新都已经过 SHA-2 签名。  对于此版本的 Windows 不需要任何操作。

9. 我正在使用 dism.exe /online 安装运行) 系统的联机 (更新。如何实现使此方案正常工作?

Windows 7 SP1 和 Windows Server 2008 R2 SP1

  1. 在安装任何 2019 年 8 月 13 日或更高版本的更新之前,启动进入 Windows 系统。
  2. 安装任何其他更新之前,请安装适用于 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的 KB4474419KB4490628 2019 年 9 月 23 日重新安装。
  3. 重新启动此操作系统。 需要重新启动
  4. 安装任何剩余的更新。

Windows Server 2008 SP2

  1. 在安装任何 2019 年 7 月 9 日或更高版本的更新之前,启动进入 Windows 系统。
  2. 安装任何其他更新之前,请为 Windows Server 2008 SP2 安装 2019 年 9 月 23 日重新发布的 KB4474419 和KB4493730
  3. 重新启动此操作系统。 需要重新启动
  4. 安装任何剩余的更新。

问题恢复

1. 我的 x86 或 x64 设备或虚拟机 (VM) 未启动,0xc0000428 (STATUS_INVALID_IMAGE_HASH) 或在安装 2019 年 8 月 13 日或更高版本发布的更新后重启时,我的设备启动进入恢复环境时收到错误。我已安装 KB4474419 和 KB4490628,以包含 SHA-2 支持。如何实现恢复我的安装?

如果您看到错误 0xc0000428,并显示消息“Windows 无法验证此文件的数字签名。 最近的硬件或软件更改可能安装了未正确签名或损坏的文件,或者可能是来自未知来源的恶意软件。” 请按照以下步骤进行恢复。

  1. 使用恢复介质启动操作系统。
  2. 安装任何其他更新之前,请使用适用于 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的部署映像服务和管理 (DISM) ,安装日期为 2019 年 9 月 23 日或更高版本的更新KB4474419。
  3. 在命令提示符处,运行 bcdboot.exe。 这将从 Windows 目录复制启动文件并设置启动环境。 有关详细信息,请参阅 BCDBoot 命令行选项
  4. 重新启动此操作系统。
2. 我已将汇总更新部署到环境中) 的所有设备或虚拟机 (VM,重启时,我收到错误0xc0000428 (STATUS\_INVALID\_IMAGE\_HASH) 或设备启动到恢复环境中。在剩余设备或尚未重启的 VM 上应执行什么操作?
  1. 停止其他设备的部署,不要重新启动尚未重新启动的任何设备或 VM。
  2. 使用 2019 年 8 月 13 日或之后发布的更新,确定处于重新启动挂起状态的设备和 VM,并打开一个命令提示符
  3. 使用以下命令查找要删除的更新的包标识,并使用该更新的 KB 号 (将 4512506 替换为要面向的 KB 编号(如果不是 2019 年 8 月 13 日发布的月度汇总) : dism /online /get-packages | findstr 4512506
  4. 使用以下命令删除更新,将 <包标识> 替换为在上一命令中找到的内容: Dism.exe /online /remove-package /packagename:<package identity>
  5. 您现在需要安装您试图安装的更新的如何获取此更新的部分中列出的所需更新,或者安装本文的当前状态的部分中列出的所需更新。

注意 当前收到错误0xc0000428或正在开始进入恢复环境的任何设备或 VM,都需要按照错误0xc0000428常见问题解答中的步骤进行操作。

3. 如果尝试在 Windows 7 SP1、Windows Server 2008 R2 SP1 或 80092004 (CRYPT_E_NOT_FOUND) Windows Server 2008 SP2 上安装更新时收到错误代码80096010或错误代码“Windows 更新遇到未知错误”,该怎么办?

如果遇到这些错误,则需要安装您试图安装的更新的如何获取此更新的部分中列出的所需更新,或安装本文的当前状态部分中列出的上述所需更新。

4. 我的 Intel Itanium IA64 设备未启动,我收到错误0xc0000428 (STATUS\_INVALID\_IMAGE\_HASH) ,但我安装了KB4474419和KB4490628。如何实现恢复我的安装?

如果您看到错误 0xc0000428,并显示消息“Windows 无法验证此文件的数字签名。 最近的硬件或软件更改可能安装了未正确签名或损坏的文件,或者可能是来自未知来源的恶意软件。” 请按照以下步骤进行恢复。

  1. 使用恢复介质启动操作系统。
  2. 安装最新的发布于 2019 年 8 月 13 日或之后的 SHA-2 更新 (KB4474419),使用适用于 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的部署映像服务和管理 (DISM) 。
  3. 重新启动到恢复介质。  需要重新启动
  4. 在命令提示符处,运行 bcdboot.exe。 这将从 Windows 目录复制启动文件并设置启动环境。 有关详细信息,请参阅 BCDBoot 命令行选项
  5. 重新启动此操作系统。
5. 安装 2019 年 9 月 10 日发布的 SHA-2 更新 (KB4474419) Windows Server 2008 SP2 后,无法通过双击 .msu 文件手动安装更新并收到错误“安装程序遇到错误:0x80073afc。资源加载程序找不到 MUI 文件。”

如果遇到此问题,可以通过打开命令提示符窗口并运行以下命令来安装更新, (将 msu 位置>占位符替换为<更新) 的实际位置和文件名来缓解此问题:

<wusa.exe msu 位置>/安静

此问题已在 2019 年 10 月 8 日发布的 KB4474419 中得以解决。 此更新将从 Windows 更新和 Windows Server Update Services (WSUS) 自动安装。 若需手动安装此更新,则使用上述解决方法。

注意 如果以前安装 KB4474419 2019 年 9 月 23 日发布,则你已有此更新的最新版本,无需重新安装。