Windows内核代码签名指南
一、 安装代码签名证书环境
1.1 代码签名证书安装环境简介
- 电脑一台
- 装windows操作系统
- 代码签名证书一张
1.2 网络环境要求
请确保您的电脑可以正常访问外网。
二、代码签名证书的安装
2.1 获取代码签名证书
成功在沃通申请代码签名证书后,会得到一个有密码的压缩包文件,输入证书密码后解压得到两个文件:pfx+MS、pvk+spc,这个是证书的两种种格式,签名内核需要用到pfx格式的证书。
图1
2.2 解压证书文件
打开文件可以看到2个文件。包括交叉根和用户代码签名证书,如图2、3。(备注:如果申请时证书时选择英文证书链将会得到如图2文件,中文会得到如图3文件。)
图2
图3
三、内核代码签名
3.1 用SignTool签名工具签名:
现在,就可以使用WDK的 SignTool 签名你的文件了。先将您的证书XXX.pfx文件放到签名signtool工具所在目录中,其中微软的内核交叉根已经是预置在此工具目录中,案例使用英文证书签名命令为:
具体命令请参考此链接命令行:https://bbs.wosign.com/thread-3300-1-1.html
其中:
(1) /ac: 加载内核签名专用交叉根证书,MS_xs_DG.crt和MS_xs_CT.crt 以及MS_xs_DGPro.crt是微软签发给wosign的交叉根证书;
(2) /f xxx.pfx: 加载代码签名证书。请把颁发给你的用户证书放到signtool目录下,或者指定文件路径;
(3) /p 密码:申请证书时候设置的密码;
(4) /t,/tr: 为代码加上WoSign时间戳,确保签名后的代码永不过期;
(5) my.sys: 就是您要签名的内核文件,当然可以是其他类型文件,如.dll,.cat, .exe文件,或者指定文件路径;
请注意:签名时,一定要保证能连上互联网,否则由于无法访问时间戳服务器而失败。
签名完成后,如果显示“Successfully signed and timestamped”(成功签名与加上时间戳),如下图所示,这表明签名已经成功:
3.2验证内核签名
执行以下命令验证内核签名是否正确:
signtool verify /v /kp my.sys
如果显示如下图一样的证书签名信息,则说明内核签名成功!请注意:必须要有图示正确的4级证书签名路径,第1级必须是: Microsoft Code Verification Root, 第2级为:Certification Authority of WoSign ; 第第3级为: WoSign Class 3 Code Signing CA或WoSign Class 2 Code Signing CA; 第4级为WoSign颁发给您的公司的内核代码签名证书, 如果证书公司名称为中文,则在签名工具中显示不出来(为空),但这并不影响签名效果。
3.3 数字签名.CAT文件
根据inf文件产生cat文件(使用Signability 或 inf2cat : 下载inf2cat工具 , 并参考使用指南),对.cat文件进行数字签名,同上一步骤。这样,您就可以发布您已经签名的内核软件了。
四、代码签名证书的备份
请保存好收到的证书压缩包文件及密码,以防丢失。
五、代码签名证书的恢复
重复2.3操作即可。