Windows 中的 PKI 增强功能

John Morello

本专栏基于 Windows Server 2008 的预发布版。文中的所有信息均可能发生变更。


Windows 从 Windows 2000 版本起即开始为公钥基础结构 (PKI) 提供强健的、平台范围的支持。该版本包含第一个本机证书颁发机构功能,引入了自动注册,并为智能卡身份验证提供支持。在 Windows XP 和 Windows Server 2003 中,这些

功能已得到扩展,可通过版本 2 证书模板提供更灵活的注册选项,并支持自动注册用户证书。在 Windows Vista® 和 Windows Server® 2008(以前的代号为“Longhorn”)中,Windows® PKI 平台又向前迈了一步,支持高级算法、实时有效性检查,可管理性也更好。本专栏将讨论 Windows Vista 和 Windows Server 2008 中新增的 PKI 功能,以及企业如何利用这些功能来降低成本和增加安全性。

Windows Vista 和 Windows Server 2008 中的 PKI 围绕四个主要核心方面进行了改进:加密、注册、可管理性和吊销。除了这些特定功能的改进外,Windows PKI 平台还受益于其他的操作系统改进(如角色管理器),这些改进使得创建和部署新的证书颁发机构 (CA) 更加轻松。另外,Windows 的其他许多部分都能够利用 PKI 平台中的改进,如在 Windows Vista 中支持使用智能卡存储加密文件系统 (EFS) 密钥。


加密

对加密服务核心的改进体现在两方面。首先,通过引进下一代加密技术 (CNG),Windows 现在提供一种可插入的、协议不可知的加密功能,此功能使得以编程方式开发和访问独立算法更加轻松。其次,CNG 还新增了对 Suite B 算法的支持,该算法在 2005 年由 National Security Agency (NSA) 引入。

CNG 是 Microsoft 的一个新型核心加密界面,也是针对将来基于 Windows 和支持加密的应用程序建议使用的 API。CNG 提供了大量的以开发人员为目标对象的功能,其中包括更方便的算法发现和替换、可替换的随机数生成器和一个内核模式加密 API。提供这些新功能的同时,CNG 还与其处理器 CryptoAPI 1.0 中提供的算法集完全向后兼容。目前,CNG 正在接受通过联邦信息处理标准 (FIPS) 140-2 级别 2 认证以及成为所选平台的通用准则所需的评估。

CNG Suite B 支持包括所需的所有算法:AES(所有密钥大小)、SHA-2 系列(SHA-256、SHA-384 和 SHA-512)哈希算法、椭圆曲线 Diffie-Hellman (ECDH) 以及以美国国家标准与技术研究院 (NIST) 标准原始曲线 P-256、P-384 和 P-521 为标准的椭圆曲线数字签名算法 (ECDSA)。NSA 已表明,经过认证的 Suite B 实现将用于保护以下类别的信息:Top Secret、Secret 以及过去被描述为 Sensitive-But-Unclassified 的隐私信息。所有 Suite B 算法的开发都采取公开形式,其他一些政府也在探索尝试采用 Suite B 算法作为国家标准。

对 Windows PKI 平台的这些低级别改进为开发人员保护数据提供了更安全的方法,同时还创建了易于维护和随时间改进的子系统。由于 CNG 是可插入的体系结构,所以可根据需要添加新算法,CNG 会从应用程序层抽象出这些提供程序。最终结果是,Windows Vista 和 Windows Server 2008 的设计旨在为开发支持 PKI 的应用程序和服务提供高级的可发展平台。


注册

Windows 中的证书注册体验得到了显著改善,提供新的基于向导的注册工具、更佳的证书过期处理、新 API、“代表注册”功能以及凭据漫游等功能。这些增强功能通过集中管理的方式更加轻松地在企业范围内部署证书,降低对用户的影响,从而降低了 PKI 的总体拥有成本。

从注册的角度来看,最显著的变化就是如图 1 和 2


图 1 选择可用证书 (单击该图像获得较小视图)


图 1 选择可用证书 (单击该图像获得较大视图)


图 2 不可用证书的状态 (单击该图像获得较小视图)


图 2 不可用证书的状态 (单击该图像获得较大视图)

注册界面的另一个关键改进是对过期证书的处理。新界面为最终用户明确提供了有关哪些证书何时过期的信息,并使用户可以轻松续订证书,或忽略来自同一界面的警告。尽管管理员能够通过自动注册来自动刷新证书,但此警告功能对于移动用户或断开连接的用户而言仍然非常重要,因为这些用户可能很少登录公司网络,而且持有的证书可能已接近过期日期。

