用随机数据填充 SSD 以使用 Dm-Crypt 加密

3 linux encryption ssd dm-crypt

我需要加密一个 SSD 驱动器,我选择使用dm-crypt. 这不是我经常做的事情。

到目前为止,我已使用 ATA 安全擦除命令成功清除了 SSD 的内存单元。我还使用以下方法用随机数据填充了整个磁盘:

dd if=/dev/urandom of=/dev/sdx bs=4096 status=progress.

我的问题是关于最后一步,即使用cryptsetup实用程序加密设备(我的分区) 。

由于我已经用随机数据填满了整个磁盘,在创建和加密分区后是否需要用随机数据重新填满我的分区?换句话说,我生成的随机数据是否dd仍然驻留在我创建的加密分区内?

fro*_*utz 5

dd if=/dev/urandom of=/dev/sdx bs=4096 status=progress
Run Code Online (Sandbox Code Playgroud)

此命令将使用随机数据覆盖整个驱动器。该随机数据将保留在那里,直到您写入其他数据、安全擦除或 TRIM。

换句话说,我用 dd 生成的随机数据是否仍然驻留在我创建的加密分区内?

通常情况是这样。

但是,TRIM 发生时并不总是很明显。例如,mkfsmkswap/swapon静默暗示 TRIM 并且您必须使用其他参数来禁用它。我不知道分区者是否有相同的想法和 TRIM 新创建的分区。如果使用LVM而不是分区,注意lvremove/ lvresize/等并不意味着TRIM,如果你有issue_discards = 1你的lvm.conf。其他存储层(如mdadm支持 TRIM)作为简单的直通操作。

cryptsetup open除非您指定--allow-discards,否则默认情况下不允许 TRIM ,但是某些发行版可能会选择更改这些默认值。

毕竟,随机擦除SSD进行加密是非常不寻常的。我能想到的唯一用例是删除旧数据,同时不信任硬件在您修剪或安全擦除时免费执行此操作。

即使使用加密,在 SSD 上可见可用空间也是正常的。大多数人希望每周/每月使用 TRIM 以避免长期可能出现的性能下降,因此发行版可能会遵循这一趋势并allow-discards默认在加密设备上使用。

一旦修剪,你用随机数据覆盖是徒劳的。

但只要您处于控制之中,并在您所做的一切中禁用 TRIM,随机数据就会保留下来。