PKI 基础知识,谁能给点资料?

2025-08-23 15:20:1669 次浏览

最佳答案

PKI 基础知识

(摘自Microsoft Windows 2000 Server白皮书,2000年7月5日发布)

摘要

本白皮书介绍了加密和公钥基本结构(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 证书分发”部分。)

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。