摘要:驱动安装成功却无法加载,需要检查签名、目标Windows版本及代码完整性策略。WHQL相关测试与WHCP提交是正式兼容性认证的重要路径,但不能把所有加载失败都归为缺少WHQL。EV代码签名证书可用于符合要求的微软提交环节,不等于驱动已经通过兼容性认证。
设备安装程序提示完成,重启后驱动却没有工作。此时再次给文件补一个企业代码签名,未必能解决问题。驱动能否加载,还取决于系统版本、驱动签名路径、代码完整性策略及文件本身是否符合要求。
标题所说的 WHQL,是开发团队讨论正式驱动认证时常用的说法。具体实施需要区分 Windows Hardware CompatibilityProgram(WHCP)、Hardware Lab Kit(HLK)测试,以及微软提供的其他签名途径。它们不是一个证书产品的不同名称。
安装与加载之间 还有系统验证
安装程序可以完成文件复制、驱动包登记等操作,随后Windows 在加载驱动时仍会检查签名和适用策略。文件已经出现在磁盘上,不能证明系统接受了该驱动。
排查应先记录 Windows 版本、架构、Secure Boot 状态及相关代码完整性设置,再查看设备管理器错误、系统事件和 Code Integrity 日志。把失败时使用的驱动包版本及哈希一并保留,避免开发人员测试的文件与用户安装的文件其实不同。
如果签名后又修改了受保护的文件,原有完整性验证可能失效;如果只给外层安装包签名,也不能据此认为内部驱动包已经满足内核加载要求。先找到被系统拒绝的具体文件或目录文件,再分析拒绝原因。
需要的是哪条微软签名路径
面向正式发布和兼容性认证的驱动,应根据目标系统及分发渠道安排WHCP 和适用的 HLK 测试。测试针对相应硬件、驱动和系统要求进行,不能只靠购买签名证书完成。
微软还提供attestation signing 等途径,但其适用范围和限制与通过 HLK 的兼容性认证不同。微软当前说明将 attestation 主要用于相应测试场景,不能将其当作取得 Windows 认证或面向零售用户发布到 Windows Update 的替代路径。WindowsServer 等目标还存在额外要求,需要按目标平台文档确认。
因此,驱动开发计划应先确定目标系统与分发方式,再安排测试和提交。若客户要求Windows 认证,不能在临上线时用“已有微软签名”替代合同所要求的兼容性结果。反过来,也不能把所有开发测试中的加载失败,都直接归结为没有完成 WHQL。
| 团队要完成的事情 | 需要辨别的条件 |
| 在受控环境测试驱动 | 测试设备配置及适用签名方式 |
| 取得正式兼容性认证 | 目标系统的HLK测试及WHCP提交要求 |
| 通过指定渠道分发 | 该渠道接受的签名与认证条件 |
EV代码签名证书负责申请主体这一环
微软 Hardware Dev Center 的相关提交要求涉及有效的 EV 证书关联。企业应先核实账号要求、证书有效状态及组织信息,再准备提交材料。企业自己的代码签名与微软最终接受、签名或认证驱动,是前后相关但并不等同的环节。
GlobalSign 提供 EV 代码签名证书,企业可按实际需求选择 Token 或 HSM 实现。Token 适合由授权人员保管并在受控环境使用;HSM 方案需要企业自行准备符合要求的设备,并事先确认适配及验证材料。不能把普通磁盘上的私钥文件当作这两类硬件保护方式。
这张证书能够支撑相应的发布者身份和签名工作,但不会替企业运行HLK 测试,也不会自动修复驱动代码或消除所有加载限制。采购时若把“买到 EV”当作“驱动能正式发布”,就会遗漏后面真正耗时的测试、修改和提交。
证书与硬件介质也应进入发布排期。申请组织信息需要核验,Token 到手后还需安装驱动、验证签名工具;HSM 需要提前联调。即使证书审批顺利,签名环境没有准备好,也可能耽误提交。
有有效签名 仍然失败时怎么查
此时应继续检查签名策略之外的限制。例如目标系统的HVCI 兼容性、应用控制策略、已知易受攻击驱动阻止规则,以及驱动自身的初始化错误,都可能影响加载。数字签名证明身份与完整性,不代表代码没有漏洞或符合所有运行条件。
不要把关闭 SecureBoot 或禁用安全策略作为面向用户的常规解决方案。若开发测试需要特殊配置,应在隔离、受控的环境完成,不能用这种环境下的成功加载推断正式用户设备也会接受。
修复后应重新生成需要提交的包,按适用流程签名或提交,再在接近用户的干净系统中验证。测试记录需要绑定到最终发布文件,而不是只记录“某个版本以前可以运行”。
对于软件厂商,这项工作应由开发、测试和发布人员共同安排。采购负责取得合适的签名身份,测试负责证明驱动满足目标条件,发布负责确保分发的正是通过相应验证的文件。把这几项分别确认,比在加载失败后反复更换证书更有效。
FAQ
Q1:有GlobalSign EV证书,就等于已经完成WHQL认证吗?
A:不等于。EV证书支撑相应身份和签名环节,驱动兼容性认证仍需按微软要求完成测试及提交。CA签发代码签名证书不会替代这些工作。
Q2:只给安装程序签名,内部驱动也会自动合规吗?
A:不会。安装程序签名与驱动包的签名及提交要求不同,应检查最终驱动包和其中受保护的文件,确认目标系统接受相应签名。
Q3:驱动有微软签名,为什么仍可能加载失败?
A:还可能受到代码完整性策略、目标系统兼容性、易受攻击驱动阻止规则或程序错误影响,应结合系统日志排查,不能只看文件属性里有没有签名。
Q4:Token和HSM都能选,是否还需要提前准备环境?
A:需要。Token涉及设备、驱动和授权保管;HSM需自行准备设备并确认符合要求。正式提交前都应完成实际签名与验证测试。
关于GlobalSignEV代码签名
GlobalSign EV 代码签名证书可用于软件发布者身份验证及相应的微软驱动提交需求。其 Token 与 HSM 实现为私钥提供硬件保护选择;企业仍需按照微软当前规则完成账号关联、驱动测试和提交,并由自己的开发团队确认目标系统兼容性。
资料来源
GlobalSign 代码签名证书
https://www.globalsign.cn/code-signing-certificate
Microsoft 驱动签名要求
https://learn.microsoft.com/en-us/windows-hardware/drivers/dashboard/code-signing-reqs
Microsoft 驱动签名选项与适用范围
https://learn.microsoft.com/en-us/windows-hardware/drivers/dashboard/driver-signing-offerings