对于使用证书注册的开发人员而言,新的 API 对基于 ActiveX® 的旧控件(xenroll.dll 和 scrdernl.dll)提供了重大改进。新的证书注册 API 提供了定义良好的类层次结构,理解起来更加轻松,编码也更加简单。这一新的 API 取代了 Windows Vista 和 Windows Server 2008 中的 xenroll。

对 API 所做的这一更改对开发人员和 IT 专业人员都有影响,因为 Windows Vista 客户端无法使用 Windows Server 2003 中提供的基于 Web 的注册功能。这是由于这些注册网页(默认存储于 /certsrv 虚拟目录下)所使用的 xenroll 控件在 Windows Vista 中已不复存在。知识库文章“如何将证书服务 Web 注册页与 Windows Vista 结合使用”(support.microsoft.com/kb/922706) 提供了一种相应解决方案的相关信息。从 Windows Server 2003 自动注册到 Windows Vista 未受影响。

在以前版本的 Windows Server 中,对注册代理能代表哪些群体进行注册并没有什么限制。换句话说,一旦授予了用户注册代理能力,他就能够代表林中的其他任何用户进行注册。当然,这就意味着用户通过代表某位现有用户进行注册,进而使用新创建的证书假冒该用户,即可轻松升级自已的权限。为防止此类威胁,仅对具有高可信度的用户提供注册代理能力。这种方法虽然提高了安全性,但也使部署模型的灵活性降低,因为只有少量用户具有代表其他用户进行注册的能力。因此,地理位置分散的大型组织为最终用户(例如智能卡)部署证书的复杂度将会增加。

在 Windows Server 2008 中,可以将注册代理限制在更低的级别。可以针对能够代表哪些用户进行注册加以限制,也可以针对能够依照哪些模板进行注册加以限制,如图 3


图 3 注册代理限制 (单击该图像获得较小视图)


图 3 注册代理限制 (单击该图像获得较大视图)

管理 PKI 的最大挑战之一是管理分散在组织内各设备中的所有密钥对。即使在一个不很复杂的 PKI 环境中,任何特定用户也可能具有若干个不同的密钥对(如 EFS、无线网络身份验证和 S/MIME),并要求无论该用户从何处登录都可以使用这些密钥对。随着移动计算和终端服务的日益盛行,在网络内复制这些密钥对以便用户在任何位置登录都可以使用它们,将变得空前重要。虽然用户持有的令牌(如智能卡)有助于解决部分问题,但组织内可能仍然有用户没有卡或用户持有的证书并未存储在卡内。凭据漫游通过安全存储 Active Directory® 内部的密钥对和证书使得用户无论从何处登录都能够使用它们,从而解决了上述问题。

凭据漫游首先在 Windows Server 2003 SP1 中推出,允许证书和密钥在无需使用漫游用户配置文件的情况下在计算机之间安全漫游。在 Windows Vista 和 Windows Server 2008 中,此功能是默认包含的,并在证书服务客户端 (CSC) 服务中实现。配置选项(如哪些证书可以漫游和如何解决冲突)是通过组策略进行管理的。在 Windows Vista 和 Windows Server 2008 中,CSC 服务还可以实现存储的用户名和密码的漫游。虽然此功能默认包含在 Windows Vista 中,但应注意,Windows XP 中完全支持凭据漫游,登录到 Windows Server 2003 域控制器(带有更新部署;请参见 support.microsoft.com/kb/907247)时也完全支持凭据漫游。这就意味着您无需等待 Windows Vista 部署完成即可使用此技术。


可管理性

Windows Server 2008 中进行了大量升级,通过以高可用性方式使证书颁发机构 (CA) 服务更容易设置、监视和运行,改进了该服务的可管理性。CA 设置与角色管理器工具集成,并提供了安装 CA 服务的简单方法。为过程中的每个步骤都定义了默认设置,现在设置可以在无人参与模式下执行。最后,设置拥有了更好的诊断功能,使其更容易对可能出现的故障或问题进行故障排除。

Windows Server 2008 中大大增强了对 CA 服务的监视(在 Windows Vista 中拥有全面的证书诊断)。除了跨整个产品的更加灵活的事件记录基础结构外,现在 CA 服务自身还拥有一个内置监视控制台并与 Systems Center Operations Manager 2007(以前称为 MOM)相关联以提供企业级警报。企业 PKI 监视控制台是对 Windows Server 2003 AdminPak 中引入的其前身的改进。新的控制台包含在产品本身中,除了监视指定林中的所有 CA 外,现在还可以监视联机证书状态协议 (OCSP) URI。

Operations Manager 管理包为组织的 PKI 提供了一种被动监控功能,其中包括基于阈值的内置警报。例如,管理包可用于监视证书吊销列表 (CRL) 的刷新情况,当 CRL 达到过期日期前的特定天数或小时数时,则向 PKI 管理员发出警告。最后,还提供了许多新的性能计数器,帮助进行故障排除和监视 CA 服务本身的整体性能。这些计数器可用于捕获数据,如每秒颁发多少证书。

