我们开发了一个驱动程序,并用我们公司的Verisign (SHA1 + SHA256,包括证书链)对cat和sys文件进行了签名。我们在Windows 7和10下测试了32和64位版本。现在,我们有一些随机客户报告说,我们的设备在设备管理器中没有正确识别,错误52显示:
Windows无法验证此设备所需驱动程序的数字签名。最近的硬件或软件更改可能安装了签名错误或损坏的文件,也可能是来自未知来源的恶意软件。(代码52)
Setupapi.dev.log显示了这个错误:
_!设备未启动:设备有问题: 0x34 (CM_PROB_UNSIGNED_DRIVER),问题状态: 0xc0000428
但是Setupapi.dev.log中的这条消息也存在于工作安装中。
签名工具显示签名是有效的,windows资源管理器上的属性页也是如此。
这种行为的原因是什么?
发布于 2018-10-12 11:51:53
对此的潜在解决方案是不是双重签名cat文件和检查客户个人电脑的根证书。我还了解到setupapi.dev.log 是完全正常的中的错误消息
在研究了大量明显自相矛盾的微软文档之后,我终于找到了https://learn.microsoft.com/windows-hardware/drivers/install/kernel-mode-code-signing-policy--windows-vista-and-later-,它说:
“注意:从Windows 10版本1607开始,Windows将不会加载任何未经Dev Portal签名的新内核模式驱动程序。 ..。 如果下列任何一项是正确的,则仍然允许交叉签名的司机: PC已经从早期的Windows升级到Windows 10,版本1607。 安全启动在BIOS中关闭。 驱动程序使用2015年7月29日之前颁发的终端实体证书进行签名,该证书将链接到支持的交叉签名CA。“
事实证明,安全启动不是在我们的测试机器上启用的,而是在有问题的客户机器上启用的。
现在我们必须与司机一起进行WHQL认证。幸运的是,有些公司将此作为一种服务提供,因此我们不必维护认证机器池。
https://stackoverflow.com/questions/52778961
复制相似问题