如何签署 Windows 10 个设备驱动程序?

How to sign Windows 10 Device Drivers?

我已经为 Windows 10 编写了一个自定义设备驱动程序,并且已经按照 Microsoft 发布的构建 + 签名说明使用我公司颁发的 EV 证书正确地签署了该驱动程序。

我最近升级到最新的 Windows 10 版本,在此过程中,驱动程序签名强制已重新启用。

然而,即使仍然安装了 EV-cert 签名的驱动程序,我在设备管理器中仍收到以下错误:

奇怪的是我可以安装驱动程序就好了。 Windows 10 不会提示我任何有关驱动程序危险、签名错误或未签名的警告。但是,设备管理器仍然禁用了错误代码为 52 的设备,如图所示。

我是不是做错了什么? Windows 10/Microsoft 是否需要使用有效的 EV 证书签名以外的东西?我是否需要实际将驱动程序发送给 Microsoft 以获得它们的批准或其他什么?如果是这样,我该怎么做?

让这些驱动程序在设备管理器中工作的唯一方法是禁用驱动程序签名实施,但当我尝试将驱动程序分发给客户时,这不是一个可行的解决方案。

正如您所注意到的,Windows 在您安装驱动程序包时检查的签名要求不同于它在将 .sys 文件(内核模块)加载到内核时检查的要求。如果您的驱动程序包含 .sys 文件,您通常必须将其提交到 Microsoft 的 Windows 硬件开发人员中心仪表板门户以对其进行签名。以下是 Microsoft 关于此的公告:

https://techcommunity.microsoft.com/t5/windows-hardware-certification/driver-signing-changes-in-windows-10/ba-p/364859

如果你可以只使用 Windows 附带的驱动程序(例如 WinUSB),那将是首选,因为它们使用已经由 Windows 签名的内核模块,所以你只需要只要满足安装驱动包的要求即可。

我在这里写了很多关于驱动程序签名的内容:

https://www.davidegrayson.com/signing/