安全观察部署全球信任的 PKI

John Morello

本专栏包括预发布信息,这些信息可能会发生变更。

公钥基础结构(或 PKI)是在不同应用程序、操作系统以及身份识别领域间建立信任的基础元素。它建立于层次信任模型之上,在该模型中,最终实体信任最高根级别的公共密钥,因而隐含信任由该根签名的其他任何密钥。

鉴于此结构,通过添加附加的证书颁发机构 (CA),很容易就能对设计周全的 PKI 加以扩展,而不用将更改引入最终实体。

PKI 的实现方式通常有两种。最为常见的方法是根据需要从某一个隐含信任的全球根提供商(如 Cybertrust 或 VeriSign)那里购买证书。这些证书通常用于保护网站上的通信,但它们也可用于虚拟专用网络 (VPN) 加密、电子邮件签名以及类似的任务。由于这些全球根已内置到现今的每一种 Web 浏览器和操作系统中,所以采用此方法很容易就能跨越组织界限拓展信任关系。但是,由于这些证书是按需购买的,所以此方法对于在大型组织内进行广泛部署的情况可能代价高昂。

内部 PKI 模型最近比较盛行。顾名思义,内部 PKI 只在组织自身的网络中受信任。如果组织要使用证书在其网络上置备每一位用户和每一台计算设备,则采用此模型会更加便宜。此方法常常用于为诸如智能卡登录、加密文件系统 (EFS) 以及安全无线联网等技术提供便利。其缺点是,由于这些证书不是全球受信任的,所以它们不是很适合于外向型应用程序。因此,大多数部署了内部 PKI 的组织通常会采用一种混合方法,从某一个全球信任的根那里为公共应用程序购买证书。

但如果您能从两种方法中都得到很大好处,该如何呢?如果贵组织可以利用颁发内部证书所节省的费用来运行自身的 PKI,同时置备公共信任的证书(所有证书全部来自您自己的本地系统),又该如何?这样的解决方案不仅具有内部 PKI(如 Active Directory® 集成、自动注册和本地化 IT 支持)的好处,而且还具备全球信任根的主要优点。路易斯安那州立大学 (LSU) 就拥有这样一个系统。在本期的安全观察中,我将密切注视我们在 LSU 实现的解决方案,讨论其技术设计并着重指出在部署相似系统时应采用的最佳实践。应当注意,我将要介绍的解决方案只满足我们特定环境、资源和业务需求的特殊需要。您应当事先评估贵企业的所有这些方面,以便确定正适合于您的解决方案类型。

LSU 的 PKI 做法

LSU 是一所以研究为主的大学,其学生和教职员工总数超过 40,000 人。它拥有许多面向公众的网站,其中的许多网站都要求传输层安全性(针对安全套接字层 (SSL) 证书的专用术语)。LSU 每年都会花费数千美元从全球信任的根提供商那里购买证书。

同时,LSU 还有其他 IT 安全目标,为此可以大加利用设计周全的内部 PKI。根据 LSU 的目标和需求,您可能会以为我们选择了混合模型。但情况恰好相反,我们决定采取一种自己觉得更具创新性的方法。

我们与其中一个全球信任的根 Cybertrust 合作,在 LSU 校区部署了一个 CA,它从属于 Cybertrust 根 CA(参见图 1)。Cybertrust 在其 OmniRoot 计划中提供了此项服务。在此方案中,LSU 建立并运作了一个在 LSU 自有设备上本地运行的 CA。然而,与先前讨论的内部模型不同,LSU 的 CA 不是自签名的,并且其密钥(及其签名的任何密钥)在现今的几乎所有操作系统和浏览器上都是隐含受信任的。从技术上讲,此设计是 x.509 标准开放性的逻辑扩展。由于 PKI 建立在这些标准上,所以可以将不同供应商创建的系统插入到同一总体层次结构中。这就是说,OmniRoot 解决方案特别引人注意的地方是服务的使用条款。

图 1 Cybertrust 全球根证书

图 1** Cybertrust 全球根证书 **(单击该图像获得较大视图)

OmniRoot 服务专为我们在 LSU 实现的那种 PKI 部署而设计。在 OmniRoot 计划中,加入该计划的组织每年要向 Cybertrust 支付一笔固定费用,然后只需为那些针对公共用途而创建的证书按每个证书支付费用。换言之,LSU 可以根据需要颁发任意数目的证书以供内部使用,而不必担心每证书费用的增加。同时,面向公众证书的费用现在也大大低于该大学按需购买证书时所支付的费用。

