admin 管理员组

文章数量: 887021

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

适用于: Windows 7 Service Pack 1Windows Server 2008 R2 Service Pack 1Windows Server 2008 Service Pack 2 详细


摘要


为了保护您的安全,Windows 操作系统更新使用 SHA-1 和 SHA-2 哈希算法进行双重签名,以验证更新是否直接来自 Microsoft,并且在交付期间未被篡改。 由于SHA-1算法中的缺陷,同时也为了符合行业标准,Microsoft 将仅使用更安全的 SHA-2 算法来签名 Windows 更新。

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

详细背景信息


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

产品更新计划


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

目标日期

事件

适用于:

2019 年 3 月 12 日

发布独立安全更新 KB4474419 和 KB4490628 以引进 SHA-2 代码签名支持。

 

Windows 7 SP1,
Windows Server 2008 R2 SP1

2019 年 3 月 12 日

独立更新 KB4484071 在支持提供 SHA-2 签名更新的 WSUS 3.0 SP2 的 Windows Update 目录中提供。 对于使用 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 代码签名支持。 在四月和五月发布的支持(KB4493730 and KB4474419) 是必须的,以便继续接收这些版本的 Windows 更新 。

仅在此时,旧版 Windows 更新签名已从双重签名 (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 代码签名支持。 需要三月份发布的支持 (KB4474419 and KB4490628) 才能继续接收这些版本的 Windows 更新 。 如果您有使用 EFI 启动的设备或 VM,请参阅常见问题解答部分,了解有关防止设备无法启动的问题的其他步骤。

仅在此时,旧版 Windows 更新签名已从双重签名 (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

当前状态


Windows 7 SP1 和 Windows Server 2008 R2 SP1

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

  1. 最新的服务堆栈更新 (SSU) (KB4490628)。 如果您使用的是 Windows 更新,则将自动为您提供最新的 SSU。 
  2. 最新的 SHA-2 更新 (KB4474419) 于 2019 年 8 月 13 日发布。  如果您使用的是 Windows 的更新,则将自动为您提供最新的 SHA-2 更新。
  3. 如果您在设备或虚拟机 (VM) 上使用 EFI Boot,则必须安装 KB3133977。 目前,在使用 EFI Boot 时,需要 KB3133977 作为已知问题的解决方法,即使您没有使用 BitLocker,也要应用 KB3133977。 有关此问题的更多信息,请参阅下面的常见问题解答。

重要提示 在安装所有必需的更新后,且在安装任何每月汇总、安全更新或每月汇总预览之前,必须重新启动设备。

Windows Server 2008 SP2

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

  1. 最新的服务堆栈更新 (SSU) (KB4493730)。 如果您使用的是 Windows 更新,则将自动为您提供最新的 SSU。 
  2. 最新的 SHA-2 更新 (KB4474419) 于 2019 年 6 月 11 日发布。  如果您使用的是 Windows 更新,则将自动为您提供最新的 SHA-2 更新。

重要提示 在安装所有必需的更新之后,且在安装任何每月汇总、仅安全更新或每月汇总预览之前,必须重新启动设备。

常见问题解答


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

1. KB3033929 和 KB4039648 更新与在三月和四月发布的独立更新有什么不同?

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. 在安装任何其他更新之前,请安装适用于 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的 KB4474419、KB4490628 和 KB3133977 的 2019 年 8 月 13 日重新发布版本。
  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 的 KB4474419、KB4490628 和 KB3133977 的 2019 年 8 月 13 日的重新发布版本 。
  4. 重新启动此操作系统。 需要重新启动
  5. 安装任何剩余的更新。

注意 目前,在使用 EFI Boot 时,需要 KB3133977 作为已知问题的解决方法,即使您没有使用 BitLocker,也要应用 KB3133977。 

7. Windows 7 SP1 和 Windows Server 2008 R2 SP1 上的此 SHA-2 更新是否支持使用 EFI Boot 的 x64 设备或 VM?

是的,但您需要先安装所需的更新,然后再继续: SSU (KB4490628)、 SHA-2 更新 (KB4474419) 和 KB3133977。  此外,您需要在安装所需的更新后重新启动设备,然后再安装任何其他更新。  目前,需要 KB3133977 作为已知问题的解决方法,该问题可能会阻止您的 EFI 启动设备或虚拟机 (VM) 的启动,所以即使您没有使用 BitLocker,也要应用 KB3133977。

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

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

问题恢复

1. 我的 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) 安装 KB3133977。
  3. 重新启动到恢复介质。 需要重新启动
  4. 在命令提示符处,运行 bcdboot.exe。 这将从 Windows 目录复制启动文件并设置启动环境。 有关详细信息,请参阅 BCDBoot 命令行选项。
  5. 重新启动此操作系统。 

注意 目前,在 x64 上使用 EFI Boot 时,需要 KB3133977 作为已知问题的解决方法,即使您没有使用 BitLocker,也要应用 KB3133977。 

2. 我已经将汇总更新部署到环境中的所有设备或虚拟机 (VM),重新启动后,我收到错误 0xc0000428 (STATUS_INVALID_IMAGE_HASH),或者我的设备进入恢复环境。  在尚未重新启动的剩余设备或 VM 上应该怎么做?

  1. 停止其他设备的部署,不要重新启动尚未重新启动的任何设备或 VM。
  2. 使用 2019 年 8 月 13 日或之后发布的更新,确定处于重新启动挂起状态的设备和 VM,并打开一个命令提示符

  3. 使用以下命令通过该更新的 KB 编号查找要删除的更新的程序包标识(如果不是 2019 年 8 月 13 日发布的每月汇总,请将 4512506 替换为您的目标 KB 编号): dism /online /get-packages | findstr 4512506

  4. 使用以下命令来删除更新, 用上一个命令中找到的内容替换 <package identity>: Dism.exe /online /remove-package /packagename:<package identity> 

  5.  您现在需要安装您试图安装的更新的如何获取此更新的部分中列出的所需更新,或者安装本文的当前状态的部分中列出的所需更新。

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

3. 如果在 Windows 7 SP1、Windows Server 2008 R2 SP1, 或 Windows Server 2008 SP2 上试图安装更新时收到错误代码 80096010 或错误代码 80092004 (CRYPT_E_NOT_FOUND), “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. 重新启动此操作系统。

本文标签: 代码 WSUS Windows SHA