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

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

BitLocker 驱动器加密硬件要求

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

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

有关详细信息,请参阅系统和实用工具分区硬盘驱动器和分区

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 将不会使用 PCR 绑定。
    • 如果运行的设备未绑定到 RF7 且启用了 Bitlocker,则没有安全方面的负面影响,因为使用常规 UEFIRF 配置文件 (0,2,4,11) 时,BitLocker 仍然安全。
    • 在最终启动程序 Windows Prod CA 之前,任何额外的 CA 哈希(甚至 Windows Prod CA)都会阻止 BitLocker 选择使用 RF7。 无论额外的哈希是来自 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 的可用空间。 有关详细信息,请参阅系统和实用工具分区

当满足上述要求时,系统信息指示系统支持 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 Root Port 根端口的注册表项作为 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. BitLocker PCR 配置文件(例如 7, 11 或 0, 2, 4, 11)
  3. 计算机是非 AOAC 还是 AOAC(例如,Surface 设备是 AOAC 计算机)

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

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

错误解释测试结果

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

PCR7 问题

两个 PCR7 测试特有的一个常见 BitLocker 问题是绑定到 PCR7 失败。

会审步骤:

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

    Screenshot of the error message in H L K logs.

  2. 以管理员身份运行 msinfo32,并检查安全启动状态/PCR7 配置。 应在安全启动打开的情况下运行测试。 如果不支持 RF7 绑定,请改为运行相应的旧版 RF HLK 测试。 如果无法进行 RF7 绑定,请继续执行会审步骤。

  3. 检查错误日志。 右键单击测试任务>其他文件。 通常,由于对 RF7 的测量不正确,因此出现 RF7 绑定问题。

    1. 事件日志。 Microsoft-BitLocker-Management 日志包含重要的错误信息,说明为何无法使用 RF7。 BitLocker HLK 测试只能在安装了 BitLocker 的计算机上运行。 应在生成事件日志的计算机上检查事件日志。
    2. 测量的启动日志。 这些内容也可能位于 C:\Windows\Logs\MeasuredBoot
  4. 使用 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 中,搜索“PCR[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)的内容
  • EFI_IMAGE_SECURITY_DATABASE1 变量(DBX)的内容
  • (可选但常见的 EV_SEPARATOR)
  • FI_IMAGE_SECURITY_DATABASE 中用于在启动路径中验证 EFI 驱动程序或 EFI 启动应用程序的条目。 BitLocker 在此只需要一个条目。

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

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

测试人员可能会解决某些测量的启动问题,例如在 UEFI 调试模式打开的情况下运行。 其他问题可能需要勘误表。在这种情况下,应联系 Microsoft 支持部门团队以获取指导。