根据我之前的回答,@logneck 的建议和一点google-fu
,我得出的结论是,可以使用可用的工具和大量的耐心/专业知识来实施问题中要求的方案。这种方法应该满足 OP 的要求,但只是一个设计指南,因为它有许多缺点/陷阱。它将帮助 OP 抵御试图从加密磁盘复制数据的天真的攻击者。
我之前使用 TPM 芯片的想法仍然有效。本指南(我从未尝试过)展示了如何在无需输入密码的情况下加密磁盘,并防止任何人解密另一台机器上的数据。
TPM 通常嵌入在主板中,因此不能移动到其他硬件。TPM 执行硬件认证,以便您可以验证硬件环境是否兼容,并且没有第三方卡插入您的主板。
如果硬件证明通过,TPM 会自行解锁。然后 LUKS 模块可以向 TPM 请求磁盘的加密密钥,该密钥存储在解锁的 TPM 中。
如果将磁盘移动到另一台机器上,您将不会随身携带密钥。
如指南中所述,该过程涉及:
- 安装您选择的发行版
trousers
使用和获取 TPM 芯片的所有权tpm-tools
- 安装
trustedgrub2
并将其用作引导加载程序
- 将 LUKS 解密密钥添加到 TPM
- 密封TPM
密封 TPM 意味着进行硬件证明。我链接的 guide 讲的是 BIOS 引导而不是 UEFI(UEFI 用户熟悉安全引导的概念)。基本上trustedgrub2
都会测量软件。这可以通过对内核进行校验和来简化,以确保它没有被改变。TPM 还将测量硬件以检查自 TPM 密封以来是否安装了其他 PCI 卡或类似卡。
在启动过程中,如果硬件没有被触碰/篡改,并且启动内核就是封存TPM的那个人,那么TPM就会向系统发出LUKS密钥,这样系统就可以自己解密了。
结果:1)磁盘被加密,2)启动时不需要密码,因此用户可以随时重新启动机器,3)用户无法恢复密钥,因为它存在于硬件存储中。
请注意,此解决方案与 Microsoft BitLocker 类似,并不完美,并且与 Microsoft 的解决方案存在相同的安全隐患。事实上,仅由 TPM 而不是 PIN 支持的 BitLocker 因其安全性较弱而屡遭批评,我将在此不予讨论。