加密解密(7)*PKI基础知识(完整)
PKI 基础知识
摘要
本白皮书介绍了加密和公钥基本结构(PKI)的概念和使用 Microsoft Windows 2000 Server 操作系统中的证书服务的基础知识。如果您还不熟悉加密和公钥技术,先阅读本白皮书将有助于理解 Windows 2000 Web 站点上有关这些主题的其它技术白皮书。
引言
Microsoft Windows 2000 证书服务提供的集成的公钥基本结构(PKI)使电子商务能够在安全的环境中进行。本白皮书介绍了加密和 PKI 的概念。理解这些相关概念是理解证书服务功能的先决条件,证书服务是 Microsoft Windows 2000 Server 操作系统中的一个组件。
加密概念
加密是通过 Intranet、Extranet 和 Internet 进行安全的信息交换的基础。从业务的角度来看,通过加密实现的安全功能包括: 身份验证 ,使收件人确信发件人就是他或她所声明的那个人; 机密性 ,确保只有预期的收件人能够阅读邮件;以及 完整性 ,确保邮件在传输过程中没有被更改。从技术的角度来看,加密是利用数学方法将邮件转换为不可读格式从而达到保护数据的目的的一门科学。
本节介绍下列加密概念:
- 对称密钥加密:一个密钥
- 公钥加密:两个密钥
- 单向散列算法
- 数字签名:结合使用公钥与散列
- 密钥交换:结合使用对称密钥与公钥
前三个小节分别定义并说明对称密钥加密、公钥加密和散列算法。后两个小节说明 组合使用 这些技术的方法-尤其是,将公钥算法与散列算法相结合以创建数字签名,以及将对称算法与公钥算法相结合使交换密(私)钥成为可能。
对称密钥加密:一个密钥
对称密钥加密,也叫做共享密钥加密或机密密钥加密,使用发件人和收件人共同拥有的单个密钥。这种密钥既用于加密,也用于解密,叫做机密密钥 (也称为 对称密钥 或 会话密钥 )。对称密钥加密是加密大量数据的一种行之有效的方法。.
对称密钥加密有许多种算法,但所有这些算法都有一个共同的目的-以可还原的方式将 明文 (未加密的数据)转换为 暗文 。暗文使用加密密钥编码,对于没有解密密钥的任何人来说它都是没有意义的。由于对称密钥加密在加密和解密时使用相同的密钥,所以这种加密过程的安全性取决于是否有未经授权的人获得了对称密钥。这就是它为什么也叫做机密密钥加密的原因。希望使用对称密钥加密通信的双方,在交换加密数据之前必须先安全地交换密钥。
衡量对称算法优劣的主要尺度是其密钥的长度。密钥越长,在找到解密数据所需的正确密钥之前必须测试的密钥数量就越多。需要测试的密钥越多,破解这种算法就越困难。有了好的加密算法和足够长的密钥,如果有人想在一段实际可行的时间内逆转转换过程,并从暗文中推导出明文,从计算的角度来讲,这种做法是行不通的。
公钥加密:两个密钥
公钥加密使用两个密钥- 一个公钥 和 一个私钥 ,这两个密钥在数学上是相关的。为了与对称密钥加密相对照,公钥加密有时也叫做不对称密钥加密。在公钥加密中,公钥可在通信双方之间公开传递,或在公用储备库中发布,但相关的私钥是保密的。只有使用私钥才能解密用公钥加密的数据。使用私钥加密的数据只能用公钥解密。在图 1 中,发件人拥有收件人的公钥,并用它加密了一封邮件,但只有收件人掌握解密该邮件的有关私钥。
图 1 公钥加密要求使用一个公钥和一个私钥。
与对称密钥加密相似,公钥加密也有许多种算法。然而,对称密钥和公钥算法在设计上并无相似之处。您可以在程序内部使用一种对称算法替换另一种,而变化却不大,因为它们的工作方式是相同的。而另一方面,不同公钥算法的工作方式却完全不同,因此它们不可互换。
公钥算法是复杂的数学方程式,使用十分大的数字。公钥算法的主要局限在于,这种加密形式的速度相对较低。实际上,通常仅在关键时刻才使用公钥算法,如在实体之间交换对称密钥时,或者在签署一封邮件的散列时(散列是通过应用一种单向数学函数获得的一个定长结果,对于数据而言,叫做散列算法)。将公钥加密与其它加密形式(如对称密钥加密)结合使用,可以优化性能。公钥加密提供了一种有效的方法,可用来把为大量数据执行对称加密时使用的机密密钥发送给某人。也可以将公钥加密与散列算法结合使用以生成数字签名。
若要进一步了解关于将公钥加密与对称密钥加密或散列算法结合使用的信息,请参见下面两节:“数字签名: 结合使用公钥与散列算法”和“密钥交换:结合使用对称密钥与公钥”
将公钥加密用于数字签名
数字签名是邮件、文件或其它数字编码信息的发件人将他们的身份与信息绑定在一起(即为信息提供签名)的方法。对信息进行数字签名的过程,需要将信息与由发件人掌握的秘密信息一起转换为叫做签名的标记。数字签名用于公钥环境中,它通过验证发件人确实是他或她所声明的那个人,并确认收到的邮件与发送的邮件完全相同,来帮助确保电子商务交易的安全。
通常,数字签名用于以明文(如电子邮件)分发数据的情形。在这种情况下,当邮件本身的敏感性可能无法保证加密的安全性时,确保数据处于其原始格式且并非由假冒者发送,是非常重要的。
要了解如何结合使用公钥与散列算法来创建数字签名,请参见下面的“数字签名: 结合使用公钥与散列算法”一节
常用公钥算法
下面是三种最常用的公钥算法:
- RSA -适用于数字签名和密钥交换。 Rivest-Shamir-Adleman (RSA) 加密算法是目前应用最广泛的公钥加密算法,特别适用于通过 Internet 传送的数据。这种算法以它的三位发明者的名字命名:Ron Rivest、Adi Shamir 和 Leonard Adleman。RSA 算法的安全性基于分解大数字时的困难(就计算机处理能力和处理时间而言)。在常用的公钥算法中,RSA 与众不同,它能够进行数字签名和密钥交换运算。Microsoft Base Cryptographic Service Provider (Microsoft Base CSP 1 ) 支持 RSA 加密算法,并且 Microsoft Enhanced Cryptographic Service Provider (Microsoft Enhanced CSP 2 ) 已经内置到包括 Microsoft Internet Explorer 在内的许多软件产品中。
- DSA -仅适用于数字签名。 数字签名算法 (Digital Signature Algorithm, DSA) 由美国国家安全署 (United States National Security Agency, NSA) 发明,已经由美国国家标准与技术协会 (National Institute of Standards and Technology, NIST) 收录到联邦信息处理标准 (Federal Information Processing Standard, FIPS) 之中,作为数字签名的标准。DSA 算法的安全性源自计算离散算法的困难。这种算法仅用于数字签名运算(不适用于数据加密)。Microsoft CSP 支持 DSA 算法。
- Diffie-Hellman -仅适用于密钥交换。 Diffie-Hellman 是发明的第一个公钥算法,以其发明者 Whitfield Diffie 和 Martin Hellman 的名字命名。Diffie-Hellman 算法的安全性源自在一个有限字段中计算离散算法的困难。Diffie-Hellman 算法仅用于密钥交换。Microsoft Base DSS 3 和 Diffie-Hellman CSP 都支持 Diffie-Hellman 算法。
单向散列算法
散列-也称为 散列值 或 消息摘要 ,是一种与基于密钥(对称密钥或公钥)的加密不同的数据转换类型。散列就是通过把一个叫做散列算法的单向数学函数应用于数据,将任意长度的一块数据转换为一个定长的、不可逆转的数字。所产生的散列值的长度应足够长,因此使找到两块具有相同散列值的数据的机会很少。发件人生成邮件的散列值并加密它,然后将它与邮件本身一起发送。而收件人同时解密邮件和散列值,并由接收到的邮件产生另外一个散列值,然后将两个散列值进行比较。如果两者相同,邮件极有可能在传输期间没有发生任何改变。
常用的单向散列函数
下面是两个最常用的散列函数:
- MD5 。 MD5 是由 Ron Rivest 设计的可产生一个 128 位的散列值的散列算法。MD5 设计经过优化以用于 Intel 处理器。这种算法的基本原理已经泄露,这就是为什么它不太受欢迎的原因。
- SHA-1 。 与 DSA 公钥算法相似,安全散列算法 1(SHA-1)也是由 NSA 设计的,并由 NIST 将其收录到 FIPS 中,作为散列数据的标准。它可产生一个 160 位的散列值。SHA-1 是流行的用于创建数字签名的单向散列算法。
数字签名:结合使用公钥与散列算法
可以结合使用公钥技术与散列算法来创建数字签名。数字签名可用作数据完整性检查并提供拥有私钥的凭据。
签署和验证数据(由启用 PKI 的应用程序如 Microsoft Outlook 完成)的步骤如下:
- 发件人将一种散列算法应用于数据,并生成一个散列值。
- 发件人使用私钥将散列值转换为数字签名。
- 然后,发件人将数据、签名及发件人的证书发给收件人。
- 收件人将该散列算法应用于接收到的数据,并生成一个散列值。
- 收件人使用发件人的公钥和新生成的散列值验证签名。
对用户而言这一过程是透明的。
散列算法处理数据的速度比公钥算法快得多。散列数据还缩短了要签名的数据的长度,因而加快了签名过程。当创建或验证签名时,公钥算法必须且只需转换散列值(128 或 160 位的数据)。创建签名和验证签名的详细步骤取决于所采用的公钥算法。
密钥交换:结合使用对称密钥与公钥
对称密钥算法非常适合于快速并安全地加密数据。但其缺点是,发件人和收件人必须在交换数据之前先交换机密密钥。结合使用加密数据的对称密钥算法与交换机密密钥的公钥算法可产生一种既快速又灵活的解决方案。
基于公钥的密钥交换步骤如下:
- 发件人获得收件人的公钥。
- 发件人创建一个随机机密密钥(在对称密钥加密中使用的单个密钥)。在 Windows 2000 中,CryptoAPI 4 可用于创建机密密钥。(有关 CryptoAPI 的详细信息,请参见下面的“证书链验证”一节。)
- 发件人使用机密密钥和对称密钥算法将明文数据转换为暗文数据。
- 发件人使用收件人的公钥将机密密钥转换为暗文机密密钥。
- 发件人将暗文数据和暗文机密密钥一起发给收件人。
- 收件人使用其私钥将暗文机密密钥转换为明文。
- 收件人使用明文机密密钥将暗文数据转换为明文数据。
同样,这些步骤是由启用 PKI 的应用程序(如 Microsoft Outlook)来完成的,并且对用户来说是透明的。
公钥基本结构的概念
术语公钥基本结构(PKI)用于描述管制或操纵证书与公钥及私钥的策略、标准和软件。实际上,PKI 是指由数字证书、证书颁发机构 (CA) 以及对电子交易所涉及各方的合法性进行检查和验证的其它注册机构组成的一套系统。PKI 的有关标准仍处于不断发展之中,即使这些标准已被作为电子商务的要素而广泛实施。
本节帮助您理解什么是 PKI 以及创建 PKI 需要哪些服务。这些 PKI 概念将在下面几个小节中讨论:
- 证书
- 证书颁发机构 (CA)
- 不可更改的 CA 层次结构
- 注册
- 证书登记
- 证书吊销
- 证书链验证
证书
公钥证书 ,通常简称为 证书 ,用于在 Internet、Extranet 和 Intranet 上进行身份验证并确保数据交换的安全。证书的颁发者和签署者就是众所周知的 证书颁发机构 (CA),将在下一节中介绍。颁发证书的实体是证书的 主体 。
公钥证书是以数字方式签名的声明,它将公钥的值与持有相应私钥的主体(个人、设备和服务)的身份绑定在一起。通过在证书上签名,CA 可以核实与证书上公钥相应的私钥为证书所指定的主体所拥有。
可以为各种目的颁发证书,如 Web 用户身份验证、Web 服务器身份验证、使用安全/多用途 Internet 邮件扩充协议 (Secure/Multipurpose Internet Mail Extensions, S/MIME) 的安全电子邮件、IP 安全性 (IP Security)、安全套接字协议层/事务层安全性 (Secure Sockets Layer/Transaction Layer Security, SSL/TLS) 和代码签名。如果在一个组织内部使用 Windows 2000 企业证书颁发机构(在“Windows 2000 Certificate Services”白皮书中说明),证书可用于登录到 Windows 2000 域。证书还可以由一个 CA 颁发给另一个 CA,以建立证书层次结构。
可以通过多个名称来识别主体,如用户主要名称(用于最终用户证书)、目录名、电子邮件名称和 DNS 域名等。证书还应包含下列信息:
- 证书的有效期。
- 证书的序列号,CA 应保证该序列号是唯一的。
- CA 的名称以及用于签署该证书的密钥。
- CA 所遵循的用来确定证书主体身份的策略的标识符(稍后将详细介绍 CA 策略)。
- 在证书中标识的密钥对(公钥及相关的私钥)的用法。
- 证书吊销列表 (CRL) 的位置,这是一个由 CA 维护并发布的列出已被吊销的证书的文档。为确保其完整性,CRL 是用 CA 的私钥签署的。
证书提供了一个在公钥和拥有相应私钥的实体之间建立关系的机制。目前最常用的证书格式通过 ITU-T X.509 版本 3 (X.509v3) 国际标准定义。RFC 2459 是 X.509v3 的一个配置文件,进一步阐明了 X.509v3 中定义的字段。Windows 2000 PKI 采用 X.509v3 标准。Windows 证书是按照 RFC 2459 中的说明编程的,但仍然叫做 X.509v3 证书。(有关 ITU-T X.509 的详细信息,请参见“Windows 2000 证书服务”白皮书。)
ITU-T X.509 并非证书的唯一格式。例如,Pretty Good Privacy (PGP) 安全电子邮件依赖 PGP 所独有的一种证书。
证书颁发机构
证书颁发机构 (CA) 是一个向个人、计算机或任何其它申请实体颁发证书的可信实体。CA 受理证书申请,根据该 CA 的策略验证申请人的信息,然后使用它的私钥把其数字签名应用于证书。然后,CA 将该证书颁发给该证书的主体,作为 PKI 内部的安全凭据。由于不同的 CA 使用不同的方法验证公钥与主体之间的绑定,在选择信任该颁发机构之前,理解该 CA 的策略是非常重要的(稍后解释)。
CA 可以是远程的第三方机构,如 GeoTrust。作为选择,也可以是您创建的供您所在组织使用的 CA,例如,通过安装 Windows 2000 证书服务即可创建一个 CA。每个 CA 对证书申请人可能有完全不同的身份凭据要求,如 Windows 2000 域帐户、职员标记、驾驶执照、公证请求或实际住址。
CA 策略
CA 根据也已确立的一套标准向申请人颁发证书。CA 在受理证书请求(以及颁发证书、吊销证书和发布 CRL)时所采用的一套标准被称为CA 策略 。通常,CA 以一种叫做证书惯例声明 (Certification Practice Statement, CPS) 的文档发布其策略。
不应将 CA 策略与 Windows 2000 的术语“组策略”相混淆,后者通常与域帐户和应用程序部署服务(如 IntelliMirror)相关联。(关于 Windows 2000 中的 CA 策略以及组策略在 Windows 2000 PKI 中所扮演的角色的信息,请分别参见“Windows 2000 证书服务”白皮书中“Windows 2000 CA 策略”和“CA 证书分发”部分。)
证书颁发机构的类型
CA 的类型 5 包括以下三种:
- 自签名 CA 。 在自签名 CA 中,证书中的公钥和用于验证证书的密钥是相同的。一些自签名 CA 是根 CA(参见第三项)。
- 从属 CA 。 在从属 CA 中,证书中的公钥和用于核实证书的密钥是不同的。一个 CA 向另一个 CA 颁发证书的过程叫做 交叉认证 。
- 根 CA 。 根 CA 是一种特殊的 CA,它受到客户无条件地信任,位于证书层次结构的最高层。所有证书链均终止于根 CA。根颁发机构必须对它自己的证书签名,因为在证书层次结构中再也没有更高的认证机构了。
所有自签名 CA 都是根 CA,因为到自签名 CA 时证书链就终止了。
Windows 2000 只能指定一个自签名 CA 为根 CA。将一个 CA 指定为根 CA 的决策由个人在企业级或本地做出。
不可更改的 CA 层次结构
管理员可以创建 CA 的层次结构,从根 CA 证书开始,然后添加中级 CA,每一个 CA 都可以为其从属 CA 颁发证书。当 CA 向最终实体(用户)颁发证书时,证书链就终止了。
根 CA 证书的分发费用最高,因为如果您开始改变根证书,就必须重建整个 PKI。如果根证书改变了,就必须吊销组织内所有客户端的旧的根证书,并添加新的根证书。另外,必须重新颁发由根 CA 颁发的、再由从属 CA 颁发给最终实体的所有证书。因此,在部署 CA 层次结构时,使用少量的长寿命根 CA 可提供最经济的解决方案。根 CA 非常重要-因为它们被无条件地信任,因为它们是证书链的顶点-因此,在分发证书时要有一个圈外的身份验证。也就是说,由于根 CA 是自签名的,所以必须有人来证明根证书是真品。
因为最终实体要比 CA 多得多,所以向最终实体颁发证书的 CA 使用私钥在大量的数据上签名。用来对数据签名的密钥使用得越频繁,加密数据受到攻击的可能性就越大。因此,为了保持安全,向最终实体颁发证书的联机 CA 必须经常更换其签名密钥。
向最终实体颁发证书的 CA 具有的吊销证书列表,要比中级或根 CA 的列表大得多(这些 CA 仅向其它 CA,更多的是从属 CA 颁发证书)。其部分原因是因为最终实体要比 CA 证书多得多。另外,有许多理由可以解释为什么必须吊销最终实体的证书,如职员改变了工作或离开了公司。
CA 发布吊销证书列表(CRL),其中列出了不应再使用的证书。被吊销证书的有关条目将一直保留在 CRL 列表中,直至证书的 有效期 结束之后,CA 才可将该证书从列表中删除。CRL 中的条目越多,CRL 就越大,其下载时间就越长。通常,只有使用较慢的网络链路(如拨号连接)的用户才会遇到下载时间问题。CA 还可以管理 CRL 列表的大小。一种方法是维护多个列表,称为分区 CRL。另一种方法是,缩短已颁发证书的有效期,从而加快 CA 从列表中删除吊销证书的速度。(关于 CRL 的详细信息,请参见“证书吊销”一节。)
许多应用程序必须能够查明证书最近的吊销状态信息。只有一个联机 CA 能够发布有关证书状态的当前信息。由脱机 CA 公布的吊销状态,必须使用圈外的方法发布到联机位置。
大多数容易受到攻击的 CA 都是处于联机状态的、物理安全措施较差并签署了大量证书的 CA。因此,建立根 CA 和从属 CA 时,应该平衡一下安全性和可用性。通常,建议采用三级层次结构,即一个脱机的独立根 CA、一个脱机的独立从属策略 CA 和一个联机从属颁发企业 CA。
- 脱机根 CA 。 在设计 CA 的层次结构时,根 CA 的安全级别应设为最高。根 CA 应以脱机状态保存在安全的位置,并且用它只签署少量证书。可能的话,应该将 CA 和密钥保存在专门的保管库中,并且至少同时有两位操作员进入该保管库,一位执行规定的操作,另一位审核其操作。(在 Windows 2000 网络中,设计了独立的 CA,以便它们脱机运行。)
- 脱机中级 CA 。 在一个根 CA 下面可以有一个或多个从属 CA。将中级从属 CA 设为脱机的机器,可以提高该 CA 的安全性。
- 联机颁发 CA 。 CA 链中最后一级的 CA 必须处于联机状态,因此可用于受理来自众多客户机的证书申请。根 CA 下面的联机 CA 也可以经常发布最新的吊销状态信息。管理员可以频繁地更改这种 CA 的密钥,因为颁发新证书的开销(管理方面的开销)是最低的。从属 CA 并不完全是可任意使用的,但通过攻击从属 CA 并不能得到多少有价值的东西,而且高级 CA 通过吊销证书即可轻而易举地阻挡这种攻击。
注册
注册 就是主体向 CA 自我介绍的过程。在申请证书时,注册可以是隐含的,或通过为主体提供担保的另一个可信实体(如智能卡登记站)来完成,或者在收到来源可信(如来自域管理员)的信息时自动完成。一旦向 CA 进行了注册,只要符合按照 CA 策略建立的标准,证书即被颁发给该主体。
证书登记
证书登记 就是最终实体进行证书申请并从 CA 接收证书的过程。证书申请就是向 CA 提供身份信息,该信息随后将成为所颁发证书的一部分。CA 根据一套标准受理申请,该标准可能要求进行脱机的、非自动的身份验证(圈外的身份验证)。如果申请被成功受理,CA 随后将向该用户颁发证书。
Windows 2000 PKI 支持向 Microsoft 企业 CA 和 Microsoft 独立 CA 或第三方 CA(如 GeoTrust)进行证书登记。Windows 2000 证书登记支持是以一种独立于传输的方式实现的,并以使用工业标准公钥加密标准 PKCS-10 的证书申请邮件和包含产生的证书或证书链的 PKCS-7 响应为基础。(Windows 使用 PKCS-7 中包含的 PKCS-10 进行更新。这使 Windows 可以用现有的证书对申请进行数字签名。)目前,Windows 2000 对支持 RSA 和 DSA 密钥与签名的证书提供支持。(有关 PKCS 的详细信息,请参见“Windows 2000 证书服务”白皮书。)
通过注册机构进行证书登记
一种特殊的证书登记可通过注册机构 (Registration Authority, RA) 来完成,RA 可为 CA 提供担保,以便将公钥与预期的证书持有人的身份及属性绑定在一起。RA 是拥有特殊证书的主体。这种特殊的证书包含有可以向 CA 表明主体身份的信息。通常,RA 在公钥和主体之间建立绑定,然后在主体生成的申请上签名,以便向 CA 提供该 RA 即将为绑定担保的证据。本质上,使用 RA 是管理委派的一种形式-CA 委派 RA 执行验证公钥和实体之间绑定的任务。
RA 生成在主体和公钥之间建立的牢固绑定的证书。在 Windows 2000 操作系统中,证书服务使用域身份验证来识别申请大多数类型证书的用户身份。创建智能卡登录证书的 Windows 2000 智能卡登记站由 RA 使用。RA 可验证智能卡收件人的身份,同时提供比域身份验证单独完成的主体与公钥之间的绑定更加牢固的绑定。
证书吊销
证书具有一个指定的寿命,但 CA 可通过称为证书吊销的过程来缩短这一寿命。CA 发布一个证书吊销列表 (CRL),列出被认为不能再使用的证书的序列号。CRL 指定的寿命通常比证书指定的寿命短得多。CA 也可以在 CRL 中加入证书被吊销的理由。它还可以加入被认为这种状态改变所适用的起始日期。
可将下列情况指定为吊销证书的理由:
- 泄露密钥
- 泄露 CA
- 从属关系改变
- 被取代
- 业务终止
- 证书持有(这是唯一让您能够改变被吊销证书状态的理由码,在证书状态有问题的情况下非常有用)
由 CA 吊销证书意味着,CA 在证书正常到期之前撤销其允许使用该密钥对的有关声明。在吊销的证书到期之后,CRL 中的有关条目被删除,以缩短 CRL 列表的大小。
在验证签名期间,应用程序可以检查 CRL,以确定给定证书和密钥对是否仍然可信(有些应用程序使用 CryptoAPI 中的 Microsoft 证书链验证 API 来完成此任务)。如果不可信,应用程序可以判断吊销的理由或日期对使用有疑问证书是否有影响。如果该证书被用来验证签名,且签名的日期早于 CA 吊销该证书的日期,那么该签名仍被认为是有效的。
应用程序获得 CRL 之后,由客户机缓存 CRL ,在它到期之前客户机将一直使用它。如果 CA 发布了新的 CRL,拥有有效 CRL 的应用程序并 不 使用新的 CRL,直到应用程序拥有的 CRL 到期为止。
证书链确认
Microsoft CryptoAPI 提供了一个标准的框架,应用程序可用此框架来获得加密服务和数字证书服务。除了 CryptoAPI 为 Windows 95、Windows 98、Windows NT 和 Windows 2000 提供的标准服务以外,第三方供应商可开发并销售他们自己的插件模块,提供附加的加密服务。
在 Windows 网络中,为新证书生成一个请求时,该请求中的信息首先被从请求程序传递给 CryptoAPI。然后,CryptoAPI 把相应的数据传递给一个称为加密服务提供程序 (CSP) 的程序,该程序安装在您的计算机上,或安装在您的计算机可以访问的某种设备(如智能卡)上。CSP 是一个执行诸如机密密钥交换、数据的数字签名以及公钥身份验证之类的加密操作的独立软件模块。任何 Windows 2000 服务或应用程序都可以向 CSP 请求加密操作。
Windows 2000 的证书链创建机制试图建立一个证书路径(证书链),下起最终实体证书(如用户证书),上至 CA 根证书:
- 证书链机制搜索证书(如果有的话)中的颁发机构密钥标识符 (AKI) 字段,以便在某个系统证书存储器中找到父(颁发者)证书。如果 AKI 中包含 Issuer 和 SerialNumber 字段的值,证书链机制将在系统证书存储器中查找特定的父证书;否则,它将使用密钥标识符的值来查找匹配的父证书。如果证书中没有 Issuer、Serial Number 和 Key Identifier 字段的值,那么证书链机制将使用 IssuerName 字段来查找匹配的父证书。
- 如果证书链机制根据上述字段未在系统存储器中找到匹配的父证书,它将搜索证书中的颁发机构信息访问 (Authority Information Access, AIA) 字段。它使用该字段中的信息(如果有的话)从指定位置 (如超文本传输协议 (HTTP) 6 http://www.microsoft.com .位置或轻型目录访问协议 (LDAP) 7 位置)检索父证书。
这一过程将针对用户最终实体证书的每一个父证书重复进行,直到在本地的可信根存储器中找到一个自签名证书为止。自签名证书是这样一种证书:它的主体名称和颁发者名称相同,它的公钥可用来验证与该证书相关的签名。
小结
加密通过提供数据加密和其他用户的身份验证的功能来达到保护用户之目的。这种技术允许电子邮件的收件人验证发件人,确保只有预期的收件人能够阅读邮件,并向收件人保证邮件在传输过程中没有被改变。本白皮书介绍了对称密钥加密、公钥加密、散列算法、数字签名和密钥交换的加密概念。
公钥基本结构 (PKI) 包含用于管理证书、公钥和私钥的技术和标准,以验证电子交易所涉及的各方身份。本白皮书解释了证书、证书颁发机构、不可更改的 CA 层次结构、注册、证书登记、证书吊销和证书链验证的 PKI 概念。
理解加密和 PKI 将有助于您理解 Windows 2000 Server 操作系统提供的证书服务功能如何在一个安全的环境中进行电子商务。
其它信息
- 加密服务提供程序(CSP)是一个独立的软件模块,用于执行各种加密操作,如机密密钥交换、数据的数字签名以及公钥身份验证。
- Microsoft Enhanced Cryptographic Provider 除了具有与 Microsoft Base Cryptographic Provider 相同的功能以外,还通过支持更长的密钥长度与附加的加密算法,提供更可靠的安全性。由于放宽了导出限制,这个版本的 CSP 不再像以前的版本那样重要。
- 数字签名安全标准 (Digital Signature Security Standard, DSS) 是一个把 DSA 用于签名算法、SHA-1 用作邮件散列算法的标准。
- Microsoft 为 Windows 95、Windows 98、Windows NT 和 Windows 2000 提供了一个特殊的名为 CryptoAPI (有时也称为 CAPI) 的加密应用程序编程接口 (API)。CryptoAPI 提供了一个标准的框架,应用程序可通过它来获得加密和数字签名服务。
- 不要将这些一般类型的 CA 与 Windows 2000 证书服务专用的企业 CA 和独立 CA 相混淆。安装 Windows 2000 证书服务时,请在两种不同的 CA 策略中选择一种,不同的 CA 策略在处理证书时具有不同的特性。这两种 CA 策略叫做 企业策略 和 独立策略 :使用企业策略的 CA 被称为企业 CA,而是用独立策略的 CA 叫做独立 CA。企业策略和独立策略在如何处理与 Active Directory 的交互、如何处理身份验证以及是否使用 Windows 2000 提供的证书模板等方面是不同的。无论是 Windows 2000 企业 CA,还是 Windows 2000 独立 CA,都可以是自签名 CA(即同时也是根 CA),也可以是从属 CA。
- HTTP 是用于在万维网 (World Wide Web) 上传输信息的协议。HTTP 地址采用下列格式:
- 作为直接在 TCP/IP 上运行的一个目录服务协议,LDAP 是用于添加、修改和删除存储在 Active Directory 中的信息的主要目录访问协议,也是用于查询和检索 Active Directory 中的数据的主要目录访问协议。Active Directory 客户端必须用 LDAP 获取 Active Directory 中的信息或维护 Active Directory 中的信息。Active Directory 使用 LDAP 来实现与其它 LDAP 兼容的客户端应用程序的互操作性。如果有相应的权限,您可使用任何与 LDAP 兼容的客户端应用程序,浏览、查询、添加、修改或删除 Active Directory 中的信息。