Windows 内核驱动签名策略

Windows的驱动签名策略起始于Win7 64位操作系统,从Win7 64位一直到 Win10 1511版本,驱动程序必须要有SHA1签名,且证书必须使用微软签发的证书交叉签名。

后来微软推行了SHA2签名,从Win10 1607到Win10 1709,SHA1和SHA2签名都被认可。从Win10 1803开始,SHA1签名不再受到支持,因此好多开发商都选择使用SHA1+SHA2双签名,来支持全部的Windows操作系统。

不过自从Win10 1607开始,微软还立了一条规矩,驱动程序还必须被微软的硬件开发中心签名才能被Windows加载。但是有以下几种情况属于例外:

1.Win10是从旧版本升级到1607的,不需要硬件开发中心的签名

2.BIOS没有开启SecureBoot,不需要硬件开发中心的签名

3.驱动签名日期早于2015年7月29日的,不需要硬件开发中心的签名

因此,驱动程序如果要获得最完整的兼容性,必须要满足下面的条件

1.有SHA1签名,用来支持Win10 1607以前的操作系统

2.有SHA2签名(必须是EV证书),用来支持Win10 1607及以后的操作系统

3.有微软的硬件开发中心签名,用来支持UEFI SecureBoot方式引导的Win10 1607及以后的操作系统

 

Windows 硬件开发者中心的数字签名获取步骤是:

(1)门户注册:Windows 硬件开发者中心门户要求注册门户时必须有一张有效的 EV代码签名证书。

(2)驱动提交:所有通过 Windows 硬件开发者中心门户提交的驱动程序必须使用 EV 代码签名证书进行数字签名;

(3)提交入口:必须通过 Windows 硬件开发者中心门户,提交您的新驱动程序;

 

入口:

https://partner.microsoft.com/zh-cn/dashboard/directory
https://partner.microsoft.com/zh-CN/dashboard/registration/hardware

 

参考资料:

https://www.scip.ch/en/?labs.20190919

https://techcommunity.microsoft.com/t5/Windows-Hardware-Certification/Driver-Signing-changes-in-Windows-10-version-1607/ba-p/364894

你可能感兴趣的:(Windows 内核驱动签名策略)