Internet Explorer 的缺省安全设置要求任何可下载的软件在下载之前必须拥有一个数字签名。数字签名能用于对以下内容进行核实:
签名提供了一种验证文件内容的方法,该方法确保该文件在可用于下载后未被改变过。数字签名通过标识创建软件的合法实体来验证来源。当您在可下载的软件中加入了签名,您就是合法实体。合法实体应该为签名软件被下载时或运行后所造成的损失负责。
有五种类型的文件可以使用数字签名:
如果提供以上类型的文件下载,就应为其设置数字签名。
注意 通常,只要在部件打包后的 .cab 文件中进行签名就足够了。然而,如果要发行的 .ocx、.exe、.vbd 或 .dll 文件没有打包在 .cab 文件中,就要单独为其进行签名。
您可以通过向认证机构购买证书来获得数字签名。认证机构是一个确认身份并发行认证证书的公司。证书中包含您的数字签名,是您信用的验证。一旦出现问题,认证机构将成为您身份的见证人。
在使用数字签名时要使用 Authenticode 技术。Authenticode 的目的是通过建立责任制来阻止有害代码的发行。Authenticode 将验证发布代码的发行人的身份给要下载这份代码的 Internet 最终用户。此外,Authenticode 可以为用户确保该代码在签名后未被改动。
Authenticode 技术来源于公用密钥签名技术。该技术使用了密钥对来加密数据。密钥对用于文件的加密和解密。在公用密钥技术中,公用密钥和私用密钥确保了文件的私有性。公用密钥用于加密数据,而私用密钥则用来解密数据。尽管该技术用于保护诸如电子邮件之类的小文件是很成功的,但是对于大文件,这一过程却是非常消耗时间的。Authenticode 正是这种技术的一种改进形式,专供大文件使用。
以下是 Authenticode 过程中的一些步骤:
ActiveX SDK 中有用于数字签名的 Authenticode 软件工具,用户可以从 Microsoft的 Internet 站点上下载。数字签名必须从发行机构获得,例如 GTE 和 VeriSign 公司。
详细信息 关于如何下载 ActiveX SDK 的详细信息请参阅您 MSDN Library CD-ROM 上的 Internet Client SDK,或 http://www.microsoft.com/workshop/prog/inetsdk/。有关公用和私用加密的详细信息,请在 Internet 上搜索 RSA 或公用密钥签名。
由于您的公司要为所有使用签名的文件负责,而不论签名是否经过授权,所以确保您证书的安全非常重要。您应该将证书保存在发行证书的认证机构中,将文件送去签名。如果将证书保存在自己的站点上,应严格控制其存取权限。
详细信息 要获得有关安全和数字签名的最新技术资料,请访问 Microsoft Web 站点http://www.microsoft.com/security 上的 Microsoft Security Advisor 表中的 Authenticode 链接。
您可以对任何要发行的 .ocx、.exe、.dll、.vbd 或 .cab 文件进行签名。为代码签名主要有两步。首先,必须申请证书,然后再进行签名。
要为您的代码签名,请按以下步骤执行:
.Set ReservePerCabinetSize=6144
Signcode -prog myfilename -name displayname -info http://www.mycompany.com - spc mycredentials.spc -pvk myprivatekey.pvk
如果签名成功,以上任何一步测试都会显示证书。