在 Windows Server 2008 中初次亮相的新功能:支持 CA 服务硬件级别的群集。此群集支持采用标准 Microsoft 群集服务 (MSCS) 技术并支持两节点的主动/被动配置。群集支持使您能够以高可用性方式运行颁发基础结构,可用于地理位置各异的群集部署。如果您选择应用群集支持,请注意,单是使 CA 群集化并不会导致整个 PKI 都可用。尽管群集可以帮助确保 CA 自身可用,但正常运行的 PKI 很可能包含未直接在 CA 上运行的其他组件。例如,CRL 分发点 (CDP) 和 OCSP 响应程序都必须以高可用性方式运行以确保可以执行吊销。此外,当采用硬件安全模块 (HSM),尤其是基于网络的 HSM 时,它们都在 PKI 中显示潜在的故障点。群集是一个强大的新增功能,用于为证书颁发机构本身提供高可用性,但它不是使整个 PKI 部署可用的万能药。


吊销

长期以来,CRL 一直用于提供对证书的有效性检查。这些 CRL 包括有效期尚未过期但不再受信任的所有证书的序列号。例如,如果某个员工的证书的过期日期为 12/31/2008,但该员工在 9/1/2007 离开了该组织,则其证书的序列号将被添加到 CRL 中。然后,该 CRL 将可用于多个 CRL 分发点 (CDP),如 HTTP 和轻型目录访问协议 (LDAP) 路径。

尽管被广泛使用,但 CRL 仍存在一些关键的不足之处。首先,CRL 由 CA 定期发布(通常每天一次或两次)。然后,客户端下载这些 CRL 并将其缓存直到下一个发布间隔。在此缓存期内,证书可能被吊销,而客户端可能不了解最新的状态。其次,在大型组织中,CRL 的大小可能会增长到非常大(有时会超过 100MB)。在大型、广为分散的网络范围内分发这些文件会非常困难甚至无法分发,在分支机构方案或其他有限带宽环境中尤为如此。

为解决这些问题,RFC 2560 中创建并定义了 OCSP。OCSP 提供了验证证书状态的实时方法。OCSP 客户端在需要检查叶证书有效性的计算机上运行。然后,该客户端软件引用 OCSP 响应程序并发送一条消息询问叶证书的有效性状态。该响应程序会检查证书的有效性,并实时向客户端做出响应。此方法避免了缓存和分发问题。

OCSP 客户端功能首次包括在了 Windows Vista 中(以前需要使用第三方软件)并可通过组策略进行配置。默认情况下,Windows 将尝试使用 OCSP,但如果响应程序不可用,将回退到标准 CRL 查询。

在 Windows Server 2008 中,提供了 OCSP 响应程序来回应这些要求。该响应程序通过角色管理器安装并可由 Operations Manager 2007 管理包监视。由于客户端和响应程序都符合 OCSP 标准,所以可以轻松地将它们集成到采用类似于基于标准的第三方组件的现有 OCSP 环境中。例如,完全支持让 Windows Vista 客户端根据第三方响应程序检查证书状态,以及让 Windows Server 2008 响应程序来响应来自第三方客户端应用程序的查询。此外,Windows OCSP 响应程序还可以应答由任何符合标准的 CA 颁发的证书的请求。不要求使用 Windows Server 2008 CA(和通常所说的基于 Windows 的 CA)。


总结

Windows Vista 和 Windows Server 2008 中的 PKI 平台包括许多增强功能和若干新增功能,这些功能可使部署和操作 PKI 更安全,成本更低。新的 CNG API 为开发人员提供了更轻松的编程环境,并支持新的加密标准。注册改进使组织可以更轻松地大量置备证书并在整个企业内实现密钥的安全漫游。同样,新的管理包和 CA 群集功能使监视 CA 的状态更加容易并可确保高可用性。最后,吊销检查中的改进使用基于标准的方法提供对证书的实时验证,而不会产生 CRL 分发的带宽成本。因此,Windows Vista 和 Windows Server 2008 使 Windows PKI 平台提升到了一个新级别。

PKI 增强功能资源




John Morello于 2000 年加盟 Microsoft。作为高级顾问,他曾经为财富 100 强企业以及联邦民用和国防客户设计多种安全解决方案。目前,他是 Windows Server 部门的高级项目经理,主要研究安全性和 Anywhere Access 技术。用户可访问 blogs.technet.com/WinCAT 查看其团队的博客。


摘自 August 2007 期刊 TechNet Magazine.

欢迎您提出宝贵意见。欢迎您给我们发送反馈.