如何安全删除存储在SSD上的文件?


27

从(非常长,但绝对值得阅读)有关SSD的文章中

在操作系统中删除文件时,硬盘驱动器或SSD均无反应。直到您覆盖扇区(在硬盘上)或页面(在SSD上)之后,您才真正丢失数据。文件恢复程序利用此属性的优势,这就是它们帮助您恢复已删除文件的方式。

但是,HDD和SSD之间的主要区别是覆盖文件时发生的情况。尽管HDD可以简单地将新数据写入相同的扇区,但SSD会为覆盖的数据分配新(或以前使用的)页面。包含现在无效数据的页面将被简单标记为无效,并在某些时候将其删除。

那么,安全擦除存储在SSD上的文件的最佳方法是什么?除非您覆盖整个驱动器,否则使用硬盘中的随机数据进行覆盖(例如使用“切碎”实用程序)将无法正常工作。

Answers:


22

如何加密卷本身?删除的数据仍将存在,但是如果没有适当的密钥,任何人都将无法访问。


有趣的是,我没想到这一点-因为无论如何我总是在硬盘上使用LUKS加密;)
c089

如此处所述这将对性能产生严重影响。对于基于SandForce的驱动器,使用ATA安全擦除将擦除AES加密密钥,从而为不使用软件加密时的安全删除问题提供了解决方案。
c089

12

如果SSD驱动器支持ATA安全模式功能集,则它具有内置的安全擦除功能,您应该能够使用“安全擦除”之类的工具访问文件(在此处此处记录)


2
ATA安全模式功能集的+1。在SecurityTube.net上有一个很好的视频
RJFalconer 2009年

2
但是该功能也仅适用于完整的驱动器,不是吗?
c089

@ Chris089:是的:安全擦除将擦除整个驱动器。由于配置不足,不能保证用随机数据覆盖整个驱动器。(但这至少会使普通用户无法访问一些未擦除的数据。)有关更多信息,请参见anandtech.com/storage/showdoc.aspx?i=3531&p=9
2009年

请注意,发现(较旧的)驱动器无法实现此功能。它也应该适用于HDD,但是在SSD上,它的优点是实际上可以在几秒钟而不是几小时内完成。
Maarten Bodewes,2014年

Secure Erase令人沮丧的问题是,许多驱动器要求您对其进行物理重启(拔下电源连接器,然后重新插入),以使其脱离“安全冻结”状态。只有这样,安全擦除才起作用。不必总是很容易或不希望打开您的PC,尤其是在笔记本电脑或更差的嵌入式系统中。
misha256 2014年

10

即使您覆盖整个驱动器,也不能绝对确定,因为HD和SSD都包含备用扇区,这些备用扇区会在发生故障时或在SSD有助于磨损均衡的情况下被替换

如果要绝对确定数据无法恢复,则必须物理破坏驱动器以进行恢复。覆盖可以使您对HD拥有合理的确定性-在SSD上,甚至还没有办法实现这一目标。如果将整个驱动器装满,则仍然有可能数据所在的块已切换到备用块以进行损耗平衡,并稍后会再次出现。


尚无法降票,但安全擦除答案使此参数无效。当然,如果您不想依靠制造商的安全擦除,则可以选择物理销毁闪存。但是,请确保将其焚化或破坏所有筹码,闪存具有很高的弹性。
Maarten Bodewes,2014年

请注意,这是一个旧答案;到目前为止,大多数驱动器(包括大多数硬盘驱动器)应该都支持SECURE ERASE。
Maarten Bodewes,2014年

1
安全擦除擦除所有SSD。但不要单独的文件集或分区。
Mikhail Moskalev 2014年

9

由于NAND闪存的特性,SSD无法直接覆盖数据。在删除文件之前反复覆盖文件并不能安全地将其擦除到SSD上,而只是将数据写入NAND上的其他位置。

要了解为什么会这样,有必要说明SSD在内部的工作方式。

  • NAND闪存分为多个,每个通常由一组页面组成,页面大小通常为4 KB(加上纠错码)。尽管某些驱动器(尤其是较旧的驱动器)可能使用256 KB或更小的块,但大多数现代SSD使用NAND的128页块的块大小为512 KB。下图假定256 KB块,但是无论块大小如何,概念都是相同的。

NAND模块中的页面图
来源 –由CC BY-SA 3.0 提供,来自Wikipedia的Music Sorter

  • 每个页面都可以单独写入,但是只有擦除后才能重写页面,并且只能在整个块中进行擦除。这意味着无论何时重写数据,SSD都必须将受影响页面中的数据标记为无效,然后将其重写到其他位置(可能在其他块中)。在更合适的时间,理想情况下,当驱动器处于空闲状态并且块中的所有页面都标记为无效时,SSD可以擦除不再使用的块。此清理过程称为垃圾收集

  • 为了使SSD知道可以擦除的块,操作系统必须告诉它哪些块不再包含有效数据。这是使用ATA TRIM命令完成的。然后,SSD可以自由地垃圾收集那些未使用的块。

