如何给驱动程序签名?怎么做微软WHQL认证?
发布日期:2023-03-02从 Windows Vista 开始,基于 x64 的 Windows 版本要求在内核模式下运行的所有软件(包括驱动程序)进行数字签名才能加载。未签名的驱动程序被系统阻止,数字签名可确保驱动程序已由受信任的开发人员或供应商发布,并且其代码未被修改。
什么是内核模式驱动签名?
操作系统中的内核模式表示操作系统上所有其他程序所依赖的核心程序。使用此模式的基本目的是访问操作系统的硬件组件并计划将运行系统的进程。即使是常规程序,当它们必须访问计算机硬件时,也必须通过内核模式建立连接。
内核模式旨在验证在系统上运行我们的程序和软件的驱动程序包的代码,内核模式代码的签名文件在安全目录(CAT 文件)中受到保护。对此证书进行签名的目的是创建一个策略,在该策略中,内核模式驱动程序必须始终加载才能使系统平稳运行。
内核模式驱动程序签名认证过程取决于操作系统的版本。内核模式代码具有.sys扩展名,若要正确加载这些驱动程序,必须使用安全目录 (CAT) 对它们进行有效签名。因此,引入操作系统的任何驱动程序都需要获得数字签名进行验证。
如何为驱动程序签名,完成WHQL认证?
由于微软提升驱动程序签名要求,以往只需要采用微软交叉根签名的证书颁发机构提供的EV代码签名证书签名驱动程序,即可完成驱动签名认证,但从 Windows 10 开始,如果新的内核模式驱动程序未由Windows开发人员门户提供签名,则系统不会加载它们。微软已停止继续给证书颁发机构签发交叉根证书,驱动程序必须提交微软开发人员门户进行WHQL测试认证,获取微软数字签名后才能正常加载。申请WHQL认证主要有以下几个步骤,如图所示:
沃通CA提醒开发者,驱动程序提交微软WHQL认证的流程中,仍需申请EV代码签名证书,这是必备项目!帐户注册过程及驱动程序提交前,需要使用微软指定证书颁发机构提供的EV代码签名证书进行签名。
(1)帐户注册需要:驱动程序开发者必须通过 Windows 硬件开发人员中心门户向微软提交新驱动程序。而Windows 硬件开发中心帐户注册过程,必须使用 EV 代码签名证书签名指定文件,才能完成帐户注册。
(2)驱动签名需要:完成微软测试认证后,WHQL 仅对驱动程序包目录文件进行签名,但不将签名嵌入驱动程序文件。所有驱动程序提交到硬件开发人员门户之前,必须先使用 EV 代码签名证书进行签名。
沃通提供的EV代码签名证书Pro及EV代码签名证书两款产品,都是由微软指定的证书颁发机构签发,符合微软要求。沃通还提供配套的WHQL认证服务,“EV代码签名证书 + WHQL认证服务”一站式解决驱动程序签名及WHQL认证的需求,帮助开发者快速完成认证。