在Windows 64位系统上,正常开启数字签名认证时,驱动程序软件需要经过微软数字签名的才允许被使用。否则在设备管理器下,安装完硬件驱动后设备上会有“黄色感叹号”标识,右键该设备属性提示:“Windows 无法验证此设备所需驱动程序数字签名。(代码52)”

当遇到在部分Windows操作系统上安装使用了经过数字签名的驱动程序,但仍提示上面的错误,则原因应和系统支持的数字签名算法有关,详细说明如下。

Tips:查看所使用的驱动程序是否包含数字签名信息。以CH341SER驱动软件为例,右键点击驱动程序包中的CAT证书文件,选择“数字签名”栏,如下则表示驱动程序包含数字签名信息。

 背景知识

签名用于验证更新是否直接来自 Microsoft,并且在交付过程中未被篡改。为了帮助保护 Windows 操作系统的安全,原先驱动程序同时使用 SHA-1 和 SHA-2 哈希算法完成签名。由于 SHA-1 算法的弱点以及为了与行业标准保持一致,Windows更改了 Windows 更新的签名以专门使用更安全的 SHA-2 算法。此更改从 2019 年 4 月到 2019 年 9 月分阶段完成,以便顺利迁移。

受限的操作系统

运行旧操作系统版本(Windows 7 SP1、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2)的客户需要在其设备上安装 SHA-2 代码签名支持才能安装 2019 年 7 月或之后发布的更新。没有 SHA-2 的支持将无法在 2019 年 7 月或之后安装 Windows 更新。为了帮助您为这一变化做好准备,我们从 2019 年 3 月开始发布了对 SHA-2 签名的支持,并进行了增量改进。 Windows Server Update Services (WSUS) 3.0 SP2 将获得 SHA-2 支持以安全地交付 SHA-2 签名更新。

Windows原文链接说明:2019 SHA-2 Code Signing Support requirement for Windows and WSUS - Microsoft Support

总结与解决方法

目前,微软已全面停用SHA-1哈希算法完成签名,在18年8月后的驱动数字签名,全部使用SHA-2(即SHA256)算法,导致部分未及时更新而不支持SHA-2哈希算法的操作系统无法正常支持已经数字签名过的驱动程序。

在如上系统,可下载并安装支持SHA-2算法的Windows安全补丁:

用于基于 x64 的系统的 Windows 7 安全更新程序 (KB3033929)
https://www.microsoft.com/zh-cn/download/details.aspx?id=46148
【注意】 由于该安全补丁针对 SP1 以上 Windows7 系统,如果系统为非SP1的 Windows7版本 ,则需要先升级为Win7 SP1(Service Pack 1)。
适用于 x64 系统的 Windows 7 Service Pack 1 (KB976932)
https://www.catalog.update.microsoft.com/Search.aspx?q=KB976932
安装好系统安全补丁的 64 Win7 系统即可安装使用使用SHA-2算法 签名的驱动程序。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