SSD尝试将写入均匀分布在NAND上,以避免过早发生故障,该过程依赖于驱动器的可用空间。

  • 每个NAND块只能维持有限数量的写入/擦除周期。尽管企业级SSD和一些使用更耐用类型NAND的高端消费类SSD可以在市场上买到,但当今的许多消费级SSD使用19-21nm NAND,每个块在无法使用之前可以使用约3000个周期。

  • 但是,在所有情况下,SSD必须通过称为损耗平衡的过程,将写操作散布到整个驱动器上,以避免在任何单个块上造成过大的磨损,从而避免驱动器过早发生故障。只有在保留一定数量的空间(预留空间)以根据需要进行有效的垃圾收集(即使驱动器快满)时,才能实现有效的磨损平衡。

  • 在极端情况下,要求SSD写数据的速度快于擦除旧数据块的速度(在繁重的数据中心工作负载中很常见),它可能被迫将一个数据块中的数据重写到另一个数据块中,然后立即擦除旧数据块在有机会执行垃圾收集之前为新数据让路。

  • 强制重写一个块不是理想的,因为它会降低性能并导致写入放大,其中,向底层NAND写入的数据要多于驱动器实际写入的数据量。额外的预留空间通过提供更多的备用空间来重写数据和擦除旧块,有助于减轻写放大。这就是为什么高端企业级SSD(例如Samsung SSD 845DC PRO)的大小分别为200 GB和400 GB的原因,即使该驱动器实际上内部分别包含了接近256或512 GB的NAND。另请参阅:为什么SSD具有奇怪的大小?

  • 三星的SSD白皮书系列全面介绍了SSD的内部工作原理。白皮书04中介绍了如何写入和擦除NAND页和块以及垃圾回收。

真正擦除SSD上数据的唯一方法是使用ATA安全擦除命令。

  • 安全擦除指令驱动器擦除所有存储的数据,包括可能保留在预留空间过大的NAND区域中的数据。完成此操作后,所有块都将被擦除,从而产生了原始驱动器。

  • 在具有自加密功能的驱动器中,只需擦除加密密钥即可实现安全擦除。由于没有密钥就无法读取加密驱动器NAND上的数据,因此无需像未加密驱动器上那样擦除所有块。


请注意,并非所有驱动器都能正确实施安全擦除命令。如果您仍然想使用该驱动器,那可能是您最好的方法,如果您没有从头开始进行加密的先见之明。如果要丢弃驱动器,则应物理销毁它-特别是闪存芯片。
鲍勃

如果需要物理销毁,我将打开驱动器并销毁底层PCB。
bwDraco 2014年

@Bob您是否具有讨论不正确实施的来源的链接?该secure_erase命令是ATA标准的一部分。在某些便宜的驱动器上可能不存在它,但是如果有,它应该可以正常工作。它比其他选项更好的原因是它将驱动器还原到其原始出厂配置。即使在HDD上,它也比DBAN等工具更快,更有效。
保罗

@保罗security.stackexchange.com/questions/41676/...usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdfsecurity.stackexchange.com/questions/62253/...有绝对的零的保证任意驱动器的固件正确执行任何给定的命令(错误可能在任何地方发生)-测试已证明至少某些驱动器确实没有。归根结底,最大的问题是您无法真正验证正确的擦除。
鲍勃

1
由于我们无法对成功发表全面声明/保证,因此我们必须假设至少某些驱动器未正确实现它。如果我们假设某些驱动器没有正确实现它,那么安全的做法是假设没有其他驱动器正确实现它,除非经过证明。它不是容易证明-擦除可能看起来是正确的给你,同时保持对闪存芯片的所有你知道的信息-这意味着你应该总是肉体上消灭了任何真正敏感。
鲍勃

6

如@teabot所述,使用全盘加密软件将避免安全删除的问题,因为您无需再这样做了。但是,如相关问题中所述,这将对性能产生巨大影响,因为这会阻止许多控制器的功能(例如压缩和TRIM),并且据报道会将性能降低到普通硬盘比昂贵的硬盘快的水平。 SSD。对于基于SandForce的设备,有一个更好的解决方案:这些设备默认情况下进行AES加密,并且在使用ATA安全删除功能时,密钥将被擦除,除非攻击者可以破坏AES(当前为128位,当前为256位),否则所有数据均不可访问。 (2011年3月发布的新驱动器)。


1
但是,似乎没有解决方案可以安全地删除一些文件。您必须擦除整个磁盘。
c089

3

如您所想,擦除所有可用空间以确保擦除用于包含数据的任何块是唯一的确定方法。好吧,除了从轨道上挪动这个地点以外...

如果您使用多通道切碎,这将非常耗时,并且会缩短闪存芯片的寿命。

保护已删除数据的另一种方法是,首先使用诸如truecrypt之类的加密文件系统将其加密存储。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.