关于 Windows 2000 公钥基础结构的介绍 |
| 摘要 |
| 公钥加密是用于电子商务、Intranet、Extranet 和其它网络应用程序的核心技术。但是,要想充分利用公钥加密带来的好处,需要基础结构的支持。Microsoft? Windows? 2000 操作系统本身包括了一个公钥基础结构 (PKI),它从最底层开始就是为充分利用 Windows 2000 安全结构的优势而设计的。
本文介绍了公钥安全系统的基础,包括其优点和使用时需要的组件。还阐述了 Windows 2000 PKI 组件如何在保证协作性、安全性、灵活性和易用性的同时提供所需的服务。 |
| 概述 |
| 只要使用正确,公钥加密可带来巨大的安全利益。同其它正启用的技术一样,公钥加密也需要基础结构才能发挥其作用。但是,公钥基础结构 (PKI) 既不是物理对象,也不是软件进程,而是由一套相互关联的组件提供的一组有用服务。这些组件一起为应用程序和用户提供了基于公钥的安全服务。
本白皮书有两个目的:解释公钥技术及其用途;解释 Microsoft? Windows? 2000 操作系统本身提供的 PKI 的功能和优点。了解这两方面有助于您决定怎样利用 PKI 技术以改进业务过程,并提高安全处理对外事务的能力。
在本文中,您将了解到什么是公钥基础结构;它能给您的操作带来哪些好处;以及 Windows 2000 PKI 如何提供“协作性”、“安全性”、“灵活性”和“易用性”。
本文件着重强调 Windows 2000 PKI 所带来的商业利益。如果读者想了解更多的技术说明,请参考: MS Windows 2000 公钥基础结构
|
| 介绍 |
| 公钥基础结构 (PKI) 的目的是便于商业业务利用公钥加密。公钥加密对电子商务、Internet、Intranet 和其它需要“分布式安全性”(分布式安全指参与各方分属不同网络且没有公用安全凭据情况下的安全性)的应用程序来说是非常重要的。公钥加密是实现此目标的最好、最有效的途径。
公钥加密为商业提供了三项非常有价值的能力。首先,它保障了数据的隐私权。其次,它允许使用用户和机器的可靠标识,或者叫做“身份验证”。最后,它具有不可否认的特点 - 它能证明某人采取过某项操作。商业方面运用这些能力的示例包括:
隐私权
·给通过 Internet 发送的电子邮件加密,以防止中途偷阅。
·客户访问您的站点时给网络通信加密,保护其订购信息和信用卡号码。
·为 NetMeeting? 会议软件会话加密,防止被窃听。
身份验证
·验证企业 Intranet 来访者的身份,以便允许其阅读某些文件。
·让客户相信他访问的网站是您的网站,而不是那些伪装的恶意网站。
·以真诚的方式为客户提供贵公司的年度报告。
不可否认性
·在您的电子商务站点强行创建不可修改的客户购买请求记录。
·签署合法的电子合同。 |
| 什么是公钥加密? |
| 大多数人一听到“加密”或“加密法”就会立即想到密钥加密,即,双方共享同一个密钥,用它进行数据的加解密。密钥的丢失或泄露给用它加密的数据造成危险。与此不同的是,公钥系统采用“两把”密钥:一把共享的公钥和一把必须妥善保管的私钥。这两把钥匙是互补的:如果用公钥加密,则只能用相应的私钥解密,反之亦然。
公钥系统取决于公钥和私钥之间的数学关系。您不可能根据其中一把猜出另一把。公钥加密有两项基本操作:加密和签署。
加密的目的是保护数据,只有预期的收阅方才能阅读。在公钥加密中,如果 Bob 想给 Alice 发些秘密的数据,就可用她的公钥加密后发送给她。 Alice 收到加密数据后,就用她的私钥来解密。这里有一个重要概念,即,Alice 可四处分发她的公钥,以便世界上的任何人都能给数据加密,但只有她自己能解密。如果 Bob 和 Chuck 都有她公钥的副本,那么即使 Chuck 截获了 Bob 给 Alice 的加密消息,他也无法解密,因为只有 Alice 的“私”钥能解密,而且也只有她有私钥。
签署也要用到加密,但此时的目的是为了证明数据的来源。如果 Alice 希望别人知道她是某段消息的作者,她可用她的私钥加密,然后公开发表。此操作不保护数据的隐私权,因为很多人有她的公钥,任何人都可用她的公钥来解密此数据。但是,用 Alice 的公钥解密的前提是,数据要用她的私钥加密,而只有她有私钥,因此该信息肯定是 Alice 发出的。
这两种操作可用来提供三项功能 - 隐私权、身份验证和不可否认性,使分布式安全性成为可能,从而保证了电子商务、Intranet、Extranet 和其它网上商业行为的成功实施。 |
| 隐私权 |
| 任何形式的商业都牵涉到保密,而对利用 Internet 的业务来说,保密尤为重要。Internet 使世界上的任何人都能与别人交流,但它不保证安全。即使在贵公司的内部网上,如果某人能获得访问此网络媒介的物理途径,他就能窃取网上传播的所有数据。
不论是电子邮件、通过 Internet 发送的信用卡号码还是网络通信等形式的数据,公钥加密都可通过数据加密来提供隐私保护,因为公钥可自由投递,完全陌生的人之间也可通过获得对方的公钥并加密数据而建立简单的私人联系。 |
| 身份验证 |
| 任何交易都涉及两方,不论是客户端和服务器,还是客户和供应商。对许多交易来说,其中一方或双方都希望能进行“身份验证”,即验证对方的身份。例如,客户向电子商务网站提供信用卡号码前会希望确认该网站不是假冒的。客户的确认方法之一是,让网站证明它有正确的私钥。例如,网络浏览器可用网站的公钥给某段信息加密,然后要求网络服务器解密,以此来证明服务器有正确的私钥,从而证明其身份。
身份验证的另一个方法是,让客户相信,您提供了一特定的数据,而且此数据没被损坏。公钥加密能以“数字签名”的方式做到这一点,所谓数字签名指的是上面所述的公钥签署操作的一种延伸概念。如果 Bob 希望以数字方式签署其公司的年度报告,他首先要用一种叫做“散列算法”的算法生成此报告的唯一指纹。散列算法是专门设计的,它保证即使文档中只有一个字节的改动都会造成完全不同的散列。然后,他用其私钥加密报告和该散列。Alice(或任何其他人)可先用 Bob 的公钥来给该签名报告解密,验证其来源和真实性,然后自己计算指纹,并和收到的指纹对比。如果两者相符,则可证明两件事:报告未受到损坏;它的确是 Bob 发出的。 |
| 不可否认性 |
| 不论是真实世界中还是在 Internet 上,做生意都需要达成有约束力的协议。卖方和买方都需要得到保证:在达成协议后,对方今后将无法否认该协议。在许多国家和美国的许多个州里,电子订购、合同和其它协议中的数字签名是有法律约束力的,而且合法验收也正在飞速发展。 |
| 什么是公钥基础结构? |
| 现在您已了解公钥加密及其价值,因此我们可以给 PKI 下定义了。PKI 是便于使用公钥加密的一套操作系统和应用程序服务。PKI 使您能:
·管理密钥 :PKI 方便了颁发新密钥、检查或吊销现有密钥、以及管理不同颁发者发行的密钥的信任程度。
·发行密钥 :PKI 为客户端明确定义了定位和获得公钥,以及查看某公钥是否有效的途径。如果不能获得公钥和知道它的有效性,您的用户就不能利用公钥服务。
·使用密钥 :PKI 为用户提供了便于使用密钥的途径 - 它不仅将密钥置于用户需要的地方,而且还提供了执行公钥加密的便于使用的应用程序,使之能保障电子邮件、电子商务和网络的安全。
有了这些功能后,应用程序开发人员就可用它们开发出更安全的应用程序了。但是,那些应用程序需要有安全、便于使用、灵活的方式来管理、发行和使用公钥,这正是需要 PKI 的原因。
|
| 一项能力,而不是一个实物 |
| 通常有这样一个错误认识,即 PKI 是实物。实际上,它是一种能力,一种便于发行、管理和使用公钥的能力。可将 PKI 想象成城市的供水系统。组成供水系统的有净化厂、水塔、水泵、总给水管等,当然还有您家里的水管和水龙头。所有这些提供不同服务的事物一起为用户提供了在需要时获得水的能力。类似的,PKI 由一组不同的组件组成,它们一起协作,使您能完美、透明地使用公钥和公钥加密。
实施 PKI 最好的地方是操作系统。操作系统已经提供了几个其它基础结构,如打印基础结构(它将文档移至打印机)和文件服务基础结构(它从共享存储器获得文件)。在这两种情况下,操作系统都提供了透明、方便地利用网络服务的能力,就和 PKI 一样。 |
| 数字证书:给公钥打包 |
| 到此为止,本文已在讨论 PKI 使用的对象的时候讲述过公钥了。我们需要公钥以保障基于 PKI 的安全性,它们一般被打包成“数字证书”。(只有公钥才打包成证书,强调这一点很重要。私钥永远不会被共享,因此它不需要打包 - 它只需安全保存)。证书包括公钥和一组属性,例如公钥所有人的名称。与属性有关的可能是所有人的身份、允许其执行的操作或者什么条件下证书才有效。属性和公钥之间存在这种绑定关系是因为,证书是由颁发证书的实体以数字方式签署的,颁发者在证书上的签名证明它的真实性和正确性。
若要用实物比喻的话,请看您的皮包。如果您有驾驶执照,就可用它来比喻数字证书了。驾驶执照上有一个唯一的密钥(您的执照号码)和一些属性(到期日、您的姓名、地址、头发颜色等)。它由可信的机构颁发,上面有钢印,以防假冒。任何信任颁发驾照机构的人在检查钢印的完整性后,会相信其真实性。但是,该比喻在此处有不同之处 - 真实世界中,只有政府才能颁发驾驶执照,所以任何人都知道 Joe's Really Good DMV 颁发的驾照是无效的。对于数字证书,您该如何判断呢?
答案在于“证书等级”概念。如图 1 所示的等级中,每个颁发者或“证书颁发机构”(CA) 用自己的私钥签署颁发的证书。证书颁发机构自己把一对密钥中的公钥打包到证书中,而证书则由更高级别的 CA 颁发。这种模式可按需要持续许多级,每级证书颁发机构都要证明它颁发的证书的真实性。但是,最后肯定需要一个顶级证书颁发机构,称为“根级证书颁发机构”。由于此等级结构中没有比根级证书颁发机构更高的级别了,因此没有人能证明其证书来源和真实性。于是,根级证书颁发机构签署自己的证书,它只要声明它是根级就可以了。
显然,接受根级证书颁发机构关于其身份的声明是不安全的。若要验证根级证书颁发机构的证书,则必须用“外部”的方法来获得其公钥的可信副本,即,该副本来自网络外的第三方,用该密钥来验证根级证书的真实性。Microsoft 在许多采用了公钥的产品中(如 Internet Explorer)为许多知名的根级证书颁发机构提供公钥,以允许用户透明地验证这些根级证书颁发机构。根级证书颁发机构还提供其公钥的副本,以便用户从公共网站上下载。通过“外部”发送根级密钥后,用户就可验证根级证书,从而验证整个证书链。更妙是,由于每个证书的数字签名都有防伪作用,因此,证书链可在象 Internet 这样不安全的媒介上自由传递。 |
| PKI 由哪些组件构成? |
| 如果数字证书是 PKI 这一水管中的水的话,那么水管本身是什么?了解组成完整的 PKI 的五个组件很重要,这些组件创建、传输、使用了 PKI 赖以生存的数字证书并使之生效。 |
| 证书颁发机构 (CA) |
| 证书颁发机构的大小差别可能很大。大的机构有象 Thawte、Verisign、Belsign、GTE Cybertrust 和其它机构这样的商业证书颁发机构。这些商业证书颁发机构向数百万用户颁发证书。小的机构有公司部门内的证书颁发机构,它们只向少数几个用户颁发证书。这些较小的证书颁发机构可能是“中级证书颁发机构”,它们的证书由单位内级别较高的证书颁发机构签署,而高级别机构的证书又来自更高级别,以此类推,直到根级证书颁发机构。
每个证书颁发机构都有责任决定证书中应包括什么属性,以及在颁发证书前用什么机制来验证这些属性。对内部证书颁发机构来说,各单位可制定自己的策略,但您应该知道,其它单位的策略可能与您的大不一样。
证书颁发机构还颁布“颁发证书吊销列表”(CRL)。当某证书被吊销后(不论是因为所有人的私钥泄露还是因为持有人已经与颁发者脱离关系),证书颁发机构会将它添加到 CRL,然后公布 CRL,以便客户端检查。这种方法就象信用卡发行商公布的失窃的信用卡列表一样,任何授权请求都必须先清除此列表,然后才能获准。 |
| 证书发行点 |
| 证书发行点使证书和 CRL 可以在单位内或单位外公开发布。它还使支持整个 PKI 所需的重要材料能够得到更广泛的使用。具体地讲,好的证书发行者允许客户端自动获得证书,包括根级证书和所要证书之间的所有证书。发行者可使用各种目录服务,包括 X.500、Lightweight 目录访问协议 (LDAP) 或因操作系统而异的目录,他们还可在网页上发行证书和公布 CRL,或者通过智能卡、磁盘或 CD-ROM 来传播。但是,市场趋势明显偏向 LDAP,它协作性更好,灵活性更强。 |
| 密钥和证书管理工具 |
| 商业上希望应用 PKI 来满足一些管理要求。例如,站点必须记录颁发了哪些证书、颁发时间、持有人;旧证书需要归档,以便即使证书不再起作用后也能阅读加密的电子邮件。同时,还必须有某些途径来控制和监视证书颁发机构和证书发行者发行和公布证书及 CRL 的情况;这正是为什么有用的 PKI 必须有一个组件是管理和审计工具的原因。 |
| 能使用公钥的应用程序 |
| PKI 能颁发、发行和控制证书后,下一步是部署能够使用证书的应用程序。与 PKI 其余部分紧密结合的好的应用程序能全面利用公钥加密技术,同时,对用户又几乎是透明的。用户无需知道如何加密、证书的保存位置以及任何其它细节 - 而只需简单地表明想干什么,然后把事情交给应用程序和 PKI 去完成就行了。
应用程序可利用数字证书来推广公钥加密带来的好处,而且能结合加密技术的功能(如签署和加密),实现电子商务、网络的安全访问和其它有吸引力的服务。Microsoft 所有利用公钥加密技术的应用程序本身就启用了公钥。例如,Microsoft Outlook ? 的消息传递和协作客户端本身就支持签名和加密,此外还能利用数个来源的证书发行者和根级证书。Internet Explorer、Microsoft Money 和 Internet Information Server 能设置加密的网络会话。已启用 PKI 的应用程序还能依靠工业标准协议来加快开发,并可实现与其它单位之间更方便的协作。 |
| 硬件支持 |
| 要求实施 PKI 的日益强烈的市场需求刺激了硬件供应商开发出加密硬件,包括能进行本机加密处理的智能卡、PC 卡和 PCI 卡。这些硬件设备提供了众多能力。在低端,智能卡可进行有限的加密处理和密钥的安全存储;在高端,多处理器加密加速器能提供大容量的网络数据保护服务,摆脱了软件加密模块造成的瓶颈。PKI 硬件设备最可取的一点是:它是可选的 - 如果您的应用程序需要其他性能或安全性,您可按照需要通过添加硬件来实现;不过您仍能在软件中建立一个功能完整的 PKI。 |
| Windows 2000 PKI - 介绍 |
| Microsoft Windows 2000 包括了一个功能完整的公钥基础结构,它的公钥加密技术可给商业带来巨大利益。第三方提供的 PKI 需要单独购买,且因为是按每个证书许可收费、增加了管理任务,导致增加了所有权成本;与之相比,Windows 2000 PKI 因为是操作系统的一部分,而不需要按证书收费,而且与普通的网络管理任务的结合也天衣无缝。
Windows 2000 PKI 建立在四个要素之上:
·协作性 ,即与基于其它标准的 PKI 组件交换信息、证书和服务的能力
·安全性 ,使用了稳定的加密算法和步骤,并且依靠成熟的、久经考验的代码和算法,从而保证了安全性
·灵活性 ,即以最少的麻烦将 PKI 配置到完全符合您的单位和业务要求的能力。
·易用性 ,便于 PKI 管理员、获得和使用证书的最终用户,以及启用 PKI 的应用程序的应用程序开发人员使用。
Windows 2000 PKI 的基础是 Microsoft 加载可靠 PKI 组件的长期销售跟踪记录。Windows PKI 的主要组件有:
·证书服务 (Certificate Services),它是一种核心操作系统服务,允许商业单位作为自己的证书颁发机构,发行和管理数字证书
·Active Directory? 目录服务,它是一种核心操作系统服务,提供了查找网络资源的唯一位置;在 PKI 中它充当发行服务。
·已启用 PKI 的应用程序,如 Internet Explorer、Microsoft Money、Internet Information Server、Outlook 和 Outlook Express,以及许许多多能和 Windows 2000 PKI 一起使用的第三方应用程序。
·Exchange Key Management Service (KMS) 是 Microsoft Exchange 的一个组件,它可获取用于加密电子邮件的密钥并对其进行归档。在以后的 Windows 版本中,KMS 会包含在 Windows 操作系统中,成为全企业的 KMS |
| Windows 2000 PKI — 协作性 |
| 使用 PKI 的重要一点是在需要的时候能方便地生成和获得证书。一个企业还有可能使用单个供应商提供的适当的解决方案,但是,随着 Internet、Intranet 和电子商务的迅猛发展,跨企业的交流更有可能使用多个供应商提供的 PKI 组件。PKI 组件现有的安全和通信标准是由标准组织和在推广良好协作性方面有巨大既定利益的供应商开发的。这些组织包括 World-Wide Web Consortium (W3C)、Internet Engineering Task Force (IETF) 和 International Telecommunication Union (ITU)。Microsoft 和这些公正的组织紧密合作,以确保能正确、可完全协作地实施这些标准。
存在这些标准的理由很简单:获得真正的协作性的唯一途径是大力推广和使用开放的、不受供应商局限的标准。Microsoft 已经接受了关键的 PKI 安全性标准,并应用在其产品中。表 1 中列出了这些标准和解释其重要性的简单说明。 |
表 1 Windows 2000 支持的 PKI 标准
| X.509 版本 3 |
数字证书的格式和内容 |
如果没有证书格式标准,不同供应商间就不能交换证书 |
| CRL 版本 2 |
证书吊销列表的格式和内容 |
站点间必须有相互交换吊销信息的办法 |
| PKCS 系列 |
公钥交换和分发的格式和行为 |
使不同的供应商能以所有人都理解的方式请求和移动证书。 |
| PKIX |
公钥交换和分发的格式和行为 |
PKIX 是新兴的 PKI 标准,许多大的供应商和企业正用它来替代 PKCS 标准。 |
| SSL 版本3 |
网络会话的加密 |
SSL 是 Internet 上最有名、使用最广泛的安全协议,但它只用于出口控制。 |
| SGC |
提供类似 SSL 的安全性,但无出口的复杂问题。 |
SGC 满足完全的 128 位安全性,且可出口用于某些用途 |
| IPSec |
使用 Internet Protocol (IP) 的网络会话加密 |
IPSec 可为网络会话提供透明、自动的加密。 |
| PKINIT |
新兴的标准,当用公钥登录到采用 Kerberos 身份验证协议的网络时使用 |
Kerberos 识别网络上的用户;PKINIT 允许 Kerberos 将智能卡上的数字证书用做凭据。 |
| PC/SC |
计算机与智能卡的接口标准。 |
符合此标准的任何供应商的智能卡都能在 Windows 2000 下使用,无需专门的软件。 |
|
| Windows 2000 PKI - 安全性 |
| 如果 PKI 不能提供稳定的安全保障,它就毫无意义,因为它的全部目的就是要为企业“增加”安全性。不安全的 PKI 组件实际上比根本没有 PKI 还要糟糕,因为它可能会让人误以为很安全。正因为如此,所以在此再次提醒读者应了解 Windows 2000 本身的安全功能,还应了解 Windows 2000 PKI 作为操作系统的组成部分,已继承了这些功能。 |
| 符合多项标准,增加安全性 |
| Windows 2000 PKI 中的第一个也是最明显的安全特点是,它的组件以开放的工业安全标准为基础。前面提到过它的协作性优点,除此之外,利用广为采用的标准也提高了安全性。表 1 中列出的安全标准是由计算机安全和加密专家开发的,同时得到了计算机业、银行和金融部门、司法部门以及政府部门的有力补充。这意味着,这些标准反映了真实世界的需求和需要绝对安全的行业的要求。
算法或协议安全性的最终测试方法是,看它已成功地被大众使用了多长时间。Microsoft 谨慎地采用了已经通过这种测试期的成熟的算法和协议,而不是那些由单个供应商开发的,未经过大范围公开解析和检查的算法或协议。Windows 2000 支持所有主要的加密算法,包括 RSA 和 DSS(公钥加密)、MDS、MD5 和 SHA-1(散列算法)以及 RC2 和 RC4(私钥算法)。 |
| 通过集成增加安全性 |
| Windows 2000 提供开放的安全结构,允许第三方的应用程序(包括第三方的 PKI)使用它稳定的安全功能。但是,由于 Windows 2000 PKI 是操作系统的一部分,所以,它才是和 Windows 2000 Active Directory 服务、系统本身的安全协议及其它安全功能结合得最好、最完美的 PKI。 |
| 与 Active Directory 集成 |
| Active Directory provides 为所有的网络信息和凭据提供单一的存储区。Windows 2000 PKI 用此存储区来存储公钥信息,因此,用户无需学习新的工具,安装新的组件或管理新的应用程序。与此形成鲜明对比的是那些会为证书和 CRL 数据创建自己的独立的存储区的 PKI 组件产品,这些方案需要您为用户、计算机和 PKI 数据维护独立的数据库,而不是保存在单个高度集成的存储区中。
证书、CRL 和策略信息都存储在 Active Directory 中,这意味着可用 Active Directory 本身的功能对它们进行复制、镜像和分区操作。Active Directory 目录服务还能提供精确的访问控制,因此,管理员可精确指定谁能查看、更改和复制目录信息。与 Active Directory 集成的 PKI 组件可用其策略机制来控制谁可请求证书,谁可从目录中获得证书,证书的有效期有多长等。 |
| 与安全协议集成 |
| Windows 2000 本身支持 SSL、SGC、IPSec 协议包和其它重要协议。因此,Microsoft PKI 组件不需要一切从头开始。每个协议只使用一次,意味着 Windows 2000 PKI 可利用一个经过实践证明的、全面优化过的协议处理器。相反,其它 PKI 供应商使用的可能是自己未经测试和优化的协议版本。 |
| 与 Windows 本身的安全设置的集成 |
| 将一安全的系统用做 PKI 的基础意味着您可对底层操作系统的安全性感到放心,而不仅仅是 PKI 本身。
Microsoft Windows NT? 操作系统的设计从一开始就强调提供稳定的安全性。系统中的每一个对象 - 包括内存块、硬盘文件、进程和软盘驱动器和打印机这样的物理设备 - 都有自己的访问控制,而且操作系统在允许用户访问系统前会严格检查他们的身份。此外,Windows NT 和 Windows 2000 都提供完全的审核和日志记录。
Windows NT 系列的安全性不是简单的推断,它经过第三方安全专家的验证。Windows NT 3.5 是美国政府评估的,满足 "Orange Book" 安全标准的 C2 级要求;Windows NT 3.5.1 的评估也是按英国政府 ITSEC 过程中基本相同的级别 (E2/F-C2) 进行的。Windows NT 4.0 已成功地通过了同一 E3/F-C2 级的评估,并即将完成 C2 评估。Windows 2000 发行时,Microsoft 计划提交进行 Common Criteria 评估,这是新兴的标准,它将统一美国和英国的评估过程。
Microsoft 还将加密算法实施方案提交到美国国家标准学会 (National Institute of Standards and Technology,NIST),按联邦信息处理标准 (Federal Information Processing Standard,FIPS) FIP-140-1 标准进行评估。FIPS 140-1 相当于一个基准,所有商业版的 DES、DSS 和 SHA-1 算法都要根据它进行评判。
这些评估非常重要,因为它们按严格的、广为接受的信息保护和保障要求进行测试,并且是由独立的安全专家执行的。成功通过这些评估意味着用户不必只听 Microsoft 的一面之词,他们可自己去看第三方评估的结果。 |
| Windows 2000 PKI - 灵活性 |
| PKI 要想有用,就必须符合企业运作的方式。谈到 PKI 组件时,“灵活性”意味着,您可配置如何通过软件颁发、分配和使用证书,并且 PKI 自身可支持不止一个可使用的组织模型。
灵活性带来的收益有两种。首先,也是最明显的,它可降低获得所有权的总成本。配置良好的 PKI 可按需求设置,而不需要您花钱买额外的服务器、补充模块或每个证书的许可。第二个好处是提高了安全性 - 您可以只部署那些需要的 PKI 组件,并可按您喜欢的方式配置它们,这样就能够按自己的业务需求定制 PKI 的安全服务了。因为您可按“自己”喜欢的方式来配置该产品,所以要用组件提供一种没有安全设置的服务不会有太大的风险。 |
| 选择您的证书颁发机构模型 |
| 实施 PKI 方案时面临的第一个(也是一直存在的)选择是,使用什么样的证书颁发机构等级模型。每种模型都有自己的技术和策略优势及限制,知道使用哪种模型是规划部署 PKI 的关键环节。由于 Windows 2000 PKI 不需要任何特定的 CA 模型,您可按需要自由地从标准模型中选择匹配的模型并混合使用。例如,某些单位喜欢从外部采购所有的证书管理和颁布模型,而另一些单位喜欢什么都用自己的。Windows 2000 能满足这两种极端情况和介于两者之间的情况。 |
| 独立的 CA 模型 |
如果您用过由 SSL 保护的网站,那么您可能对独立的 CA 模型(见图 2)比较熟悉。在独立模型中,某些第三方实体掌握着贵单位的根级密钥和证书,由它为您的用户颁发和吊销所有的证书。这种第三方实体可能是商业证书颁发机构,如 VeriSign、Thawte、Belsign 或 GTE Cybertrust,也可能是银行、法律公司、贸易协会或任何其它您委托发行证书的组织。
此模型允许您在单位内/外进行委托信任,以便同外部安全地交换电子邮件和电子商务交易信息。独立 CA 还使您从复杂的证书颁发、吊销和跟踪工作中解放出来。但是,它需要您将证书管理委托给某些外部的实体,而且许多第三方 CA 要对发行的每个证书收取费用。
|
| 企业 CA 模型 |
| 此模型中,企业本身就是自己的 CA(证书颁发机构),颁发或吊销证书取决于您的业务需求。由于不牵涉外部采购供应方,您的单位可完全控制自己的 PKI。除了控制之外,还可保证企业外的任何人都不能获得证书,除非由您颁发。用此模型可很好地控制对内部资源的访问,并且可避免生成其属性对外部实体毫无意义的证书。例如,您可向经理们颁发允许其通过公司的差旅办公室进行电子旅游预订的证书。 |
| 有下属的企业 CA |
| 通过为单个部门、业务单位或子公司增加“下属 CA”的方式可扩大企业 CA 模型的灵活性。决大多数单位已经将某些管理控制委托给其子单位。例如,多数公司的单个经理有一定的购买审批权,更高级别的经理能签发金额较大的支票。虽然有中央的采购部门负责许多全企业性的采购任务,但是单个单位仍然能进行日常采购。 |
| 混合型独立 CA 和下属 CA |
| 混合独立模型和下属模型可带来最大的灵活性。图 5 显示了这种结合。此模型中,可在整个企业范围内将商业根级 CA 和下属 CA 结合在一起。它能利用两种模型的长处。有商业根级 CA 意味着不用将商业伙伴和客户直接请到自己的 PKI 中就可同他们交换数据,同时,保留自己的下属 CA 意味着仍然能控制单位内部的证书颁发和吊销。 |
| 混合并匹配 |
| 您可不受限制地组合这些模型,并配置 Windows 2000 以符合您的商业策略和要求。图 6 显示的示例是,用户获得了三个证书,一个用于进入公司人力资源系统的身份验证,一个用于连接公司的内部网 (Intranet),一个用于签署可发给全世界任何人的电子邮件。每个证书都是由不同的 CA 用合适的 CA 模型颁发的。它同实际生活中的凭证相似 - 生活中,您可能要同时用到政府颁发的凭证和您享受其服务的那些私人业主或公司颁发的凭证。
在证书用于允许访问本地人力资源应用程序的情况下,颁发单位建立了自己的本地 CA,以便在本地进行管理,并确保证书只能颁发给雇员。在证书用于允许访问企业内部网 (Intranet)的情况下,颁发单位虽然打算保留对已颁发给雇员的证书的控制权,但仍然允许企业伙伴也可以拥有证书。在电子邮件签名证书的情况中,关键是要有任何人都能验证的证书,所以选择了商业 CA。 |
| 选择自己的验证标准 |
| Windows 2000 PKI 提供了允许你选择验证标准的灵活性。这些标准决定在用户试图使用证书时会发生什么情况;一般包括检查证书未吊销且未过期,也可能包括检查证书的颁发机构 - 如果需要,可以一直查到根级 CA。
当然,对于应用了任何种类的证书检查标准的 PKI 来说,都必须有可供核对的 CRL 和证书。过去这是部署 PKI 的一个主要障碍,因为传统的 PKI 系统没有好的办法来在发送者和接收者之间提供证书和 CRL 信息。Windows 2000 PKI 将证书和 CRL 信息保存到 Active Directory (AD),这样 AD 和 LDAP 客户端就能够读取了;此外,客户端可从网络服务器上获得 CRL 和证书数据,而且发送人(或其管理员)可选择在每个发出的消息中包括整个证书和 CRL 链。这允许您让该目录处理信息的验证工作,同时可选择将信息发送到自己无法获取信息的客户端。
关于 Windows 2000 PKI 执行证书验证的一个重要说明是,搜索、匹配和验证过程都是“透明”的。虽然任何验证都可扩展以详细解释证书和 CRL 的检查过程和结果,但发送者和接收者(不论是程序还是人)都不需要知道验证是如何进行的以及采用了什么标准。 |
| 选择您的信任模型 |
| 如果说实施 PKI 是选择 CA 模型时面临的最重要的选择的话,那么选择信任模型则是第二重要的事情。如果您信任了根级别,则相当于含蓄地声明,您相信他们会“慎重”选择接受证书的对象。这种情况下,“慎重”并不是最恰当的词,您真实的含义是相信他们在颁发证书的时候能按照他们事先声明的策略和步骤来验证证书持有人的身份。
选择信任根级证书的同时也就是选择了信任由根级签署的证书。根据采用的 CA 模型的不同,这种选择的实际影响可大(选择信任大型的、广为使用的商业根级 CA)可小(如选择信任您自己的会计部门)。通常,这些是为整个企业做出的决定,但 Windows 2000 PKI 允许单个用户(或其管理员)自己做出信任决定。此外,管理员可根据组策略忽略或强化用户的信任决定。
您还可选择让您信任的证书用于何种目的。X.509 v3 证书标准允许您指明证书是用于签名,加密还是兼而有之。例如,您可能希望每个人都有签名证书,但能加密的证书却只限于某些部门和个人。Microsoft 将此功能扩大到允许指定其它用途,包括签署软件组件,用智能卡登录,或恢复加密文件。使用 Windows 2000 PKI 时,颁发者能完全控制证书的用途。 |
| 选择您的委派对象 |
| 优良管理的实质是知道何时委派和委派什么;对 PKI 管理来说也是如此。在大多数企业里,核心组织(或某些组)负责维护对信息资源的访问,并在符合公司策略的前提下用所有必要的工具来部署信息。
Windows 2000 PKI 提供了灵活的工具,使您能控制用户能/不能改变自己的信任决定和证书用途 - 包括验证策略。这些工具以 AD“组策略”为基础,并提供了从总策略转移到具体策略的变通方法。组策略是可以继承的;组织结构中的每一级都可有自己的设置,决定此级别应继承哪些设置,忽略哪些设置。策略管理:
·新添加的用户和计算机是否被自动注册并发给证书
·认为哪些根级证书是受信任的,较低级别的对象能否修改此列表
·具体的组策略中的设置是“可以”还是“必须”被较低级别的对象继承
三个下属部门都有各自的一套组策略:
·市场组的组策略允许管理员在本地信任列表中添加或删除根级 CA,此列表是从企业根级别继承的列表的副本。但是市场组的管理员不能更改其它设置。
·研发部门的组策略强制规定该部门的用户只能信任由网络管理员指定的根级 CA,用户的本地信任列表不可更改。
·合资企业组有自己的本地根级别,由本地管理员做所有的信任决定。不用根级策略的任何信息,即使这些信息因继承而变得可以使用了。 |
| 处理高级安全设置需要 |
| 某些单位有特别严格的安全要求。例如,美国国防部为其 CA 指定了三个安全等级:高、中、低。除了军队和政府部门外,金融服务业、法律、医疗和工业领域的许多公司也需要在其 PKI 的某些组件上实行更严格的安全设置。
Windows 2000 PKI 完全支持这些安全要求。例如,现在的国防部证书策略规定,低保障的 CA 的证书必须每 5 年重新颁发,而中、高保障的证书必须每 3 年重新颁发。解决办法只需简单地定义两个有效期不同的证书模板。另一个例子是,管理员能完全控制何时及如何生成和分配 CRL,这意味着象信用卡发行商这样的发布新 CRL 有具体时间限制的单位可自动符合这些限制。 |
| Windows 2000 PKI - 便于使用 |
| 如果不能便于使用,那么前面提到的所有协作性、安全性和灵活性等功能特点就毫无意义了。过去,复杂的界面曾经阻碍了 PKI 组件的大范围推广,而且不易使用的老产品的培训和支持成本也非常高。
Microsoft 做出了巨大的努力,使 Windows 2000 PKI 便于以下三个用户群使用:最终用户、管理员和开发人员。最终的结果是,Windows 2000 PKI 变得便于使用,因为 PKI 组件的特点是:
·包括在平台内 ,因此无需购买或安装额外的组件。这一点在需要混合使用部门或单位 CA 时尤其有用,因为 CA 软件本身就是操作系统内核的一部分。
·高度自动化 ,因此,与 PKI 相关的任务可作为系统的普通功能处理
·与用户熟悉的工具完全集成 ,包括 Microsoft 管理控制台 (MMC)、Internet Explorer 和用户和管理员已经知道如何使用的其它管理工具 |
| 便于最终用户的使用 |
| 如果因安全系统难以使用而令用户望而生畏,那么无论该系统如何优越都毫无意义。Windows 2000 PKI 的优点就是为贵单位中的每个人(而不仅仅是超级用户)提供高级安全设置服务。申请证书的操作只需在 Internet Explorer 或 Windows 2000 Certificate Manager 中点一下鼠标(见图 8)。不论是哪种情况,证书申请向导的使用都很简单 - 用户只需填写几个向导页面,申请就会自动转发到相应的 CA。处理这些证书后的同时(通常实时进行),私钥材料会直接发送到客户端,而公钥部分被自动储存到 Active Directory 中,便于以后使用。
需要管理自己的证书时,用户可使用 MMC 的 Certificate Manager 管理单元,或者通过 Internet Explorer 的安全设置对话框来完成。用户可通过其中任何一种方法来:申请新证书;查看自己的或其它证书及其验证链;查看这些证书有哪些授权;以及进行其它操作。
这种使用的方便性还可扩展到用 Microsoft PKI 支持库写的应用程序(参见 “便于开发人员使用”以了解更多信息。)任何第三方开发人员都可方便地在应用程序中加入对 Windows 2000 PKI 全部功能的访问,使程序支持 PKI,不需要用户学习新东西。例如,电子邮件应用程序可加入一个简单的复选框或选择按钮,让用户加密或签署邮件,同时不需要用户了解所用加密方法的基础。
|
| 便于管理员使用 |
| 对管理员来说,PKI 的安装通常是简单的 - 但当所有组件都安装完毕并开始工作后,保证它运行的日常工作才是真正的挑战。相反,维护 Windows 2000 PKI 所需的寥寥无几的管理工作只是正常内务处理的一部分,Windows NT 系统管理员对此已是轻车熟路。
在 Windows 2000 中,MMC 是管理员完成所有管理工作(包括与 PKI 管理相关的工作)的标准工作区。通过 Certificate Services MMC 管理单元,管理员可轻松的完成 PKI 正常维护所需的所有日常工作:
·必要时吊销证书。
·查看证书或 CRL 的属性(包括验证间隔、最后一次的更新时间以及证书的成员身份)。
·定义证书属性模板,新创建的证书会自动继承这些属性。
·有合适的权限时,可更改用户、组和计算机的组策略设置。
这些任务与现有的 MMC 完全集成,管理员可用熟悉的相同的工具和命令来完成这些任务。例如,图 9 显示,若要吊销某证书,管理员要做的全部工作就是用鼠标右键单击该证书,然后选择“吊销证书”命令。
Active Directory 用户和组管理单元允许管理员管理 Active Directory 本身。除了您熟悉的标准目录管理任务外,管理员还可创建组策略以在整个网络上应用信任决定,通过某个证书颁发者颁发的证书来自动注册用户或机器,或者管理单个证书或 CRL 的位置和可用性。 |
| 便于开发人员使用 |
| 加密编程并不让人望而生畏。理解算法容易,但是正确地使用和避免安全错误就难了。Microsoft 的 PKI 组件提供了便于使用,并有详尽文件说明的加密法例程,它是操作系统的一部分。这些例程经受过广泛的测试和验证(参见“与 Windows 本身的安全设置的集成”),因此,开发人员可利用它的优点,完全不用担心会出现安全漏洞。这正是开发人员这么快就接受 Windows 中包括的加密服务的原因。
有了 Windows 2000 安全服务,希望开发理解 PKI 的应用程序的开发人员发现它比想象的还容易。这些服务免得每个开发人员都成为加密专家,从而节省了时间并提高了安全性。Windows 2000 提供三组独立的安全服务:
·CryptoAPI 1.0 提供已预先编写的公钥和私钥加密服务。无需了解所用算法和协议的复杂本质就可让应用程序获得加、解密服务功能。
·CryptoAPI 2.0 为理解证书的应用程序提供证书处理服务功能。它为应用程序提供的能力有:申请证书,验证证书链,以及从本地或 Active Directory 证书存储区上获得与证书相关的信息。
·Security Services Provider Interface (SSPI) 允许开发人员使用 Windows 2000 网络安全设置服务。支持 SSPI 的应用程序可将证书映射到 Windows 帐户,建立 SSL 会话,打开网络上的 IPSEC 通道,并且利用 Windows 2000 网络安全服务的全部功能
Windows 2000 本身还支持智能卡和加密加速器;这意味着开发人员不费吹灰之力就可利用这些服务。只要制造商提供了 CroptoAPI 厂家模块,任何设备几乎不用再编程就可使用。 |
| 总结 |
公钥加密带来了重要的商业利益,包括能更隐秘、更安全、更有保障地进行电子商务和普通商业运作。要想提供这些优点,必须建立公钥基础结构,使之便于管理、发行和使用公钥。Windows 2000 提供的 PKI 与操作系统完全集成,能提供灵活、安全及可协作的服务,而且这些服务便于使用、部署和管理。
TOP
|