Windows 10版本1607(又名周年更新)现在正在强制执行严格的内核驱动程序认证,该证书已于2015年作为Windows 10的要求发布。新规则是,所有Windows 10驱动程序必须由Microsoft数字签名,不再需要交叉签名!内核驱动程序开发人员现在必须使用扩展验证(EV)代码签名证书,并将其驱动程序提交给Windows硬件开发人员中心仪表板门户,在通过某些测试后,Microsoft将在该门户中对驱动程序进行签名。
但是,该规则也有例外。如果满足以下任一条件,则 Windows 10 1607版仍接受交叉签名的内核驱动程序:
- 该驱动程序已使用2015年7月29日之前签发的证书进行签名
- 该驱动程序是启动驱动程序
- 安全启动已关闭
- Windows 10版本1607系统已升级且未直接安装
- 设置了秘密注册表项,即使在启用了安全启动的系统上,交叉注册表驱动程序也可以加载
在我的公司中,确实存在一个问题,即在收到干净的Windows 10版本1607安装的系统上,现在已禁用了多个驱动程序,甚至某些Intel驱动程序也受到影响。此外,由于数字签名错误,使用启用了安全启动的TianoCore UEFI BIOS的高度安全的KVM虚拟机现在不会加载VirtIO网络和气球驱动程序。
而且我可以确认驱动程序在禁用了安全启动的系统上以及在已启用(就地)升级到版本1607的Windows 10系统上都能正常工作,即使启用了安全启动也是如此。
现在,我想知道该秘密注册表的名称和价值是Microsoft在以下视频中于00 h 11 m 00 s宣布的:
通道9-Plugfest28-Windows客户端和服务器上的驱动程序认证
...然后最终我们实际上将拥有一个注册表项...而该注册表项是...您知道...仅用于测试,因此我们绝对不希望您...设置此注册表在安装驱动程序时选择...注册表项,并且...注册表项本质上模仿了与已升级系统相同的行为...
微软从未宣布过该密钥,并且由于OSR的ntdev列表中的以下消息,我相信这永远不会发生:
我不想这么说,但是由于您询问:注册表项信息仅在NDA下可用。这意味着最终它可能会在很多地方出现在网上,但是直到那时我们才会在这里进行讨论。
这让我留在了我真正的超级用户问题:
告诉Windows 10版本1607它已从先前版本升级的秘密注册表项是什么?
BehaviorOnFailedVerify
密钥值更改为“ 0
”。