如何对ActiveX控件做数字签名?

akiko 2001-09-17 09:37:24
加精
...全文
653 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
水哥驿站 2002-03-09
  • 打赏
  • 举报
回复
gz
wybm 2001-09-17
  • 打赏
  • 举报
回复
ActiveX 部件的数字签名


Internet Explorer 的缺省安全设置要求任何可下载的软件在下载之前必须拥有一个数字签名。数字签名能用于对以下内容进行核实:

文件的内容。


文件有可靠的来源。
签名提供了一种验证文件内容的方法,该方法确保该文件在可用于下载后未被改变过。数字签名通过标识创建软件的合法实体来验证来源。当您在可下载的软件中加入了签名,您就是合法实体。合法实体应该为签名软件被下载时或运行后所造成的损失负责。

应被签名的软件
有五种类型的文件可以使用数字签名:

.exe 文件


.cab 文件


.dll 文件


.ocx 文件


.vbd 文件
如果提供以上类型的文件下载,就应为其设置数字签名。

注意 通常,只要在部件打包后的 .cab 文件中进行签名就足够了。然而,如果要发行的 .ocx、.exe、.vbd 或 .dll 文件没有打包在 .cab 文件中,就要单独为其进行签名。

您可以通过向认证机构购买证书来获得数字签名。认证机构是一个确认身份并发行认证证书的公司。证书中包含您的数字签名,是您信用的验证。一旦出现问题,认证机构将成为您身份的见证人。

公用密钥与私用密钥
在使用数字签名时要使用 Authenticode 技术。Authenticode 的目的是通过建立责任制来阻止有害代码的发行。Authenticode 将验证发布代码的发行人的身份给要下载这份代码的 Internet 最终用户。此外,Authenticode 可以为用户确保该代码在签名后未被改动。

Authenticode 技术来源于公用密钥签名技术。该技术使用了密钥对来加密数据。密钥对用于文件的加密和解密。在公用密钥技术中,公用密钥和私用密钥确保了文件的私有性。公用密钥用于加密数据,而私用密钥则用来解密数据。尽管该技术用于保护诸如电子邮件之类的小文件是很成功的,但是对于大文件,这一过程却是非常消耗时间的。Authenticode 正是这种技术的一种改进形式,专供大文件使用。

Authenticode 与签名
以下是 Authenticode 过程中的一些步骤:

在开发者对文件签名时,要计算一个哈希数。哈希数表示文件的总字节长度。该数字用私用密钥加密并插入到文件中。然后,开发者将文件进行打包并将其部署到 Web 服务器上。


当用户下载或安装文件时,他们的计算机计算第二个哈希数,并同原先的进行比较。如果数字相同,则文件的内容就得到了验证。


浏览器使用公用密钥来决定您的身份和提供数字签名的认证机构。


认证机构核实开发者的身份,并将包含经私用密钥加密的开发者名字的证书授予开发者。


浏览器使用私用密钥将文件解密。然后进行安装。
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 文件进行签名。为代码签名主要有两步。首先,必须申请证书,然后再进行签名。

要为您的代码签名,请按以下步骤执行:

向认证机构申请证书。请访问http://www.microsoft.com/workshop/prog/security/authcode/certs.htm,以获得有关如何获得证书的指导。


从http://www.microsoft.com/workshop/prog/sdk/ 上获取 ActiveX SDK 的最新版本。其中包含您对代码签名所需要的工具。


准备要签名的文件。如果对.exe、.ocx、.vbd 或.dll 文件签名,您不需要做任何特别的事情。如果对.cab 文件签名,您必须将以下条目添加到 .ddf 文件中,并重新生成.cab 文件:
.Set ReservePerCabinetSize=6144

使用 ActiveX SDK 中的工具对文件签名。下面是对文件签名的一个示例:
Signcode -prog myfilename -name displayname -info http://www.mycompany.com - spc mycredentials.spc -pvk myprivatekey.pvk

测试签名:
要测试一个签了名的.exe、.dll、.vbd 或.ocx 文件,请运行 chktrust filename
filename 是您签了名的文件。


要测试一个签了名的.cab 文件,请运行 chktrust -c cabfilename.cab
cabfilename 是您签了名的 .cab 文件。
如果签名成功,以上任何一步测试都会显示证书。
haichuang 2001-09-17
  • 打赏
  • 举报
回复
http://kingron.myetang.com/sundayboys.htm
xzygod 2001-09-17
  • 打赏
  • 举报
回复
在2000srv上装证书服务

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