Windows驱动签名疑问:需EV证书还是普通证书?
Windows 10 x64 硬件配套驱动签名方案(无需纳入Windows更新)
为什么微软文档会有差异
微软驱动签名的文档差异来自两种不同的应用场景:
- 一种是测试/企业内部使用:可以用自签名证书,但要求用户开启系统测试签名模式,仅适合内部调试,不适合面向普通用户交付。
- 另一种是通用驱动发布:需要提交给微软做WHQL签名,签名后的驱动会纳入Windows更新,适合通用硬件驱动。
你的场景是随硬件配套交付给用户,无需进Windows更新,对应第三种方案:用EV代码签名证书自行签名,无需提交微软。
需购买的证书类型
必须选购EV代码签名证书(Extended Validation Code Signing Certificate),原因如下:
- 从Windows 10 1607版本开始,内核模式驱动(.sys文件)必须使用EV证书签名,普通OV代码签名证书无法满足系统默认信任要求。
- EV证书要求CA机构完成严格的身份验证,且签名操作必须通过硬件令牌(如USB Key)执行,安全性更高,能被Windows 10 x64系统默认信任,无需用户修改系统设置。
具体签名流程
获取EV证书
从正规CA机构购买EV代码签名证书,完成身份核验后,会收到硬件令牌(存储私钥)和对应的证书文件、交叉证书(用于链接微软信任根)。准备驱动文件
确保驱动已完成开发和兼容性测试(WHQL测试非强制,但建议执行以避免用户端兼容性问题),生成最终的.sys驱动文件和.cat目录文件(用于批量签名验证)。执行签名操作
使用Windows SDK中的SignTool工具完成签名,示例命令:signtool sign /v /ac <CA提供的交叉证书路径> /s my /n "<EV证书的主体名称>" /t http://timestamp.digicert.com <目标驱动文件或.cat文件>/ac参数指定交叉证书,确保签名链被微软信任;/t参数添加时间戳,避免证书过期后驱动签名失效;- 签名操作必须通过EV证书的硬件令牌完成,确保私钥安全。
验证签名有效性
用SignTool验证签名是否合规,命令:signtool verify /v /pa <已签名的驱动文件>输出中显示"Successfully verified"即为有效。
交付给用户
将签名后的驱动与硬件安装程序打包交付,用户安装时Windows会自动信任该驱动,无需开启测试签名模式或修改系统安全设置。
内容的提问来源于stack exchange,提问作者mans
相关产品推荐
相关产品推荐

