安全性

BitLocker 驱动器加密中的改进

Byron Hynes

 

概览:

  • BitLocker 增强功能
  • 获取和安装 BitLocker
  • 在服务器上使用 BitLocker
  • 完整数据保护的注意事项

在去年《TechNet 杂志》**的安全专刊中,我简要介绍了 Windows BitLocker 驱动器加密中的一些功能,藉以演示如何在 Windows Vista 的最初发行版中实现该功能。现在,随着

Windows Vista® Service Pack 1 和新版 Windows Server® 2008 操作系统的发布,我们需要再次讨论 BitLocker®。

在本文中,我将介绍最新版本中涉及的一些更改,概述如何在服务器上安装并使用 BitLocker,并提到一些值得注意的近期要点报告。(此外,要阅读去年的文章“使用 BitLocker 驱动器加密以保护数据的密钥”,请访问 technet.microsoft.com/magazine/cc138009.aspx。)

新增功能

此 BitLocker 版本引入的更改带来了全新的灵活性,而且没有更改任何基本操作。我要讲述的更改包括:支持数据卷,允许对计算机访问进行三重身份验证,支持统一的可扩展固件接口 (UEFI),适用于 64 位系统的新行业标准固件,能够更有效地防止针对卷元数据的加密攻击,以及受信任的平台模块 (TPM) 的增强用途。

数据卷

首次发布 Windows Vista 时,BitLocker 控制面板只允许对 Windows® 操作系统卷(通常是 C:驱动器)启用加密。对于大多数用户而言,此功能就已足够了,因为家庭计算机通常将用户的所有数据和程序与操作系统存储在同一个卷上。但在企业中通常却并非如此,更不用说服务器了。因此,客户最常提出的一个请求就是能够对数据卷加密。数据卷是指计算机上安装的除操作系统卷以外的卷(请注意,BitLocker 不适用于加密可移动媒体)。

图 1 所示,我在此计算机上有三个可用的卷。(如果包括用于启动的小型活动分区,则实际上有四个。)我的操作系统安装在驱动器 C:(实际显示为带有 Windows“徽标”的图标)上,另外还有两个数据卷 E:和 P:。数据卷 P:已使用 BitLocker 加密,并且当前处于锁定状态。数据卷 E:尚未加密。在 Windows Vista SP1 和 Windows Server 2008 中,我可以使用 BitLocker 控制面板小程序加密和解除锁定这些数据卷。

图 1 Bitlocker 界面

图 1** Bitlocker 界面 **(单击该图像获得较大视图)

如果已使用 BitLocker 对操作系统卷加密,则默认行为是在解除操作系统卷的锁定时,同时解除对加密的数据卷的锁定。如果使用控制面板解除对数据卷的锁定,您就可以看到此选项显示为一个复选框,如图 2 所示。

图 2 保存用于自动解除锁定的密钥

图 2** 保存用于自动解除锁定的密钥 **(单击该图像获得较大视图)

若要启用或禁用数据卷的“自动解除锁定”功能,请使用 manage-bde.wsf 命令行工具。Manage-bde.wsf 是 Windows 随附的一个功能强大的脚本,它使用随 BitLocker 一同安装的基础 Windows Management Instrumentation (WMI) 提供程序。

例如,若要标记数据卷 P:,使它必须以手动方式解除锁定,请使用以下命令:

manage-bde.wsf –autounlock –disable P:

若要再次启用 P: 的自动解除锁定,请使用:

manage-bde.wsf –autounlock –enable P:

BitLocker 控制面板并未显示使用 BitLocker 和数据卷可执行的所有操作,因此您应该使用 -?选项来探索 manage-bde.wsf 命令。manage-bde.wsf 语法在“Windows BitLocker 驱动器加密设计指南”和“Windows BitLocker 部署指南”中也有介绍,这两个指南可从 Microsoft 下载中心 go.microsoft.com/fwlink/?LinkId=115215 获得。

TPM+USB+PIN

