安全性

使用 BitLocker 驱动器加密以保护数据的密钥

Byron Hynes

 

概览:

  • 整卷加密
  • BitLocker 密钥
  • 设置 BitLocker

Windows BitLocker 驱动器加密毫无疑问是 Windows Vista 中谈论最多的功能之一。但是,大多数人尚没有太多机会来测试 BitLocker,以亲身体验

它的作用和工作原理 — 尤其不在具备受信任的平台模块 (TPM) 的计算机上。在本文中,我将向您介绍 BitLocker™ 的基础知识,以便您评估其潜力,并将其纳入您的升级规划。我会从一些背景和概念性信息开始讲起,然后介绍启用 BitLocker、数据恢复、管理,以及 BitLocker 如何在计算机生命末期发挥作用。要更好地理解本文中的术语,请查看侧栏“磁盘和卷”。

磁盘和卷

围绕磁盘和卷的术语往往会使人混淆。下面是一个简要术语表,供您参考。

分区:分区是物理硬盘的一部分,它是磁盘上存储的分区表中定义的逻辑结构。

卷:卷是 Windows 中由一个或多个分区组成的逻辑结构,由称为“卷管理器”的 Windows 组件所定义。除了卷管理器和启动组件,其余的操作系统组件和应用程序均使用卷,而非分区。在 Windows 客户端操作系统环境下,包括 Windows Vista 在内,分区和卷通常具有一对一的关系。而在服务器中,一个卷通常由多个分区组成,比如典型的 RAID 配置。

活动分区:一次只能将一个分区标为活动分区。此分区包括了用于启动操作系统的引导扇区。活动分区有时称为系统分区或系统卷,但是,请不要将这些术语和 Windows 操作系统卷混淆。

Windows 操作系统卷:此卷包含 Windows 安装,其中包括 System 文件夹和 System32 文件夹。Windows Vista 发布之前,用到了(并且仍在经常使用)术语“引导分区”。术语“Windows 操作系统卷”较为清楚,可避免引导分区和系统分区之间不断的混淆。在过去,培训师有时会让学生这样记忆:“从系统分区启动,在引导分区上查找系统文件”。

在 Windows Vista 之前,Windows 操作系统卷(也称为引导分区)和活动分区(也称为系统分区)是同一回事,因为大多数客户端计算机上的硬盘都配置为单独一个大分区。在图 A 中,您会看到分配给 Windows Vista 的“磁盘管理”控制台中每个分区或卷的功能。

图 A 分区功能

图 A** 分区功能 **(单击该图像获得较大视图)

BitLocker 真正起到了两个既互补而又截然不同的作用。首先,BitLocker 为 Windows® 操作系统卷提供了整卷加密。其次,在具备兼容的 TPM 的计算机上,BitLocker 提供了在允许 Windows Vista™ 启动之前验证早期启动组件完整性的方法。

若要使用 BitLocker 的所有功能,您的计算机必须具备兼容的 TPM 微芯片和 BIOS。兼容要求 1.2 版的 TPM,以及满足以下条件的 BIOS:支持 TPM 和由可信赖运算组织 (TCG) 定义的 Static Root of Trust Measurement。但是,没有兼容的 TPM 和 BIOS 的计算机仍可使用 BitLocker 加密。

整卷加密

BitLocker 提供了整卷加密,确保对写入 Windows 操作系统卷的所有数据都能进行加密。这是保护存储于组织的计算机(尤其是便携式计算机或移动计算机)中机密信息的关键。

移动计算机丢失或被盗事件每天都会发生。具备了提高的便携式计算能力和移动性日益增强的工作团队,一名办公人员便能携带几百 GB 的组织商业机密、机密文档或客户个人身份信息 (PII)。只要随意进行新闻搜索,便会发现太多数据丢失之类的事件。(隐私权交流中心宣称,自 2005 年以来,已有超过 1.04 亿包含个人信息的记录发生丢失或泄漏。)

大多数组织已经在按照法律和公司要求保护多类隐私信息,并且,即使法律上并未要求,您很可能也会因为业务利益而必须如此去做。

为什么要加密整个卷?

如果您是位经验丰富的 Windows 管理员,您可能已经熟悉了基于 Windows 的加密选项,比如加密文件系统 (EFS),或者由权限管理服务 (RMS) 提供的加密和保护。BitLocker 最大的不同之处在于,它在启用后是自动、透明的,并包括整个卷。