清楚点讲,内部证书和公共证书从技术观点来看别无二致。它们从同一 CA 链颁发,具有相同的密码强度,而且是通过同一注册授权系统置备的。二者的唯一不同之处就是许可条款。

最终,我们已能够以较低的费用来扩展和增强 LSU IT 安全性平台。此成就为 LSU 的这种 PKI 解决方案树立了一个大型商业典范。现在,让我们看一下部署的更多技术细节。

PKI 层次结构

LSU 的 PKI 层次结构采用双层设计而构建,根层由 Cybertrust 和在 LSU 运行的在线颁发 CA 进行管理(参见图 2)。根层构成了层次结构中的信任锚。换言之,由层次结构中的任何 CA 颁发的所有证书的信任关系均归入 CA(参见图 3)。因此,根 CA 形成了层次结构中所有 CA、证书和最终实体之间的共同纽带。由于 Cybertrust 全球根已内置到 Windows® 以及现今的几乎每一个其他计算系统中,因此这个共同纽带会自动延伸到 LSU 的网络范围之外。

Figure 2 双层 PKI 层次结构

根层 (Cybertrust) 颁发层 (LSU)
由 Cybertrust 管理 由 LSU 管理
位于 Cybertrust 的安全数据中心 位于 LSU 的 Baton Rouge 校园
包含在几乎所有现今计算系统的默认根证书内 向 LSU 系统组织内的最终实体颁发证书
  由 LSU 颁发的证书归于 Cybertrust 根下,因而受到全球信任

图 3 LSU 的颁发 CA 所颁发的证书

图 3** LSU 的颁发 CA 所颁发的证书 **(单击该图像获得较大视图)

Cybertrust 在其某一个安全托管设施中管理根 CA。托管设施使用了强大的物理安全控制,包括陷阱、生物特征锁和全铜外壳的储存库。Cybertrust 只将证书颁发给已证明符合其安全及证书策略的组织的颁发 CA。

LSU 的颁发 CA 是一个面向最终实体的系统,负责向 LSU 的用户和机器群体提供证书。其证书由层次结构中位居其上的 Cybertrust CA 签名,并且它所颁发的证书通过其自身链接到 Cybertrust 根 CA(参见图 3)。

颁发 OS 和硬件

LSU 对其颁发 CA 使用了带有 Service Pack 1 的 Windows Server® 2003 Enterprise Edition。Windows Server 2003 证书颁发机构服务提供了许多新功能,包括密钥存档、增量证书吊销列表 (CRL) 和“版本 2”模板。用作颁发 CA 的 Windows 实例依据标准 LSU Windows Server 构建策略构建。它在更新过程中进行了所有相关安全性的更新,并使用标准的 LSU 变更管理措施以及软件清单和更新工具进行管理。简言之,尽管管理 CA 服务本身有一些独特之处,但基础服务器硬件和操作系统很容易集成到组织的现有 IT 操作中。

除了遵循标准的 LSU 服务器安装最佳实践之外,我们还利用了 Windows Server 2003 Service Pack 1 中提供的安全配置向导 (SCW)。SCW 使用了一个数据库,其中包含可在 Windows Server 上运行的各种工作负荷的依赖矩阵以及这些工作负荷所需的安全性设置。此数据库包括将由 CA 提供的两个主要角色 — CA 服务本身和 IIS(它提供了 PKI 自服务网站)。

我们使用 SCW 很容易就创建了一个安全模板,除了运行这些工作负荷所需的服务以及强化服务器网络堆栈的服务之外,该模板禁用了其他所有的服务。然后,我们使用 scwcmd.exe 将此模板转换成组策略对象 (GPO),以便能将其应用于组织单位级别的服务器。由于 LSU CA 基于角色的安全配置现存储在 Active Directory 内而与特定的机器无关,因而此方法简化了扩展和灾难恢复。

LSU 的颁发 CA 建立在一台 IBM xSeries 346 服务器上,该服务器具有双 3.2GHz Intel Xeon 处理器、4GB 的 RAM 和五个 146GB 的 SCSI 硬盘。根据 CA 服务的性能要求以及 LSU 利用硬件安全模块的事实,此平台应具备显著的生命力和成长空间。