客户也希望能够将其他身份验证要素与 BitLocker 配合使用。BitLocker 在您的计算机中使用 TPM 芯片以验证平台的完整性,即确定早期的启动组件(包括 BIOS)是否已被篡改或损坏。不过,自从 Windows Vista 发布以后,您现在还可以要求输入 PIN 或出示在启用 BitLocker 时创建的包含密钥的 USB 闪存驱动器。

现在借助 Windows Server 2008 和 Windows Vista SP1,您可以将上述三项结合使用。TPM 继续用于验证平台的完整性,USB 密钥代表“拥有的内容”,PIN 代表“知道的内容”。此配置提供了非常强大的防护功能,可防止未经授权的用户启动计算机和为受 BitLocker 保护的驱动器解除锁定。

不过就像在安全性中常见的情况一样,这也代表着取舍。显然,按这种方式配置 BitLocker 时,计算机将无法自动重新启动。以服务器为例,您必须决定哪个更重要:顺畅的重新启动还是更高级的保护功能。

UEFI 支持

在 Windows Server 2008 和 Windows Vista SP1 中,现已支持随附了统一的可扩展固件接口 (UEFI) 的计算机。UEFI 是一种规范,代表大多数计算机在启动时使用的传统 BIOS 的现代化。有关 UEFI 规范的详细信息,请访问 www.uefi.org

增强的保护功能

当 BitLocker 检测到系统已被更改,或是启动时未提供必需的 PIN 或 USB 密钥时,BitLocker 将进入恢复模式。在恢复模式下,启用 BitLocker 的卷将保持锁定,并向用户显示一个称为恢复控制台的文本模式对话框。

若要解除对驱动器的锁定,用户必须使用键盘或从 USB 闪存驱动器输入恢复密码(一个包含 48 位的数字)。(如果是存储在 USB 闪存驱动器中,则此密码有时称为恢复密钥,因为它是二进制格式,而非文本格式。)

BitLocker 使用恢复密码解密存储在卷元数据中的密钥 — 卷主密钥 (VMK),然后解密全卷加密密钥 (FVEK) 以解除对驱动器的锁定。若要成功完成恢复,必须有恢复密码的副本。

因此,除用户进行存储(如存储在 USB 闪存驱动器中)外,强烈建议您也集中存储恢复密码。操作系统提供了在 Active Directory® 域服务 (ADDS) 中存储密码的功能。

存储在卷元数据中的密钥(如 VMK)将进行加密,并且整个卷元数据的完整性将以加密形式予以保护。如果 BitLocker 检测到卷元数据已被篡改,它将拒绝使用任何元数据,并且不会解除对任何受保护卷的锁定。请注意,在此状态下仅使用恢复密码不能解除对驱动器的锁定。

我必须强调,这种情况只在计算机遭受蓄意的安全攻击时才会发生。如果发生这种情况,则您的计算机很可能已落入破坏者之手,而不再受您的控制。如果只是无意中更改了平台或忘记了 PIN,则不会引发这种情况。

若要解除对卷的锁定,您需要使用以下三个项目:

  • 恢复密码(可以是键入的文本,也可以位于 USB 闪存驱动器上)
  • 包含加密版本的 FVEK 和 VMK 的二进制密钥包
  • BitLocker 修复工具

简而言之,您需要确保您的企业始终能够访问上述所有项目。

恢复密码可以手动备份,也可以自动备份。建议使用组策略设置将恢复密码自动备份到 Active Directory 域服务。

当您配置此设置(如图 3 所示)时,需包括备份二进制密钥包的选项。二进制密钥包包括加密版本的 VMK 和 FVEK,允许您根据需要使用 BitLocker 修复工具。

图 3 配置组策略以在恢复信息中包含密钥包

图 3** 配置组策略以在恢复信息中包含密钥包 **(单击该图像获得较大视图)

BitLocker 修复工具设计用于帮助您从启用了 BitLocker 的损坏磁盘中恢复数据。请注意,这是一个高级工具,旨在供经验丰富的管理员使用。有关 BitLocker 修复工具的详细信息,请访问 support.microsoft.com/kb/928201 阅读 Microsoft 知识库文章,或观看我的网络广播“企业中的 Microsoft BitLocker:让生活更加轻松的 BitLocker 工具”(包括视频演示),网址为 go.microsoft.com/fwlink/?LinkId=114985