例如,使用 EFS,您必须明确指明要保护哪些文件和文件夹。在 Windows Vista 中,有一些新选项可使 EFS 更加灵活,并使 EFS 和 RMS 能分别处理 BitLocker 无法处理的某些情况。但是,EFS 和 RMS 都需要管理员进行大量配置,并且不是为保护卷上存储的所有资料而专门设计的。

与之相反,BitLocker 会对写入 BitLocker 保护卷上的所有资料进行加密,包括操作系统本身、注册表、休眠文件和分页文件、应用程序以及应用程序使用的数据。

以下三项不会被加密:引导扇区、标为不可读的坏扇区和卷元数据。卷元数据由用于管理 BitLocker 的三个冗余副本数据组成,包括关于卷的统计信息,以及一些解密密钥的受保护副本。这些项不需要加密,因为它们并不是唯一的、有价值的,或者可辨认个人身份。

整卷加密可防止离线攻击 — 一种通过试图绕过操作系统而发动的攻击。例如,常见的离线攻击是窃取计算机、拆除硬盘并将其安装为其他计算机(运行 Windows 不同副本或不同操作系统)上的第二个驱动器,从而消除 NTFS 权限和用户密码。然而,使用这种攻击却无法读取 BitLocker 保护的卷。

BitLocker 如何加密数据

BitLocker 使用 128 位密钥的高级加密标准 (AES) 算法。要获得更好的保护,可使用“组策略”或 BitLocker Windows Management Instrumentation (WMI) 提供程序将密钥增至 256 位。

卷中的每个扇区都单独进行加密,加密密钥的一部分是从扇区编号本身派生而来。这意味着,包含完全相同的未加密数据的两个扇区也会以不同的加密字节写入磁盘,这使得通过创建和加密已知部分信息的方法来尝试发现密钥的难度大大增加。

使用 AES 加密数据前,BitLocker 还会使用一种称为“扩散器”的算法。无需深入说明其加密技术,对扩散器的简单描述就是,它可以确保即使是对明文的细微更改都会导致整个扇区的加密密文发生变化。这也使得攻击者发现密钥或数据的难度大大增加。

如果您对 BitLocker 加密算法的详细信息感兴趣,则可以阅读 Neil Ferguson 的相关文章“AES-CBC + Elephant 扩散器: 用于 Windows Vista 的磁盘加密算法”。

BitLocker 密钥

无论何时处理加密,您都需要了解密钥,BitLocker 也不例外。BitLocker 使用明确但有些复杂的密钥体系结构。

这些扇区本身使用称为“整卷加密密钥”(FVEK) 的密钥加密。然而,FVEK 不会由用户使用,而且用户也无法进行访问。FVEK 又会使用称为“卷主密钥”(VMK) 的密钥加密。此程度的抽象性带来了独一无二的好处,但也使得整个过程较难理解。FVEK 作为严密保护的秘密来保存,因为一旦泄漏,所有的扇区都需要重新加密。因为这是一个费时的操作,所以应当尽量避免。实际上,系统使用 VMK 代之。

FVEK(使用 VMK 加密)存储于磁盘本身,作为卷元数据的一部分。虽然 FVEK 在本地存储,但从不写入未加密的磁盘。

VMK 也进行加密或“保护”,但使用的是一个或多个可能的密钥保护程序。默认的密钥保护程序是 TPM。TPM 的使用会在以下完整性检查部分进行介绍。此外还会创建恢复密码作为密钥保护程序,用于紧急情况。恢复也会在稍后进行介绍。

您可以将 TPM 与数字 PIN 或存储在 USB 驱动器上的部分密钥组合使用,从而获得更高的安全性。上述每种方法都是某种形式的双因素身份验证。如果您的计算机没有兼容的 TPM 芯片和 BIOS,BitLocker 可配置为将密钥保护程序完全存储在 USB 驱动器上。这称为“启动密钥”。

BitLocker 无需解密数据便可禁用,在此情况下,VMK 仅由未加密存储的新密钥保护程序进行保护。请注意,此透明密钥允许系统访问驱动器,好像该驱动器未受保护一样。

启动时,系统会通过查询 TPM,检查 USB 端口或者在必要情况下提示用户(称为恢复),来搜寻适当的密钥保护程序。查找密钥保护程序会让 Windows 解密 VMK,这会解密 FVEK,而这又会解密存储在磁盘上的数据。图 1 显示了这一过程。

