什么是驱动程序签名,驱动程序如何获取数字签名?
什么是WHQL?
WHQL是Windows Hardware Quality Labs的简称,意思是Windows操作系统硬件质量实验室,这个实验室主要从事计算机硬件产品、驱动程序于Windows操作系统的兼容性和稳定性测试,如果通过测试就证明这款产品在Windows操作系统中基本不存在兼容性问题。
2021年起,微软要求所有驱动程序必须获得微软的官方数字签名,而这种签名就可以通过 WHQL 来实现。
![](https://pic1.zhimg.com/80/v2-69436a9b1fa280303d02432cf3b8b948_720w.jpg)
驱动程序为什么要做WHQL认证
1、可获取微软徽标授权
产品通过WHQL测试认证后,企业有权在其产品包装和广告上使用“Designed for Windows”徽标。获得微软Windows品牌及用户对产品与Windows兼容认可的优势。
2、可提高用户认知度
微软规定凡是通过WHQL认证的产品都被授予徽标标志,其相关信息都会出现在微软官方网站和操作系统的硬件兼容列表(HCL)中。
3、可提高兼容性和稳定性
WHQL认证的驱动程序在安装过程中不会弹出兼容性的提醒,WHQL认证过程相当严格,当通过了WHQL认证的驱动程序可以说在Windows系统中基本不存在兼容性问题。可提高产品在用户心中的品牌信任度。
4、可获得微软的WINDOWS ONLINE UPDATE服务
一些通过WHQL测试的设备驱动程序也可以发布到Windows Update中。客户很容易得到新的与Windows相关软件的更新。
那么 Windows 内核驱动程序如何获得微软数字签名:
1、建立 Windows 硬件开发人员账号。(账号的建立过程需要 EV代码签名证书)
2、购买 EV 证书时,请注意品牌,目前微软对 EV代码签名证书的品牌在微软官方文档中有建议:
A、 Symantec EV 代码签名证书(该品牌目前已经合并到 DigiCert旗下)
B、 Entrust EV 代码签名证书
C、GlobalSign EV 代码签名证书
D、DigiCert EV 代码签名证书
3、将自己开发的驱动程序,通过 HLK 或者 HCK 的平台测试,通过测试之后拿到完整的测试数据包并将驱动程序打包进去,使用 EV 证书进行签名。
4、提交数据包,通过审核,下载含有签名的驱动。
常见的需要微软数字签名的有:
1、各类驱动程序、内核驱动等
这类文件如果没有微软的数字签名,将直接无法安装运行。
2、运行在 UEFI 系统下的 efi 驱动和通过 UEFI 启动的 shim(垫片)
为了解决一些 efi 驱动或者 efi 固件在类 EFI 操作系统加载不了,无法正常工作等问题, 我们推出通过 efi 驱动测试或垫片测试审查,获得微软 UEFI 签名来解决该故障的服务。
![](https://pic3.zhimg.com/80/v2-b315ecb17b3f4f0f13735a3c339fcdbe_720w.jpg)
3、签名验证保护模式要求加载到 LSA 中的任何插件
签名验证 保护模式要求加载到 LSA 中的任何插件都已使用 Microsoft 签名进行数字签名。 因此,未签名的或者未使用 Microsoft 证书进行数字签名的任何插件都无法加载到 LSA 中。 这些插件包括智能卡驱动程序、加密插件和密码筛选器。 用作驱动程序(例如智能卡驱动程序)的 LSA 插件需要使用 WHQL 认证进行签名。 不需要经历 WHQL 认证过程的 LSA 插件必须使用 LSA 的文件签名服务进行签名。
参考
Windows徽标认证服务(WHQL认证) .wosign.com/Products/WHQL.html