是否有任何支持全盘加密的 Linux 引导加载程序(a la TrueCrypt)。我知道有向 GRUB2 添加加密支持的工作,但这似乎还没有准备好。还有其他选择吗?
(请注意,我在这里真正指的是全盘加密——包括/boot
)
大多数答案描述了/boot
未加密的设置,其中一些答案试图解释为什么未加密/boot
应该没问题。
没有讨论为什么我实际上需要 /boot 被加密,这里有一篇文章准确地描述了我需要的东西,基于 GRUB2 的修改版本:
问题在于当前的 GRUB2 代码库显然不支持这些修改(或者我可能忽略了一些东西)。
小智 20
我认为当前版本的 GRUB2 本身不支持加载和解密 LUKS 分区(它包含一些密码,但我认为它们仅用于密码支持)。我无法检查实验开发分支,但是在 GRUB 页面中有一些提示,计划进行一些工作来实现您想要做的事情。
更新(2015):最新版本的 GRUB2(2.00)已经包含访问 LUKS 和 GELI 加密分区的代码。(OP 提供的 xercesch.com 链接提到了第一个补丁,但它们现在已集成到最新版本中)。
但是,如果您出于安全原因尝试加密整个磁盘,请注意未加密的引导加载程序(如 TrueCrypt、BitLocker 或修改后的 GRUB)提供的保护并不比未加密的/boot
分区多(正如 JV 在上面的评论中指出的那样) . 任何可以物理访问计算机的人都可以轻松地将其替换为自定义版本。甚至在您链接的 xercestech.com 上的文章中也提到了这一点:
需要明确的是,这不会以任何方式使您的系统更不容易受到离线攻击,如果攻击者用自己的引导加载程序替换您的引导加载程序,或重定向引导过程以引导他们自己的代码,您的系统仍然可能受到损害。
请注意,所有用于全盘加密的基于软件的产品都存在此弱点,无论它们是使用未加密的引导加载程序还是未加密的引导/预引导分区。即使是支持 TPM(可信平台模块)芯片的产品,如 BitLocker,也可以在不修改硬件的情况下生根。
更好的方法是:
/boot
在可移动设备(如智能卡或 U 盘)中携带 PBA(预启动授权)代码(在这种情况下是分区)。要使用第二种方法,您可以查看 Linux Full Disk Encryption (LFDE) 项目:http ://lfde.org/,该项目提供了一个安装后脚本来将/boot
分区移动到外部 USB 驱动器,并使用GPG 并将其存储在 USB 中。这样,引导路径的较弱部分(非加密/boot
分区)始终与您同在(您将是唯一可以物理访问解密代码和密钥的人)。(注意:这个站点已经丢失,作者的博客也消失了,但是你可以在https://github.com/mv-code/lfde找到旧文件,只需注意最后一次开发是在 6 年前完成的)。作为更轻松的替代方案,您可以在安装操作系统时将未加密的引导分区安装在 U 盘中。
问候,MV