以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML安全 』 (http://bbs.xml.org.cn/list.asp?boardid=27) ---- [转帖]PKI:入门 (http://bbs.xml.org.cn/dispbbs.asp?boardid=27&rootid=&id=22808) |
-- 作者:admin -- 发布时间:10/7/2005 2:31:00 PM -- [转帖]PKI:入门 获取这种可靠且常用的加密技术的基础知识 Joe Rudich 由于因特网的不断使用,从前那种松懈的面向网络的安全性实践已经不足以保证数据的安全。其结果是,“公钥基础结构”或 PKI 被证实是加密数据的可靠系统,而且商业 社会也已经注意到了这一点。在本文中,Joe 叙述了 PKI 的基本知识 ― 涉及的内容以及如何使用它。 自第一个计算机网络建立以来加密已经在数据通信中扮演了至关重要的角色,但它对于通过公共网络进行运行的企业尤为关键。当然,对信息进行编码以及维持其私有并不是新近的需求。据罗马历史学家希罗多德的研究,使希腊免受公元前 480 年波斯暴君 Xerxes 魔掌的占领的"密写",在许多战争中起了极大的作用,更不用说在自那以后的极少暴力的国事了。在第二次世界大战期间,Enigma 可 能是最有名的战时代码,它给予了德国海军几乎赢得“大西洋战役”的作战优势。 内部与外部安全性 因特网的开放使用使得其数据通信如同正在进行战争。由于私营公司考虑将它们的信息系统向因特网开放, 所以应用程序构建商就可能需要尝试把旧有的安全性实践扩展到这个不熟悉的环境中。用于验证用户的现有系统 是根据内部用户的概念进行设计的,它可能足以保护那些提供已经在公共域内的信息或具有最小价值的信息的应用 程序的要求。 但是,内部安全性系统通常被证明不适合保护跨越因特网的通信安全,因为它们要么是专用的(一家公司或特定供应商所有),要么没有利用足够强大的数据加密 ― 或是两者兼而有之。专用系统经常需要用户在其 PC 上安装特定的软件组件,但这对于公共用户环境而言是不切实际的。当然,在在线零售或任何其它因特网商务 中发送不加密的数据等于是自取灭亡。 PKI 是软件、加密技术和基于服务器的服务的结合,其设计填补了上述空白。它正是用大多数内部系统 最缺乏的特性来保护通信安全:它使用了开放、公认的标准,并且同时加密了认证过程和数据。PKI 还 包含了其它一些离散的安全性技术(如数字证书),但它尤以其系统性方法著称。一个完整的 PKI 系统管理着认证中心(或从认证中心获取服务),而不仅仅是假设其可用性和在应用程序内利用它们。 公钥加密 另有一个不考虑诸多加密系统的问题对于其设计也极其重要:即它们利用一个秘密的加密密钥(一个 用来编码文本的数学值),这个密钥必须让任何交易中的双方(客户机和服务器)都 知道。这是密码术的经典原则;第二次世界大战中德国 U 型潜水艇都拥有一个密钥或密钥序列用于读 写 Enigma 密码。如果存在安全的分发密钥的方法,那么使用共享密钥的密码术就不存在任何缺陷。对于德国 海军,密钥的分发方法是定期把船开到港口并亲手传递密码本。 而您站点上的因特网用户不太可能到您的港口来取密码本。这就形成一个问题:如果是在设置加密前通过因特网发送代码密钥,它是以明文方式发送的,那么任何企图窃听交易的人都可以轻易地截获该密钥。加密密钥本身就是任何密文中最脆弱的部分;Enigma 使那些即使是欧洲和美国最优秀的密码破译人员的工作也遇到极大障碍,包括 AlanTuring,并且永远不会被真正破译。协约国只有在潜水艇被击毁从而窃取 密钥后才能够读取它。(顺便提一下,这个主意是由 Ian Fleming 构想出来的, 他就是以后将造就 James Bond 的英国情报局成员之一。) 公钥加密的“主要特性”是它利用了一个包含两部分的密钥,其中一半由发送方持有,另一半则由 接收方持有。想象一下,少男少女有时使用的一对分成两半的连心锁片中的一个: 它上面印着的消息只有在两人都在时才能完整地读取。简而言之,它就象一个公钥 对,但实际上在客户机-服务器通信中使用了四个密钥:通信双方各自有一个共同 知晓的密钥和一个私人拥有的密钥。 密钥算法被构造成使用它们的特定组合来起作用。在发送数据时,发送方使用接收方的公钥;这个加 密的作用是数据只能使用接收方私钥译出。 因为使用了这种双密钥过程的数学逻辑,这样通信双方就都不必知道完整的密钥组合,并且每个密钥都是唯一的。如果德国海军设计了使用 PKI 的 Enigma,那么就算捕获任何船只或潜水艇的私钥都不会造成惨重的损失,因为协约国只能获得读取特定船只的消息而不是整个海军的消息的能力。而且,他们不必担心密钥的分发,因为公钥可以通过公开的通信通道发送。公钥加密的关键操作是验证消息接收方的身份,以便用正确的公钥进行加密。 PKI 组件 证书形成了公钥加密的标识和密码操纵部分,但 PKI 系统的中心是认证中心(CA),它将颁发和管理那些证书。CA 可能是由某个组织本地运作的,在这种情况下,它采用一台或多台服务器运行一种服务的形式,如 Microsoft 的 Certificate Services for Windows 2000。但 CA 通常是外购的。在因特网上有很多公认的公共 CA,如 VeriSign 或 Entrust,它们的身份已经被编写到大多数浏览器应用程序中。 本地运作的 CA 通常控制着公钥基础结构的其它大多数 方面。在建立将使用 PKI 的应用程序时必须考虑的功能部分包括: 认证中心 1. 证书登记:从用户向 CA 请求证书开始利用 PKI。(当然, 对于最终用户来说,这应该是一个透明过程。)这是用户(实际是指用户的 支持 PKI 的应用程序,如 Web 浏览器)和 CA 之间的合作过程,该过程从用户生成密钥对(公钥和私钥)时开始。 登记还可能涉及登记信息的收集和显示,其中隐含了大量的策 略。有些 CA 被设计成在授予证书前需要得到人许可,并且可能要求 个人形成的证明,如直接对话或出示已公证的身份文档。当用户是大众商业 实体(如在线零售商)时,这就很合理,因为客户需要得到可靠的证明, 用以保证他们正是在与期望的公司进行通信。 完整的用户请求由公钥(自己生成的)和这一登记信息 构成。一旦用户请求了证书,CA 就根据其建立的策略规则验证 信息。如果确定信息有效,则 CA 创建该证书。然后,CA 把 用户的公钥发送到指定的任何资源库(内部的目录或公用服务器),并 使用该公钥把识别证书发送给用户。使用 PKI 加密, 证书只能由生成匹配私钥的用户译码。 2. 证书分发:登记过程的另一半,分发被视为单独的过程只是因为它可能涉及到在 CA 层次上的管理层的干预。这个阶段还包括对影响证书使用的策略的设置。 3. 证书撤销:当发出证书时,将根据分发策略为它们配置特定的到期日。如果需要在该日期之前取消证书,则可以指示 CA 将这一事实发布和分发到证书撤销列表(CRL)中。 浏览器和其它支持 PKI 的应用程序则配置成需要对当前 CRL 检查 CA,并且 如果他们无法验证某一证书还没有被添加到该列表,将不进行任何操 作。证书可能会因各种原因而被撤销,包括证书接收方被泄露,或者 CA 本身被“黑”掉。 4. 证书延期:当证书到达为它设置的到期日时,其用户可能需要(自动地,根据 应用程序的配置)延期该证书。显然,这取决于最初设置的到期日,而且取决于 CA 持有 的证书的到期日,因为 CA 不能颁发在其自己的到期日后又将到期的证书。 5. 证书审计:证书审计的过程取决于 CA 的类型及其管理工具,但它是一项必要的任务。这主要涉及跟踪证书的创建和到期(以及可能的撤销),但在某些情况下还可以记录证书的每次成功使用。 外购 PKI 但是,涉及第三方公司的最常见选择,是将 CA 外包给一个商业团体。在某些方面这实际上是必需的;在管理大众商业时就期望使用它。如果 在线零售商颁发其自己的数字证书,并且把浏览器配置 成警告或拒绝他人的访问,那么用户很可能会 对该零售商产生几分怀疑。 另一方面,商业性 CA 已经建立起来,并且应用程序期望它们成为大多数因特网证书的源泉。即使象 Microsoft 这样的公司,这些公司有强大的因特网存在,并且有能力颁发自己的证书, 仍然会为了它们自己的可信度而从其它公共 CA 处获取一些证书。(有关提供 PKI 服务的公司列表,请参阅 参考资料。) PKI 的未来 参考资料 您可以参阅本文在 developerWorks 全球站点上的 英文原文. |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
31.250ms |