不同类型的媒体上可用的安全擦除技术是否设置了状态或验证标志?
是否存在一个行业标准来验证驱动器是否已完成该过程?
答案1
第一个问题:是或否
- 根据设备的规格(无论是 SSD 还是 HDD),您可以使用不同的擦除方法(或清理方法)。这些方法包括写验证、多次传递,甚至在最后一次传递时应用特定模式(例如全部为 00)。清理方法的一个例子是 DoD 5220.22-M 及其变体。有关其中一些清理方法的更多信息,您可以参考:https://www.lifewire.com/data-sanitization-methods-2626133。
- 当需要额外“手动”确认安全擦除 (SE) 过程是否成功完成时,使用在最终步骤中附加独特模式(例如 00 或任何其他选定模式)的方法非常有利。这可以通过命令行轻松完成(假设有 Linux shell 和 SATA 磁盘):
dd if=/dev/sda bs=1M | tr -d '\0' | read -r -d '' && echo "Disk contains non-zero data" || echo "Disk only contains zeros"
第二个问题:多或少(啊哈,很抱歉^^)
没有“行业标准”,而是 NIST“指南”(如果特定行业要求,则可能成为标准)。请参阅以下链接中的 NIST 出版物:https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-88r1.pdf
在(NIST SP 800-88r1 文档)第 20 页,您将找到有关“清理结果验证”的指南,其中解释了擦除验证的原则和要求。通过使用已知的简单模式进行验证,可以轻松满足此要求(参见第 2 点)。
然而,值得注意的是 CE(加密擦除)的存在,这是另一种擦除技术,对于具有内部加密机制的现代 SSD 而言非常有效。然而,重要的是要考虑 CE 的利弊,因为在某些情况下(例如关键行业和网络安全问题),它的适用性可能并不明显,正如 NIST SP 800-88r1 指南中详细说明的那样。
希望能帮助到你。
答案2
NVMe 基本规范确实在 Sanitize 状态日志中定义了一个字段,该字段指示驱动器是否曾经已消毒SSTAT
.在公开的规范文件中查找。
话虽如此,Sanitize 命令只是规范中定义的可用于擦除驱动器的命令之一。另一个示例是 Format NVM 命令,其中SES
定义了一个安全擦除设置 ( ) 字段,供用户请求所需的安全擦除操作。SSTAT
如果使用此命令擦除驱动器,则该字段很可能不会更改,无论字段中设置的值如何SES
。(顺便说一句,我不太确定在大多数消费级驱动器中,字段的值SES
实际上在后台会产生影响。)
较新的 ATA/ACS 规范中引入的消毒功能集似乎在其命令输出中也有一个字段,用于指示消毒操作是否已完成无错误(即,没有明确定义新的驱动器是否应该设置该位)。