用 dd 填充磁盘是否可以安全地删除文件?

AL-*_*teb 5 linux dd

我想安全地删除我的文件而不用担心任何人恢复它们,我知道我可以使用 shred 但即使使用 -n 1 也需要太长时间所以我想也许如果我删除文件并使用 dd 在磁盘上写入,填满所有可用空间我不必使用 shred 吧?我相信 dd 会比 shred 更快,尤其是我的文件几乎填满了磁盘中的大部分可用空间

那么使用 dd 填充磁盘是否保证我的文件将被安全删除?

myr*_*ack 25

这将违背互联网上的大多数传统智慧,但我们开始......

如果这是一个现代的旋转磁盘,一个简单的 dd 和 /dev/zero 传递就足以挫败几乎所有的数据恢复尝试,即使是来自专业的数据恢复公司。也许是可以提取一些具有极其昂贵的专用设备(如政府实验室)的数据,但是这是相当多的人是不会愿意花费$百万你不能接触的地方。(请注意,这符合任何官方的数据处理政府标准,但它有效。)

你在互联网上读到的关于这个话题的大部分智慧的问题在于,它更多是都市传说而不是实际事实。如果您寻找有关此主题的实际来源,大多数人会回溯到1996 年发表的一篇论文,并且指的是 MFM/RLL 驱动器(IDE 之前)。此外,人们提到的大多数政府数据销毁标准都有几十年的历史。

多次擦除数据背后的逻辑归结为这样一种想法,即残留信息可以留在盘片上扇区之间的空间中。在较旧的驱动器上,扇区的密度相对较低,盘片上有很多空白空间,这些残留数据可能会留在那里。自 1996 年以来,硬盘容量增加了几个数量级,而盘片大小保持不变。盘片中根本就没有那么多空白空间来存放数据了。 如果盘片中有可用的额外空间,驱动器制造商会使用它并向您出售更高容量的磁盘。

这些安全擦除标准的智慧已经被分解,并且已经发表的论文说一次通过就足够了

几年前,有人发布了Great Zero Challenge,有人用 dd 和 /dev/zero 覆盖了一个驱动器,并发布了一个开放式挑战,让某人提取数据。我记得没有接受者。(免责声明:此挑战的原始网站现已消失。)

但是固态硬盘呢? 由于闪存磨损均衡、坏扇区重新映射和垃圾收集以及额外的“隐藏容量”,传统的覆盖方法实际上可能不会覆盖数据(尽管它看起来会覆盖到主机 PC)。 使用 /dev/zero 执行一次 dd 将阻止临时用户从 SSD 读回任何数据。 但是,具有逻辑分析仪的专用攻击者可以破解驱动器并从内部闪存芯片中提取数据。

不久前发现了这个问题。因此,在 ATA 标准中添加了一个名为Secure Erase的命令。驱动器中的固件将安全擦除所有闪存单元。大多数现代 SSD 将支持此命令。我相信它也适用于旋转驱动器。请注意,对于最终用户来说,此命令有时可能难以访问。您通常需要一个特殊的实用程序来使用它,一些 BIOS 实现了可能会妨碍的“安全冻结”。请咨询 SSD 制造商以获取实用程序。如果他们没有,那么您可以使用第 3 方的。

请注意,有些人对驱动器固件中内置的安全擦除功能的可靠性表示担忧。有2011年发表的论文是表现出一定的驱动器会留下数据安全擦除后落后。请注意,从那时起,SSD 固件有了很大的进步。如果安全擦除对您来说是一项重要功能,我建议您从顶级制造商那里购买驱动器,最好是他们的服务器/数据中心系列中的产品(不太可能容忍有缺陷的固件)。

如果以上让您对驱动器上剩余的数据感到紧张,那么您的下一个最佳选择是多次用随机数据填充驱动器,因为这有望覆盖 SSD 中多余的隐藏容量,但您不能绝对确定不了解固件的内部工作原理。这也会缩短 SSD 的使用寿命。

你应该从中得到什么:

  1. 用 dd 和 /dev/zero 或DBAN 中的单通道选项覆盖驱动器足以阻止大多数人获取您的数据(SSD 或旋转)。
  2. 如果您有旋转驱动器,则可以使用多遍擦除方法。它不会伤害任何东西,但需要更长的时间。
  3. 如果您有来自信誉良好的制造商的最新老式 SSD,您应该使用 ATA 安全擦除命令,最好使用制造商提供的实用程序。
  4. 如果您的驱动器不支持 ATA 安全擦除(或已知有问题),则多次擦除是您的下一个最佳选择。
  5. 如果您需要按照某个标准擦除驱动器(例如,您有一份合同说数据应按照 DoD 5220.22-M 进行擦除),那就去做吧,不要争论是否有必要。
  6. 没有什么比物理破坏更胜一筹了。 如果驱动器上的数据非常敏感,以至于其价值超过了驱动器本身的现金价值,您应该物理销毁它(使用锤子、虎钳、钻床或发挥创意)。如果您真的很偏执,请确保驱动器的残骸散布在广阔的区域(例如,城市多个地方的多个公共垃圾桶)。

  • 值得注意的是,安全擦除在供应商之间的实施不一致或根本没有实施,并且实际上不能信任 SSD。SSD 目前唯一可接受的做法是销毁。 (2认同)