| CryptoAPI 体系结构与密钥恢复是兼容的,但并不能管理它。在这种情况下,密钥恢复是指,对一个实体的私钥以某种方式进行永久存储,这种方式允许已授权的个人在不知道谁是拥有该私钥的实体,或没有得到该实体的同意下,就可以访问该私钥。通常,这是为了访问重要商业信函,或为了满足执法的需要。
密钥恢复只有在用于永久性数据加密所用的密钥时,才是有用的。对于基于 PK 的应用程序,它通常指实体密钥的交换密钥。在归档标识或数字签名私钥时,其作用十分有限,并且冒很大风险。这是因为,其唯一的实际用途就是模拟私钥所有者。
Microsoft Exchange 现提供对密钥交换密钥的支持,这样,就可以阅读加密的电子邮件。另外,第三方 CSP 也提供了对密钥恢复的广泛支持。根据客户的需要,Microsoft 将来还会增加其他的密钥恢复功能。
正如前面讲到的,基于 PK 技术的实际应用一般取决于把公钥与已知实体绑定在一起的证书。Windows 2000 PKI 支持 Microsoft 企业 CA 或第三方 CA 的证书登记。登记支持是以与传输无关的方式实现的,并以使用工业标准的 PKCS-10 证书请求消息及包含产生的证书或证书链的 PKCS-7 响应为基础。同时,还支持 RSA 密钥和签名的证书、数字签名算法 (DSA) 密钥和签名,以及 Diffie-Hellman 密钥。
Microsoft 提供的登记控制 (Xenroll.dll) 提供了对 PKCS-10 和 PKCS-7 消息的支持,这种控制可为基于 Web 的登记编写控制脚本,或由程序调用该控制,以实现对其他传输机制,如 RPC、DCOM 及电子邮件的支持。该控制允许调用应用程序,来指定 PKCS-10 消息中包含的属性;允许使用原有密钥对或生成一个新的密钥对。登记过程被假设为非同步的,登记控制提供了状态管理,使颁发的证书与等待的请求相匹配。这就提供了这样一种方法,该方法可在证书、生成密钥对的 CSP 以及密钥对容器名称之间建立内部绑定。
PKI 支持多个登记方法,包括基于 Web 的登记、登记向导以及基于策略的“自动登记”(是用户登录过程的一部分)。将来,Microsoft 计划采用 IETF PKIX 工作组中现有证书请求语法 (CRS) 草案相同的方式,来开发证书登记过程。
从概念上讲,证书更新与登记相似,但它利用了原有证书内在的信任关系。证书更新假定请求实体需要一个新证书,新证书的属性与原有有效证书相同,但有效日期更长。更新可使用原有的公钥或新公钥。
更新对 CA 特别有利。可以推测,处理更新请求的效率会很高,因为此过程不需要重新验证原有证书的属性。Windows 2000 PKI 支持对自动登记证书的更新。对于其他机制,更新是作为一个全新的登记请求来处理的。
有关证书更新的工业标准消息协议尚未确定,但是已包含在 IETF PKIX CRS 草案中。只要这些标准被批准,Microsoft 就会计划实施有关的消息格式。
在 Microsoft PKI 中,密钥和相关证书由 CryptoAPI 子系统存储和管理。正如上文所述,密钥由 CSP 管理,而证书则由 CryptoAPI 证书存储区管理。
证书存储区是证书及其相关属性的库。按照常规,PKI 定义了五个标准证书存储区:
·MY – 此存储区用于保存用户或机器的证书(相关私钥可用于该证书)。
·CA – 此存储区用于保存颁发和中级 CA 证书(用于建立证书验证链)。
·TRUST – 此存储区用于保存证书信任列表 (CTL)。这些列表给管理员提供了其他机制,以指定一组可信 CA。这样做的优点是:这组可信 CA 可以通过非安全链接进行传输,因为它们已经过数字签名。
·BOOT – 此存储区仅保存可信根 CA 的自签名 CA 证书。
·UserDS – 此存储区提供了保存在 Active Directory(例如,在用户对象的用户证书属性中)中的证书库的逻辑视图。其目的是简化对这些外部库的访问。
这些是逻辑存储区,可展示驻留在多个物理存储区(硬盘、智能卡等)中的可用证书的全系统统一视图。使用这些服务,应用程序可以共享证书,并保证管理策略的一致操作。此证书管理功能支持对 X.509 v3 证书的解码,并提供枚举功能来帮助查找特定证书。
为简化应用程序的开发,MY 存储区会维护证书属性(表明 CSP 和相关私钥的密钥集名称)。应用程序选定了要使用的证书后,该程序就会用此信息来获取正确私钥的 CSP 环境。
公钥对和证书一般价值较高。如果由于系统故障而丢失,替换公钥对和证书要花费很长时间,并会造成经济损失。为解决这一问题,Windows 2000 PKI 提供了可实施证书管理的管理工具,支持证书及相关密钥对的备份和恢复功能。
当用证书管理器导出证书时,用户必须指定是否同时导出相关密钥对。如果选定该选项,该信息就会作为加密(基于用户提供的密码)PKCS-12 消息导出。它随后会导入到该系统或其他系统中,用于恢复证书和密钥。
此操作假定密钥对可由 CSP 导出。对于 Microsoft 基础 CSP 而言,如果在密钥生成时设置了导出标志,就可实现上述操作。第三方 CSP 可支持,也可以不支持私钥导出。例如,智能卡 CSP 一般不支持此操作。对于带有不可导出密钥的软件 CSP,变通的方法是保持一个完整的系统映像备份,包括所有注册信息。
在本文中,“漫游”是指,在企业的 Windows NT 环境中,不同物理机器上使用同一个基于 PK 的应用程序的能力。基本要求是,无论用户在何处登录,其密钥和证书都是可用的。Windows 2000 PKI 以两种方式支持此功能。
第一,如果用的是 Microsoft 基础 CSP,密钥和证书漫游则由漫游配置文件机制支持。只要启用了漫游配置文件,此操作对用户就是透明的。第三方 CSP 不支持此功能,这是因为每三方 CSP 通常使用不同的方法保存密钥数据,通常保存在硬件设备上。
硬件令牌设备(如智能卡)只要包含物理证书存储区,就可以支持漫游功能。与 Windows 2000 平台一起发行的智能卡 CSP,支持此功能。通过将硬件令牌随用户移动,可实现对漫游的支持。
证书往往是长期凭据,但为什么很多凭据在到期之前就变得不可信呢?其原因很多。例如:
·实体的私钥泄密或可能泄密。
·获取证书时采用了欺诈手段。
·状态改变。
基于 PK 的功能采用分布式验证,不需要直接与颁发凭据的中心可信实体进行通信。这就需要将吊销信息分发到要验证证书的个人。
吊销信息及其即时性的需求取决于应用程序。为支持各种操作情况,Windows 2000 PKI 增加了对工业标准的证书吊销列表 (CRL) 的支持。在管理控制下,企业 CA 支持证书吊销以及 Active Directory 的 CRL 发布。域客户可以提取此信息,将它在本地进行缓存,并在验证证书时使用。该机制还支持商业 CA 颁发的 CRL 或第三方证书服务器产品,只要客户可通过网络访问发布的 CRL 即可。
当使用基于 PK 的功能时,最令人关注的是与证书验证有关的客户信任问题。通常,它基于与颁发证书的 CA 有关的信任。如前所述,PKI 使用一个根 CA 层次结构,在此层次结构中,信任控制以根 CA 的决策为基础。如果给定的最终实体证书有条“链”通往一个已知的可信根 CA,并且预计的证书用法与应用程序环境一致,那么就认为它是有效的。如果以上条件有一条不成立,就认为它是无效的。
在 PKI 中,用户可以做只影响自已的信任决定。使用证书管理工具,用户通过安装和删除可信根 CA,并配置有关的使用限制,来实现上述过程。希望这只是例外情况,而非常规律性的。相反,我们希望这些信任关系能成为企业策略的一部分(请参见下一节“Windows 2000 的 PK 安全策略”)。使用策略建立的信任关系可以自动传播到 Windows 2000 客户机。 |