图 1 BitLocker 默认启动过程

图 1** BitLocker 默认启动过程 **

完整性检查

由于启动过程最初阶段的组件必须是未加密可用的,以便计算机能够启动,而攻击者可能会趁机更改早期启动组件中的代码(想一想 rootkit),从而能够访问计算机,即使磁盘中的数据已被加密。

通过这种攻击,入侵者很有可能获得机密信息的访问权,比如 BitLocker 密钥或用户密码,并利用该信息避开其他安全保护措施。

防止这种攻击是该程序和团队创建 BitLocker 的最初目标之一。在某些方面,加密几乎是达到目的的一种手段。整卷加密允许 BitLocker 保护系统的完整性,并防止在早期启动组件被更改的情况下启动 Windows。

在具备兼容的 TPM 的计算机上,每次计算机启动时,每个早期启动组件(比如 BIOS、主引导记录 (MBR)、引导扇区和启动管理器代码)都会检查要运行的代码,计算哈希值,并将该值存储于 TPM 中的特定注册表,它称为平台配置注册表 (PCR)。一旦将值存储到 PCR,除非系统重新启动,否则就不能替换或清除该值。BitLocker 使用 TPM 和存储在 PCR 中的值来保护 VMK。

TPM 可创建绑定到特定 PCR 值的密钥。创建这类密钥时,TPM 会加密该密钥,且只有特定的 TPM 才能对其解密。可是,除此之外,仅当当前 PCR 值与创建密钥时指定的值匹配的情况下,TPM 才会解密该密钥。这称为将密钥封装到 TPM。

默认情况下,BitLocker 将密钥封装到 Core Root of Trust Measurement (CRTM)、BIOS 和任意平台扩展、选项 ROM 代码、MBR 代码、NTFS 引导扇区以及启动管理器的测量结果。如果其中任一项被意外更改,BitLocker 都会锁定驱动器,以防其被访问或解密。

默认情况下,BitLocker 配置为查找并使用 TPM。您可以使用“组策略”或本地策略设置,使 BitLocker 在没有 TPM 的情况下工作,并将密钥存储于外部 USB 闪存驱动器,但是没有 TPM,BitLocker 将无法验证系统完整性。

第一次启用 BitLocker

Windows Vista Enterprise 和 Windows Vista Ultimate 中提供了 BitLocker。(BitLocker 还将作为可选组件包含在下一版本的 Windows Server® 中,代号为“Longhorn”。)

以下讨论假设您已有具备兼容的 TPM 的计算机可供测试。如果您要在没有 TPM 的计算机上启用 BitLocker,请遵循侧栏“在没有 TPM 的情况下使用 BitLocker”中所列的步骤。

在没有 TPM 的情况下使用 BitLocker

BitLocker 默认配置为使用 TPM,如果您没有 TPM,现成的 Windows 将不允许您启用 BitLocker。但是,来自“Windows BitLocker 驱动器加密逐步指南”的以下步骤,能够让您在没有 TPM 的情况下使用 BitLocker。

要执行这些步骤,您必须以管理员身份登录。即使没有 TPM,您的计算机也必须支持在启动过程期间从 USB 闪存驱动器读取数据。此外,启用 BitLocker 及每次重新启动计算机时,您都必须具有 USB 闪存驱动器。

请按照下列步骤,在没有兼容的 TPM 的计算机上启用 BitLocker 驱动器加密:

  1. 单击“开始”,在“开始搜索”框中键入“gpedit.msc”,然后按 Enter。
  2. 如果出现“用户帐户控制”对话框,请确认建议操作正是您请求的操作,然后单击“继续”。
  3. 在“组策略对象编辑器”控制台树中,依次单击“本地计算机策略”、“管理模板”、“Windows 组件”,然后再双击“BitLocker 驱动器加密”。
  4. 双击设置“控制面板设置: 启用高级启动选项”。“控制面板设置: 启用高级启动选项”对话框将会出现。
  5. 选择“已启用”选项,选中“没有兼容的 TPM 时允许 BitLocker”复选框,然后单击“确定”。您已经更改策略设置,现在便可使用启动密钥代替 TPM。
  6. 关闭“组策略对象编辑器”。
  7. 要强制“组策略”立即应用,您可以单击“开始”,在“开始搜索”框中键入“gpupdate.exe /force”,然后按 Enter。等待该过程完成。