按照标准最佳实践,我们通过创建两个 RAID 1 阵列将数据库和日志文件分割到单独的物理心轴上。第五个硬盘保留作为热备件且对这两个阵列均可用。我们将第一个阵列作为系统卷进行安装,其上存放着 CA 数据库。第二个阵列用于日志文件和其他各种数据文件,如 CRL。CA 数据库基于其他 Windows 部件(如 Active Directory)中已有的相同 Jet 技术而建立,所以其他基于 Jet 的存储解决方案的维护和磁盘配置最佳实践在此同样适用。

硬件安全模块 (HSM) 是专用的硬件设备,与操作系统分开进行管理。HSM 通常以 PCI 适配器形式出现,但也可作为基于网络的装置提供。这些模块不仅为 CA 密钥提供了一个安全的硬件存储区,而且还提供了一个专用的密码处理器来加速签名和加密操作。Windows 通过 CryptoAPI 接口利用 HSM — HSM 被视为一台密码服务提供商 (CSP) 设备。OmniRoot 计划要求每个 CA 至少使用一个经过 FIPS 140-2 级别 3(级别 4 的设备相当罕见)认证的 HSM 进行密钥生成和存储。作为独特而又高度安全的设备,HSM 需要一笔可观的财物投资;基于 PCI 的 HSM 的定价一般在 10,000-15,000 美元之间。

在 LSU 设计中,使用了一台 nCipher nShield 500 TPS(“每秒 500 个事务”的型号)作为直连式 HSM。(“直连式”表示它属于服务器内部并且只能供该服务器使用,与之相反,基于网络的 HSM 可以为多台主机所共享。)该 HSM 是一台 FIPS 140-2 级别 3 设备,它为钥控材料提供了 N 的 K 重保护。HSM 提供了强力保护以防私钥泄漏 — 攻击者需要拥有 HSM 存储器以及规定数目的访问令牌及其 PIN,才能访问密钥。

关键要注意一点,HSM 是为了防止其内容遭到恶意方的篡改而设计的。因此,HSM 对连续登录尝试失败次数施加了严格的限制。在 LSU 的设计中,连续 10 次登录尝试失败后,存储器将被擦除且无法挽回。

在我们的设置中只有一个 CA,所以没有理由享受基于网络的 HSM 的价格优惠。然而,如果组织计划要实现两个或多个 CA,便能以大大便宜的价格购买单台基于网络的 HSM,并在各 CA 之间共享它。此方法也使令牌的管理变得更加容易,因为所有密钥存储均可以由同一组令牌加以保护。

Active Directory 和注册

基于 Windows 的 PKI 解决方案的主要好处之一是,无需在加入 PKI 的实体上安装附加软件即可完成证书置备。相反,通过自动注册和组策略相结合,大多数证书置备都可以进行自主管理,且对最终用户不可见。LSU 使用此技术将机器证书自动分发给从属于其 Active Directory 的计算机。而且,我们使用一个自定义网站为非 Windows 主机提供了自服务证书请求功能。

正如前面提到的那样,OmniRoot 计划区分公共使用的证书和内部使用的证书。如果证书由不属于 LSU 组织的系统和用户使用(例如,当某位预期学生通过 SSL 安全网站提交入学申请时),它们将被视为公共证书。在 LSU 组织内部使用的证书(例如用于在 LSU 的服务器上加密数据的证书)被视为内部证书。

由于 OmniRoot 计划的费用取决于面向公共证书的数量,因此我们需要能够跟踪颁发了多少公共证书以及颁发给了哪些人。这样,对于任何公共用途的证书,模板的可辨别名称以“PublicCertificate”开头,显示名称以“Public Certificate”开头。例如,面向公共的 LSU TLS 证书模板基于默认的 Windows Web Server 模板,且被称为 Public Certificate LSU Web Server。对于内部使用的 Web 服务器,我们还有另一个模板,称为 Internal Certificate LSU Web Server。从技术上讲,这两个模板是完全一样的,命名上的区别只是为了简化记帐工作。

对于批量注册需求(例如为用于 IPSec 的证书注册整个部门),我们依靠自动注册。这是 Windows 中内置的一个简单而又高效的工具。从 PKI 管理员的观点来看,唯一需要的操作就是在模板上更改访问控制列表,同时授予任何一组需要证书的用户或计算机进行自动注册的权限。这些实体随后会自动检查 Active Directory,列举其具有自动注册访问权限的模板,找到具有这些模板的 CA,然后自动进行证书注册。另外,如果模板已被取代且在过期之前自动进行了续期,则自动注册功能还可确保证书被替换。

