我有一台笔记本电脑,目前双启动 Windows 和 Linux。我主要使用 Linux 安装,但我需要在 Windows 上安装某些东西。目前我在 Windows 上设置了 BitLocker,我确实更喜欢这样,但有时 Linux 对系统所做的更改会触发 BitLocker 并导致它需要恢复密钥。这种情况已经发生过几次了,必须输入密钥,这很烦人。是否可以通过保存在 USB 记忆棒上的文件解锁?我的意思不仅仅是将密钥放在记忆棒上并从那里输入,我可以访问密钥,但输入密钥真的很烦人。
如果没有,我可能会完全关闭 bitlocker,我想要加密的任何东西都在我的 linux 安装上,而且有加密功能。但如果我能在需要时更快地解锁 bitlocker,那就太好了。
附注 - 有没有办法查看某处的日志并找出究竟是什么触发了 bitlocker 需要恢复密钥?我想我知道这次是什么,但我想确定一下。
答案1
目前,我在 Windows 上设置了 BitLocker,我确实更喜欢这样,但有时 Linux 对系统所做的更改会触发 BitLocker,并导致它需要恢复密钥
避免从 Linux GRUB 内部启动 Windows,因为 BitLocker 用于将密钥与 TPM 密封在一起的系统状态取决于整个启动链 - 通过 GRUB 意味着任何 grubx64.efi 升级都将使密钥无法密封。
因此,要么使用固件的 F8 菜单(或 F11、F12...)来选择 Windows BOOTMGR,而无需通过 GRUB,或者使用efibootmgr
Linux 来要求固件“请下次直接重启进入 Windows”(参见这里和这里)。
最重要的是,启用安全启动将允许 BitLocker 绑定到 PCR7,这在处理 Windows BOOTMGR 更新时也不太脆弱。(避免使用 GRUB 是利用 PCR7 密封的先决条件;如果 BitLocker 在链中检测到任何非 Microsoft 签名的内容,它将拒绝使用它。)
是否可以通过保存在 U 盘上的文件解锁?我的意思不只是把钥匙放在 U 盘上,然后从那里输入
可能,是的,它是 BitLocker 的内置功能,但据我记得,它需要不同格式的密钥;即,您不能只将数字恢复密钥放在文本文件中;您需要为此添加一个新的密钥槽(“密钥保护器”)。
尝试使用manage-bde -protectors -add -RecoveryKey
在您的 USB 记忆棒上创建密钥文件(例如假设它安装在 H:\):
manage-bde -protectors -add C: -rk H:\
注意:您需要完整版 BitLocker 才能实现此目的(即 Windows Home 中的“设备加密”不起作用)。我实际上不知道 BitLocker 是否允许这种组合 - 虽然没有理由不允许,但我记得它有时会很挑剔。
附注 - 有没有办法查看某处的日志并找出究竟是什么触发了 bitlocker 需要恢复密钥?我想我知道这次是什么,但我想确定一下。
从技术上讲,这是可行的,但它不会是 BitLocker 日志——你需要查看 TPM 的“TCG 事件日志”,并且你必须比较将其与“已知工作”日志中的早期日志进行对比。(这是因为它不是“出了问题”日志 - 它更像是 TPM PCR 计算所依据的“系统状态审计”日志;变化此日志中的内容会影响 TPM 是否同意解封 BitLocker 密钥或其他数据。
日志文件采用 TCG 定义的标准二进制格式,存储在固件的 RAM 中;Windows 会将其转储到 .log 文件中C:\Windows\Logs\MeasuredBoot
(早期启动的日志收集在那里,以便您可以进行比较),Linux 允许通过 /sys 读取它,并且有工具可以将其从二进制格式解码为某种形式的文本日志(我在调查这种 BitLocker 问题时为自己编写了一个);从微软推荐的也许是一个好主意,但也有一个PowerShell 模块tpm2_eventlog
在 Linux 上,tcglog-解析器, ETC。
(Windows 自己的事件日志会告诉您 BitLocker 是否将其密钥密封为 PCR7 或 PCR4+ 等 - 如果没有安全启动则是后者 - 并且我 80% 确定标记为 PCR4 的事件的变化是原因,因为 PCR4 事件主要处理记录参与该过程的每个引导加载程序的精确 SHA 哈希值,例如来自 Linux 安装的 grubx64.efi。)