![如何保护未加密的交换分区?](https://linux22.com/image/1160410/%E5%A6%82%E4%BD%95%E4%BF%9D%E6%8A%A4%E6%9C%AA%E5%8A%A0%E5%AF%86%E7%9A%84%E4%BA%A4%E6%8D%A2%E5%88%86%E5%8C%BA%EF%BC%9F.png)
显然这是一个问题,并且可能有一个解决方案,可能是:
- 这不是必需的,因为...
- 这是不切实际的,因为...[例如,暂停时有 2 个密码]
- 哦。是的,我们在 XYZ 版本中修复了这个问题。执行 Q 即可正常运行。
- 除非你能写 C++ 并能自己编写代码,否则你就完蛋了。
有问题的驱动器是 SSD。
我认为暂停是现代计算机可以做到的事情。我不明白的是为什么全盘加密不是全盘加密。这似乎是一个错误。
答案1
由于加密写入和解密读取需要时间,因此通常不会对交换进行加密——交换本质上需要尽可能快,因为交换空间或多或少代替了您买不起或没有插槽的 RAM。
不过,我要指出的是,如果有人从您的交换分区中提取数据,您的计算机就已经完全被入侵了——要么攻击者在控制台上并已重新启动到另一个操作系统(可能是从 USB 记忆棒),要么他们已经远程获得了对您系统的完全控制,并且至少卸载了交换分区以应用读写访问权限。
也就是说,如果交换分区安全性很重要,那么交换分区安全性可能就不重要了,因为攻击者无论如何都会控制您系统上的所有内容 - 即使他们无法窃取您的“整个磁盘加密”存储,他们也可以将其扣为人质,或者安装将以未加密形式复制和传输每个读写的软件。
答案2
虽然有理由不加密交换,但我认为也有理由有人想要加密。加强安全性(物理或数字)总是会限制和减慢访问速度。这不是避免采取给定安全措施的理由。正如另一个答案所指出的那样,当 RAM 已满时,交换工作最好尽快完成。
话虽如此,如果交换中的内容足够敏感,可能会性能权衡可能是合理的情况默认情况下,ubuntu 安装程序(我检查了 18.04 和 16.04)在安装过程中选择 FDE 时在 LUKS 加密的 LVM2 分区中创建交换分区。因此,交换是加密的。
如果出于某种原因,您的交换分区未加密,您仍然可以对其进行加密。如果您使用的是 LVM,并且 LVM 分区已经是 LUKS 加密的,您可以简单地调整 LVM 中的文件系统大小以腾出空间用于交换,然后创建用于交换的逻辑卷。文件系统的大小调整可能需要从可启动的 USB 进行。更新您的/etc/fstab
文件,您就大功告成了。
如果您想加密现有的非加密交换分区,这也是可能的,但需要做更多工作。我将列出一般步骤。
- 在启动系统时,
swapoff
您的交换分区。 - 用于
cryptsetup luksFormat ...
加密前交换分区。 - 生成用于解密的密钥文件并将其添加为解密密钥。
- 解密刚刚设置的LUKS分区。
mkswap
在解密的分区上运行。- 可选择删除设置 LUKS 加密时使用的密码。
- 将您的密钥文件另存为
/root/keyfile
- 更新您的
/etc/crypttab
文件以包含使用密钥文件解密交换分区的条目/root/keyfile
。 - 更新您的
/etc/fstab
文件以挂载加密交换(您需要获取解密交换分区的 UUID。) - 运行
sudo update-initramfs -k all -c
以重新创建启动文件 - 最后,运行
sudo update-grub
现在 swap 已加密。启动时,您将输入密码进行解密/
。root 解密后,/root/keyfile
系统可以使用它来自动解密您的 swap 分区。
有这里有一篇很棒的文章关于使用单个密码加密多个分区。由于您只尝试加密交换分区,因此您可以在启动到已安装的系统时执行此操作。