通行证: 密码: 保存密码
收藏 帮助

代码签名证书


一.什么是代码数字签名

代码数字签名软件开发商使用自己的合法数字证书添加一个数字签名在其代码上,签名后的代码不能被篡改或破坏,否则已有的签名失效。这样,用户下载或安装时就可以确信此代码开发者的真实身份,并且确信此代码没有被非法篡改和被破坏。代码数字签名相当于纸面合同签字,但谁来认证我们签字的真假呢,这就需要有权威的证书机构给我们颁发合法的数字证书。

软件开发商可以使用代码签名证书来签名EXE、DLL、CAB、OCX、CLASS、Java Applets 等多种代码。
 

.获取代码签名证书

数字证书是由权威公正的第三方机构即CA中心签发的,以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。

从数字证书的用途来看,数字证书可分为签名证书和加密证书。签名证书主要用于对用户信息进行签名,以保证信息完整性和行为的不可抵赖;加密证书主要用于对用户传送信息进行加密,以保证信息的机密性。

因此,我们从CA中心获取数字证书,需要先确定数字证书的用途。用户从证书机构申请代码签名证书时会生成证书私钥文件,如:myCert.pvk,而代码签名证书成功颁发后的证书文件为公钥文件,如:myCert.spc,又称:软件发行证书(Software Publishing Certificate) 。 代码签名证书一般都是采用公钥和私钥分离的两个文件方式,适合于 DOS 命令行方式的代码签名。您也可以把代码签名证书导入到Windows证书存储区中,从而简化签名操作。

数字证书信息中包括了证书链信息,以确认此证书的信任来源。当数字证书需要得到信任时,其根证书需要得到信任。因此,在给代码进行数字签名前,我们不仅需要安装自己的数字证书,还需要安装证书的根证书

当然,您如果不想单独购买自己的数字证书,则可以使用IE秀提供的经济实惠的数字签名服务。

 

.对代码进行数字签名

使用微软的 SignCode.exe 就可以对微软的代码进行签名,如果您没有此文件,可以从IE秀网站下载。Signcode.exe 可以使用 DOS 命令行方式实现签名,我们推荐用户使用数字签名向导方式,简单方便。请注意:如果您开发的ActiveX为IE加载项,请先数字签名每个CAB文件中的.dll和.ocx等文件,再把这些文件打包成.cab文件后再数字签名.cab文件,以确保所有IE加载项都被IE验证和信任,否则会显示“未验证”而可能影响正常运行。

具体签名向导过程如下:

1. 运行 Signcode.exe , 要求您选择需要签名的文件,支持:可执行文件 (*.exe; *.dll; *.ocx) ; Cabinet 打包文件 (*.cab) 和目录文件 (*.cat) ,如下图所示,请注意:如果签名的文件已经有数字签名,则会被新的签名覆盖:

 2. 点击“下一步”后,如下图所示,会要求您选择“签名类型”,缺省的“典型”签名类型。如果您的数字证书已经导入到Windows证书存储区中,则使用典型,否则请选择“自定义” 签名类型:

3. 如下图所示,点击“从存储区选择”签名证书:

4. 点击“下一步”后,要求填写该签名代码的功能描述,推荐一定要认真填写,因为此信息将会在最终用户下载此代码时显示,有助于最终用户了解此代码的功能以确定是否下载安装。第一行“描述”是指此代码的功能文字描述,第二行“ Web 位置”则让最终用户点击文字描述来详细了解此代码的功能和使用方法等:

5. 点击“下一步”后,如下图所示,选中“将时间戳添加到数据中”,使用相应的时间戳服务URL。一般CA中心会免费向您提供时间戳服务,您也可以使用VeriSign 免费提供的时间戳URL:http://timestamp.verisign.com/scripts/timstamp.dll

时间戳服务非常重要,添加时间戳后,即使您的代码签名证书已经过期,但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信,最终用户仍然可以放心下载,使得即使代码签名证书已经过期,您也无需重签和重新发布已经签名的代码。

6. 点击“下一步”后,如下图所示,会提示正在完成数字签名向导。如果您确认签名设置信息正确,就可以进入完成了。

7. 点击“完成”后提示“已经成功完成”,就完成代码的数字签名:

8. 现在,需要使用 chktrust.exe 来查验已经签名的代码,chktrust.exe 文件已经打包在 signtool.rar 中。进入 DOS 命令提示符,并进入已经签名的文件所在目录,键入命令:chktrust gupiao160.cab ,则会显示实际应用时在 IE 浏览器下载页面的情况,如下图所示。其中软件名称就是您在上面步骤输入的描述,点击此名称就链接到您在上面步骤填写的网址,而点击发行者名称,则会显示您的签名信息和时间戳信息。第 2 行蓝色文字则为该代码的发行者,也就是代码签名证书的申请者。如果使用自己的数字证书,则显示证书上的公司名称;如果使用IE秀的数字证书签名服务,则显示:www.ieshow.net,点击可以查看证书的详细信息。

9. 点击“运行”,则会提示“ GuPiao160.cab: Succeeded ”表示代码 GuPiao160.cab 签名验证有效,可以放到网站上了。请注意:签名后的CAB文件放到网站上需要使用 object 方式。

请注意:不能仅签名CAB文件,CAB包中所有DLL文件都要先签名后再打包,再签名CAB文件,否则IE浏览器会显示为“未验证的发行者”而影响正常使用,甚至杀毒软件会认为是毒而被删除!

 


推荐到博客首页 (0) |  复制链接 |  评论: 4 |  阅读: 7096 |  个人分类: 杂七杂八 |  系统分类: 大杂烩 |  发表于: 2007.09.19 11:28

评论


 回复 发布者:verisign
2011-12-01 11:17
更多代码签名证书相关资料请查看http://verisign.ert7.com

发布者:匿名
2011-06-03 11:04
业界老大VeriSign品牌的代码签名证书介绍及指南:http://www.willrey.com/product.html

发布者:匿名
2008-11-21 10:05
签名指南:http://www.wosign.com/support/signcode_guide.htm

发布者:匿名
2007-11-07 13:07
我研究了半天也搞不懂哦,可以幫我搞自行簽名嗎? QQ:401315389 謝謝哈~~

表情 超链接
操作中,请等待...