【问题标题】:Windows 10: Error code 52 in device manager with correct signature in cross-signed driverWindows 10:设备管理器中的错误代码 52,交叉签名驱动程序中的签名正确
【发布时间】:2019-03-17 15:38:29
【问题描述】:

我们开发了一个驱动程序,并使用我们公司的 Verisign 签名(SHA1 + SHA256,包括证书链)对 cat 和 sys 文件进行了签名。我们在 32 位和 64 位版本的 Windows 7 和 10 下对其进行了测试。现在我们有一些随机的客户报告说我们的设备在设备管理器中没有被正确识别,并且出现了错误 52:

Windows 无法验证此设备所需驱动程序的数字签名。最近的硬件或软件更改可能安装了签名不正确或损坏的文件,或者可能是来自未知来源的恶意软件。 (代码 52)

Setupapi.dev.log 显示此错误:

_!!! dvi:设备未启动:设备有问题:0x34(CM_PROB_UNSIGNED_DRIVER),问题状态:0xc0000428

但是 Setupapi.dev.log 中的这条消息也出现在工作安装中。

签名工具显示签名有效,windows资源管理器的属性页也是如此。

这种行为的原因是什么?

【问题讨论】:

    标签: windows windows-10 driver device-manager driver-signing


    【解决方案1】:

    对此的潜在解决方案是not dual signing the cat file 和checking the root certs of the customer's pcs。我还了解到 setupapi.dev.log 中的错误消息is perfectly normal

    在对大量明显相互矛盾的 Microsoft 文档进行了一些研究后,我终于找到了 https://docs.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 认证。幸运的是,有些公司提供此服务,因此我们不必维护认证机器池。

    【讨论】:

    • 安全启动!你能接受你自己的答案吗?我向自己保证,在达到 3k 之前,我不会在赏金中放弃过多的声望,但我只需要多加一个 +1 来感谢你。
    • 非常感谢,这是我的第一次!
    猜你喜欢
    • 2010-12-22
    • 1970-01-01
    • 2016-11-18
    • 2012-07-01
    • 2013-01-08
    • 2020-10-06
    • 2020-10-18
    • 2018-05-11
    • 1970-01-01
    相关资源
    最近更新 更多