OEM 的 Windows 10 中的 BitLocker 驱动器加密

BitLocker 驱动器加密可确保驱动器在操作系统脱机时不被篡改,从而提供脱机数据和操作系统保护。 BitLocker 驱动器加密使用 TPM(离散或固件),后者支持受信任的计算组定义的信任度量静态根。

BitLocker 驱动器加密硬件要求

BitLocker 驱动器加密使用独立于 Windows 分区的系统分区。 BitLocker 系统分区必须满足以下要求。

  • BitLocker 系统分区配置为活动分区。
  • BitLocker 系统分区不得加密。
  • 除了所需文件使用的任何空间,BitLocker 系统分区还必须具有至少 250 MB 的可用空间。 这个额外的系统分区可用于托管 Windows 恢复环境 (RE) 和 OEM 工具(由 OEM 提供),前提是该分区仍满足 250 MB 的可用空间要求。

有关详细信息,请参阅 System.Client.SystemPartition 以及硬盘和分区

BitLocker 自动设备加密

用户在新式待机或 HSTI 兼容硬件上完成全新体验 (OOBE) 后,BitLocker 自动设备加密会使用 BitLocker 驱动器加密技术自动加密内部驱动器。

注意:BitLocker 自动设备加密在全新体验 (OOBE) 期间启动。 但是,只有在用户使用 Microsoft 帐户或 Azure Active Directory 帐户登录后,才会启用(提供)保护。 在此之前,保护已暂停,数据不受保护。 使用本地帐户不会启用 BitLocker 自动设备加密,在这种情况下,可以使用 BitLocker 控制面板手动启用 BitLocker。

BitLocker 自动设备加密硬件要求

在以下情况下,将启用 BitLocker 自动设备加密:

  • 设备包含 TPM(受信任的平台模块),TPM 1.2 或 TPM 2.0。
  • 已启用 UEFI 安全启动。 有关详细信息,请参阅安全启动
  • 已启用平台安全启动
  • 已启用直接内存访问 (DMA) 保护

