logo

EasySSL 是湖南赛云信息科技有限公司的注册商标。EasySSL 与 Sectigo (原 Comodo CA ) 有战略级别的合作关系,崭新的销售管理模式和强大的技术支持将会为用户带来一个更值得信赖的 SSL 证书颁发机构。

联系我们

0731-85818443

support@easyssl.com.cn


工作时间:周一到周日: 早10点 – 晚12点


长沙市雨花区万家丽中路一段中庭国际1613

全场5折起,联系客服获取优惠

电话:0731-85818443

Top

WINDOWS 10内核驱动签名注意事项

EasySSL® / 代码签名文档  / WINDOWS 10内核驱动签名注意事项

WINDOWS 10内核驱动签名注意事项

对于Windows内核驱动签名,微软明确要求使用EV代码签名证书,对于Windows 10经由CA权威机构签发的EV代码签名证书给驱动签名后还必须递交到 Windows Hardware Developer Center Dashboard入口去获得微软的二次数字签名才能正式发布。

对于Windows内核驱动签名,微软明确要求使用EV代码签名证书,对于Windows 10经由CA权威机构签发的EV代码签名证书给驱动签名后还必须递交到 Windows Hardware Developer Center Dashboard入口去获得微软的二次数字签名才能正式发布。

历史背景

2015年10月31日起Windows 10中普通代码签名证书无法用于内核模式驱动签名,必须用EV 代码签名证书签名。

2016年8月1日起所有Windows 10 内核模式驱动经过CA权威机构签发的EV代码签名证书驱动签名后,都必须递交到Windows Hardware Developer Center Dashboard入口去再获得微软的二次数字签名,否则签名会被提示不合法。

在此基础上,给Windows 10的内核驱动进行签名必须要购买EV代码签名证书,签名时还需要添加微软的交叉签名,签名成功后再通过微软开发者中心递交签名文件,这样一个完整的过程才能让你的驱动在Windows10中正常使用。

如何对内核驱动签名

对内核驱动的签名需要使用微软官方的WDK的SignTool进行签名,关于准备工具及证书信息参考:EV代码签名证书签名Windows软件。

准备交叉签名

对于内核驱动签名均需要提供微软给CA权威机构准备的交叉签名,下载对应的交叉签名:交叉签名证书下载,下载后与EV代码签名证书放置在同一目录

SignTool签名

打开WDK的命令行SignTool工具,以Comodo EV Code Signing证书的签名为便(下载AddTrust_External_CA_Root.cer交叉签名),输入以下命令

signtool sign /v /ac "D:AddTrust_External_CA_Root.cer" /s MY /n "Your Company Name" /t http://timestamp.comodoca.com/authenticode "D:driver.sys"
signtool sign /v /ac "D:AddTrust_External_CA_Root.cer" /s MY /n "Your Company Name" /as /fd sha256 /tr http://timestamp.comodoca.com/rfc3161 "D:driver.sys"

该命令是对驱动的双签名,双签名在过渡阶段能够兼容低版本操作系统,第一行是sha-1签名,第二行是sha-256签名,详细如下:

  • ac 配置交叉签名路径
  • /n 证书对应企业名称
  • /as /fd sha256 是针对驱动的sha-256签名
  • /t 针对过时的sha-1时间戳
  • /tr 是sha-256对应的时间戳

签名成功后需满足5级证书链接的基本条件

测试签名

执行下方命令,看到和签名成功一样的结果即表示签名成功

signtool.exe verify /pa /v "D:driver.sys"

*注意:对于上述签名成功的驱动文件,在当前Windows电脑上测试该签名文件,是无法正常测试的,请开发人员在开发环境测试成功之后,将此发行文件提交至Windows Hardware Developer Center Dashboard,经过微软二次签名后才能在正式版的Windows上运行

常见错误

1、用国内开发的一些签名工具不能给驱动文件签名吗?

由于EV代码签名证书的载体是加密后的U盘存储,并没有pfx证书文件格式,所以只能使用signtool进行签名

2、调用驱动文件时报577错误或31错误

自2016年8月1日起,签名后的驱动文件必须将此发行文件提交至Windows Hardware Developer Center Dashboard,经过微软二次签名后才能在正式版的Windows上运行,否则均提示证书签名无效。

至此,Windows 内核驱动签名注意事项就介绍到这,关于更多详情参考参考微软官方说明:对内核驱动程序进行证明签名以便公开发布,或通过右下角联系客服进行详细了解。