如何给驱动程序签名?怎么做微软WHQL认证?

简介: 内核模式旨在验证在系统上运行我们的程序和软件的驱动程序包的代码,内核模式代码的签名文件在安全目录(CAT 文件)中受到保护。


从 Windows Vista 开始,基于 x64 的 Windows 版本要求在内核模式下运行的所有软件(包括驱动程序)进行数字签名才能加载。未签名的驱动程序被系统阻止,数字签名可确保驱动程序已由受信任的开发人员或供应商发布,并且其代码未被修改。


什么是内核模式驱动签名?

操作系统中的内核模式表示操作系统上所有其他程序所依赖的核心程序。使用此模式的基本目的是访问操作系统的硬件组件并计划将运行系统的进程。即使是常规程序,当它们必须访问计算机硬件时,也必须通过内核模式建立连接。

13-02.png

内核模式旨在验证在系统上运行我们的程序和软件的驱动程序包的代码,内核模式代码的签名文件在安全目录(CAT 文件)中受到保护。对此证书进行签名的目的是创建一个策略,在该策略中,内核模式驱动程序必须始终加载才能使系统平稳运行。

内核模式驱动程序签名认证过程取决于操作系统的版本。内核模式代码具有.sys扩展名,若要正确加载这些驱动程序,必须使用安全目录 (CAT) 对它们进行有效签名。因此,引入操作系统的任何驱动程序都需要获得数字签名进行验证。

如何为驱动程序签名,完成WHQL认证?

由于微软提升驱动程序签名要求,以往只需要采用微软交叉根签名的证书颁发机构提供的EV代码签名证书签名驱动程序,即可完成驱动签名认证,但从 Windows 10 开始,如果新的内核模式驱动程序未由Windows开发人员门户提供签名,则系统不会加载它们。微软已停止继续给证书颁发机构签发交叉根证书,驱动程序必须提交微软开发人员门户进行WHQL测试认证,获取微软数字签名后才能正常加载。申请WHQL认证主要有以下几个步骤,如图所示:


沃通CA提醒开发者,驱动程序提交微软WHQL认证的流程中,仍需申请EV代码签名证书,这是必备项目!帐户注册过程及驱动程序提交前,需要使用微软指定证书颁发机构提供的EV代码签名证书进行签名。

(1)账户注册需要:驱动程序开发者必须通过 Windows 硬件开发人员中心门户向微软提交新驱动程序。而Windows 硬件开发中心账户注册过程,必须使用 EV 代码签名证书签名指定文件,才能完成账户注册。

(2)驱动签名需要:完成微软测试认证后,WHQL 仅对驱动程序包目录文件进行签名,但不将签名嵌入驱动程序文件。所有驱动程序提交到硬件开发人员门户之前,必须先使用 EV 代码签名证书进行签名。

沃通CA是合规电子认证服务机构,提供各种类型数字证书产品,沃通EV代码签名证书Pro 及 EV代码签名证书 两款产品,都是由微软指定的证书颁发机构签发,符合微软要求。沃通还提供配套的WHQL认证服务,“EV代码签名证书 + WHQL认证服务”一站式解决驱动程序签名及WHQL认证的需求,帮助开发者快速完成认证。

相关文章
|
开发者
UOS系统如何给软件签名
UOS系统如何给软件签名
UOS系统如何给软件签名
|
Java API 开发工具
工银e生活开发脱坑日志(1)RSA密钥签名验签windows环境下配置、
工银e生活开发脱坑日志(1)RSA密钥签名验签windows环境下配置
99 0
|
Java Android开发
调试支付宝脱机认证接口遇到的问题总结
调试支付宝脱机认证接口遇到的问题总结
|
Linux Android开发
支付宝二维码脱机认证库测试(linux_x86平台验证)
支付宝二维码脱机认证库测试(linux_x86平台验证)
|
测试技术 开发者 Windows
微软WHQL认证有哪些步骤?驱动程序签名及发布
通过WHQL认证有什么好处呢?凡是通过WHQL认证的产品,都可获得微软logo授权,可使用“Designedfor Windows”标志,其相关信息可列入微软官方网站和操作系统的硬件兼容列表(HCL),支持直接从Windows Update中更新驱动。
314 0
微软WHQL认证有哪些步骤?驱动程序签名及发布
|
存储 安全 数据库
什么是UEFI签名认证?UEFI签名有什么好处?
UEFI签名认证就是对运行在 UEFI 系统下的 efi 驱动和通过 UEFI 启动的 shim(垫片)进行测试审查后,获得微软 UEFI 签名。
334 0
什么是UEFI签名认证?UEFI签名有什么好处?
|
安全 Java
直捣黄龙,我直接攻破公司的认证框架调用系统的接口
直捣黄龙,我直接攻破公司的认证框架调用系统的接口
|
Android开发 iOS开发
华为快应用 - 打包的签名注意事项和versionCode注意事项
华为快应用 - 打包的签名注意事项和versionCode注意事项
188 0
|
API PHP
PHP开发API接口签名生成及验证
PHP开发API接口签名生成及验证
313 0
|
Java Android开发 数据安全/隐私保护