启用 BitLocker 的重要一点是确保正确配置了您的卷。BitLocker 要求活动分区处于未加密状态,以便能够读取引导扇区、启动管理器和 Windows 加载程序(这些组件由先前所述的系统完整性步骤所保护)。由于其他 Windows 组件可能需要临时用到活动分区,因此 Microsoft 建议活动分区至少为 1.5GB。配置 NTFS 权限也不失为一个好办法,这样用户便不会意外地将数据写入该卷。

Windows 本身将被安装到第二个较大的卷上,该卷可以加密。如果您要将 Windows 安装在新系统上,则可以按照 Windows BitLocker 驱动器加密逐步指南中的说明,手动配置卷。

您可以使用 BitLocker Drive Preparation Tool 来协助设置系统,以便使用 BitLocker。此工具摆脱了配置驱动器的辛苦工作,并作为 Windows Vista Ultimate Extra 提供,或提供给部署 Windows Vista Enterprise 的客户。有关 BitLocker Drive Preparation Tool 的详细说明,请访问 support.microsoft.com/kb/930063

BitLocker Drive Preparation Tool 会自动收缩卷(如果您只有一个卷)、创建第二个分区、使其成为活动分区、执行所有必需的配置更改,并将启动文件移到适当的位置。

配置卷后,启用 BitLocker 非常简单。在“控制面板”的“安全”部分,单击“BitLocker 驱动器加密”图标。在确认 UAC 同意提示后,将会出现类似于图 2 的屏幕。

图 2 启用 BitLocker

图 2** 启用 BitLocker **(单击该图像获得较大视图)

后续操作的确切顺序会因计算机上的 TPM 芯片状态而各异。如果 TPM 芯片未初始化,则会运行“TPM 初始化向导”。请按照提示来初始化 TPM,包括重新启动计算机。

初始化 TPM 后,会显示“保存恢复密码”页面,如图 3 所示。当发生 TPM 故障或其他问题时,为了能够恢复数据,您需要一个恢复密码。此页面可让您将恢复密码保存到 USB 闪存驱动器、本地硬盘或网络硬盘,或者打印出来妥善保存。您必须至少选择上述其中一项,并且您可以选择保存多份恢复密码。保存恢复密码后,便会启用“下一步”按钮。单击该按钮。

图 3 保存恢复密码

图 3** 保存恢复密码 **(单击该图像获得较大视图)

“加密选定的磁盘卷”页面将会出现,您可以选择是否要在开始加密之前运行系统检查。该系统检查会要求重新启动计算机,但这是确保您的 TPM、BIOS 及 USB 端口能够与 BitLocker 一起正常运行的最佳方法。重新启动后,如果检测到任何问题,您会看到错误消息。否则会显示“加密进行中”的状态栏。

就是这样。加密会在后台完成,您可以继续使用计算机。初始加密完成后,会出现消息通知您。您还可通过在屏幕底部工具栏中的“BitLocker 驱动器加密”图标上拖动光标,从而监视磁盘卷加密的现行完成状态。有关详细信息,您可参阅先前提到的“逐步指南”。

一些用户惊讶地发现,BitLocker 在计算机启动时不会提示用户或出现其他任何明显中断。这是因为,在默认配置中,BitLocker 在解除对卷的锁定之前依赖 TPM 来确认系统完整性。这是自动执行的,并且对用户透明。

您可以将 BitLocker 配置为启动时需要输入 PIN 或者有密钥存储在 USB 闪存驱动器上。这会加强安全,如果加强安全的重要性超过了输入 PIN 的不便,则建议采用这种方法。在我看来,安全性始终是应予最优先考虑的事。(换句话说,我的台式计算机要求 PIN,而我的便携式计算机要求 USB 密钥。)

BitLocker 恢复

处理加密时,尤其是在企业环境中,要有办法让授权用户即使在无法使用正常访问方法或没有密钥的情况下,都能够找回他们的数据,这是至关重要的。BitLocker 称之为“恢复”。

如果早期启动组件出现了一些意外更改,或者您丢失了 USB 启动密钥,或是用户忘记了自己的 PIN,则 BitLocker 便不能完成正常的启动过程。BitLocker 会使卷保持锁定状态,并且 Windows 也无法启动。取而代之,启动管理器中的 BitLocker 代码会显示一个文本屏幕。如果恢复密码(有时称为恢复密钥)已保存到 USB 闪存驱动器,则会出现类似于图 4 的屏幕。

图 4 查找恢复密钥