对于非批量用途,例如为 Web 服务器置备证书,我们使用了一个自服务网站,借此用户可以通过 Web 浏览器请求证书。此站点是 Windows Server 2003 随带的 Web 注册页面(/certsrv 虚拟目录)的自定义版本;我们的实现包括加上 LSU 标准的 Web 标记以及预先填写请求页面上正确的默认条目。而且,我们使用 Windows CA 服务中的默认退出模块,在通过此站点发送的请求需要批准时自动向我们的 PKI 管理团队发送电子邮件。

吊销设计

每个证书都有一个有效的生存期。有时,LSU 需要使未到有效期限的某些证书无效(例如,如果发给某位员工的证书在 2007 年 5 月有效期满,而该员工在 2007 年 1 月就离开了 LSU)。此类吊销是通过 CRL(它们是包含由 CA 签名的证书序列号列表的文件)来完成的。CRL 上所含的序列号是指那些有效生存期未满但 LSU 不再认为其值得信任的证书。客户端随后可以下载此 CRL 并对照检查以确定证书的有效性。

任何 x.509 v3 证书(除了根 CA 证书本身)均应有一个指向有效 CRL 的指针。此指针称为 CRL 分发点,简称 CDP。CRL 分发点包含于证书本身(参见图 4),并且不能在颁发证书后进行修改。CRL 是一个基本部件,用于保证来自 CA 的证书是有效的。同样,我们要确保 LSU CRL 具有物理冗余性和高可用性且可被外部各方访问。

图 4 LSU 的 CRL 分发点

图 4** LSU 的 CRL 分发点 **(单击该图像获得较大视图)

与 Active Directory 集成在一起的基于 Windows Server 的 CA(如 LSU 那样)会自动将其 CRL 发布到 Active Directory,这样便可通过轻量目录访问协议 (LDAP) 对其进行访问。默认的发布位置是林中公钥服务容器内的 CDP 容器(参见图 5)。此发布位置是一个绝佳选择,因为它提供了自动复制、容错以及 CDP 局部查找功能。

图 5 CDP 容器

图 5** CDP 容器 **(单击该图像获得较大视图)

然而,在 LSU 设计中存在许多利用 PKI 的非 Windows 和非 Active Directory 计算机。而且,尽管 LSU 是一个大型组织,但其绝大多数用户都位于同一校园网络(具有一条 10Gbps 的主干线),这就使得基于 Active Directory 的 CDP 发布的优点只能得到最低限度的发挥。

因此,我们只将 CRL 发布到某个 HTTP 路径,从而使构建冗余托管平台变得更加容易(我们主要的网站已建立了镜像站点)。这样也就消除了与启用客户端 LDAP 查找有关的潜在复杂性。我们每日发布一次 CRL,每小时进行一次增量式 CRL 发布。

展望

尽管我们当前的 PKI 为大学社区提供了强大的安全解决方案,但我们计划继续增强其功能。Windows Vista™ 和下一个版本的 Windows Server(代号为“Longhorn”)将会提供大量新的密钥管理功能,我们计划对这些功能进行研究。我们特别感兴趣的地方有已计划的在线证书状态协议 (OCSP) 客户端和响应器功能、对椭圆曲线密码术和 SHA-256 算法的支持以及大为改进的自动注册界面。此外,Windows XP Service Pack 3 计划加入一项称为凭据漫游的功能,它将在不带来漫游配置文件所涉及的系统开销的情况下提供密钥对安全漫游。最后,我们将对证书生命周期管理器(当前提供有测试版)的使用进行研究,以便提高我们的报告和管理能力。

总之,LSU 的 PKI 为大学提供了一项基本的安全服务,该服务在许多关键的 IT 功能中得到了应用。使用 Cybertrust 的 OmniRoot 服务,我们可以运行与 LSU 的其他 IT 系统完好集成的 PKI,但全球都可以得到它的信任。并且,通过在 Windows CA 服务上构建该解决方案,我们获得了高效的证书置备和管理能力以及与现有目录和身份识别管理系统的完美集成。简言之,想象中的具有强大安全性和无缝信任的 PKI 已在 LSU 变成现实。

John Morello以最优异的学业成绩毕业于路易斯安那州立大学,并在 Microsoft 的 Microsoft Consulting Services 当过六年的高级顾问。他使用 MCS 为战略性客户(如 Deloitte、GE 以及各种联邦组织)构建了 PKI。他现任 LSU 的副首席信息安全官。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.