打造自己的防伪标识──跟我学做数字签名 任晓磊 2001年 32期 你想在自己编写的软件上刻上自己的名字吗?你想保证用户拿到的软件确实是你写的而不是被加了木马的版本吗?你可以为软件加上数字签名来做到这一切。   本文通过一个实例,一步一步地介绍微软公司提供的数字签名工具的使用方法。   #1 一、准备工作   首先,你需要拥有一个数字证书。现在,在网上有很多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以后,就可以开始对软件进行数字签名了。   #1 二、开始签名   ①运行signcode.exe,出现数字签名向导。点击下一步,进入如^32020202a^1所示的文件选择界面。在该界面中可以选择要签名的文件。目前支持的文件类型有exe、dll、ocx、stl、cab、cat六种。   ②选择好文件,点击下一步,会进入^32020202b^2所示的签名选项窗口,要求选择“典型”设置或者“自定义”设置。在这里我们选择“典型”。   ③随后,会出现如^32020202c^3所示的要求选择签名使用的证书的窗口。点击“从存储区中选择”按钮,在已经安装的证书中选择一个,然后点下一步。   ④这时,会要求填写该软件的描述。如果需要,在上边的框里填上软件的名字,下边写上主页地址,然后点下一步(^32020202d^4)。   ⑤如果需要在数字签名上加上日期,表示软件的发行日期,可以添加时间戳。在复选框上打上钩,然后在“时间戳服务URL”的框里写上http://timestamp.verisign.com/scripts/timstamp.dll就可以了。如果不需要,就直接点下一步(^32020202e^5)。   经过以上5步,数字签名向导已经收集到足够的信息对指定的文件进行签名。因为加上的签名不能去掉,所以出现如^32020202f^6所示窗口要求对信息进行验证。如果有问题,可以点上一步按钮退回修改;如果没有问题,点完成按钮,签名向导就会对文件进行签名。如果选择了时间戳服务,必须上网才可以成功签名,并且等待的时间可能会长一些。   #1 三、验证签名   查看签名完毕的文件的属性,会有“数字签名”页(^32020202g^7)。   点击对话框中的详细信息按钮,可以查看签名时用的证书和时间戳(如果有的话)。如果文件被修改过(我们这里使用ExeScope修改一个字符串),则会出现如^32020202h^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