我想知道是否有一种方法来encryption一个不需要小的未encryption/启动分区的Linux系统。
此外,我想知道是否可以在现有的未encryption系统上执行encryption,以便在用户使用系统时“encryption”。 因此不需要重新安装操作系统。
现在我用于Linux的解决scheme是luks。 我通常重新安装操作系统(备份和恢复任何需要保留的数据),创build一个小的/启动分区,从其他分区encryption,包括交换。 我使用kickstart的红帽或preseeding基于debian的系统。 安装,无论是否encryption完全自动化。
我明白所有的实际目的,这种encryption方法是安全的,没有办法(除非密码实际上保存在那里或类似的蠢事),以find有关如何使用小的未encryption/启动分区解密分区的信息,而不是一个未encryption的交换分区,可能会泄露数据来帮助解密分区。 我正在寻找这样的解决scheme的原因是更实际的。
我假设这样的事情需要从磁盘的启动块(mbr或otherwsise)开始,或者可能是链接加载的。 这可能需要将一些function添加到引导加载程序,例如grub,以提示input密码并使用它来打开分区,以便读取这些分区。
我做了一些研究,试图find解决scheme,但我还没有find一个有效的方法,或者即使它可以工作,也是不实际的(尤其是在100多个用户群中)。
最终,您将需要从明文存根启动系统。 如果该存根在磁盘中不清晰,则下一个选项将在固件中; 也许有一天所有的UEFI主板都将支持全盘encryption。
也就是说,小明文引导分区的重要性不在于具有机密性 (因为它通常只包含公开的引导数据),而是具有完整性 。 当你睡觉的时候,你不希望攻击者抓住你的机器,用一个恶意的代码来代替安装代码,当你input密码的时候就会拿到你的密码,并把它存储在一个隐藏的磁盘区域。
这是Secure Boot正在解决的问题,只要启动固件允许您使用自定义键,您可以(理论上)在Linux上使用它。 硬件组件(TPM)将确保(使用encryption)如果明文分区已被更改,系统将在引导时进行投诉。
Gentoo有一个基本的,不完整的和过时的程序,对于可以做什么有一个粗略的概念。