Microsoft Authenticode 技术

原创 2001年06月12日 13:21:00

Microsoft Authenticode 技术

Microsoft 公司

最终用户需要代码验证的必要性

今日的Web站点提供给用户的不仅是丰富的体验,而且还有可能包括被无意下载的恶意代码。随着Internet上的不断增长的活跃性内容,用户必须经常确定是否从Internet上下载代码。但是,在将代码下载到他们的计算机之前,最终用户无法知道这部分程序的功能。

与实际的零售环境不同,Internet上的软件不会做标记或者被简缩包装。因此,最终用户无法确认Internet一段程序的发布者。而且如果代码已经被篡改他们也无法知道。因此,最终用户在通过Internet下载Java applets、插件(plug-ins)程序、Microsoft® ActiveX™ 控件以及其它可执行代码时都将要冒一定的风险。

Internet Explorer 3.0以后使用代码验证™(Authenticode™)技术帮助最终用户处理这个问题。在用户将软件下载到他们的个人电脑之前,代码验证技术将确认签名软件的发布者并检验该软件是否已被篡改。这样,最终用户可以对是否下载代码作出一个更为全面的决定。

怎样为我的代码签名 

要使用代码验证技术,需要下载ActiveX SDK得到有关工具,并需要下载所需要的更深层次的技术信息。"The Six Steps to Signing Your Code"(对代码设置签名的六个步骤)一文说明了如何从VeriSign等认证授权机构得到你的软件发布者认证,以及如何使用ActiveX SDK中提供的工具对你的代码设置签名并进行测试。下面的内容从更高层次对代码签名过程进行了说明。

  1. 申请和得到软件发布认证
    你需要从一个支持代码验证™技术的CA(Certificate Authority,认证授权)组织申请和得到一个个人或商业软件发布者(Individual /Commercial Software Publisher)认证。 "Digital Certificates for Authenticode"一文提供了有关软件发布者认证登记过程的更为详细的信息。VeriSign现在已能够提供用于软件发布者的数字IDsSM技术(Digital IDsSM for Software Publishers)。
    你必须在该申请过程中生成一对密钥并向CA提供有关的必要信息。这些信息应包括你的姓名、地址、公共密钥以及其它相关信息。相关信息取决于你申请的是个人还是商业软件发布者认证。CA将根据材料检验你的信任度等指标。
    当确定你满足其认证标准后,CA将生成一个满足工业标准X.509认证格式3.0扩展版本的软件发布者认证书(Software Publisher Certificate)。该认证书确定了你的身份并包含着你的公共密钥。它将保存在CA以便查看并被复制一份通过电子邮件返回给你。你应该回顾一下认证书的内容。在接收认证后,你要在所有带有私人密钥签名的发布软件中包含一份认证书的拷贝。
    商业开发人员预计两周内就可以得到对他们申请的回复。商业软件发布者所能得到的认证数目是没有限制的,它帮助你确定能够得到认证的用户以及如何对代码进行签名和分发。
  2. 签名和分发你的软件
    现在你可以开始对软件设置签名并在Internet上进行分发。对代码签名包括下面的几个步骤:
    • 对可执行代码进行一个单向散列(one-way hash)函数并生成一个定长摘要
    • 使用一个私人密钥对摘要进行加密
    • 将加密的摘要与ISV(独立软件开发商)的认证和信用度合成为一个“签名块(signature block)”结构
    • 将该签名块嵌入到可执行代码的文件格式中
  3. 当用户从Internet上下载代码时,浏览器或客户端应用程序将使用一个名为WinVerifyTrust的Win32®函数。该函数调用将解开签名块,验证认证书,并使用ISV 的公共密钥(已由CA验证)对摘要进行解密。然后它对可执行代码重新执行相同的散列函数(在签名块中说明)生成第二个摘要。如果得到的散列摘要不匹配,则或者代码已被更改,或者密钥不是一对匹配密钥。
    根据用户所选择的选项,如果下载代码没有签名或在下载过程中已被篡改,Microsoft Internet Explorer 将会通知用户。这样的结果是用户会对将下载的软件作出更好的决定。"How to Use Authenticode"一文中对最终用户如何使用Internet Explorer处理签名代码提供了更为详细的说明。

