你想在自己编写的软件上刻上自己的名字吗?你想保证用户拿到的软件确实是你写的而不是被加了木马的版本吗?你可以为软件加上数字签名来做到这一切。
本文通过一个实例,一步一步地介绍微软公司提供的数字签名工具的使用方法。
一、准备工作
首先,你需要拥有一个数字证书。现在,在网上有很多CA(Certificate Authoritg,证书授权)中心提供此服务。文后将附有一个目前比较常见的CA中心列表。
到MSDN下载区(http://msdn.microsoft.com/downloads/default.asp)选择左边的Security,会进入安全产品页面。在此页中选择左边的Authenticode,就会进入下载页面了。左边一共有4个选择,选择Authenticode for Internet Explorer 5.0,点击右边的连接下载codesign.exe。
把下载的codesign.exe展开,会得到8个文件。其中对软件进行数字签名的文件是signcode.exe。
得到数字证书和signcode.exe以后,就可以开始对软件进行数字签名了。
二、开始签名
①运行signcode.exe,出现数字签名向导。点击下一步,进入如

1所示的文件选择界面。在该界面中可以选择要签名的文件。目前支持的文件类型有exe、dll、ocx、stl、cab、cat六种。
②选择好文件,点击下一步,会进入

2所示的签名选项窗口,要求选择“典型”设置或者“自定义”设置。在这里我们选择“典型”。
③随后,会出现如

3所示的要求选择签名使用的证书的窗口。点击“从存储区中选择”按钮,在已经安装的证书中选择一个,然后点下一步。
④这时,会要求填写该软件的描述。如果需要,在上边的框里填上软件的名字,下边写上主页地址,然后点下一步(

4)。
⑤如果需要在数字签名上加上日期,表示软件的发行日期,可以添加时间戳。在复选框上打上钩,然后在“时间戳服务URL”的框里写上http://timestamp.verisign.com/scripts/timstamp.dll就可以了。如果不需要,就直接点下一步(

5)。
经过以上5步,数字签名向导已经收集到足够的信息对指定的文件进行签名。因为加上的签名不能去掉,所以出现如

6所示窗口要求对信息进行验证。如果有问题,可以点上一步按钮退回修改;如果没有问题,点完成按钮,签名向导就会对文件进行签名。如果选择了时间戳服务,必须上网才可以成功签名,并且等待的时间可能会长一些。
三、验证签名
查看签名完毕的文件的属性,会有“数字签名”页(

7)。
点击对话框中的详细信息按钮,可以查看签名时用的证书和时间戳(如果有的话)。如果文件被修改过(我们这里使用ExeScope修改一个字符串),则会出现如

8所示的详细信息窗口。
附:中国常见CA中心的网址
上海、北京、天津CA中心 http://www.sheca.com
格尔网络安全 httpL://www.koal.com
中国数字认证网 http://www.ca365.com
中国电信认证中心 http://202.103.65.18
中国金融认证中心 http://www.cfca.com.cn