随机擦除可用空间:dd if=/dev/urandom 与 LUKS format-erase,哪个更安全,有什么陷阱吗?

随机擦除可用空间:dd if=/dev/urandom 与 LUKS format-erase,哪个更安全,有什么陷阱吗?

dm-crypt 上的 ArchLinux Wiki 建议在将新存储设备或分区用于加密卷之前用随机数据覆盖它们。我使用了两种方法来实现此目的,但我发现一种方法(使用 dd)比另一种方法(通过 Gnome 磁盘使用 LUKS 格式擦除)快得多。

dd if=/dev/urandom在相当现代(2013-2023 年)和典型的 x86 UEFI PC 上是否存在任何已知的安全性较低的情况?

预先感谢您的建议。

重复我的程序

我使用的命令dd是:

sudo if=/dev/urandom of=$NEW_BLKFILE status=progress bs=1M

$NEW_BLKFILE块设备文件在哪里,例如/dev/sdb/dev/sdb1.

在 GNU/Linux 上使用该status=progress选项会导致进度信息输出到终端,包括估计的写入速率。

启动 LUKS 格式作业的方法是:

  1. 输入 Gnome 磁盘
  2. 从左侧列表中选择“设备”
  3. 如果需要,“格式化”磁盘(创建分区表)(驱动器选项 > 格式化磁盘),确认警告
  4. 按卷布局图中的创建分区按钮(加号),设置分区大小
  5. 启用擦除选项;选择 Ext4 并在类型选项中启用“密码保护卷 (LUKS)”
  6. 输入密码
  7. Run udisksctl info --object-path $JOB_OBJ,其中$JOB_OBJ格式擦除操作作业对象路径,例如jobs/42

作业对象的属性Rate显示了进程的估计写入速率(以每秒字节数为单位)。

以下是我对低端桌面 SSD(1TB,4 位“QLC”)和低端服务器 HDD(4TB,“5400RPM 级”,CLV?)写入速度的观察:

SSD:>100MB/s for dd,<=33MB/s for format-erase
HDD:>150MB/s for dd,<=14MB/s for format-erase

HDD 上的格式化擦除操作噪音很大,表明存在大量寻道。

编辑:添加了 HDD 统计信息,公开dd块大小。

链接

ArchLinux 维基。 dm-crypt/驱动器准备。

答案1

正如阿尔乔姆在他的书中正确地说的那样评论,覆盖是完全多余的。

而且,您使用的是 SSD – 预先填充任何东西意味着磨损均衡可以处理的未使用空间较少,因此这对性能和 SSD 使用寿命不利。

所以,请忽略 Arch wiki 上的内容。

为什么一种方法比另一种方法慢?您的dd方法可能只是使用更足够的块大小,或者使用正确的系统调用来让复制发生在内核空间而不是通过用户空间,从而减少上下文切换,从而提高性能。 (如果人们需要更高的性能,他们倾向于做类似pv < /dev/urandom > /dev/outdev或相同的事情来cat代替pv; dd很少真正有用。)

相关内容