硬件驱动为什么要有WHQL数字签名

举报
沃通WoTrus 发表于 2021/09/24 16:06:25 2021/09/24
【摘要】 硬件驱动要有WHQL数字签名才能实现正常安装、启动、运行,并实现驱动静默安装。目前的桌面操作系统中,Windows系统市场占有率处于优势,Windows 的各个版本的系统加起来几乎占领了大部分市场。所以很多工业和行业的硬件设备都要考虑兼容在Windows系统上使用,这个使用过程中难免涉及设备的驱动使用(驱动是硬件设备和Windows系统联接传输数据的桥梁,没有驱动的硬件设备是无法正常工作的)...

硬件驱动要有WHQL数字签名才能实现正常安装、启动、运行,并实现驱动静默安装。

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

如果该驱动程序文件在沃通CA做过 WHQL,则右键属性弹出的窗口中有一个选项卡“数字签名”,点击详细信息会看到具体的数字签名证书详情。

假设驱动安装时没有数字签名会怎样?我们看以下截图:

没有WHQL签名驱安装时提示“Windows 无法验证此驱动程序软件的发布者”或驱动没有效数字签名之类的警告:

faq_2021092301_clip_image001.jpg

而且,没有数字签名的驱动程序安装到 Windows中后,在设备管理器里,设备会显示感叹号,无法启动工作,如下图:

faq_2021092301_clip_image002.jpg

所以,如果一个硬件驱动没有微软发布的数字签名,则会在安装时会被Windows 拦截警告,提示没有数字签名或者驱动没有发布者,而且更可能的是导致设备驱动启动不了不工作。这一切源于微软对Windows系统保护,防止没有进行数字签名认证的驱动对Windows造成的破坏,因为驱动会涉及到系统内核中一些重要的指令,稍有不慎就造成Windows系统的死机和蓝屏。

可能有驱动开发者要问,我可以用代码签名证书为驱动进行数字签名,为什么要WHQL签名?

因为根据微软新政策,受微软信任的第三方内核模式代码签名交叉证书,将于2021年4月全部到期。此后,微软将成为Windows内核模式代码(驱动程序)签名的提供商。也就是说,以前第三方CA颁发的代码证书可以签名驱动使用,是因为签名时有微软给的交叉证书,现在微软给的交叉证书到期了,以后驱动签名规则其实是变了,驱动是在系统内核模式下工作的,所以绝大数驱动都是要经过WHQL测试认证,从而获得微软官方发布的数字签名才可以正常工作。

如下是微软给第三方CA颁发的可信交叉证书到期时间:

faq_2021092301_clip_image003.jpg

同时,经过WHQL测试认证签名后的硬件驱动安装时会实现驱动静默安装,不会弹出任何警告,可以给用户很好的使用体验,让驱动有很好的稳定性,不会像用代码签名证书签名后的驱动安装时会弹出如下弹窗(Trusted publishers警告):

faq_2021092301_clip_image004.jpg

WHQL签名认证其实是有其自身复杂性,具有一定的技术门槛,不管是在认证平台搭建环节,或者对微软签名策略的了解,以及驱动签名对各版本Windows系统的适配性,甚至认证过程中对驱动的必要修改,这对很多驱动开发者或驱动开发企业的开发人员来说,很难详细掌握。沃通CA作为一家专注于数字证书领域多年的企业,拥有成熟的WHQL测试经验和相关技术,根据市场需求,为广大驱动开发者提供了多种WHQL认证方案

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。