在此,需明确指出 BitLocker 不能代替备份数据的需求。如果磁盘损坏或受到蓄意攻击,则 BitLocker 修复工具完全不能保证能够恢复任何数据,更不用说所有数据。

TPM 更广泛的用途

从技术上讲,这并不是一项 BitLocker 更改,但它非常棒,完全值得一提。在 SP1 之前,BitLocker 是 Windows 操作系统中唯一使用 TPM 的部分,但现在 TPM 还可用于其他一些功能。例如,当 Windows 知道 TPM 可用时,便会在生成随机数字时使用 TPM 作为增加平均信息量的来源。这样,可提高各种加密的品质(甚至可能让游戏玩得更顺畅)。

但是,这也意味着事件查看器中显示的与 TPM 相关的事件不一定都与 BitLocker 相关。作为 IT 专业人员,您必须注意其他系统组件(可能是来自其他供应商的软件)可能并且将会使用 TPM,这就会记录一些其他事件。

Windows Server 2008 中的 BitLocker

由于 Windows Vista 和 Windows Server 2008 共用基本代码,所以 SP1 中出现的 BitLocker 更改也是 Windows Server 2008 中不可或缺的部分。但是为什么 BitLocker 在服务器上非常重要呢?毕竟,BitLocker 的设计目的就是保护计算机免受脱机攻击。换句话说,BitLocker 无法对正在运行的系统提供保护,而服务器通常会一直保持运行状态。

实际上,服务器或服务器的硬盘还是有可能遭受脱机攻击。即使从未发生过这种情况,当取消服务器或硬盘配置时,BitLocker 仍然大有帮助,接下来我们就会提到。首先,我们来看一下如何在服务器上安装和运行 BitLocker。

获取和安装 BitLocker

Windows Server 2008 的所有版本中都包含 BitLocker,但它是可选组件或功能,必须从服务器管理器或命令行安装。BitLocker 将作为 NTFS 筛选器驱动程序的一部分实现。安装此筛选器驱动程序需要重新启动计算机,因此请记住,在服务器上激活 BitLocker 需要重新启动。此外,就像 Windows Vista 一样,BitLocker 需要进行拆分加载配置,其中用于启动计算机的活动分区将保持未加密状态。如果来自制造商的服务器未预先配置,可使用 BitLocker Drive Preparation Tool 帮助您正确配置硬盘以支持 BitLocker。不过,如果您非常熟悉硬盘驱动器分区,当然可以手动配置硬盘。

若要将 BitLocker 安装到 Windows Server 2008 中,你可以使用服务器管理器图形界面从功能列表中选择 BitLocker(如图 4 所示),也可以通过发出命令来使用服务器管理器命令行接口:

图 4 在服务器管理器中选择 BitLocker

图 4** 在服务器管理器中选择 BitLocker **(单击该图像获得较大视图)

ServerManagerCmd –install BitLocker –restart

使用服务器管理器时,它将安装 BitLocker 和 BitLocker 的管理工具。您还可以不安装 BitLocker,而只安装管理组件。这样就无需重新启动计算机,因为筛选器驱动程序未包含在内。此组件的名称是“RSAT-BitLocker”。

BitLocker 在运行服务器核心安装选项的计算机上运行正常,但您无法使用服务器管理器将 BitLocker 安装到服务器核心上,或使用图形用户界面在服务器核心上管理 BitLocker。因此,若要安装组件,请改用命令行工具 pkgmgr 或 ocsetup。

当安装好 BitLocker 二进制文件,并在必要的拆分加载配置中配置好磁盘后,您就可以在操作系统卷上启用 BitLocker。BitLocker 控制面板小程序在 Windows Server 2008 和 Windows Vista SP1 中使用相同的图标和选项。若要启用 BitLocker 的高级模式,您需要使用本地策略编辑器或适用于服务器的组策略对象来调整默认设置。

在服务器核心上,或者您只是不想使用控制面板时,可以使用 manage-bde.wsf 来启用 BitLocker。若要在驱动器 C: 上启用 BitLocker,请键入

manage-bde.wsf –on C: -RecoveryPassword –RecoveryKey F:\

