简短的:

简短的:

我们的一个客户正在询问 SSD 的 DOD-7 Pass Erase 方法。

我们尝试通过 Tabernus lan 擦除 256 GB 的 SSD(三星制造),但这花费了太长时间。

请指导我如何从 Tabernus lan 7.3.1 版本擦除 SSD。

在此处输入图片描述

答案1

简短的:

多次 (7) 遍覆盖擦除无法在 SSD 上达到预期效果。如果需要,您可以实施该操作并告知客户您已实施,但不要指望它会清除所有数据

背景:

要清除传统硬盘上的数据,可以采用以下解决方案:

  • 清除索引(例如,清除 diskpart)。易于恢复。
  • 覆盖整个磁盘。这将清除普通用户的所有数据。如果您可以访问非常敏感的硬件(只有政府才能访问),那么您可能能够恢复部分数据。想象一下擦除铅笔书写的笔记并写下新文本。留下阴影。
  • 使用不同的模式多次覆盖磁盘,甚至可以击败最有能力的攻击者。

SSD 的工作方式不同。它们有许多分组的块。写入只能发生在一个组中。可以把它想象成一本书,你只能在一页上写入。如果你想添加一个句子,那么 SSD 的控制器将读取整个页面并将新页面(带有额外的句子)写入不同的位置。然后它会将旧页面标记为空,并将旧页码分配给新页面。

这意味着操作系统看到的扇区(页面)和磁盘上的内容之间没有直接映射。

您可以用新文件(例如只包含零的文件)填充整个磁盘,而不会触及保留空间。因此仍有可恢复的数据。您可以执行此操作 7 次,并且仍可恢复相同的数据。

好消息

好消息是,SSD 通常带有磁盘加密功能。丢掉加密密钥,数据就毫无价值了。

更好的消息是,这种数据加密始终可用。即使您没有明确启用加密。在这种情况下,磁盘仍会使用存储在 SSD 某处的密钥写入加密数据。告诉它丢弃此密钥并用新密钥替换它,您就完成了。它快速而安全。

甚至有一个命令可以做到这一点(ATA 安全擦除)。

这是唯一正确的技术的解决方案。即使他们坚持 7 次覆盖,也要这样做(只进行后者才能符合他们的要求,而第一次覆盖则是为了满足这些要求的目的)。

糟糕方法的缓慢性

我没有使用过 tabernus lan。但几乎任何 SSD 都能接受超过 100MB/秒的持续写入。有了这种速度,即使是速度非常慢的 SSD 也应该在一小时内完成。中速 SSD 应该在五分之一的时间内完成。

如果您无法达到该性能,那么我怀疑您的解决方案是逐扇区写入。这很糟糕。它应该以 32 的队列深度尽可能快地刷新扇区。如果没有它,您将得到上面的页面类比。

从写了 8 句话的整整一页开始。

  • 擦除句子 1。

    • 阅读整页。
    • 删除第一句
    • 将一整页的 7 句话写到不同的区块/页面
  • 擦除句子 2。

    • 阅读整页。
    • 删除第二句
    • 将一整页的 6 句话写到不同的区块/页面
  • 擦除句子 3。

    • 阅读整页。
    • 删除第三句
    • 将 5 句话写成一整页到不同的区块/页面
  • 擦除句子 4。

    • 阅读整页。
    • 删除第4句
    • 将 5 句话写成一整页到不同的区块/页面
  • 擦除句子5。

    • 阅读整页。
    • 删除第5句
    • 将 3 句话写成一整页,放到不同的区块/页面中
  • 擦除句子6。

    • 阅读整页。
    • 删除第6句
    • 将整整一页的两句话写到另一个区块/页面
  • 擦除句子 7。

    • 阅读整页。
    • 删除第7句
    • 将整页内容写到不同的区块/页面
  • 擦除句子 8。

    • 将页面标记为已删除(但实际上不要删除它,直到您需要更多空间)

注意到那段文字有多长了吗?SSD 速度也是一样。

答案2

您使用的软件显然无法正常工作。您的一个屏幕截图显示速度为 97MB/s。以这个速度,在 256GB 驱动器上进行 7 次全盘覆盖大约需要 5 个小时。简单计算。

你可能想尝试白5取而代之。如您所见,Tabernus Erase LAN 的链接已重定向到其网站。您也可以考虑最新的数据库管理系统,它似乎是 Blancnco 的免费版本。

说实话,我从未使用过上述任何软件。我怀疑它们的效果是否真的比简单的随机覆盖更好。

就我个人而言,我在 GNU coreutils 中使用 shred:

shred -v -n 7 /dev/sdX

不过我不会真正使用-n 7它。最多我会保留默认值:3 次通过,并且可能在末尾额外进行一次零填充 ( -z)。

或者,openssl:

openssl enc -aes-256-ctr -in /dev/zero -out /dev/sdX -pass file:/dev/urandom -nosalt

您可以编写一个简单的 bash 循环来使其执行多次传递。但它不会报告进度shred

顺便说一句,根据互联网上相当多的随机来源(请谷歌搜索),美国国防部似乎已经淘汰了数据清理规范。现在它似乎只承认物理破坏。

您所担心的一个可能原因是,简单的覆盖可能无法“达到”SSD 后台所有预留空间,无法进行所谓的过度配置(在固件中完成)和/或坏扇区重新分配。不幸的是,多次通过随机的如果您的 SSD 不支持硬件加密,数据填充可能是您能做的最好的事情。


如果您需要安全擦除数据,请不要依赖 ATA DSM/TRIM。TRIM 可能会或甚至可能不会使 SSD“看起来”(即十六进制转储)完全被擦除,但它实际上不会像覆盖那样在后台破坏数据。