在 Windows 10 启用自动 BitLocker 设备加密之前,必须通过以下测试。 如果要创建支持此功能的硬件,必须验证设备是否通过了这些测试。

  1. TPM:设备必须包含支持 PCR 7 的 TPM。 请参阅 System.Fundamentals.TPM20.TPM20

    • 如果存在可扩展卡会导致在启动时由 UEFI BIOS 加载 OROM UEFI 驱动程序,则 BitLocker 将不会使用PCR7 绑定。
    • 如果运行的设备未绑定到PCR7且启用了 Bitlocker,则没有安全缺点,因为使用常规 UEFIRF 配置文件时 BitLocker 仍然安全, (0,2,4,11) 。
    • 在最终启动程序Windows Prod CA 之前,任何额外的 CA 哈希) (甚至Windows Prod CA 都会阻止 BitLocker 选择使用PCR7。 如果额外的哈希或哈希来自 UEFI CA (,则无关紧要。Microsoft 第三方 CA) 或其他一些 CA。
  2. 安全启动:已启用 UEFI 安全启动。 请参阅 System.Fundamentals.Firmware.UEFISecureBoot

  3. 新式待机要求或 HSTI 验证。 通过以下方式之一满足此要求:

    • 实现新式待机要求。 其中包括 UEFI 安全启动要求和防止未经授权的 DMA。
    • 从 Windows 10 版本 1703 开始​​,可以通过 HSTI 测试满足此要求:
      1. 平台安全启动自检(或注册表中配置的其他自检)必须由 HSTI 报告为已实施并通过。
      2. 除 Thunderbolt 外,HSTI 必须报告没有不允许的 DMA 总线。
      3. 如果存在 Thunderbolt,HSTI 必须报告 Thunderbolt 已安全配置(安全级别必须为 SL1 -“用户授权”或更高)。
  4. 除了启动和恢复 Windows(如果将 WinRE 放在系统分区上)所需的一切外,还必须具有 250MB 的可用空间。 有关详细信息,请参阅 System.Client.SystemPartition

当满足上述要求时,系统信息指示系统支持 BitLocker 自动设备加密。 此功能在 Windows 10 版本 1703 或更高版本中可用。 以下是检查系统信息的方法。

  1. 单击“开始”,然后键入“系统信息”
  2. 右键单击“系统信息”应用,然后单击“以管理员身份打开”。 通过单击“是”,允许该应用对你的设备进行更改。 某些设备可能需要提升的权限才能查看加密设置。
  3. 在“系统摘要”中,查看“设备加密支持”。 该值将说明设备是否已加密,如果未加密,则会说明禁用它的原因。

将固件更新应用到设备

除了运行 HLK 测试之外,OEM 还需要在启用 BitLocker 的情况下测试固件更新。 为防止设备不必要地启动恢复,请遵循以下准则来应用固件更新:

  1. 暂停 BitLocker(仅当固件更新更改安全启动策略时,才需要对绑定到 PCR[07] 的设备执行此操作)
  2. 应用更新
  3. 重启设备
  4. 恢复 BitLocker

固件更新应要求设备仅暂停 Bitlocker 一小段时间,并且设备应尽快重启。 通过使用 Windows Management Instrumentation (WMI) 中的 DisableKeyProtectors 方法,可以在即将关闭之前以编程方式暂停 BitLocker。

检测到不允许的支持 DMA 的总线/设备

设备加密支持中的此系统信息状态意味着 Windows 检测到至少一个潜在的支持 DMA 的外部总线或设备,该总线或设备可能会暴露 DMA 威胁。

若要解决此问题,请联系 IHV 确定此设备是否有外部 DMA 端口。 如果 IHV 确认总线或设备只有内部 DMA,则 OEM 可以将其添加到允许列表中。

若要将总线或设备添加到允许列表,你需要向注册表项添加值。 为此,你需要首先获得 AllowedBuses 注册表项的所有权。 执行以下步骤:

  1. 导航到注册表项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DmaSecurity\AllowedBuses

  2. 右键单击该注册表项,然后选择“权限…”。

  3. 单击“高级”,单击“所有者”字段中的“更改”链接,输入用户帐户名称,单击“检查名称”,然后单击“确定”三次以关闭所有权限对话框。

  4. 右键单击该注册表项,再次选择“权限…”。

  5. 单击“添加...”按钮,添加用户帐户,单击“检查名称”,单击“确定”,然后选中“允许完全控制”下的复选框。 然后,单击“确定”。

然后,在 AllowedBuses 项下,为每个标记为支持 DMA 且确定安全的总线添加字符串 (REG_SZ) 名称/值对:

  • 键:设备易记名称 /说明
  • 值:PCI\VEN_ID&DEV_ID。

确保 ID 与 HLK 测试的输出相匹配。 例如,如果你有一个易记名称为“Contoso PCI Express 根端口”、供应商 ID 为 1022 且设备 ID 为 157C 的安全设备,你将在以下路径中创建一个名为“Contoso PCI Express 根端口”的注册表项作为 REG_SZ 数据类型:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DmaSecurity\AllowedBuses

其中值为“PCI\VEN_1022&DEV_157C”

禁用 BitLocker 自动设备加密

OEM 可以选择禁用设备加密,并在设备上实施自己的加密技术。 若要禁用 BitLocker 自动设备加密,你可以使用无人参与文件并将 PreventDeviceEncryption 设置为 True。 或者,可以更新此注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BitLocker 值: PreventDeviceEncryption 等于 True (1) 。

BitLocker HLK 测试疑难解答

了解有关正在测试的设备的信息片段时,会审要简单得多:

  1. TPM 规范 (,例如 1.2、2.0)
  2. BitLockerPC 配置文件 (,例如 7、11 或 0、2、4、11)
  3. 计算机是非 AOAC 还是 AOAC (,例如 Surface 设备是 AOAC 计算机)

请注意,建议使用此信息,但不需要执行会审。

BitLocker HLK 问题通常与下列问题之一相关:错误解释测试结果或PCR7绑定问题。

错误解释测试结果

HLK 测试由多个测试步骤组成。 某些测试步骤可能会失败,而不会影响总体测试的成功/失败。 有关解释结果页的详细信息,请参阅此处。 如果某些测试步骤失败,但总体测试通过 (,如测试名称) 旁边的绿色检查指示,请在此处停止。 测试成功运行,你无需再执行任何操作。

会审步骤:

  1. 确认你正在针对计算机运行正确的测试。 右键单击失败的测试 > 基础结构 > 收集器日志 > 的任何步骤,查看项 IsAOAC 的RUNTIMEBLOCK.xml。 如果 IsAOAC=true 并且正在运行非 AOAC 测试,则忽略失败,并且不对计算机运行此测试。 如有必要,请与Microsoft 支持部门团队联系,获取用于传递播放列表的误录。

    Screenshot of the failing test. The item Is A O A C is selected.

  2. 确定筛选器是否应用于测试。 HLK 可能会为错误映射的测试自动建议筛选器。 筛选器在测试步骤旁边的圆圈内显示为绿色复选标记。 (请注意,某些筛选器可能显示后续测试步骤已失败或已取消。) 使用特殊图标展开测试步骤来检查有关筛选器的扩展信息。 如果筛选器说要忽略测试失败,请在此处停止。

    Screenshot of filters

PC7问题

特定于两个PCR7测试的常见 BitLocker 问题是无法绑定到PCR7。

会审步骤:

  1. 在 HLK 日志中查找错误消息。 展开失败的测试步骤并检查 Te.wtl 日志。 (如果看到此错误,还可以通过右键单击 测试步骤 > 任务日志 > Te.wtl) 继续执行会审步骤来访问此日志:

Screenshot of the error message in H L K logs.

  1. 以管理员身份运行 msinfo32,并检查安全启动状态/MSI7 配置。 测试应在安全启动的情况下运行。 如果不支持PCR7 绑定,请改为运行相应的旧版PCR HLK 测试。 如果无法进行PCR7绑定,请继续执行会审步骤。
  2. 检查错误日志。 右键单击测试任务 > “其他文件”。 通常,对PCR7绑定问题进行不正确的测量是导致对PCR7进行错误测量的结果。
    1. 事件日志。 Microsoft-BitLocker-Management 日志包含有关为什么无法使用PCR7的宝贵错误信息。 BitLocker HLK 测试应仅在安装了 BitLocker 的计算机上运行。 应在生成事件日志的计算机上进行检查。
    2. 测量的启动日志。 也可在 C:\Windows\Logs\MeasuredBoot 中找到这些内容
  3. 使用TBSLogGenerator.exe或等效项分析测量的启动日志。 在 HLK 控制器上,TBSLogGenerator.exe位于已安装 HLK 的 HLK 测试目录下,例如 C:\Program Files (x86) \Windows Kits\10\Hardware Lab Kit\Tests\amd64\nttest\BASETEST\ngscb\TBSLogGenerator.exe”。
    1. TBSLogGenerator.exe -lf <路径,用于度量启动日志>> OutputLog.txt
    2. 在OutputLog.txt中,搜索“RF[07]”并检查按顺序列出的度量值。 第一个度量应如下所示:

Screenshot of the measurements list in Output Log dot t x t.

BitLocker 需要某些静态信任根测量在PCR7中 测量静态信任根 ,并且这些度量中的任何变体通常禁止绑定到PCR7。 应按顺序测量以下值 (,且在) 到PCR7之间没有多余的度量值:

  • SecureBoot 变量的内容
  • PK 变量的内容
  • KEK 变量的内容
  • EFI_IMAGE_SECURITY_DATABASE变量 (DB) 的内容
  • (DBX) 的EFI_IMAGE_SECURITY_DATABASE1变量的内容
  • (可选但常见的EV_SEPARATOR)
  • 用于在启动路径中验证 EFI 驱动程序或 EFI 启动应用程序的EFI_IMAGE_SECURITY_DATABASE中的条目。 BitLocker 在此处只需要一个条目。

测量启动日志的常见问题:

  • 启用 UEFI 调试模式
  • 缺少 PK 或 KEK 变量:PK/KEK 度量没有数据 (例如 4 字节的 0)
  • 不受信任的 UEFI CA 签署人

测试人员可能会修复一些测量的启动问题,例如使用 UEFI 调试模式运行。 其他问题可能需要一个错误,在这种情况下,你应该联系Microsoft 支持部门团队以获取指导。

适用于 OEM 的 Windows 10 S 安全功能和要求