Microsoft HoloLens 技术解谜(上)

HoloLens是什么? HoloLens是微软发布的可穿戴式增强现实计算设备,它拥有这么几个关键要素: 它是增强现实产品,即 Augmented Reality(AR),AR技术将计算机生成...
  • hunter_wwq
  • hunter_wwq
  • 2015年01月30日 16:46
  • 1670

通过Microsoft Azure服务设计网络架构的经验分享

作者 王枫 发布于 2014年4月8日 本文从产品设计和架构角度分享了Microsoft Azure网络服务方面的使用经验,希望你在阅读本文之后能够了解这些服务之间,从而更好地设计你的架构。 Mic...
  • azurechina
  • azurechina
  • 2014年11月23日 16:39
  • 1193

十年MFC经历认识的Microsoft技术

原文地址:http://blog.csdn.net/sunhui/article/details/319551         自从2005年3月8日下午16时“十年MFC经历认识的Microso...
  • chenlycly
  • chenlycly
  • 2015年01月12日 21:24
  • 1722

Microsoft CryptoAPI加密技术(一)

Microsoft CryptoAPI加密技术(一)在这个信息爆炸的时代,我们不得不对信息的安全提高警惕。加密作为保障数据信息安全的一种方式,越来越受到人们的关注。下面,我将把自己对Microsoft...
  • anxuegang
  • anxuegang
  • 2011年04月18日 23:46
  • 560

十年MFC经历认识的Microsoft技术

一、初识MFC 我最初知道MFC大概是在1993年,那个时候Visual C++还没面世,当时Microsoft的 C++编译器还很弱,官方的名字是Microsoft C/C++ 7.0,MF...
  • Galaxy_Li
  • Galaxy_Li
  • 2012年08月05日 14:48
  • 3724

十年MFC经历认识的Microsoft技术2

认识Application对象          如果你熟悉Microsoft  Office,你应该进一步的剖析这个大型软件,Microsoft  Office中几乎每个程序都是可二次开发的,这一点...
  • kinhum
  • kinhum
  • 2013年10月19日 02:39
  • 722

十年MFC经历认识的Microsoft技术

一、初识MFC              我最初知道MFC大概是在1993年,那个时候Visual   C++还没面世,当时Microsoft的C++编译器还很弱,官方的名字是Microsoft ...
  • neo_liukun
  • neo_liukun
  • 2011年12月05日 22:03
  • 639

十年MFC经历认识的Microsoft技术

原文地址:http://blog.csdn.net/sunhui/article/details/319551         自从2005年3月8日下午16时“十年MFC经历认识的Microso...
  • chenlycly
  • chenlycly
  • 2015年01月12日 21:24
  • 1722

Microsoft CryptoAPI加密技术(二)

 Microsoft CryptoAPI加密技术(二)作者:Cuick下载本文示例源代码上次我们讲了Microsoft CryptoAPI的构成以及会话密钥的使用。接下来我们将看一下公私密钥对的使用、...
  • kong0609
  • kong0609
  • 2011年03月29日 13:26
  • 353

使用Microsoft Web Deploy技术自动部署

Web Deploy—为什么你会喜欢它 部署一个Web应用程序或站点包含好几个步骤。您通常需要: 1. 拷贝文件和文件夹; 2. 提供数据库结构,或许还要生成一些数据库数据; 3. 在文件和文...
  • English0523
  • English0523
  • 2013年12月18日 09:59
  • 870
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Microsoft Authenticode 技术
举报原因:
原因补充:

(最多只允许输入30个字)