代码|EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!

硬件驱动要有 WHQL 数字签名才能实现正常安装、启动、运行 , 并实现驱动安装 。
目前的桌面操作系统中 , Windows系统市场占有率处于优势 , Windows 的各个版本的系统加起来几乎占领了大部分市场 。 所以很多工业和行业的硬件设备都要考虑兼容在Windows系统上使用 , 这个使用过程中难免涉及设备的驱动使用(驱动是硬件设备和Windows系统联接传输数据的桥梁 , 没有驱动的硬件设备是无法正常工作的) , 但Windows系统对驱动的安装、启动、运行有一个非常重要的要求 , 那就是相关的驱动文件需要加上数字签名 。
驱动是否具有WHQL数字签名的对比(下图):

代码|EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!
文章图片
EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!
如果该驱动程序文件在环度网信做过 WHQL , 则右键属性弹出的窗口中有一个选项卡“数字签名” , 点击详细信息会看到具体的数字签名证书详情 , 如下:

代码|EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!
文章图片
EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!
【代码|EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!】假设驱动安装时没有数字签名会怎样?我们看以下截图:
没有WHQL签名驱安装时提示“Windows 无法验证此驱动程序软件的发布者”或驱动没有效数字签名之类的警告:

代码|EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!
文章图片
Windows 无法验证此驱动程序软件的发布者
而且 , 没有数字签名的驱动程序安装到 Windows中后 , 在设备管理器里 , 设备会显示感叹号 , 无法启动工作 , 如下图:

代码|EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!
文章图片
在设备管理器里 , 设备会显示感叹号 , 无法启动工作
所以 , 如果一个硬件驱动没有微软发布的数字签名 , 则会在安装时会被 Windows 拦截警告 , 提示没有数字签名或者驱动没有发布者 , 而且更可能的是导致设备驱动启动不了不工作 。 这一切源于微软对Windows系统保护 , 防止没有进行数字签名认证的驱动对Windows造成的破坏 , 因为驱动会涉及到系统内核中一些重要的指令 , 稍有不慎就造成Windows系统的死机和蓝屏 。
最后 , 可能有驱动开发者要问 , 我可以用代码签名证书为驱动进行数字签名 , 为什么要WHQL签名?
因为根据微软最新政策 , 受微软信任的第三方内核模式代码签名交叉证书 , 将于2021年4月全部到期 。 此后 , 微软将成为Windows内核模式代码(驱动程序)签名的提供商 。 也就是说 , 以前第三方CA颁发的代码证书可以签名驱动使用 , 是因为签名时有微软给的交叉证书 , 现在微软给的交叉证书到期了 , 以后驱动签名规则其实是变了 , 驱动是在系统内核模式下工作的 , 所以驱动都是要经过WHQL测试认证 , 从而获得微软官方发布的数字签名才可以正常工作 。
如下是微软给第三方CA颁发的可信交叉证书到期时间:

代码|EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!
文章图片
第三方CA颁发的可信交叉证书到期时间
同时 , 经过WHQL测试认证签名后的硬件驱动安装时会实现驱动安装 , 不会弹出警告 , 可以给用户更好的使用体验 , 让驱动有更好的稳定性 。

代码|EV代码签名证书无法给驱动签名了!用 WHQL 测试认证来代替!
文章图片
驱动安装时会弹出如下弹窗(Trusted publishers警告)
WHQL签名认证其实是有其自身复杂性 , 具有一定的技术门槛 , 不管是在认证平台搭建环节 , 或者对微软签名策略的了解 , 以及驱动签名对各版本Windows系统的适配性 , 甚至认证过程中对驱动的必要修改 , 这对很多驱动开发者或驱动开发企业的开发人员来说 , 很难全面掌握 。 环度网信作为一家专注于数字证书领域多年的企业 , 拥有成熟的 WHQL 测试经验和相关技术 , 根据市场需求 , 为广大驱动开发者提供了多种WHQL方案 , 见:
WHQL 测试方案 https://www.ihuandu.com/whql.html
更多信息请参考环度网信

    推荐阅读