PKI:入门

获取这种可靠且常用的加密技术的基础知识
Joe Rudich (joe@rudich.com)
网络管理员,St. Paul Companies
2000 年 12 月

由于因特网的不断使用,从前那种松懈的面向网络的安全性实践
已经不足以保证数据的
安全。其结果是,“公钥基础结构”或 PKI 被证实是加密数据
的可靠系统,而且商业社会也已经注意到了这一点。在本文中,
Joe 叙述了 PKI 的基本知识 — 涉及的内容以及如何使用它。

因特网已经同时成为一般商业和公司业务的载体,日益被视为是
与之连接的专用通信网的远程扩展来使用。当通过公共因特网发
送敏感数据时安全性得不到足够的强调;而以在线商业为例,确
保安全性是维护用户信心的必要条件。PKI 就是一个提供强大的
开放数据加密和支持加密的服务的杰出方法。

自第一个计算机网络建立以来加密已经在数据通信中扮演了至关
重要的角色,但它对于通过公共网络进行运行的企业尤为关键。
当然,对信息进行编码以及维持其私有并不是新近的需求。据罗
马历史学家希罗多德的研究,使希腊免受公元前 480 年波斯暴
君 Xerxes 魔掌的占领的”密写”,在许多战争中起了极大的作
用,更不用说在自那以后的极少暴力的国事了。在第二次世界大
战期间,Enigma 可能是最有名的战时代码,它给予了德国海军
几乎赢得“大西洋战役”的作战优势。

内部与外部安全性
每位网络管理员或应用程序开发人员都非常重视数据安全性的重
要性,但是在较友好的专用 LAN 领域内,安全性通常有较为宽
松的含义。一个物理上只能由员工访问的网络等同于国内和平时
期的数据通信 — 就象朋友间的聊天一样。内部实践可能仅实施
加密认证(登录)消息,而不是加密发送的大量数据 — 或者,
其加密方法可能只是名义上的,而非特别强大。

因特网的开放使用使得其数据通信如同正在进行战争。由于私营
公司考虑将它们的信息系统向因特网开放,所以应用程序构建商
就可能需要尝试把旧有的安全性实践扩展到这个不熟悉的环境
中。用于验证用户的现有系统是根据内部用户的概念进行设计
的,它可能足以保护那些提供已经在公共域内的信息或具有最小
价值的信息的应用程序的要求。

但是,内部安全性系统通常被证明不适合保护跨越因特网的通信
安全,因为它们要么是专用的(一家公司或特定供应商所有),
要么没有利用足够强大的数据加密 — 或是两者兼而有之。专用
系统经常需要用户在其 PC 上安装特定的软件组件,但这对于公
共用户环境而言是不切实际的。当然,在在线零售或任何其它因
特网商务中发送不加密的数据等于是自取灭亡。

PKI 是软件、加密技术和基于服务器的服务的结合,其设计填补
了上述空白。它正是用大多数内部系统最缺乏的特性来保护通信
安全:它使用了开放、公认的标准,并且同时加密了认证过程和
数据。PKI 还包含了其它一些离散的安全性技术(如数字证
书),但它尤以其系统性方法著称。一个完整的 PKI 系统管理
着认证中心(或从认证中心获取服务),而不仅仅是假设其可用
性和在应用程序内利用它们。

公钥加密
就功能简单而言,PKI 的目的就是加密数据传输。当然,有很多
的加密方法可用,但是它们中的大多数都会有一两个限制,这使
得它们不适合于跨越因特网的交易。提到的最常见的问题之一就
是,使用不得不为客户机手工配置的组件的专用技术。因此,大
多数虚拟专用网(VPN)解决方案将由于为每个用户配置的成本
问题以及用户将等不及访问等原因而无法正常工作。PKI 则可以
让几乎任何因特网用户使用,因为客户机端兼容性已经结合到了
访问因特网时最常用的一些浏览器软件(如 Microsoft
Internet Explorer 和 Netscape Navigator)中。

另有一个不考虑诸多加密系统的问题对于其设计也极其重要:即
它们利用一个秘密的加密密钥(一个用来编码文本的数学值),
这个密钥必须让任何交易中的双方(客户机和服务器)都知道。
这是密码术的经典原则;第二次世界大战中德国 U 型潜水艇都
拥有一个密钥或密钥序列用于读 写 Enigma 密码。如果存在安
全的分发密钥的方法,那么使用共享密钥的密码术就不存在任何
缺陷。对于德国海军,密钥的分发方法是定期把船开到港口并亲
手传递密码本。

而您站点上的因特网用户不太可能到您的港口来取密码本。这就
形成一个问题:如果是在设置加密前通过因特网发送代码密钥,
它是以明文方式发送的,那么任何企图窃听交易的人都可以轻易
地截获该密钥。加密密钥本身就是任何密文中最脆弱的部分;
Enigma 使那些即使是欧洲和美国最优秀的密码破译人员的工作
也遇到极大障碍,包括 AlanTuring,并且永远不会被真正破
译。协约国只有在潜水艇被击毁从而窃取密钥后才能够读取它。
(顺便提一下,这个主意是由 Ian Fleming 构想出来的, 他就
是以后将造就 James Bond 的英国情报局成员之一。)

公钥加密的“主要特性”是它利用了一个包含两部分的密钥,其
中一半由发送方持有,另一半则由接收方持有。想象一下,少男
少女有时使用的一对分成两半的连心锁片中的一个:它上面印着
的消息只有在两人都在时才能完整地读取。简而言之,它就象一
个公钥对,但实际上在客户机-服务器通信中使用了四个密钥:
通信双方各自有一个共同知晓的密钥和一个私人拥有的密钥。密
钥算法被构造成使用它们的特定组合来起作用。在发送数据时,
发送方使用接收方的公钥;这个加密的作用是数据只能使用接收
方私钥译出。

