Windows 64位内核驱动和内核代码签名(Kernel Signing)指南
重要告示:任何证书拥有者都不得使用其购买的内核代码签名证书为间谍软件、流氓软件、黑客软件等恶意软件和盗版软件进行数字签名,也不得在违反国家有关法律法规的网站上使用,否则,一经用户举报和查实,WoSign可以立刻吊销此证书,不但不退款,而且还会配合有关部门追究可能由此带来的一切法律责任。
您成功申请 WoSign 内核代码签名证书 后就可以签名 Windows Vista, Windows 7, Windows 2008 server 等内核模式代码(硬件驱动、系统文件、杀毒软件等),具体签名步骤如下,建议同时参考微软网站上的相关英文指南:
* Windows 驱动签名要求: http://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx
* Windows Vista 内核模式签名指南:http://www.microsoft.com/whdc/winlogo/drvsign/kmcs_walkthrough.mspx
* Windows Vista 即插即用设备 (PnP) 驱动签名指南:http://www.microsoft.com/whdc/winlogo/drvsign/pnp-driver.mspx
* Windows Vista 内核模式签名交叉证书使用指南:http://www.microsoft.com/whdc/winlogo/drvsign/crosscert.mspx
* Windows Vista PMP 签名指南:http://www.microsoft.com/whdc/winlogo/drvsign/Pmp-sign.mspx
* Windows 系列操作系统驱动签名基础知识:http://www.microsoft.com/whdc/winlogo/drvsign/best_practices.mspx
Boot Start Driver 是指在操作系统启动时,就加载的驱动。由于系统刚刚启动,所以不会像加载其他PnP 类型驱动那样,用签名的Catalog文件判断驱动的合法性。有关这方面的详细说明请参考微软文档 “Digital Signatures for Kernel Modules on Systems Running Windows Vista”。 下面就把内核签名的完整步骤说明如下:
1. 获取代码签名证书:
成功在沃通申请代码签名证书后,会得到一个有密码的压缩包文件,输入证书密码后解压得到两个文件:pfx+MS、pvk+spc,这个是证书的两种种格式,签名内核需要用到pfx格式的证书。
2. 解压证书文件:
打开文件可以看到2个文件。包括交叉根和用户代码签名证书,如图
3. 用SignTool签名工具签名:
现在,就可以使用WDK的 SignTool 签名你的文件了。先将您的证书XXX.pfx文件和微软签发的内核签名交叉根证书 MS_XS.crt放到签名signtool工具所在目录,签名命令为:
XP用户: signtool sign /v /ac MS_XS.crt /f xxx.pfx /p 密码 /t http://timestamp.digicert.com test.sys
Win7&8: signtool sign /v /ac MS_XS.crt /f xxx.pfx /p 密码 /tr http://timestamp.digicert.com test.sys
其中:
(1) /ac: 加载内核签名专用交叉根证书, MS_XS.crt 是微软签发的内核签名交叉根证书;
(2) /f xx.pfx: 加载代码签名证书。请把颁发给你的用户证书放到signtool目录下,或者指定文件路径;
(3) /p 密码:申请证书时候设置的密码;
(4) /t,/tr: 为代码加上WoSign时间戳,确保签名后的代码永不过期;
(5) test.sys: 就是您要签名的内核文件,当然可以是其他类型文件,如.dll,.cat, .exe文件或者指定文件路径;
请注意:签名时,一定要保证能连上互联网,否则由于无法访问时间戳服务器而失败。
签名完成后,如果显示“Successfully signed and timestamped”(成功签名与加上时间戳),如下图所示,这表明签名已经成功:
4. 验证内核签名:
执行以下命令验证内核签名是否正确:
signtool verify /v /kp mydrv.sys
如果显示如下图一样的证书签名信息,则说明内核签名成功! 请注意: 必须要有图示正确的5级证书签名路径,第1级必须是: Microsoft Code Verification Root, 第2级为:StartCom Certificate Authority; 第3级为:Certification Authority of WoSign; 第4级为:WoSign Class 3 Code Signing CA或WoSign Class 2 Code Signing CA; 第5级为: WoSign颁发给您的公司的内核代码签名证书, 如果证书公司名称为中文,则在签名工具中显示不出来(为空),但这并不影响签名效果。
5. 数字签名.CAT文件
根据inf文件产生cat文件(使用Signability 或 inf2cat : 下载inf2cat工具 , 并参考使用指南),对.cat文件进行数字签名,同上一步骤。这样,您就可以发布您已经签名的内核软件了。