Windows2000公钥基础结构详解(4)
Windows 2000 的 PK 安全策略
安全策略可以应用到站点、域或部门 (OU),并会影响有关用户和计算机的安全组。PK 安全策略仅是整个 Windows NT 安全策略的一个方面,它被集成到该结构中。它提供了一个机制,在全局实施策略时,可对策略进行统一定义和管理。PK 安全策略的最突出特点将在下面进行论述。
可用策略设置根 CA 的信任,以建立域客户在验证 PK 证书时所用的信任关系。可信 CA 集可使用组策略编辑器来配置。它可根据每台机器的情况进行配置,并将用于该机器上的所有用户。
除将一个根 CA 用作可信 CA 外,管理员可以设置与该 CA 关联的使用属性。如果指定了,这些属性就会限制 CA 颁发证书用途的有效性。此限制是基于对象标识符 (OID) 设定的,如 IETF PKIX 第一部分草案中的 ExtendedKeyUsage 扩展所述。 现在,它提供了一种方法,限制对以下组合的使用:
服务器身份验证
客户身份验证
代码签名
电子邮件
IPSec 终端系统
IPSec 隧道
IPSec 用户
时间戳
Microsoft 加密文件系统
作为 PKI(与 Windows 2000 集成)的一个组成部分,策略机制已定义成支持自动证书登录过程。由两个关键因素控制:证书类型以及自动登记对象。这些均与组策略对象集成到一起,可以基于每个站点、域、机器或用户来定义。
证书类型给证书提供了一个模板,并将它与一个常用名称关联起来,以便于管理。此模板定义了许多元素,如命名需求、有效期、密钥生成所允许的 CSP、算法以及应添加到证书中的扩展。逻辑上,证书类型分成机器类型和用户类型,并应用到相应的策略对象中。定义后这些证书类型就可用于自动登记对象及证书登记向导了。
此机制并不是替代颁发策略的企业 CA,而是与之集成在一起。CA 服务会接收一组证书类型,作为其策略对象的一部分。企业策略模块使用这些证书类型,定义该 CA 可颁发的证书类型。对不符合这些标准的证书请求,该 CA 予以拒绝。
自动登记对象定义了域中实体应包含的证书策略。它可基于每台机器和每个用户来使用。可参考证书类型对象,来添加证书类型,它可以是任何定义的类型。此自动登记对象提供了大量信息,用于决定一个实体是否有所需证书,并用于企业 CA 登记这些证书(如已丢失)。此自动登记对象也定义了证书更新的策略。它可由管理员在证书到期前设置,以支持长期操作,而无须用户直接干预。当策略刷新(登录、GPO 刷新等)时,就会处理自动登记对象,并进行必要的操作。
智能卡登录(请参见第 22 页)是由与该用户对象关联的策略控制的,其受控方式与密码策略相似。可以将策略设置为启用智能卡登录(仍可使用基于密码的登录),或者设置为实施智能卡登录。在防止对帐户未授权访问方面,后者提供的保护要强大得多。但是,这也意味着,如果用户忘记了他们的智能卡,或试图使用没有智能卡读取器的机器时,将无法登录。
应用程序概述
本节概述了目前使用基于 PK 功能的许多应用程序。其用意在于,给您提供一个简要说明,以便您在解决现实商业问题时,权衡 PKI 的投资。
在创建和部署全球范围内信息交换的解决方案方面,Web 已迅速成为一个关键因素。特别是,商业方面的使用飞快增长。在很多方面,安全是一个重要的考虑因素。特别是:
服务器身份验证 ? 使客户能够验证与之通信的服务器
客户身份验证 ? 使服务器能够验证客户的身份标识,并用作访问控制决策的基础
保密性 ? 在客户与服务器之间的数据加密,可防止其暴露于公共 Internet 链接
在解决这些需求方面,安全套接字层 (SSL) 以及刚出现的 IETF 标准传输层安全 (TLS) 协议起到至关重要的作用。SSL 和 TLS 是灵活的安全协议,可在其他传输协议的上层执行。这两个协议依靠基于 PK 的身份验证技术,并使用基于 PK 的密钥协商,生成每个客户/服务器会话独有的加密密钥。它们通常与基于 Web 的应用程序以及 HTTP 协议关联(称为 HTTPS)。
在 Windows 平台上,SSL 和 TLS 由安全信道 (schannel) SSPI 提供程序所支持。Microsoft Internet Explorer 和 Internet Information Server 都使用 schannel 来支持此功能。因为 schannel 与 Microsoft SSPI 体系结构集成在一起,所以它可与多个协议一起使用,来支持身份验证和/或加密通信。
要充分利用 SSL 和 TLS 协议,还需要客户和服务器都要拥有相互信任的 CA 颁发的标识证书,允许双方相互验证。在这种模式下,证书与证实相应私钥归属的数据一起交换。然后,每一方均可验证该证书,并可用证书的公钥来验证私钥的所有人是谁。随后,证书中的标识信息可用来进行补充的访问控制决策。例如,客户可以决定该服务器是不是他要与之进行商务交易的人,服务器可以决定该客户可以访问哪些数据。
Windows NT5.0 PKI 集成了对后一种决策的支持,使之成为 Windows NT Server 的一个标准功能。用户证书可以一对一或多对一的方式映射到 Active Directory 中的安全主管(用户对象)。Schannel 可利用这些信息,给该客户自动合成一个安全令牌,这样,就可使用 Windows NT ACL 机制,来实施对资源的访问控制。这对于服务是有利的,因为它们可以使用相同的访问控制机制,而与所用的客户身份验证机制(PK 或 Kerberos)无关。
一旦客户和服务器相互验证了身份后,它们就可以协商决定一个会话密钥,并安全地进行通信。SSL 和 TLS 也常用于不需要客户身份验证的模式。在企业环境中,建议使用相互身份验证,因为它允许使用 Windows 访问控制机制。此外,PKI 大大简化了证书登记和管理,减少了客户的负担。
基于 PK 的安全电子邮件产品(包括 Microsoft Exchange)已出现了多年,并获得了广泛应用。这些系统依靠 PK 技术来:
数字签名 - 用于证实电子邮件消息的来源及真实性。
未预设共享机密的批量数据加密 - 用于保护通信双方之间的保密性
电子邮件的分布式性质,以及依靠存储 - 转发传输传到多个接收人,都是使用 PK 技术的关键因素。基于共享机密的加密技术的替代方法,对管理和物理安全提出了一些要求,使之变得难以使用。
早期实现的一个限制就是,缺少供应商之间的互操作性。在没有适用标准的情况下,供应商实现的系统依靠专用协议、消息编码以及信任假定(有效定义了非互操作性的 PKI)。(备注:尽管 PGP 已获得了广泛的应用,但仍属于此类范畴。因为总的说来,其消息格式不能大规模作为行业内的可互操作安全电子邮件应用程序的基础)。只有最近,才具备了为各主要供应商提供互操作安全电子邮件系统的基础,即使用建议的 IETF S/MIME v3 标准,该标准建立在 RSA Data Security 的 S/MIME v2 提议的基础上。 尽管 S/MIME 还只是草案,但目前已在很多产品中实施,包括 Microsoft Outlook Express 以及 Microsoft Outlook 98,在提供 PK 加密和数字签名(使用 RSA 算法)的供应商之间提供了详实的可互操作性。
使用时,这些系统使用用户的私钥,对发出电子邮件进行数字签名。该用户的证书随后与该电子邮件一起发出,这样收件人就可以验证该签名了。S/MIME 给这些证书定义了一个配置文件来保证互操作性,并使用层次结构的 CA 模型,提供可扩展的信任管理。要加密发给另一个用户的电子邮件,需要从以前的电子邮件或目录服务中获取他们的证书。证书验证完成后,就可用其中的公钥,给用于加密电子邮件的密钥加密。
随着 Internet 使用的增长,人们更加关注下载活动内容的可靠性,如基于 Windows 的应用程序、ActiveXTM 控制以及 Java 小程序。结果,人们对于这些下载程序的安全性更加关注,因为常常是在没有任何特定用户通知的情况下,就出现了 Web 脚本带来的负作用。正是出于对这类安全问题的关注,Microsoft 在 1996 年开发了 AuthenticodeTM 数字签名技术,并在 1997 年显著改进了该技术,包括带有集成许可模型的 Java 小程序签名。
Authenticode 允许软件发行商对任何形式的活动内容进行数字签名,其中包括多文件归档。在下载时,这些签名可用于验证这些内容的发行商以及内容的完整性。此验证基础结构依赖层次结构的 CA 结构,可扩展为全球范围的 Windows 用户;在此结构中,少量商业 CA 可颁发软件发行证书。对于企业方面的需要,Windows 2000 PKI 允许用户将 Authenticode 证书颁发给内部开发人员/承包商,并允许任何员工验证下载的应用程序的来源及完整性。
Windows 2000 加密文件系统 (EFS) 支持在 Windows NT 文件系统 (NTFS) 中对存储在磁盘上的文件进行透明的加密和解密。用户可以加密单个文件,或文件夹(其内容必须以加密形式进行维护)。应用程序访问加密文件的方式与访问未加密文件相同。但应用程序不能解密其他用户的任何加密文件。
EFS 广泛使用基于 PK 的技术,给多个用户提供文件加密的机制,并支持文件恢复。为此,它使用了 PK 支持“未预设共享机密的批量数据加密”的功能。使用时,每个 EFS 用户生成一个公钥对,并获取一个 EFS 证书。此证书由 Windows 2000 域的企业 CA 颁发,即使 EFS 为单独的操作(数据共享已不成问题时)生成一个自签名的证书也是如此。另外,Windows 2000 支持 EFS 恢复策略,该策略可用来指定可信任的恢复代理。这些代理将生成一个 EFS 恢复公钥对,并由企业 CA 颁发 EFS 恢复证书。此 EFS 恢复代理证书会发布到带有组策略对象的域客户。
在使用时,EFS 给每个要加密的文件创建了