如何保护未加密的交换分区?

如何保护未加密的交换分区?

显然这是一个问题,并且可能有一个解决方案,可能是:

  1. 这不是必需的,因为...
  2. 这是不切实际的,因为...[例如,暂停时有 2 个密码]
  3. 哦。是的,我们在 XYZ 版本中修复了这个问题。执行 Q 即可正常运行。
  4. 除非你能写 C++ 并能自己编写代码,否则你就完蛋了。

有问题的驱动器是 SSD。

我认为暂停是现代计算机可以做到的事情。我不明白的是为什么全盘加密不是全盘加密。这似乎是一个错误。

答案1

由于加密写入和解密读取需要时间,因此通常不会对交换进行加密——交换本质上需要尽可能快,因为交换空间或多或少代替了您买不起或没有插槽的 RAM。

不过,我要指出的是,如果有人从您的交换分区中提取数据,您的计算机就已经完全被入侵了——要么攻击者在控制台上并已重新启动到另一个操作系统(可能是从 USB 记忆棒),要么他们已经远程获得了对您系统的完全控制,并且至少卸载了交换分区以应用读写访问权限。

也就是说,如果交换分区安全性很重要,那么交换分区安全性可能就不重要了,因为攻击者无论如何都会控制您系统上的所有内容 - 即使他们无法窃取您的“整个磁盘加密”存储,他们也可以将其扣为人质,或者安装将以未加密形式复制和传输每个读写的软件。

答案2

虽然有理由不加密交换,但我认为也有理由有人想要加密。加强安全性(物理或数字)总是会限制和减慢访问速度。这不是避免采取给定安全措施的理由。正如另一个答案所指出的那样,当 RAM 已满时,交换工作最好尽快完成。

话虽如此,如果交换中的内容足够敏感,可能会性能权衡可能是合理的情况默认情况下,ubuntu 安装程序(我检查了 18.04 和 16.04)在安装过程中选择 FDE 时在 LUKS 加密的 LVM2 分区中创建交换分区。因此,交换是加密的。


如果出于某种原因,您的交换分区未加密,您仍然可以对其进行加密。如果您使用的是 LVM,并且 LVM 分区已经是 LUKS 加密的,您可以简单地调整 LVM 中的文件系统大小以腾出空间用于交换,然后创建用于交换的逻辑卷。文件系统的大小调整可能需要从可启动的 USB 进行。更新您的/etc/fstab文件,您就大功告成了。


如果您想加密现有的非加密交换分区,这也是可能的,但需要做更多工作。我将列出一般步骤。

  1. 在启动系统时,swapoff您的交换分区。
  2. 用于cryptsetup luksFormat ...加密前交换分区。
  3. 生成用于解密的密钥文件并将其添加为解密密钥。
  4. 解密刚刚设置的LUKS分区。
  5. mkswap在解密的分区上运行。
  6. 可选择删除设置 LUKS 加密时使用的密码。
  7. 将您的密钥文件另存为/root/keyfile
  8. 更新您的/etc/crypttab文件以包含使用密钥文件解密交换分区的条目/root/keyfile
  9. 更新您的/etc/fstab文件以挂载加密交换(您需要获取解密交换分区的 UUID。)
  10. 运行sudo update-initramfs -k all -c以重新创建启动文件
  11. 最后,运行sudo update-grub

现在 swap 已加密。启动时,您将输入密码进行解密/。root 解密后,/root/keyfile系统可以使用它来自动解密您的 swap 分区。

这里有一篇很棒的文章关于使用单个密码加密多个分区。由于您只尝试加密交换分区,因此您可以在启动到已安装的系统时执行此操作。

相关内容