如何加密我的系统(最好使用 lvm + dm-crypt/luks),以便挂起到 RAM 工作,并且挂起到 RAM 时一切都处于加密状态?
答案1
您所要求的并不是简单的挂起至 RAM,即保持 RAM 通电并关闭其他所有内容。由于您将从 RAM 中擦除明文过程数据,因此您需要将其全部编组到暂停映像。因此,您必须调用休眠(即挂起到磁盘)代码。实际的方法是创建一个加密的 ramdisk,将其声明为交换空间,并用其他进程填充内存。即使如此,内核数据也不会被加密;为此,我认为您需要一个相当大的内核补丁。
另一方面,如果您愿意挂起到磁盘,那么这是一个已解决的问题。休眠映像存储在交换空间中。考虑到您的安全要求,您的交换空间应该已经加密。确保它是使用已知密钥而不是随机密钥加密的(某些具有加密交换的设置/dev/random
用作交换空间的密钥文件,这会导致每次启动时产生不同的密钥,因此不可能恢复休眠状态)图像)。主要发行版应该支持开箱即用的休眠,包括从加密的交换空间恢复。
答案2
查看tpm-luks
:https://github.com/shpedoikal/tpm-luks
它将您的加密密钥存储在计算机的可信平台模块中。
另一种选择可能是特雷索尔,它使用CPU寄存器来存储密钥。