我已经成功安装了带有全盘加密的 Arch Linux,但是我省略了一个密码,希望启动时不会要求我输入密码。但是它仍然要求我输入密码,我只需按 Enter 键即可。
首先,这是一个好主意吗?
我想要像 Bitlocker 这样的东西,其中驱动器是加密的,没有解密密码。
答案1
这是一个令人沮丧的棘手话题,我不确定我是否可以提供有关如何设置它的明确的分步指南。但考虑到这个问题已经存在三年了,还没有好的答案,我将尝试给出一个概述。
使用空白加密密码加密驱动器是个好主意吗?
不。
正如其他人提到的,唯一的实际用例是使您的数据很快变得不可读。但就加密用途而言,这根本不起作用。这就像安装一扇巨大的高科技金库门,然后将密码留在粘在前面的便签上。无论门有多厚,任何人都可以走进去。
这不是一个好主意。
那么比特锁呢?
Bitlocker 确实有一个密码,或者更确切地说,它有一个密钥。该密钥存储在您的主板上全员生产管理。如果您将硬盘从机器中取出并放入另一台机器中,则将无法读取数据。
更重要的是,TPM 是“密封的”,因此如果启动顺序被篡改,它不会给出加密密钥。因此,攻击者不能只是弄乱计算机上未加密的启动代码来欺骗 TPM 发出密钥。
如何在Linux上使用TPM?
首先花时间去理解什么是 TPM 以及什么是 PCR尤其是每个中华人民共和国衡量哪些事项(保护)。
您可以配置 TPM 以根据任何 PCR 选择来密封您的密钥。您有责任了解自己的启动顺序并确保使用正确的 PCR 来防止攻击者修改您的启动顺序。
⚠️警告⚠️ 如果您没有使用正确的 PCR 正确保护您的启动序列,攻击者可以简单地重置你的root密码然后读取所有数据。你已被警告!
第二,一旦您确信自己知道自己在做什么,就可以使用systemd-cryptenroll将新密钥添加到您的 LUKS 分区并将相同的密钥嵌入到您的系统 TPM 中。
请注意,每次安装新内核、更新 grub 或更新 initramfs 时都可能需要执行此操作...这取决于您使用的 PCR。
第三如果您这样做,您也许能够避免不断地重新注册您的密钥签署所有 grub 文件并将公钥嵌入到 EFI 的 grub 存根中。理论上,这可以让您包含更少的 PCR,并通过使用签名来保护您的 grub 配置。
TPM 完美吗?
不
如果攻击者可以从主板上拆下 TPM,或者以其他方式连接探针,那么他们可能能够在启动系统时直接从铜线上读取密钥。我并不是说这很容易,但请注意,TPM 并不完全坚如磐石。
使用 TPM 的替代方案
您可以将密钥单独存储在文件中。例如:最不安全的方法是在钥匙圈上放置一个包含密钥文件的 USB 驱动器,然后在插入笔记本电脑时将其插入。
更安全的是,有专用的智能卡设备(例如尤比钥匙)可以安全地为您存储密钥,并且永远不会泄露密钥。智能卡本身会为您解密一些内容。这是我个人没有进行太多调查的领域,因此无法轻易提供进一步的建议。
答案2
您可以使用以下命令创建一个卷
cryptsetup luksFormat /dev/loop0 /dev/zero --keyfile-size 32
并在启动期间运行:
cryptsetup luksOpen /dev/loop0 cr_test --key-file /dev/zero --keyfile-size 32
由于您的卷已经创建,您必须添加一个密钥:
cryptsetup luksAddKey /dev/loop0 --key-file /dev/zero --keyfile-size 32 --iter-time 1