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
參考資料: