如何用代码签名实现WHQL认证?
WHQL认证是微软面向硬件驱动的官方兼容性与安全认证,是驱动能在Windows上正常加载、分发的“入场券”。很多厂商误以为EV代码签名就是WHQL,其实两者是“前置+流程”关系:EV代码签名是WHQL的“强制前提”,没有合规EV签名,连提交入口都没有。本文讲清两者关系、完整流程、常见误区与企业落地方案。
核心结论速览
- WHQL认证必须使用EV代码签名证书,普通代码签名完全不可用
- EV签名两大作用:注册微软硬件开发者账户 + 预签名驱动包
- Win10 1607+ 内核驱动必须过WHQL,否则系统强制拦截
- EV签名 ≠ WHQL认证;两者互补,缺一不可
一、WHQL认证与代码签名的关系
代码签名不是WHQL的替代品,而是强制性前置条件,两者分工明确:
- EV代码签名:证明驱动发布者是真实合法企业,身份可信、私钥硬件级安全
- WHQL认证:证明驱动兼容Windows、不蓝屏、不崩溃、符合微软标准
- 流程顺序:先拿到EV代码签名 → 注册微软账户 → 做WHQL测试 → 拿微软官方签名
二、代码签名在WHQL中的两个关键作用
- 微软硬件开发者中心账户注册:必须用EV证书签名微软提供的注册文件,完成企业身份核验,个人与普通OV证书无法注册
- 驱动提交前预签名:驱动包、测试日志必须用EV证书预先签名,微软才会接收并进入WHQL测试流程
三、WHQL认证完整流程(含代码签名)
- 申请EV代码签名证书:选择微软认可的CA(如GlobalSign),完成企业法律实体核验,获取HSM硬件令牌存储私钥
- 注册微软硬件开发者中心:下载微软签名文件→用EV证书签名→上传完成账户认证,绑定Azure AD
- 准备驱动程序包:sys、dll、inf、cat文件齐全,符合Windows驱动规范
- 驱动预签名:使用SignTool+EV证书对驱动.cat/.sys/.cab签名,必须加RFC3161时间戳
- WHQL兼容性测试:使用HLK工具完成全量测试,生成测试报告
- 提交审核:已签名驱动+测试报告上传开发者平台,微软后台审核
- 获得微软官方签名:审核通过,驱动获得微软WHQL签名,可正式分发、进入Windows Update
四、两大常见误区(90%厂商踩过坑)
五、为什么必须用EV代码签名(强制原因)
- 微软硬性规定:2021年起,所有内核驱动提交WHQL必须使用EV证书
- 硬件级安全:EV私钥必须存HSM硬件,不可导出,防泄露、防盗用
- 强身份核验:CA严格审核企业法律实体、运营状态、授权签字人,杜绝伪造
- 系统信任基础:Windows强制信任链依赖EV证书作为企业身份根
六、GlobalSign WHQL认证支持方案
GlobalSign是微软官方认可的EV代码签名证书颁发机构,为硬件厂商提供一站式WHQL支撑:
- EV代码签名证书全流程支持微软账户注册与驱动预签名
- 强制HSM硬件令牌,符合微软最高安全要求
- 提供微软认可的RFC3161时间戳服务,签名长期有效
- WHQL认证咨询:流程指导、环境准备、签名规范、审核加速
EV代码签名是WHQL的入场券,WHQL是驱动上市的通行证。
先办合规EV证书,再走WHQL流程,一次通过、顺利上架Windows生态。