admin 管理员组

文章数量: 887017

在Windows Vista 和Windows 7 64位系统下安装的内核驱动程序都需要经过证书数字签名,否则无法安装。本文介绍如何给驱动文件进行签名。

签名介绍
驱动文件进行签名首先需要向CA证书机构(例如VerSign、GlobalSign)购买签名证书,从微软网站下载交叉证书,然后使用签名工具SignTool进行签名。

驱动签名证书
从CA证书版本机构购买的驱动签名证书,通常包含一个双证书文件myCert.spc(包含一个CA证书和一个签名证书)以及一个私钥文件myCert.pvk。
然后将得到的证书文件转换为签名工具可以使用的pfx(个人信息交换)格式,可以借助工具Pvk2Pfx:

Pvk2Pfx -pvk myCert.pvk -pi 123456 -spc myCert.spc -pfx myCert.pfx -po 123456

-pvk 指定密钥文件
-spc 指定双证书文件
-pi 保护输入密钥的密码
-pfx 输出的pfx证书文件
-po 保护输出密钥的密码

执行成功后会生成myCert.pfx文件

交叉签名证书
可以从Microsoft网站可以下载相应的交叉证书,交叉证书和驱动签名证书的CA必须是相同的:
http://www.microsoft/whdc/driver/install/drvsign/crosscert.mspx;
此处以VerSign签名证书为例下载后的文件为MSCV-VSClass3.cer 。

签名工具
Signtool.exe,签名会使用到该工具的sign命令,以下是该命令常用的参数:
  /v 执行成功、执行失败或产生警告消息时生成详细输出。
  /a 自动选择最佳的签名证书。
  /c 指定用于对证书进行签名的证书模板名(一个 Microsoft 扩展),交叉签名证书。
  /f 指定签名证书文件(pfx格式)。
  /p 指定签名证书的私钥保护密码。
  /t 指定时间戳服务器的 URL。
详细命令和参数参考:http://msdn.microsoft/zh-cn/library/8s9b9yaz(VS.80).aspx

驱动文件签名

SignTool sign /v /ac MSCV-VSClass3.cer /f myCert.pfx /p 123456 /t http://timestamp.verisign/scripts/timestamp.dll mydrv.sys

The following certificate was selected:
    Issued to: My Company Co.,Ltd
    Issued by: VeriSign Class 3 Code Signing 2004 CA
    Expires:   Sat Sep 24 07:59:59 2011
    SHA1 hash: 4C59A129D4A09F2FD53B75B79D3C7BE91D832EE7

Cross certificate chain (using machine store):
    Issued to: Microsoft Code Verification Root
    Issued by: Microsoft Code Verification Root
    Expires:   Sat Nov 01 21:54:03 2025
    SHA1 hash: 8FBE4D070EF8AB1BCCAF2A9D5CCAE7282A2C66B3

        Issued to: Class 3 Public Primary Certification Authority
        Issued by: Microsoft Code Verification Root
        Expires:   Tue May 24 01:11:29 2016
        SHA1 hash: 58455389CF1D0CD6A08E3CE216F65ADFF7A86408

            Issued to: VeriSign Class 3 Code Signing 2004 CA
            Issued by: Class 3 Public Primary Certification Authority
            Expires:   Wed Jul 16 07:59:59 2014
            SHA1 hash: 197A4AEBDB25F0170079BB8C73CB2D655E0018A4

                Issued to: My Company Co.,Ltd
                Issued by: VeriSign Class 3 Code Signing 2004 CA
                Expires:   Sat Sep 24 07:59:59 2011
                SHA1 hash: 4C59A129D4A09F2FD53B75B79D3C7BE91D832EE7

Done Adding Additional Store
Successfully signed and timestamped: mydrv.sys

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

本文标签: 指南 系统 Windows vista