根据用于擦拭常规硬盘驱动器的“ diskscrb”命令的文档:http://www.forensics-intl.com/diskscrb.html


“符合并超过政府在DoD 5220.22-M中提出的标准。可以覆盖9次环境数据区域(每个过程涉及3次单独的写操作,然后进行验证过程。)这有助于消除恢复影子数据的可能性。“


因此可以擦除硬盘至少9次,但是SSD的USB FLASH驱动器呢?我需要擦除9次数据还是只需要擦除一次?

这是我用来定期从存储卡,USB闪存驱动器等中删除数据的方法:[我开始它在晚上,在早晨停止,例如:它覆盖了我的USB闪存驱动器10次]:

loopcountdd=0;   
while [ 1 = 1 ]; 
do (( loopcountdd= $loopcountdd + 1 )); 
dd if=/dev/urandom bs=4096 | pv | dd bs=4096 of=/dev/XXX; 
echo "overwritten: $loopcountdd x"; 
done
每周问题。
阅读2011年8月3日博客条目以了解更多详细信息,或提交自己的每周问题。


评论

谢谢,这为SSD提供了一个很好的答案!它促使我对其他一些存储设备问类似的问题:如何可靠地擦除硬盘驱动器上的所有信息?

另请参阅可以恢复擦除的SSD数据吗?

您可以执行“ while true; do”,而无需执行“ while [1 = 1]; do”。同样,您可以执行“(((loopcountdd ++++))”来增加loopcountdd。

#1 楼

最好停止这样做。除非万不得已,否则切勿完全覆盖SSD /闪存存储设备以擦除它。

NVRAM具有有限的写入周期。在某个时刻,对NVRAM单元的足够写入后,它将完全停止工作。对于现代版本,我们处于估计3,000个写周期的生命周期中。

此外,内部SSD看上去不像传统硬盘。 SSD具有以下独特的属性:备用区域通常留出总闪存的8%-20%左右,用于磨损平衡。最终用户无法使用常用工具写入此备用区域,该备用区域专用于SSD控制器。但是备用区域可以容纳(较少)数量的旧用户数据。
“闪存转换层”,FTL。您的操作系统如何“看到” SSD(LBA地址)和实际的NVRAM地址空间布局完全没有关联。
大量写入消费级SSD可能会使控制器的垃圾回收算法落后,从而导致控制器进入性能降低的状态。然后发生什么取决于控制器。在最坏的情况下,它无法恢复性能。在更有可能的情况下,随着操作系统发送“修剪”命令,它会慢慢恢复性能。 “为了清理整个磁盘,软件技术在大多数情况下是有效的,但并非全部。”

因此,当您完全覆盖闪存时,您可能会执行有效的安全措施。擦除-但是,您可能还会丢失一些位。而且,您肯定会消耗大量驱动器的预期寿命。这不是一个好的解决方案。

那么,我们应该怎么做?



“最佳”现代驱动器支持特定于供应商的安全擦除功能。例如,英特尔的新320系列,一些基于Sandforce 22xx的驱动器以及许多标称具有“全盘加密”或“自加密驱动器”的SSD。该方法通常遵循以下方式:


SSD控制器包含完整的硬件加密引擎,例如使用AES128。
首次初始化时,控制器会生成一个随机AES密钥,并将其存储在NVRAM中的私有位置。
使用上述AES密钥对曾经写入驱动器的所有数据进行加密。
如果/当最终用户执行安全擦除时,驱动器丢弃AES密钥,生成一个新密钥,然后覆盖NVRAM中的旧AES密钥位置。假设无法恢复旧的AES密钥,这将导致旧数据无法恢复。



某些驱动器没有以上功能,但确实支持ATA安全擦除命令。这是因为它变得更加棘手-本质上,我们依靠驱动器制造商来实现“强”的安全擦除。但这是一个黑匣子,我们不知道他们实际上在做什么。如果需要高安全性,则不应依赖于此,或者至少应阅读技术文档和/或与驱动器制造商联系以验证其方法的安全性。关于他们正在/应该做什么的一个合理猜测是:


虽然驱动器未使用诸如AES之类的完整加密密码,但它仍在使用大量数据压缩算法,校验和以及跨多个NVRAM的RAID类数据条带化。 (所有现代高性能SSD都使用了这些技术的变体。)这会混淆驱动器上的用户数据。
在收到ATA Secure Erase命令后,驱动器将擦除其“ Flash Translation Layer”表和其他内部数据结构,并将所有NVRAM标记为已释放。



我的个人建议:


如果只需要安全擦除SSD,请使用制造商的最终用户工具,或者通过Linux上的HDPARM等使用ATA Secure Erase命令。

如果需要安全擦除,请选择:


仅使用通过强(AES)加密显式发布安全擦除的驱动器,并运行制造商的安全擦除。和/或:

确保在写入驱动器之前,对驱动器写入的所有数据均已加密。通常通过软件全盘加密,例如PGP全盘加密,Truecrypt,Microsoft BitLocker,Bitlocker-to-Go,OSX 10.7 FileVault或LUKS。或:

物理破坏驱动器。




评论


评论不作进一步讨论;此对话已移至聊天。

–Rory Alsop♦
19年1月30日在6:37

#2 楼

SSD和闪存驱动器是一个有趣的问题...
正如@Bell指出的那样,它是对这个问题的回答:


是的,切碎操作的有效性取决于块号与
非易失性存储之间的固定或物理映射。它适用于旋转媒体,但不适用于SSD(出于性能和生命周期原因而对其块进行虚拟化)。
因此,切碎模型在SSD(以及许多SAN上无效)上起作用。更有趣的是,固态硬盘上的可用空间中的数据持久性是完全不可预测的。在没有擦洗操作的情况下,通过
驱动器的自由空间准备过程,它也可能会被完全擦除。


一些更好的SSD和闪存驱动器可以提供安全功能,进行安全删除(通常通过绕过生命周期/性能寻址机制进行删除),如果确实有需要删除的敏感数据,建议您这样做,但要注意这会影响设备的使用寿命。

普通覆盖将不可靠。

评论


正如JesperMortensen所链接的论文所论证的那样,大多数宣传“安全删除”功能的SSD都不具备这种功能。如果您有敏感数据要写入SSD,请将其写入加密的卷。其中包括临时文件,缓存,缓冲区等。等

–user502
2011年7月26日在12:14

#3 楼

首先,一个覆盖对于所有当前的磁性硬盘驱动器就足够了。从驱动器中恢复信息从未像人们所声称的那样容易。

第二,您不能仅通过覆盖闪存驱动器就擦除它们。在实际覆盖所有数据之前,您将用覆盖将它们耗尽。您绝对可以确定的唯一方法是首先对闪存驱动器上的数据进行加密,这样您就不会在意未删除的片段是否遗留了。

评论


如果没有坏块重新分配发生,用垃圾数据简单填充所有空间将覆盖上面的所有数据。如果重新分配了一个扇区,则它是由于技术问题而发生的,因此您无论如何都无法从中读取信息。

–注意
18-09-17在12:51

@Overmind这是不正确的,因为存在过量的空间。

–森林
19年5月3日,3:19