电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Windows 2000 公钥基础结构详解(1)


发布日期:2024/3/2
 

引言

Microsoft Windows 将一个综合的公钥基础结构 (PKI) 引入到 Windows 平台这利用和扩展了Windows 公钥 (PK) 加密服务(该服务是过去几年中引入的)提供了一整套服务和管理工具以创建部署和管理基于 PK 的应用程序它允许应用程序开发人员利用 Windows NT 的共享机密安全机制或基于 PK 的安全机制作为其相应的安全机制同时企业还因此能够基于统一工具和策略机制来管理该环境和应用程序

本文最后对 Windows 中 PKI 作了概述

概念

加密技术是一门保护数据的科学加密算法从数学上将输入明文数据与加密密钥结合起来生成加密数据(暗记文)虽然有了一个好的加密算法但要逆转加密过程并将仅以暗记文开始的数据反推成明文数据从计算角度上是不可行的此转换过程还需要其他数据解密密钥

传统上密钥(或对称密钥)加密加密与解密密钥是相同的因而可以共享敏感数据对于想要使用密钥加密进行通信的双方只有安全地交换加密/解密密钥后才能相互交换加密数据

PK 加密基本属性则是加密和解密使用不同的密钥用公钥加密密钥进行的加密是单向功能明文虽然可以很容易地转变为暗记文但加密密钥却与解密过程无关要将暗记文转回到明文则需要解密密钥(与加密密钥有关但不相同)因此对于 PK 加密来说每个用户都有一对密钥由一个公钥和一个私钥组成在公钥可用的前提下可以让其他人将加密数据发给您而该数据只能用您的私钥来解密相似地可用您的私钥来转换数据这样其他人就会验证出该数据是由您发送的第二种功能是数字签名的基础下面将对它进行论述

PK 加密中公钥与私钥是分开的由此产生了很多新技术最重要的新技术有数字签名分布式身份验证使用公钥的密钥协议以及未预设共享机密情况下进行的批量数据加密

有许多人们熟知的 PK 加密算法其中一些算法是通用的如 RSA (RivestShamirAdleman) 和 ECC (Elliptic Curve Cryptography)因为它们能支持以上所有操作其他算法则仅支持这些功能的一个子集一些示例中包括数字签名算法 — 即 DSA是美国政府的数字签名标准(FIPS )的一部分该算法仅用于数字签名还包括 DiffieHellman (DH)它用于私钥协议

以下几段简要论述了 PK 加密的主要用途这些内容是以 Bob 和 Alice 两个用户为例来讲述这些操作的它假定 Bob 和 Alice 可以交换信息但没有任何预设的共享的机密

数字签名

也许公钥加密最引人注目的特征就是创建和验证数字签名它以数学转换为基础该转换将私钥与待签名的数据结合在一起这样

只有拥有私钥的人才有可能创建数字签名

任何能访问此相应公钥的人均能验证该数字签名

对已签名的数据进行的任何修改(即使只修改了大型文件的一位)都会使数字签名无效

数字签名本身就是数据因此可将其与所保护的签名数据一起传输例如Bob 可以创建一个给 Alice 的电子邮件消息并把签名与消息文本一起发送用它给 Alice 提供验证消息来源所需的信息此外数字签名还提供了一种方法以验证数据在从源到目标的传送过程中没有被篡改过(无论是意外的还是蓄意的)因此数字签名可用来提供一个能高度保障数据完整性的机制

身份验证

可用 PK 加密来提供可靠的分布式身份验证服务实体身份验证可以保证数据发件人就是收件人所认为的那个实体验证的一种方法是数据接收人 Alice 向数据发送人 Bob 发送一个质询该质询是用 Bob 的公钥进行加密的Bob 对此质询进行解密并把它发回给 Alice证明他有与 Alice 发布质询所用公钥相关联的私钥另一种方法是Alice 向 Bob 发送一个明文质询Bob 将该质询与其他信息(已有数字签名)结合起来然后Alice 就用 Bob 的公钥来验证该签名并证实 Bob 有与此关联的私钥该质询能够使该消息是唯一的并可防止有敌意的第三方利用答复进行攻击这两种情况都称为证明所有权协议因为发送人在此过程中证明自己有特定的私钥

使用公钥的密钥协议

PK 加密的另一个功能是它允许双方就使用公共的非安全通信网络的共享机密达成一致实际就是 Bob 和 Alice 每人都生成一个随机数分别形成了共享机密密钥的一半然后Bob 用 Alice 的公钥对自己的那一半机密进行加密再把机密发送给 Alice而 Alice 则用 Bob 的公钥对自己的那一半机密进行加密再把机密发送给 Bob双方都可以将对方发来的消息进行解密将共享机密中不是自己生成的那一半提取出来然后将两个一半密码结合起来生成共享机密协议完成后共享的机密就可以用于保障其他通信的安全了