图 4** 查找恢复密钥 **(单击该图像获得较大视图)

要让 BitLocker 读取 USB 闪存驱动器,则必须在启动时就连接上。如果您有带恢复密码的 USB 闪存驱动器,请插上并按 Esc。如果没有这样的驱动器,按 Enter 即可看到图 5 所示的屏幕。如果从未有恢复密码保存到 USB 驱动器,那么也会显示此屏幕。

图 5 输入 BitLocker 密码

图 5** 输入 BitLocker 密码 **(单击该图像获得较大视图)

BitLocker 现在将会查找一个 48 位的数字密码,可解除对驱动器的锁定。如果您选择打印恢复密码,则会在页面上显示该数字,如果您已将恢复密码保存到一个文件夹,则它会存储在文件中。

企业中管理恢复密码最简单的方法就是将它们自动存储在 Active Directory® 中。若要获取有关这一过程的具体操作信息,请访问 go.microsoft.com/fwlink/?LinkId=87067

在后续文章中,我将详细描述 BitLocker 的可管理性,但是作为本概述的一部分,您必须了解 BitLocker 附带了完整的 WMI 提供程序,允许通过任一 WMI 兼容的基于 Web 的企业管理 (WBEM) 系统来管理 BitLocker(和 TPM)。这意味着能使用可访问 WMI 对象的任意脚本语言,比如 VBScript 或 Windows PowerShell™,来为 BitLocker 编写脚本。

BitLocker 还附带了一个名为 manage-bde.wsf 的命令行工具,可使用 WMI 提供程序让您在本机或远程计算机上管理 BitLocker。有关详细信息,请启动提升的命令提示,并键入“manage-bde.wsf /?”。

安全取消配置

需要考虑到这一点,每台计算机都需要取消配置。企业经常花费大量财力和精力来确保在放弃磁盘驱动器之前能够完全摧毁其中的资料。大多数过程是删除磁盘驱动器中的机密数据,这既费时又耗费成本,甚至会对硬件造成永久性损坏。BitLocker 提供了更经济高效的其他可选方法。

BitLocker 可确保一开始就不会以冒险的方式将机密数据存储在磁盘上,因而无需担心事后删除数据。由于写入磁盘的数据都是加密的,因此销毁加密密钥的所有副本后,这些数据会永久变为完全无法访问。硬盘本身完全没有损伤,并且可以重复使用。

您可以在取消卷(受 BitLocker 保护)配置的多种方法中进行选择。您可以选择删除卷元数据中的所有密钥副本,同时将它们存档在安全的中心站点。这使系统能够安全传输,或在长期处于无人看管状态时临时取消配置。它确保了授权用户仍然能够访问数据,但未授权的用户(例如设备的新所有者)则不能访问。

您还可以选择删除卷元数据或任意存档中的所有密钥副本,比如 Active Directory(通过创建新密钥而不存储即可)。由于不再存在任何解密密钥,因此任何人都无法发现或检索数据。

上述任一情形中,删除和破坏卷中包含的密钥几乎是瞬间完成,并可由一个管理员在多个系统间执行。这只需要投入极少量的时间和精力,但却会换来高级别的永久性保护。Windows Vista 中的格式化实用工具已经更新,以便格式化命令能删除卷元数据并覆盖这些扇区,从而安全地删除所有 BitLocker 密钥。

最后几点

BitLocker 是旨在防范特定威胁的强大工具,而且表现相当优异。然而,如果认为 BitLocker 能够防范所有威胁,那就错了。绝对重要的是,您还需要使用适当的防范及控制措施,如强密码。

您需要了解,BitLocker 是针对离线攻击而设计的。这表示,如果正在运行 Windows,则 BitLocker 已解除了对卷的锁定。换言之,BitLocker 对运行中的系统不提供保护。诸如 EFS 和 RMS 之类的技术通过在操作系统运行时保护信息,为 BitLocker 提供了补充。

有关 BitLocker 的更多信息,请访问 Microsoft 网站,网址为 technet.microsoft.com/windowsvista/aa905065.aspx。有关 TPM 规范和 TCG 的更多信息,请访问 TCG 网站的“TPM 规范”部分,网址为 go.microsoft.com/fwlink/?LinkId=72757

Byron Hynes任职于 Microsoft 的 Windows Server 用户协助组。之前,他曾担任顾问兼培训师。您可以发送电子邮件至 bhynes@microsoft.com 与其联系。

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