Windows 2000 公钥基础结构详解证书 证书提供了一种机制,用于确立对公钥和拥有相应私钥的实体之间关系的信任。证书就是一种特殊类型的数字签名式的声明;证书的主题则是一个特殊的“主题公钥”,该证书是由颁发者(保存另一对私钥和公钥)签名的。通常,证书也含有与主题公钥有关的其他信息,如有相应私钥的实体标识信息。因此,当颁发一个证书时,颁发者就证明了主题公钥和主题标识信息之间绑定关系的有效性。 现用证书的最常见格式是以 ITU-T X.509 标准为基础的。这是 Windows 2000 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 相信它是真实的(请参见 4.1 节,“证书层次结构”)。如果 Alice 明确信任某一特定可信根证书,那么也就是绝对信任了该可信根颁发的所有证书,以及该可信根证实的任何从属 CA 颁发的证书。 这组 Alice 明确信任的可信根证书,是 Alice 必须以安全方式获取的唯一信息。这组证书是 Alice 的信任系统以及她对公钥基础结构的信任基石。 Windows 2000 PKI 组件 图 1 给出了 Windows 2000 PKI 组件的顶层视图。这是一个逻辑视图,并不是指独立服务器的物理需求;事实上,很多功能都可能合并到一个单服务器系统中。Microsoft 证书服务是 PKI 的一个重要组成部分。用它可以部署一个或多个企业 CA。这些 CA 支持证书的颁发和吊销。它们与 Active Directory 集成在一起,提供 CA 位置信息和 CA 策略,并允许发布证书和吊销信息。 PKI 并未取代原有基于域控制器 (DC) 和 Kerberos 密钥分发中心 (KDC) 的 Windows NT 域信任和身份验证机制。而是与这些服务配合使用,增强了性能,使应用程序得以方便地扩展,以满足外部网和 Internet 的需求。尤其值得一提的是,PKI 满足了对于可扩展的分布式标识和身份验证、完整性和保密性的需求。 图 1 Windows 2000 公钥基础结构组件 在运行 Windows NT 的工作站和应用程序服务器,以及运行 Windows 95 和 Windows 98 的工作站上,均支持创建、部署和管理基于 PK 的应用程序。Microsoft CryptoAPI 是这些服务的基石。它为可安装的加密服务提供程序 (CSP) 的加密功能提供了一个标准接口。这些 CSP 可能是基于软件的,或利用加密硬件设备的程序,它们能够支持各种算法和密钥强度。如图中所示,一种可能基于硬件的 CSP 可支持智能卡。CSP 与 Windows 2000 一起发行并利用与 Microsoft PC/SC 兼容的智能卡基础结构的例子很多(请参见 http://www.Microsoft.com/smartcard/ 以及 http://www.smartcardsys.com / )。 在加密服务的上层是一组证书管理服务。这些服务支持 X.509 v3 标准证书,提供永久存储、枚举服务以及解码支持。最上层是用于处理标准的工业消息格式的服务。这些服务主要是用来支持 PKCS 标准(请参见 http://www.rsa.com/ )以及发展中的 IETF(Internet 工程任务任务组— http://www.ietf.org /)PKIX(公钥基础结构 X.509)草案标准。 其他服务使用 CryptoAPI,为应用程序开发人员提供其他功能。安全信道 (schannel) 使用工业标准 TLS 和 SSL 协议,来支持网络身份验证和加密。可用 Microsoft WinInet 接口(与 HTTP 协议 (HTTPS) 一起使用)访问这些服务,也可通过 SSPI 接口与其他协议配合使用这些服务。Authenticode 支持对象签名和验证。这虽然也可用于其他环境,但主要用于确定 Internet 下载组件的来源和完整性。还支持通用智能卡接口。以上这些特点已用于把加密智能卡以一种与应用程序无关的方式进行集成,这是集成在 Windows 2000 中的智能卡登录支持的基础。 图 2 公钥应用程序服务 证书颁发机构 Microsoft 证书服务包含在 Windows NT Server 5.0 中,它提供一种方法,使企业能够方便地建立 CA,以满足其商业需求。证书服务包含一个默认策略模块,它适于把证书颁发给企业实体(用户、机器或服务)。其中包括请求实体的标识,以及验证该域 PK 安全策略是否接受所请求的证书。要考虑到解决其他策略,或要把 CA 扩展成支持各种外部网或 Internet 方案时,对其进行相应的修改或改进也是很容易的。因为证书服务是基于标准的,所以它为异构环境中启用 PK 的应用程序提供了广泛的支持。 上一篇: Windows 2000 安全设置检查清单 下一篇: Win 2000中格式化字符的安全问题 更多相关文章
|
推荐文章
精彩文章
|