从非 Microsoft 启动管理器启动 Windows 10 时如何启用 BitLocker?

罗伯特·库兹尼尔

我的设置

我有 ThinkPad P1 Gen 3 笔记本电脑,希望它能够双启动 Linux 和 Windows 10。为此,我想使用支持 Linux 和 Windows 的启动管理器;目前我正在使用 rEFInd。我还想启用安全启动并使用 BitLocker 加密我的 Windows 驱动器。

问题:BitLocker 不起作用

问题是我无法使用 BitLocker 加密我的驱动器。当我使用 rEFInd BitLocker 启动 Windows 时,它不起作用。我发现它被禁用了,因为 PCR7 绑定是不可能的 - 在系统信息中它说:

PCR7 配置:无法绑定

设备加密支持:自动设备加密失败原因:不支持PCR7绑定;检测到不允许的 DMA 总线/设备

所有这些似乎都以某种方式与可信平台模块 (TPM) 相关,但我仍在阅读有关这个​​主题的更多信息,这对我来说是新的。

另一方面,当我直接从 UEFI 条目启动 Windows 时,省略 rEFInd,PCR7 绑定是可能的,并且 BitLocker 工作正常。

我测试了其他支持 Linux 的引导管理器,例如 systemd-boot,问题是一样的。所以这个问题不是 rEFInd 独有的,而是任何不是由 UEFI 直接运行的 Windows 启动管理器的启动管理器。

问题

为什么从其他启动管理器启动 Windows 时无法绑定 PCR7?我该如何解决?

用户1686

为什么从其他启动管理器启动 Windows 时无法绑定 PCR7?

PCR7 是记录所有安全启动参数的寄存器——PK/KEK/db 的完整内容,以及用于验证每个启动应用程序的特定证书(即 rEFInd、Bootmgfw、Winload.efi)。

BitLocker 似乎有一个刻意的限制,即只有在其值表明整个启动链是专门使用 Microsoft 的“Windows Production PCA”证书签名时,它才会绑定到 PCR7。如果在此过程中的某些内容(例如 rEFInd 或其他第三方引导加载程序)使用不同的证书进行签名,即使您的 UEFI 配置信任该其他证书,它也会拒绝。

这很可能是为了在双引导环境中隔离操作系统,例如防止某人通过 Shim 简单地重新启动到任意不安全的 Linux 并以这种方式访问​​您的 Windows 文件。

(注意:BitLocker 的 PCR7 用法不会阻止您在 PK、KEK 或 db 中安装自定义证书 – 可以为 Linux 目的设置自定义密钥的安全启动,只要这些自定义 db 条目不参与Windows 启动过程。)

当然,如果 Secure Boot 关闭并且 rEFInd 根本没有签名,那么 PCR7 一开始就没有有用的信息,无法使用。

我该如何解决?

如果您使用的是“设备加密”功能(Windows 10 家庭版/专业版),则无法避免这种情况——这个精简版的 BitLocker 始终需要使用安全启动和 TPM PCR7。

如果您使用的是完整版本的 BitLocker(仅限 Windows 10 Pro),所有这些都不会阻止 BitLocker 通常使用 TPM——它仍然可以使用绑定到 PCR0/2/4/11 (PCR4) 的替代方法是包含引导文件的确切哈希值的寄存器)。问题是 PCR0/2/4 的使用稍微更脆弱,并且往往会导致更频繁地出现 Recovery Key 提示。例如,每次更新 Shim 或 rEFInd 时,PCR4 值都会更改,您将需要恢复密钥。

最后,TPM的使用是不实际的强制性为BitLocker。如果它导致太多问题,则有一个组策略设置和一个manage-bde命令,可让您改用基于密码的基本保护程序。(同样,这仅适用于 Windows Pro 中的完整 BitLocker。)

(注意:如果在 PCR7 绑定激活的情况下启用 BitLocker,然后通过 rEFInd 重新启动,以便 PCR7 现在无法使用,系统将提示您输入恢复密钥,BitLocker 将自动重新绑定 PCR0/2/4/11。反之亦然相反,从 UEFI 菜单直接重新启动到 Windows 将导致 BitLocker 在输入恢复密钥后尝试重新绑定 PCR7。)

我的建议:始终使用固件提供的 UEFI 启动菜单来选择您的操作系统。如果它丑陋或不方便,则使用“BootNext”功能通过efibootmgr --boot-nextbcdedit.exe /bootsequence直接启动到请求的操作系统。(例如,这甚至允许您将“Linux”作为 Windows 桌面快捷方式。)

我认为 BitLocker 不仅限于加密整个磁盘。

BitLocker 在“软件加密”模式下从不加密整个磁盘——它加密 Windows分区,就像使用 LUKS 加密他们的 Linux 分区一样。

所有其他分区不受影响。特别是,由于 UEFI 固件通常没有内置的 BitLocker 支持,“EFI 系统分区”必须保持未加密。

是否可以使用两个 UEFI 分区?

是的,但是 1) 你不需要,2) 它不会真正帮助你。使用两个分区和将 Windows 和 Linux 引导文件放在同一个分区之间没有区别——只有文件本身才是重要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何帮助 Grub 找到 Windows 10 启动管理器?

如何在没有Microsoft启动管理器的情况下从Grub直接启动到Vista和Windows 8?

Windows10-资源管理器在应用程序启动时崩溃

如何在 Windows 10 Home 上启用 BitLocker 系统驱动器加密

当 EasyBCD 拒绝运行时,如何在 Windows 10 上的 Windows 启动管理器中为 Linux LiveCD 添加启动项?

如何双重启动Windows 10 Pro,Ubuntu和Bitlocker激活

如何禁用或选择“正确的” Windows启动管理器?

如何从Windows资源管理器启动PowerShell?

如何从Grub切换到Windows启动管理器

当 BIOS 只有 Windows 启动管理器作为选项时,如何从 DVD 启动?

如何在Windows启动时自动启动MQ队列管理器?

如何将ubuntu添加到Windows 10启动管理器,但它将在另一个硬盘驱动器中?

非TPM板上的Bitlocker:如何更改启动选项?

即使在删除 Windows 10 后,Windows 启动管理器仍然存在

如何启用与Microsoft的日历同步?(Windows 10)

我从任务管理器重新启动了 Windows 资源管理器(Windows 10)。卷不会打开。这应该运行多久?已经2小时了

启动时的Windows 10 BitLocker仅显示一个蓝屏,但不显示密码框或文本。

Windows 10资源管理器不断崩溃并重新启动

通过任务管理器将程序添加到Windows 10启动

如何在Windows 10上从提升的管理员上下文启动非提升的管理员进程?

您可以从Windows启动时禁用Windows资源管理器吗?

Windows资源管理器在每次启动时都会打开

Windows资源管理器在右键单击或启动时崩溃

当我启动Windows资源管理器时,它将重新启动或停止工作。为什么?

如何将Windows启动管理器设置回其默认路径?

如何使用python设置Windows资源管理器启动路径

如何安装适用于Ubuntu和Windows 8的启动管理器?(遗产)

如何从例如资源管理器启动 MAUI Windows(桌面)应用程序?

在Linux中使用gddrescue从旧Windows 10 BitLocker SSD克隆后无法启动