人们也不应该真正信任 ATA Secure Erase 1ACS 标准仅要求它执行(单次)模式填充。普通模式应使用零或一作为模式,而增强模式应使用供应商特定的模式(但仍是模式填充)并擦除“重新分配的用户数据”。

然而,在 ATA SANITIZE DEVICE 尚未推出时,该功能集长期以来一直被供应商滥用来做非标准的事情3 。因此,ATA 安全擦除的行为可能完全特定于供应商,尤其是在 SSD 上。

在 SSD 上,ATA 安全擦除通常以与 ATA SANITIZE DEVICE 的 BLOCK ERASE 相同的方式实现,这几乎相当于全盘 ATA TRIM(在 RZAT 2 SSD 上)。

固定模式填充(可能纳入某些不考虑 SSD 的“DOD 擦除”实现中)实际上不值得做,因为 SSD 中的“智能”控制器可以进行压缩,甚至忽略这种重复覆盖。

如果出于某种原因,确实需要这样做,我认为 ATA SANITIZE DEVICE 的 OVERWRITE 是最好的方法。(因为,希望,供应商将确保当用户向驱动器发出该指令时,控制器不会“玩智能游戏”。)


在具有所谓硬件加密的 HDD/SSD 上,增强模式ATA 安全擦除通常与 ATA SANITIZE DEVICE 的 CRYPTO SCRAMBLE 实现相同,后者会触发加密密钥的重新生成等。如果您想所谓的安全擦除驱动器,这可能是最好的“快速”方法,因为这几乎就是那些非 Opal 硬件加密的全部目的(而人们通常错误地认为其主要目的是使用 ATA 密码)。

FWIW,在擦除之前,始终需要先启用 ATA 安全功能集(即“用户密码”),这通常会因实施不当(或 PEBKAC)而导致驱动器变砖。如果驱动器支持 ATA SANITIZE DEVICE,那么它应该是首选。不幸的是,与 ATA 安全不同,hdparm,似乎还没有实用程序支持较新的功能集。最多只能手动形成一个SCSI ATA 直通命令并将其发送sg_rawsg3_utils


笔记:

1 ATA 安全擦除的标准命令名称是 SECURITY ERASE UNIT,这是 ATA 安全功能集中的强制命令

2修剪后返回零数据;请参阅 ACS 标准以了解其确切定义

3 英特尔 530 SATA SSD 规格;参见“5.3 安全模式功能集”;主要供应商“滥用” ATA 安全功能集的一个例子

答案3

来自这个 archlinux 页面关于SSD 内存单元清除ATA 安全擦除页面建议

  1. 步骤 1 - 确保驱动器安全未被冻结
  2. 第 2 步 - 通过设置用户密码启用安全性
  3. 步骤 3 - 发出 ATA 安全擦除命令

更多细节

  • 对于步骤 1,您可以使用以下方法检查驱动器是否未冻结

    hdparm -I /dev/sdX
    

    如果命令输出显示“冻结”,则无法继续下一步。某些 BIOS 通过发出“SECURITY FREEZE”命令阻止 ATA 安全擦除命令,在启动操作系统之前“冻结”驱动器。

  • 对于步骤 2,请阅读 [1] 与联想电脑相关的警告:

    hdparm --user-master u --security-set-pass PasSWorD /dev/sdX security_password="PasSWorD"
    

    它应该回答类似

    /dev/sdX:
    Issuing SECURITY_SET_PASS command, password="PasSWorD", user=user, mode=high
    

    然后再次检查

    hdparm -I /dev/sdX
    
  • 对于步骤 3:

    hdparm --user-master u --security-erase PasSWorD /dev/sdX
    

    存在--security-erase-enhanced 增强安全擦除的参数。据报道[1]“短暂的时间(例如 2 分钟)则表明该设备正在自我加密,其 BIOS 功能将擦除内部加密密钥,而不是覆盖所有数据单元”,同时更长的请求时间应该表明设备未加密。

    --security-erase在加密设备上,可以为和选项报告相同的预期时间--security-erase-enhanced。在这种情况下,假设将使用相同的算法[3] . 请注意,对于普通硬盘增强参数,除其他差异外,应该覆盖甚至不再使用的扇区,因为它们在某个时候触发了 I/O 错误并被重新映射。我们应该假设它也会以同样的方式对 SSD 起作用,即使这些块的数量应该不足以反映在大于一分钟的时间差异中。阅读更多内容Security SE 上的解答

    在示例中SSD 内存单元清除页面上,对于英特尔 X25-M 80GB SSD,报告时间为 40 秒。

    等待命令完成。此示例输出显示 Intel X25-M 80GB SSD 大约需要 40 秒。

注意:完成这 3 个步骤后,驱动器将被擦除,并且驱动器安全性应自动设置为禁用(因此不需要密码即可访问)。


更新

来自ATA 安全擦除页面

此过程介绍如何使用 hdparm 命令向目标存储设备发出安全擦除 ATA 指令。对 SSD 驱动器发出安全擦除时,其所有单元都将标记为空,从而将其恢复到出厂默认写入性能。

免责声明:这将删除您的所有数据,甚至数据恢复服务也无法恢复。

答案4

如果这是真正重要的数据并且永远无法恢复,那么使用该磁盘就不再安全了。

正如其他人所说的那样,覆盖不适用于 SSD,并且如果制造商加密错误(为了省钱而偷工减料、无能等)那么即使删除密钥也无济于事。

即日起,DSS 将不再批准用于机密处理的 IS 存储设备(例如硬盘)的清理或降级(例如发布到较低级别的机密信息控制)的覆盖程序。

如果您处理机密数据(尤其是涉及政府的数据),则需要更安全的东西。我推荐使用喷灯:

来源:CNET

相关内容