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