擦除很慢。熵太小?

擦除很慢。熵太小?

我必须交出一台笔记本电脑,包括它的硬盘。由于它没有加密,我想至少快速擦除它。我知道这在 SSD 上不是最佳选择,但我认为比单纯可读更好。

现在我正在对一个正在使用的 USB 设备进行擦除,但速度非常慢。我不知道这是为什么。当然,除了擦除该设备之外,计算机上几乎没有发生任何事情,所以我想熵可能很低(entropy_avail 说它在 1220)。直接调用

dd if=/dev/random of=/dev/sda1 bs=1k

四次?或者我有没有办法可以调用某些东西来增加随机性?或者瓶颈在完全不同的地方?

答案1

请勿尝试使用专为旋转磁性硬盘设计的工具来“擦除”SSD。你实际上不会销毁所有数据,这样只会缩短 SSD 的使用寿命。

相反,使用专为 SSD 设计的擦除工具,该工具可以使用驱动器的内部闪存擦除(丢弃)来丢弃所有块,包括您无法访问的块。SSD 供应商通常会提供此类工具,并保证与该供应商的驱动器兼容。

您也可以尝试自己动手安全擦除实用程序。执行安全擦除的程序可与旋转硬盘和 SSD 配合使用。此外,一些系统 BIOS(主要在商务笔记本电脑中)内置了安全擦除功能。请注意,安全擦除在硬盘上需要数小时,但在 SSD 上只需几秒钟;在硬盘上,每个扇区都必须被覆盖,但在 SSD 上,它会一次丢弃所有块和/或更改驱动器的内部加密密钥。

(请注意,安全擦除在某些最早的一代 SSD 上无法正常工作;在这些情况下,您应该将驱动器扔进粉碎机中。)

答案2

使用/dev/urandom应该可以让一切变得更快。我不会那样擦除 SSD。SSD 通常具有高级磨损均衡功能。基本上,驱动器不会覆盖现有数据,而是覆盖未使用的部分。正确地打乱所有数据需要一点时间。到那时,您已经磨损了 SSD,尽管磨损程度很小。

答案3

/dev/random通过系统收集的熵生成随机数据(键盘快捷键之间的时间延迟、通过以纳秒精度测量数据包到达的网络计时等)。如果熵不足,此设备将阻止输出,同时收集更多熵。

/dev/urandom也使用收集到的熵,但它也使用伪随机生成器。因此,与 不同,它的熵没有那么多,/dev/random但它非常快。不过,它的输出具有足够高的熵,因此,如果您没有一些非常高的安全限制(通常是密钥生成),您可以在任何地方使用它。

如果你用高熵垃圾在块级别覆盖 SSD,你实际上会在非常低的(大多数情况下是无法访问的)级别覆盖其闪存。这是因为 SSD 控制 IC 无法调查你的数据是否真的是垃圾,因此其数据重复数据删除机制很容易被绕过。

但是闪存具有最大块写入次数,并且您在接近其使用寿命到期时使用此类操作发送它。但是 SSD 在开始损坏之前可以被覆盖大约 10000-100000 次,并且数据擦除不需要如此频繁地发生,所以这还算可以。

答案4

针对我的回答的评论,我必须承认,擦除对于 SSD 来说通常不是一个好主意。

除了上述答案之外,我还想推荐随机性

它甚至比 urandom 还快。urandom 比 random 快很多,但速度却很慢。Frandom 是我选择用来擦除磁盘的,而且只用于擦除磁盘。它产生的熵不如 random 和 urandom,但对于擦除磁盘来说应该足够了。正如 MadHatter 指出的那样,所使用的算法存在缺陷。但对于擦除磁盘,你只需要确保不可能重建可能的剩余位。

如果你在运行它时遇到问题维基百科有很好的文档。维基百科还涵盖了有关如何擦除磁盘的更多细节。

相关内容