未预设共享机密的批量数据加密

PK 加密带来的第四个主要技术是无须建立预设共享机密就可以进行批量数据加密从计算角度上看现有的 PK 算法与密钥算法是密切相关的这就不适于加密大量数据要既能利用 PK 加密技术又能进行有效的批量加密通常要将 PK 和密钥技术结合起来使用

它是这样实现的先选择一个密钥加密算法并生成一个随机会话密钥进行数据加密如果 Bob 要发送消息他先用 Alice 的公钥对该会话密钥进行加密随后生成的暗记文密钥与加密数据一同发给 AliceAlice 可用她的私钥来恢复该会话密钥然后用该会话密钥解密数据

在私钥加密中Alice 和 Bob 信任他们的共享机密因为他们已就此达成一致或是以安全的方式交换的他们还一致同意将其安全地进行存储防止被有恶意的第三方窃取相反使用 PK 加密技术Alice 和 Bob 都只需要保护其各自的私钥即可他们需要共享的唯一信息就是对方的公钥他们需要能够用高保障来标识彼此的公钥但不需保密公钥对使用 PK 加密而言能够信任公钥与已知实体的关系是至关重要的

Alice 信任 Bob 的公钥有可能是因为 Bob 以安全的方式将它直接传递给了 Alice但这是以 Alice 和 Bob 此前已有安全通信为前提的更可能是Alice 通过非安全机制(如从公共目录)获得了 Bob 的公钥所以必须有其他的机制使 Alice 确信她所谓的来自Bob的公钥的确是 Bob 的公钥这样的机制之一就是基于证书颁发机构(CA) 颁发的证书

证书

证书提供了一种机制用于确立对公钥和拥有相应私钥的实体之间关系的信任证书就是一种特殊类型的数字签名式的声明证书的主题则是一个特殊的主题公钥该证书是由颁发者(保存另一对私钥和公钥)签名的通常证书也含有与主题公钥有关的其他信息如有相应私钥的实体标识信息因此当颁发一个证书时颁发者就证明了主题公钥和主题标识信息之间绑定关系的有效性

现用证书的最常见格式是以 ITUT X 标准为基础的这是 Windows PKI 中使用的一个基本技术但是它并不是唯一的证书格式例如Pretty Good Privacy (PGP) 安全电子邮件采用的是一种 PGP 独有的证书

证书颁发机构

证书颁发机构 (CA) 仅是一个颁发证书的实体或服务CA 可作为绑定担保人这是在颁发证书中包含的主题公钥与主题标识信息之间的绑定不同的 CA 可选用不同的方法来验证这种绑定所以在选用担保公钥的颁发机构之前了解该机构的策略和步骤是很重要的

信任和验证

当 Alice 收到一个签名的消息时面临的根本问题就是她是否应该信任该签名是有效的并的确是由自称的签名人签名的Alice 可以确认该签名数学上是有效的她可以使用已知的公钥来验证该签名的完整性但是Alice 仍需确定验证该签名所用的公钥是否的确属于自称第一个签名的那个实体如果 Alice 并不完全相信该公钥是属于 Bob 的她需要获得有力的证据证明该密钥属于 Bob

如果 Alice 可以找到一个 Bob 公钥的证书(由 Alice 绝对信任的 CA 颁发的)那么Alice 就会相信Bob 的公钥的确是 Bob 的如果 Alice 找到的证书具有以下特征她就会相信她收到的确实是 Bob 的公钥

证书具有其颁发者加密的有效签名

证书可证实名称Bob与 Bob 的公钥之间存在绑定关系

证书是由 Alice 信任的颁发者颁发的

假定 Alice 找到了 Bob 公钥的这样一个证书然后她可以使用颁发证书的 CA (Ira) 的公钥来验证其真伪(假设下一个需要验证的是 Ira)但是Alice 再次面临这样的困境即她怎么知道该公钥是不是真的属于 Ira 的呢?所以Alice 需要找到一个证书能证实 Ira 的身份标识以及 Ira 与Ira 的公钥之间的绑定关系

最终Alice 会建立一条证书链从 Bob 和Bob 的公钥开始经过一系列 CA在颁发给 Alice 绝对信任的人的证书处结束这个证书称为可信根证书因为它成为公钥/标识绑定层次结构的根(顶层节点)Alice 相信它是真实的如果 Alice 明确信任某一特定可信根证书那么也就是绝对信任了该可信根颁发的所有证书以及该可信根证实的任何从属 CA 颁发的证书

这组 Alice 明确信任的可信根证书是 Alice 必须以安全方式获取的唯一信息这组证书是 Alice 的信任系统以及她对公钥基础结构的信任基石

上一篇:给Windows7下的WindowsVirtualPC虚拟机瘦身

下一篇:Vista光盘修复功能应用图解