其中,C:是要加密的卷,F:\ 是 USB 密钥或将用于存储恢复密钥副本(二进制格式)的另一个卷。您也可以使用 UNC 路径在网络驱动器上存储恢复密钥。还会生成并显示恢复密码(数值文本格式)。如果确定硬件平台符合所有 BitLocker 要求,您可能希望添加 –skiphardwaretest 参数。这可以避免一次重新启动。

服务器方案

现在,我们来讨论一些 BitLocker 在服务器中派上用场的具体方案。请记住,我曾经提到过 BitLocker 旨在帮助保护免受脱机攻击,这种攻击在 Windows 未运行时发生。

分公司 BitLocker 在服务器上最重要和最明显的用途之一就是作为 Windows Server 2008 分公司策略一部分。有四分之一到三分之一的服务器安装在分公司 — 也就是物理安全性较低、对 IT 支持的访问权限较低,并且到数据中心的连接能力可能也较差的办公室。分公司也是易受攻击的目标。如果将 BitLocker 与只读域控制器 (RODC) 等功能结合使用,则可以帮助保护那些必须存储在分公司使用、但无法提供像数据中心一样的物理安全性的敏感数据。

这时,正好可以思考一下适当的保护级别。防止未经授权而访问数据和要求立即备份服务器且不发生中断,哪个更重要?我的建议是,在许多分公司中,要求输入 PIN 来重新启动服务器是可接受的,但是各家公司必须自行决定。

运送磁盘 您经常会需要将硬盘上的数据传送到很远的地方。可能是传送单张磁盘,也可能是预配置并运送整个服务器。在运送期间,这些磁盘上的数据将不受控制,并可能丢失、被复制或被窃取。

要降低风险,请在运送前对计算机上的卷启用 BitLocker,然后移除所有密钥保护程序,但保留恢复密钥或恢复密码。此密钥或密码可以与服务器分开携带,甚至可以通过电话或加密的电子邮件告知接收方员工。一旦收到计算机或磁盘后,便可使用恢复密码解除对驱动器的锁定。驱动器可以保持加密状态(再次加入其他密钥保护程序),也可以在交付之后完全解密(如果需要)。

若要为分公司预先设置域控制器或服务器,这种方法将非常有效。

服务器的失窃风险 正如上一部分所述,服务器(特别是域控制器)要面对被窃取的实际危险。窃贼可能会借机窃取便携式计算机,但对服务器的窃取可能是精心设计的。如果将 BitLocker 配置为仅需要 TPM 完整性检查,那么窃取的服务器可能轻易就被启动和引导。相反,如果服务器中的驱动器受 BitLocker 保护,且 BitLocker 是以高级模式配置的(需要 USB 密钥、PIN 或两者),则窃贼就很难在合理的时间内获得任何有用的信息。

磁盘的失窃风险 但是反过来说,如果只有磁盘被窃,TPM 仍可提供高度的保护。只有使用原始服务器的 TPM 才能为受 BitLocker 保护的驱动器解除锁定,因此无法直接将磁盘插入到另一台计算机进行读取。

降低风险 通过订购包含 TPM 芯片的服务器硬件并使用 BitLocker 平台完整性检查,可以增强对某些形式的恶意软件的防御能力。尤其是,BitLocker 将检测在 Windows 脱机时所做的更改或对早期启动组件所作的更改,特别是当恶意软件(如 rootkit)需要重新启动才能安装时。这并不是全面的解决方案,但与某些功能(如 Windows 代码完整性)和产品(如 Microsoft® ForefrontTM Client Security)结合后,即可提供另一层级的深层防御能力。

安全取消配置 BitLocker 最实用的一个方案就是在服务器或磁盘的生命周期的结束时。您是否常听说服务器或服务器上的磁盘未经妥善地取消配置便被弃置?您是否知道在拍卖场上,使用过的硬盘驱动器有时比新硬盘驱动器售价还高,因为不正当的买家希望从那些磁盘中获取有用的信息?