因为使用了这种双密钥过程的数学逻辑,这样通信双方就都不必
知道完整的密钥组合,并且每个密钥都是唯一的。如果德国海军
设计了使用 PKI 的 Enigma,那么就算捕获任何船只或潜水艇的
私钥都不会造成惨重的损失,因为协约国只能获得读取特定船只
的消息而不是整个海军的消息的能力。而且,他们不必担心密钥
的分发,因为公钥可以通过公开的通信通道发送。公钥加密的关
键操作是验证消息接收方的身份,以便用正确的公钥进行加密。

PKI 组件
这个标识过程,以及公钥的存储是 PKI 系统的组成部分。其要
害是:PKI 在其中心位置管理着数字证书,每个证书都由一个公
钥和一个私钥组成,用以认证用户和加密数据。随着证书受到正
确的管理,网络安全性甚至可以被配置为使用其它开放的标准加
密技术(如 IPSec)进行数据传输。

证书形成了公钥加密的标识和密码操纵部分,但 PKI 系统的中
心是认证中心(CA),它将颁发和管理那些证书。CA 可能是由
某个组织本地运作的,在这种情况下,它采用一台或多台服务器
运行一种服务的形式,如 Microsoft 的 Certificate
Services for Windows 2000。但 CA 通常是外购的。在因特网
上有很多公认的公共 CA,如 VeriSign 或 Entrust,它们的身
份已经被编写到大多数浏览器应用程序中。

本地运作的 CA 通常控制着公钥基础结构的其它大多数方面。在
建立将使用 PKI 的应用程序时必须考虑的功能部分包括:

认证中心
数字证书
证书发布地点,这是存储和发布证书的地方。它是发布地点,可
能是作为 CA 运作 的机器上的一个磁盘目录,或一个安全性目
录,如 Netscape 或 Microsoft 的 Active Directory

证书撤销列表(CRL),它是证书的一个参考列表,列表中的证
书已标记为在它们原始到期日前被撤销。

管理工具
支持 PKI 的应用程序

证书的有效期
任何私营公司或其它组织在利用证书时都可能会考虑到外购部分
的管理过程。即使 CA 角色受外部实体代理,安全性的级别还是
将通过证书以有效期设置的策略来驱动,它由五个不同的阶段构
成:

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
事实上 PKI 的每个组件都可以是外购的,以这样或那样的形
式。运作其自己 CA 的组织通常会购买服务与管理软件,而不是
随便从头创 建 CA 功能。还有一些厂商则提供咨询服务,特别
是出于内部设计、创建或管理 PKI 的目的。

但是,涉及第三方公司的最常见选择,是将 CA 外包给一个商业
团体。在某些方面这实际上是必需的;在管理大众商业时就期望
使用它。如果在线零售商颁发其自己的数字证书,并且把浏览器
配置成警告或拒绝他人的访问,那么用户很可能会对该零售商产
生几分怀疑。

另一方面,商业性 CA 已经建立起来,并且应用程序期望它们成
为大多数因特网证书的源泉。即使象 Microsoft 这样的公司,
这些公司有强大的因特网存在,并且有能力颁发自己的证书,仍
然会为了它们自己的可信度而从其它公共 CA 处获取一些证书。
(有关提供 PKI 服务的公司列表,请参阅参考资料。)

PKI 的未来
公钥加密的使用确实是伴随因特网的不断流行而成长起来的:其
有效的加密以及和开放可用的标准客户机软件使它成为实现安全
通信的绝佳选择,并且它在需求增长时又具有改进加密强度的灵
活性。虽然组织通常会外购 PKI 的某些方面,但在准备基于
Web 的应用程序或管理服务器时,全面了解整个系统的运作是无
价的。

参考资料

VeriSign 是最大的公共 CA,也是最早广泛推广 PKI 并建立 公
共 CA 的公司之一。VeriSign 除了是公认的最可信公共 CA 之
一,还提供专用 PKI 工具, 包括称为 OnSite 的证书颁发服
务,这项服务充当了本地 CA,而且连接到了 VeriSign 的公
共 CA。

Baltimore Technologies 提供了名为 UniCERT 的 PKI 产品系
列,这些产品在管理多个 CA 之间的交互操作方面建立了良好的
声誉。这使得它们特别适合于公共 CA 和非常大型的组织。

Microsoft 已经提供了一个证书管理服务作 为 Windows NT 的
一个附加件,并且现在已经把完整的 CA 功能都合并到了
Windows 2000 中。低 成本(特别是对于那些拥有 Windows
2000 服务器的用户)使得它们的工具对于严格意义上的内部使
用极具吸引力。

Entrust Technologies 的 Entrust/Authority 产品系列以其自
动密钥管理的工具而著称。这对于内部的 CA 操作非常有意义,
并且可以通过减少与 CA 的手工交互操 作来降低 PKI 的某些实
际成本。

Thawte 是紧跟在 VeriSign 后的第二大公共 CA,并且它为 内
部的 PKI 管理提供了一个“入门级 PKI 程序(Starter PKI
Program )”。

关于作者
Joe Rudich 是位于 Minnesota 州 St. Paul 的 St. Paul
Companies 的网络管理员。您可以通过电子邮 件
joe@rudich.com 与他联系。

文章分类 安全文档

发表评论

电子邮件地址不会被公开。