SSD 上的 ATA 安全擦除

信息安全 删除
2021-08-14 15:40:57
  1. 是否可以从 IT 或专业数据恢复公司安全擦除 ( https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase ) 的 SSD 中恢复数据?
  2. 这种类型的擦除是否会减少 SSD 的提升时间?
2个回答

2011 年加州大学圣地亚哥分校的四人在“3.2.1 内置清理命令”一节中写道

在我们测试的 12 个驱动器中,[...] 8 个驱动器报告称它们支持 ATA SECURITY 功能集。其中之一会加密数据,因此我们无法验证清理是否成功。在剩下的七个中,只有四个可靠地执行了“ERASE UNIT”命令。

因此,在 2010/2011 年,在 12 款市售 SSD 型号中,有 8 款宣传它们支持 ATA 安全擦除,并且有 4 或 5 款型号执行了安全擦除。其余的在不同程度上没有:

驱动器 B 的行为是最令人不安的:它报告说清理成功,但所有数据保持不变。事实上,文件系统仍然是可挂载的。另外两个驱动器出现了一个错误,导致 ERASE UNIT 命令无法工作,除非驱动器固件最近被重置,否则该命令只会擦除第一个 LBA。但是,他们准确地报告了命令失败。驱动器之间的巨大差异使我们得出结论,必须单独测试安全命令的每个实现,然后才能信任它以正确清理驱动器

拥有更多最新数据会很好,因为自 2011 年以来 SSD 设计发生了很大变化。遗憾的是,我没有发现任何更新的数据。

假设实施符合规范,这两个方面都没有。

安全擦除通过加密工作,通常是 AES。本质上,写入 SSD 的所有内容都首先使用主密钥进行加密。这种情况一直在发生,完全由设备的板载固件管理,并且完全透明。主密钥是在生产线上随机生成的。

通过传统方式擦除 SSD 的问题在于它需要大量的写入操作,而这些操作会降低设备的性能。为了解决这个问题,安全擦除只需更改主密钥。这意味着旧密钥丢失,磁盘上的所有数据都自动无法读取。然后使用新密钥来存储新数据。

只有几种方法可以“恢复”安全擦除操作:

  • 在安全擦除发生之前访问设备,并从控制器的 EEPROM 中获取主密钥。虽然到那时,为什么不直接偷 SSD 呢?
  • 在您拥有数百 GB 任意密文但没有密钥的情况下,以允许完全恢复纯文本的方式破坏 AES。
  • 在安全擦除的实现中查找导致旧密钥留在设备某处的错误。

这些都不是特别可行的攻击媒介。前两个不太可行。不过, Jesper 的回答表明,实施当然不是万无一失的。