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

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

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

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

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

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

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

答案1

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

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

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

通常是这样的。

然而,TRIM 何时发生并不总是显而易见。例如,mkfs或者mkswap/swapon默默地暗示 TRIM,并且您必须使用其他参数来禁用它。我不知道分区程序是否采用了相同的想法并修剪新创建的分区。如果使用 LVM 而不是分区,请注意,lvremove如果lvresizeissue_discards = 1lvm.conf.其他存储层(例如mdadm支持 TRIM)作为简单的传递操作。

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

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

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

一旦修剪,你用随机数据覆盖就毫无意义。

但只要您能掌控一切,并在所做的一切操作中禁用 TRIM,随机数据就会保留。

相关内容