Windows 10 x64 无法安装签名的设备驱动程序,尽管报告一切正常

Windows 10 x64 无法安装签名的设备驱动程序,尽管报告一切正常

我目前正在为 Windows 10 设备驱动程序签名而苦恼,我的公司已经为 Windows 10 x86 和 x64 开发了一些驱动程序,我尝试使用 SHA1 证书对其进行签名。我知道 SHA1 不是最好的选择,但就我所了解的 Microsoft 技术文档而言,它应该仍然有效。

实际问题是,驱动程序安装正确,即使我使用 signtool 的验证选项检查它们,它们似乎也没有问题。Windows 10 在安装 INF 文件时也表示它们安装正常。我已经对驱动程序包中的所有可签名文件进行了签名,包括 CAT 文件、DLL、SYS 文件等。

驱动程序实际上无法工作的地方是在 Windows 10 设备管理器中,在那里,我看到一个感叹号图标,以及以下描述:

“代码 52 - Windows 无法验证数字签名...”

我使用的工作流程完全相同,当然还包含其他实际数据,但其余部分是相同的。

"C:\Program Files (x86)\Windows Kits\10\bin\x86\stampinf.exe" -f "P:\MyDriver\mydriver.inf" -d 08/11/2017 -v 1.0.0.1

"C:\Program Files (x86)\Windows Kits\10\bin\x86\Inf2Cat.exe" /driver:"P:\MyDriver" /os:10_X86,10_X64,7_X86,7_X64,8_X86,8_X64,XP_X86,XP_X64

"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /f 
"C:\Users\me\Documents\MyCert\MyCert.pfx" /p myVerySecretPassw0rd /d "My Drivers" /du "http://www.myveryverycompaniesurl.com" /t "http://timestamp.verisign.com/scripts/timestamp.dll" /v /ph "P:\MyDrivers\*.*"

这是“signtool verify”对通过这种方式创建的驱动程序文件的报告:

Verifying: P:\MyDrivers\OneOfMyDLLs.dll

Signature Index: 0 (Primary Signature)
Hash of file (sha1): *************************************************

Signing Certificate Chain:
Issued to: COMODO RSA Certification Authority

Issued by: COMODO RSA Certification Authority

Expires:   Tue Jan 19 01:59:59 2038

SHA1 hash: *************************************************


    Issued to: COMODO RSA Code Signing CA

    Issued by: COMODO RSA Certification Authority

    Expires:   Tue May 09 01:59:59 2028

    SHA1 hash: *************************************************


        Issued to: My Company

        Issued by: COMODO RSA Code Signing CA

        Expires:   Tue Sep 18 01:59:59 2018

        SHA1 hash: *************************************************

所以对我来说,一切看起来都很好,直到设备管理器出现问题,其中一个签名存在一些问题,或者通常是文件的签名方式存在问题,但它实际上并没有提示我出了什么问题。编辑:如果微软认为 SHA-1 不够充分,为什么没有错误消息说明这一事实?

答案1

我知道 SHA1 不是最好的选择,但据我了解微软的技术文档,它仍然有效。

问题是 Windows 10 的当前版本不信任 SHA1 代码签名证书。如果您愿意,可以通过为证书添加整个证书链来覆盖此行为。

根据重要变更公告 - SHA-1 弃用直接从 Comodo,Windows 在 2016 年 1 月停止信任 SHA1 代码签名证书。

2016 年 1 月 1 日 - 包括 Internet Explorer 和 Chrome 在内的 Microsoft 产品将不再信任 SHA-1 代码签名证书

微软于 2017 年 5 月声明:

今天,我们打算采取更多措施警告消费者下载使用 SHA-1 证书签名的软件的风险。我们的目标是开发一种通用的操作系统级体验,所有应用程序都可以使用它来警告用户有关 SHA-1 等弱加密技术。长期来看,微软打算在所有 Windows 环境中不信任 SHA-1。微软正在密切关注有关 SHA-1 攻击可行性的最新研究,并将利用此来确定完整的弃用时间表。

Windows 强制实施 SHA1 证书

中的一个答案Windows 上弃用 SHA1 代码签名证书提供了下表。回答所讨论的对于使用 SHA1 证书有一些安全缓解措施。

在此处输入图片描述

相关内容