幸好,BitLocker 提供了另一种方法,而无需采取昂贵又耗时的过程来清理磁盘上有用的数据。基本上,没有任何信息会以有用的格式写入磁盘。由于加密的数据已无法使用,因此可以快速、轻松地移除所有关键信息。这样,无论以后如何处置磁盘硬件 — 可能被出售、回收、另作他用,都不必担心数据会被不当使用。

在 Windows Vista 和 Windows Server 2008 中,已将格式命令更新为清除 BitLocker 密钥(包括多次覆盖)。现在,您可以使用简单而有效的方式来取消驱动器的配置。

最新消息

当我撰写本文时,也就是您读到本出版物的数周前,许多最新的文章、论文和新闻报告讨论了一些有趣的硬件特性,以及这些特性对 BitLocker、其他 Windows 安全功能及来自不同供应商的加密产品有何影响。我想花点时间来讨论其中的一些新发现。

其中一项发现是由普林斯顿大学的研究人员发表的,他们展示了(令人印象非常深刻!)现代计算机内存的一个特性,有时称为“DRAM 剩磁”(可从 citp.princeton.edu/pub/coldboot.pdf 中找到文章)。简单来讲,就是可以在移除内存电源后的一段时间内访问计算机内存的内容。当然,BitLocker 是在 Windows 运行时将解密数据的密钥保存在内存中的,问题在于密钥可能会被未经授权用户获得。

Adam Boileau 的另一项演示 (security-assessment.com/files/presentations/ab_firewire_rux2k6-final.pdf) 展示了 IEEE 1394(通常称为 FireWire)如何允许直接内存访问 (DMA),这可用于获取 Windows 上的机密信息,例如密码或解密密钥。有趣之处在于 DMA 几乎等于点 1394;但这不是缺陷,而是 Firewire 原本的设计。

不过,这两种攻击的共同之处在于它们都需要能够对正在运行的(或至少刚刚运行过的)计算机进行物理访问。BitLocker 并非针对联机攻击防护而设计,而且也不能免除一定程度的物理安全性需求。适当的深层防御需要使用多种工具和功能、创建物理安全性的环境、拟定基本的公司策略并持续对用户进行培训。

当然,这些都不是新发现。这些方法已经流传了一段时间,并且实际上就记录在 Microsoft® 数据加密工具包 (DET) 中。DET 中提供的风险分析旨在协助客户在安全性、可用性以及实施和管理成本之间取得平衡。这不容忽视。我们相信只有受过良好培训的用户才最能权衡安全性、可用性和成本以做出决策。

除 DET 之外,我的几位同事也提供了一些出色的评论和指导。首先,Russ Humphries 在其博客文章 go.microsoft.com/fwlink/?LinkId=115217 中讨论了 DRAM 剩磁环境中的安全性取舍。此外,Douglas MacIver 在 System Integrity (SI) 团队博客 go.microsoft.com/fwlink/?LinkId=115218 上撰写了其他的具体配置步骤和当今可采取的对策。强烈建议您抽时间阅读一下这两篇实用的博客文章。您还应该阅读 DET。

这些建议事项的关键在于使用高级模式(即需要 USB 密钥或 PIN 的模式),并且不要使计算机在无人看管的情况下进入睡眠模式(请改用休眠)。

结束语

BitLocker 仍然是 Windows Vista 最有用的功能之一。随着 SP1 的发布,BitLocker 也得到了增强,可直接回应客户反馈,能够启用更多方案,并符合数据保护的更广泛需求。将空闲数据保护机制扩展到 Windows Server 2008 中可为您提供更多方法来保护数据和维护符合性,而无论这些数据是存储在服务器、客户端工作站、数据中心、分公司中,还是由移动工作人员保管。

Byron Hynes 是 Microsoft“企业和合作伙伴组 (EPG)”的企业技术规划师,主要研究安全功能和产品。在加入 EPG 之前,他在 Windows Server 部门工作,并于 2005 年开始认真研究 BitLocker(系统完整性)。欢迎您提出意见和问题。请通过 Tech•Ed 2008 或发送电子邮件至 bhynes@microsoft.com 与他联系。

© 2008 Microsoft Corporation 和 CMP Media, LLC。保留所有权利;未经允许不得复制本文的部分或全部内容.