术语公钥基本结构(PKI)用于描述管制或操纵证书与公钥及私钥的策略、标准和软件。实际上,PKI是指由数字证书、证书颁发机构(CA)以及对电子交易所涉及各方的合法性进行检查和验证的其它注册机构组成的一套系统。PKI的有关标准仍处于不断发展之中,即使这些标准已被作为电子商务的要素而广泛实施。
本节帮助您理解什么是PKI以及创建PKI需要哪些服务。这些PKI概念将在下面几个小节中讨论:
公钥证书,通常简称为证书,用于在Internet、Extranet和Intranet上进行身份验证并确保数据交换的安全。证书的颁发者和签署者就是众所周知的证书颁发机构(CA),将在下一节中介绍。颁发证书的实体是证书的主体。
可以通过多个名称来识别主体,如用户主要名称(用于最终用户证书)、目录名、电子邮件名称和DNS域名等。证书还应包含下列信息:
证书提供了一个在公钥和拥有相应私钥的实体之间建立关系的机制。目前最常用的证书格式通过ITU-TX.509版本3(X.509v3)国际标准定义。RFC2459是X.509v3的一个配置文件,进一步阐明了X.509v3中定义的字段。Windows2000PKI采用X.509v3标准。Windows证书是按照RFC2459中的说明编程的,但仍然叫做X.509v3证书。(有关ITU-TX.509的详细信息,请参见“Windows2000证书服务”白皮书。)
ITU-TX.509并非证书的唯一格式。例如,PrettyGoodPrivacy(PGP)安全电子邮件依赖PGP所独有的一种证书。
证书颁发机构(CA)是一个向个人、计算机或任何其它申请实体颁发证书的可信实体。CA受理证书申请,根据该CA的策略验证申请人的信息,然后使用它的私钥把其数字签名应用于证书。然后,CA将该证书颁发给该证书的主体,作为PKI内部的安全凭据。由于不同的CA使用不同的方法验证公钥与主体之间的绑定,在选择信任该颁发机构之前,理解该CA的策略是非常重要的(稍后解释)。
CA可以是远程的第三方机构,如GeoTrust。作为选择,也可以是您创建的供您所在组织使用的CA,例如,通过安装Windows2000证书服务即可创建一个CA。每个CA对证书申请人可能有完全不同的身份凭据要求,如Windows2000域帐户、职员标记、驾驶执照、公证请求或实际住址。
CA的类型5包括以下三种:
管理员可以创建CA的层次结构,从根CA证书开始,然后添加中级CA,每一个CA都可以为其从属CA颁发证书。当CA向最终实体(用户)颁发证书时,证书链就终止了。
根CA证书的分发费用最高,因为如果您开始改变根证书,就必须重建整个PKI。如果根证书改变了,就必须吊销组织内所有客户端的旧的根证书,并添加新的根证书。另外,必须重新颁发由根CA颁发的、再由从属CA颁发给最终实体的所有证书。因此,在部署CA层次结构时,使用少量的长寿命根CA可提供最经济的解决方案。根CA非常重要-因为它们被无条件地信任,因为它们是证书链的顶点-因此,在分发证书时要有一个圈外的身份验证。也就是说,由于根CA是自签名的,所以必须有人来证明根证书是真品。
因为最终实体要比CA多得多,所以向最终实体颁发证书的CA使用私钥在大量的数据上签名。用来对数据签名的密钥使用得越频繁,加密数据受到攻击的可能性就越大。因此,为了保持安全,向最终实体颁发证书的联机CA必须经常更换其签名密钥。
向最终实体颁发证书的CA具有的吊销证书列表,要比中级或根CA的列表大得多(这些CA仅向其它CA,更多的是从属CA颁发证书)。其部分原因是因为最终实体要比CA证书多得多。另外,有许多理由可以解释为什么必须吊销最终实体的证书,如职员改变了工作或离开了公司。
许多应用程序必须能够查明证书最近的吊销状态信息。只有一个联机CA能够发布有关证书状态的当前信息。由脱机CA公布的吊销状态,必须使用圈外的方法发布到联机位置。
大多数容易受到攻击的CA都是处于联机状态的、物理安全措施较差并签署了大量证书的CA。因此,建立根CA和从属CA时,应该平衡一下安全性和可用性。通常,建议采用三级层次结构,即一个脱机的独立根CA、一个脱机的独立从属策略CA和一个联机从属颁发企业CA。
证书登记就是最终实体进行证书申请并从CA接收证书的过程。证书申请就是向CA提供身份信息,该信息随后将成为所颁发证书的一部分。CA根据一套标准受理申请,该标准可能要求进行脱机的、非自动的身份验证(圈外的身份验证)。如果申请被成功受理,CA随后将向该用户颁发证书。
Windows2000PKI支持向Microsoft企业CA和Microsoft独立CA或第三方CA(如GeoTrust)进行证书登记。Windows2000证书登记支持是以一种独立于传输的方式实现的,并以使用工业标准公钥加密标准PKCS-10的证书申请邮件和包含产生的证书或证书链的PKCS-7响应为基础。(Windows使用PKCS-7中包含的PKCS-10进行更新。这使Windows可以用现有的证书对申请进行数字签名。)目前,Windows2000对支持RSA和DSA密钥与签名的证书提供支持。(有关PKCS的详细信息,请参见“Windows2000证书服务”白皮书。)
一种特殊的证书登记可通过注册机构(RegistrationAuthority,RA)来完成,RA可为CA提供担保,以便将公钥与预期的证书持有人的身份及属性绑定在一起。RA是拥有特殊证书的主体。这种特殊的证书包含有可以向CA表明主体身份的信息。通常,RA在公钥和主体之间建立绑定,然后在主体生成的申请上签名,以便向CA提供该RA即将为绑定担保的证据。本质上,使用RA是管理委派的一种形式-CA委派RA执行验证公钥和实体之间绑定的任务。
证书具有一个指定的寿命,但CA可通过称为证书吊销的过程来缩短这一寿命。CA发布一个证书吊销列表(CRL),列出被认为不能再使用的证书的序列号。CRL指定的寿命通常比证书指定的寿命短得多。CA也可以在CRL中加入证书被吊销的理由。它还可以加入被认为这种状态改变所适用的起始日期。
可将下列情况指定为吊销证书的理由:
在验证签名期间,应用程序可以检查CRL,以确定给定证书和密钥对是否仍然可信(有些应用程序使用CryptoAPI中的Microsoft证书链验证API来完成此任务)。如果不可信,应用程序可以判断吊销的理由或日期对使用有疑问证书是否有影响。如果该证书被用来验证签名,且签名的日期早于CA吊销该证书的日期,那么该签名仍被认为是有效的。
应用程序获得CRL之后,由客户机缓存CRL,在它到期之前客户机将一直使用它。如果CA发布了新的CRL,拥有有效CRL的应用程序并不使用新的CRL,直到应用程序拥有的CRL到期为止。
MicrosoftCryptoAPI提供了一个标准的框架,应用程序可用此框架来获得加密服务和数字证书服务。除了CryptoAPI为Windows95、Windows98、WindowsNT和Windows2000提供的标准服务以外,第三方供应商可开发并销售他们自己的插件模块,提供附加的加密服务。
在Windows网络中,为新证书生成一个请求时,该请求中的信息首先被从请求程序传递给CryptoAPI。然后,CryptoAPI把相应的数据传递给一个称为加密服务提供程序(CSP)的程序,该程序安装在您的计算机上,或安装在您的计算机可以访问的某种设备(如智能卡)上。CSP是一个执行诸如机密密钥交换、数据的数字签名以及公钥身份验证之类的加密操作的独立软件模块。任何Windows2000服务或应用程序都可以向CSP请求加密操作。
Windows2000的证书链创建机制试图建立一个证书路径(证书链),下起最终实体证书(如用户证书),上至CA根证书:
加密通过提供数据加密和其他用户的身份验证的功能来达到保护用户之目的。这种技术允许电子邮件的收件人验证发件人,确保只有预期的收件人能够阅读邮件,并向收件人保证邮件在传输过程中没有被改变。本白皮书介绍了对称密钥加密、公钥加密、散列算法、数字签名和密钥交换的加密概念。
公钥基本结构(PKI)包含用于管理证书、公钥和私钥的技术和标准,以验证电子交易所涉及的各方身份。本白皮书解释了证书、证书颁发机构、不可更改的CA层次结构、注册、证书登记、证书吊销和证书链验证的PKI概念。
理解加密和PKI将有助于您理解Windows2000Server操作系统提供的证书服务功能如何在一个安全的环境中进行电子商务。