Bitlocker + TPM 如何阻止我在其他操作系统中看到 HDD 内容?

信息安全 tpm 比特锁
2021-08-22 06:13:55

我已经用谷歌搜索了这个问题,并在这个网站上阅读了多个相关问题,但我仍然错过了这个难题的关键部分。

我有一台使用 Bitlocker 加密的 Win10 Pro (工作)笔记本电脑。有一段时间我什至没有意识到它是加密的,因为它在冷启动时不要求输入密码。(我们过去在所有笔记本电脑上都使用 TrueCrypt,所以我习惯使用密码。)然后我决定检查系统并使用 Linux live CD 启动它。我能够看到磁盘上的分区,但无法挂载主分区——快速的十六进制转储显示主 NTFS 分区确实是加密的。

现在,操作系统将愉快地冷启动到 Windows 登录屏幕,无需用户输入(即没有 PIN/密码),从我的谷歌搜索中我了解到,这是由操作系统自动从TPM。

困扰我的是:如何阻止另一段代码(例如 Linux)向 TPM 询问 HDD 加密密钥?即使假设需要一个秘密的 MS 密钥,这个密钥肯定必须存在于引导分区中的某个地方,而我对如何实现这一点的简单想法是让 VM(在 USB 密钥上?)执行引导加载程序,直到引导序列与 TPM 交互并且宾果游戏加密密钥不再是秘密......但这不是火箭科学,显然它不可能这么容易,否则 Bitlocker+TPM 将完全浪费时间。所以 - 我无法正确了解正在发生的事情,但我已经尝试过但未能找出它的真正工作原理......

谁能提供我所缺少的见解?提前致谢!

[编辑:为清楚起见,我主要考虑笔记本电脑被盗的情况。像许多人一样,我的笔记本电脑大部分时间都在我的包里处于睡眠模式,所以让我们假设它在被盗时处于睡眠状态——这意味着迁移到 TPM+PIN 会有多大帮助,但我不认为它直接改变了实际问题的基本原理。]

3个回答

没有什么能阻止这一切。TPM 所做的是检查各种启动时组件的完整性,并且只有在这些组件未被篡改时才解封内部密码。它可以额外配置为需要 PIN 码,但这不是绝对必要的。驱动器在 Linux 系统上无法自动解密的原因仅仅是因为 Windows 正在与 TPM 通信,要求它证明系统的状态。

密钥被密封在 TPM 内部。如果您同时拥有计算机和驱动器,目的不是阻止您解密磁盘,而是如果您只有存储驱动器而没有计算机本身,则无法解密磁盘。如果您可以物理访问整个设备,包括驱动器和 TPM,您将能够解密驱动器。

我认为很多评论都忽略了一个关键点。如果您使用的是具有安全启动和密码保护固件的 Windows 10,那么您不能简单地启动到 Linux 并查看磁盘。TPM 不会将解密密钥释放到更改的 O/S。我建议阅读这篇文章:

物理攻击者能否通过 UEFI、安全启动和 bitlocker 破坏 Windows 机器?因为那里有一些很好的信息。

初始化 TPM 时,操作系统会获得它的所有权并使用 TPM 所有者密码来保护其访问权限。在 Linux 上,此密码是手动输入的(请参阅 tpm_takeownership)。在 Windows 上,它会自动生成并在内部存储,尽管有一些方法可以恢复它。这个答案(https://stackoverflow.com/questions/48762602/tpm-owner-password-and-lockout-password-with-windows-10-linux)有一些关于如何做的细节。