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
参考资料: