我想在启用 TPM 的笔记本电脑上设置 Windows 10 Pro + Debian 双启动配置。问题是我希望 Windows 和 Linux 分区都完全由 Bitlocker 加密。我找到了一个教程允许我从 Windows 引导程序引导至 Linux,这样安全引导链就不会中断。我还没有尝试过,但听起来很有希望,我想知道我是否可以使用此技巧让 Bitlocker 在引导至 GRUB 之前解锁我的驱动器。
这样做可行吗?或者可以做得更简单吗?
编辑:我相信,互联网上有很多帖子可以回答在 bitlocker 加密的 win10 旁边安装不受保护的 linux 的问题。但这不是我在这里提到的
答案1
我想知道我是否可以使用此技巧让 Bitlocker 在启动 GRUB 之前解锁我的驱动器。
大多数情况下,BitLocker 都以“软件加密”模式使用。在这种模式下,这些技巧根本用不上,因为没有“解锁驱动器”之类的东西——驱动器本身并没有“锁定”,它只是存储了加密的数据,引导加载程序和操作系统本身会手动(并且彼此独立)进行所有加密/解密。换句话说,驱动器和系统固件甚至都不是意识到的任何加密发生。
因此,即使 Windows 启动管理器出于自身目的解锁 BitLocker 加密层,这也将完全保留在启动管理器的内存中,并且将不会自动传递给 GRUB 或 Linux。同样,当 GRUB 解锁 LUKS 分区时,该分区对于 Linux 或从该分区启动的其他程序而言仍然是不可见的。
另一种模式——OPAL“硬件加密”——则完全相反:它做锁定整个驱动器,在引导加载程序解锁驱动器后,驱动器确实保持解锁状态。也许这就是你想要的?然而,它只受少数 SSD 型号支持(不受 HDD 支持),在安全方面没有获得太多信任,而且它似乎不支持双启动一点儿也不。
我找到了一个教程,允许我从 Windows 引导加载程序启动到 Linux,这样安全启动链就不会中断。
事实上,这正是你会破坏安全启动链。您有一个已签名的引导加载程序(Windows 引导管理器),并告诉它运行完全任意的、没有签名的引导代码 - 这正是 BitLocker 的安全启动集成所要阻止的事情。
除此之外,安全启动意味着 UEFI。但链接的教程讨论了 MBR 启动代码,但这并不适用于此处 - EFI 启动过程完全不同。(尽管大多数 EFI 都有兼容 BIOS 仿真模式,但它与安全启动是互斥的。)
此外,在 UEFI 中,Windows 启动管理器拒绝启动第三方 EFI 应用程序,即使你做过添加一个。即使您确实拥有与安全启动兼容的 Linux EFI 文件并将“bcdedit”命令适配到 EFI(例如 grubx64.efi 而不是 mbr.bin),它们仍然会将您引导到错误屏幕。
你能仍然是双启动 - 但每当您决定启动 Linux 时,您都需要使用固件自己的启动菜单(通常是按 Esc 或 F8 时显示的菜单)。
附注:BitLocker 的 TPM 支持实际上不需要安全启动;它只需要 TPM 事件日志即可工作。确实,BitLocker偏好具有安全启动功能(因此它可以将磁盘密钥与事件日志中的签名链密封在一起),但如果安全启动不可用,它将使用事件日志的不同部分,该部分记录所使用的引导加载程序的精确哈希值等。
如果运行manage-bde c: -protectors -get
非 SB 密封模式,将会以“PCR:0、1、4、7”或类似的内容表示。
此模式的缺点是它对 EFI 启动菜单更改或分区表更改等更敏感,尤其是 Windows 内核/引导加载程序更新(因为所有这些都经过哈希处理并记入 PCR 0/1/4/7),因此您应该始终准备好数字恢复密码。(相比之下,SB 感知模式仅根据启动顺序和安全启动签名证书密封密钥,因此它不太脆弱,但可能也不太安全,无法抵御降级攻击。)
如果安全启动可用但该链不完全受信任,BitLocker 也会这样做。例如,即使您有一个已签名且支持安全启动的 GRUB,您仍然无法链接 GRUB→Windows - 它会启动操作系统,是的,但 BitLocker 仍将坚持使用基于 PCR 的基本密封,并拒绝使用基于安全启动的密封。
所以最后,如果您想在加密磁盘上进行双启动,您将需要让 Windows 和 Linux 做自己的事情:您可以继续对 Windows 分区使用 BitLocker,但 Linux 需要为其自己的根分区处理自己的解密(LUKS 是首选)。
然而,是实现基于 TPM 的 Linux 自动解锁的相对简单的方法,它们甚至可以在双启动系统上使用而不会中断 Windows。
(共享数据分区可以继续使用 BitLocker - 它们的密钥始终基于文件或基于密码,从不经过 TPM 密封,因此 Linux 可以使用常规工具(如 Dislocker 或 cryptsetup)解锁它们。)
答案2
不。
首先,您发现的黑客绕过了 GRUB。其次,您无需解锁 Bitlocker 并移交给操作系统。所有对 Bitlocker 加密设备的读取/写入都通过 Bitlocker 进行。TPM 仅保护启动过程并派生密钥。
我不确定是否可以做你正在尝试的事情,但如果可以的话,它将需要一个使用 TPM 的 Linux 发行版/机制和安全启动然后在 Linux 启动后使用 dislocker 解密/安装 Windows 分区。[假设您继续沿着这条路径,而不是进入 VM 根目录]。
如果使用常规 GRUB 进行启动,则无法完全保护启动过程,因为 GRUB 不支持 TPM,并且是启动过程的一部分。(有类似 securegrub 的东西可能会有所帮助)。但实际上,Linux VM 或 WSL 可能是一种更简单、更安全的解决方案。