设计工具
存储

如何安全地擦除美光 SATA SSD——为什么数据清理很重要?

Jon Tanguy | 2017 年 3 月

在这个时代,保护敏感信息至关重要。在存储设备的整个生命周期中,包括在生命周期结束时以及设备重新部署用于其他目的时,保护存储在这些设备上的数据都是至关重要的。因此,确保从数据存储设备安全地擦除用户数据的能力至关重要。美光 SSD 提供了一种非常有效和高效的数据擦除方法。事实上,在全盘擦除功能的速度和安全性方面,SSD 较之 HDD 具有巨大的优势。

在这篇博文中,我将介绍美光在串行先进技术附件(SATA)和可信计算组(TCG)协议框架下对 SSD 进行完全擦除或“数据清理”的方法。

擦除 SSD 与 HDD

从历史上看,从 HDD 等磁性介质上永久删除数据的一种公认方法是用预先确定的数据模式(如全 0 模式或随机数据模式)来覆盖数据。为了确保数据彻底无法恢复,有必要执行多次覆盖操作,并且这个过程可能会耗时数小时。该过程可能是非常低效且成本高昂的。

但是,对于大多数 SSD 中使用的 NAND 闪存,没有可用的覆盖命令。NAND 闪存的独特之处在于,当数据存储在 SSD 的一个特定存储元件时,这些数据必须先执行一个单独的 ERASE 命令,之后才能在该物理位置上执行新的 WRITE 命令。

由于 NAND 闪存介质的这种固有特性,当主机计算机指示 SSD 覆盖数据时,硬盘必须先向每个目标存储元件发出 ERASE 命令。只有在完成此擦除步骤后,硬盘才会继续将所需的数据模式写入已擦除的单元。此过程的低效性是显而易见的。NAND 闪存中已经擦除一次的元件现在填满了数据。

更糟糕的是,当主机计算机需要写入新的用户数据时,硬盘应再次先擦除写入的数据模式!现在,由于试图像 HDD 一样处理 SSD,因此效率更加低下。

幸运的是,美光 SSD 提供了一种快速高效的方法来消除硬盘中的所有数据,而无需执行多余的擦除、填充和再擦除操作。

什么是清理?

对于“清理”一词,大家很容易就会想到清理不想要或不需要的数据。然而,在数据安全领域,“清理”是一个专业术语,它描述了将数据从存储设备中擦除的流程,该流程要确保使用已知的法医学手段也无法恢复数据。当以全大写形式“SANITIZE”出现时,它指的是由 ATA 命令集(ACS)指定的命令,用于在 SSD 上执行数据清理操作。

关于“清理”一词的全面描述可以在政府规范中找到。具体而言,美国国家标准与技术研究院(NIST,美国)在一份名为《媒体清理指南》(特别出版物 800-88)的文件中描述了这一功能,目前该指南的修订版 1 于 2014 年发布,即 SP800-88r1。该文件旨在“帮助组织和系统所有者根据其信息的保密级别做出切实可行的清理决策”。

除了继续沿用针对硬盘和磁性介质的更多传统技术外,SP 800-88r1 还根据 SSD 数据存储的新特性,新增了关于当前实际使用的数据清理流程的新描述。该文件确认,针对硬盘的数据清理方法并不适用于 SSD,甚至可能适得其反。

在最新的 ATA 规范中,“清理”命令通过以下两种方式发出:SANITIZE BLOCK ERASE 和 SANITIZE CRYPTO SCRAMBLE。这两种方法是独立的,下面分别进行说明。此外,ATA 规范还定义了 SANITIZE OVERWRITE ERASE,该命令仅适用于 HDD,本文中未涵盖。

传统命令:Security Erase

另一种用于擦除整个 SSD 的方法是 Security Erase,可见于 ATA 规范中较早的部分。一些仅支持 SATA 3.0 规范的美光旧款 SSD 不支持 SANITIZE 命令,因此 Security Erase 命令更受青睐。在美光的新款 SSD 中,如果它们支持 SATA 3.1 及更高版本,则这些 SSD 同时支持 Security Erase 和 Sanitize 命令。在存储介质层面,Sanitize 和 Security Erase 命令执行的操作是相同的,只是接口命令不同。

在本技术博客中,我们将继续使用“清理”一词,并知晓 Sanitize Block Erase 与 Security Erase 执行的操作是相同的。

要执行 Security Erase 命令,美光建议先执行 SECURITY ERASE PREPARE 命令,然后再执行 SECURITY ERASE UNIT 命令,如 ATA 命令集发布的接口标准所述,该标准可在 t13.org 网站上获取。在美光 SSD 上执行的 ENHANCED SECURITY ERASE UNIT 命令启用了加密擦除功能,如本文后续部分所述。

命令执行

无论使用 SANITIZE BLOCK ERASE 命令还是传统的 SECURITY ERASE UNIT 命令执行清理操作,在硬盘级别上的操作都是相同的。美光的专有固件会指示 SSD 控制器向硬盘上的所有 NAND 设备发送 BLOCK ERASE 命令,包括为冗余和退役区块预留的 NAND 空间,这些空间是主机计算机或用户无法访问的区域。

当主机计算机启动清理操作时,SSD 控制器会同时擦除尽可能多的 NAND 闪存元件,但这一数量会受到 SSD 最大额定能量功耗规范的限制。由于这种并行处理能力,大多数美光 SSD 可以在一分钟内完成 SANITIZE BLOCK ERASE 或 SECURITY ERASE UNIT 命令;相较于 HDD 中的类似操作,这是一个巨大的飞跃,因为 HDD 可能需要数小时才能安全且彻底地擦除用户数据。

哪些数据未被擦除?

整个用户空间和过度调配空间都会被完全且不可恢复地擦除。用户空间中的每个块都准备好接受新的主机写入数据,使硬盘恢复到其最高性能状态,即开箱(FOB)状态。

然而,为了确保正常的硬盘操作,必须保留一些数据。这包括以下所需数据:存储在 NAND 中的 SSD 固件副本、所有 SMART 数据以及已退役的 NAND 块映射表。

SANITIZE 命令有多安全?

一些工程师和科学家已经在擦除后的 NAND 单元中检测到游离电子,美光也承认这种可能性。然而,由于块擦除操作会将每个 NAND 单元提高到相同的擦除电压,而不管单元的先前状态如何,因此美光认为,基于残留的游离信号来确定单元之前的状态是不可能的。

此外,SANITIZE 操作不能跟全盘写入操作一样被中断。切断电源可能会中断 SANITIZE 命令,但当电源恢复时,擦除操作会立即重新开始。在 SANITIZE 命令成功完成之前,SSD 无法与主机计算机通信。

在执行 SANITIZE 操作期间,还会尽力擦除已退役 NAND 块中可能存在的数据。事实上,NAND 块退役的最常见原因是该块无法成功擦除。然而,美光工程师发现,当擦除失败时,失败块中超过 90% 的位已成功擦除。未擦除的位几乎从不连续,因此在设备级检测时无法形成连贯的数据。这些不良块无法通过 SATA 接口访问,因此需要从分离的 NAND 闪存器件中检测比特位的能力。因此,即使尝试进行设备级检测,从未完全擦除的 NAND 块中重建可用数据的风险也极低。

验证 SANITIZE 操作

美光深知,一些客户管理的数据极为敏感,因此无法仅凭我们的说法就相信数据已被永久、安全地清除。对于我们的某些产品,我们已与第三方安全公司合作,确认在按照规范执行 SANITIZE 命令后,所有数据均已被确认并认证为无法恢复。我们为某些产品保留了证书,如果没有证书,我们可以要求进一步测试和认证。请联系您的美光销售代表了解详情。

SAS 和 PCIe/NVMe SSD

虽然该博文未深入讨论这一点,但 SAS 和 PCIe/NVMe 协议包含的命令均可启动 SATA SANITIZE 命令启动的操作。在 SAS 中,相关命令为 FORMAT UNIT,而在 PCIe/NVMe 中,则为 FORMAT NVM。

通过加密增强安全性

美光提供一系列自加密硬盘(SED),这些硬盘使用 256 位高级加密标准(AES)引擎,提供最先进的数据保护。

除了通过密码控制提供强大、安全的用户数据保护方法外,SED 还提供了一种非常高效的渲染方法,使硬盘上的所有数据不可读。

为了永久清除数据,美光 SATA SED 支持符合 SATA 标准的 SANITIZE CRYPTO SCRAMBLE 命令,该命令可删除和替换加密密钥。替换加密密钥后,数据位仍存储在原位,但完全无法识别。这种加密擦除操作的一大优点是,大多数硬盘可以在不到两秒钟的时间内完成。

如今,人们普遍认为 256 位加密密钥几乎是不可破解的。然而,可以想象,有一天会有足够的超级计算能力,在合理的时间内破解这种密码。因此,在时间允许的情况下,为确保所有用户数据都被完全擦除且永远无法恢复,美光建议先执行 SANITIZE CRYPTO SCRAMBLE 命令,然后再执行 SANITIZE BLOCK ERASE 命令。这种命令组合还将使硬盘恢复到 FOB 性能状态,而仅使用 CRYPTO SCRAMBLE 命令则不会将硬盘重新初始化为“接近全新”状态。

美光 SED 符合 TCG Opal 规范中针对客户端计算存储设备制定的安全标准。有关 SED 的更多信息,请访问此处trustedcomputinggroup.org

PSID 还原功能

虽然 SED 在保护数据免遭未经授权查看方面提供了巨大帮助,但也存在风险,包括丢失身份验证密钥或密码。IT 管理应用程序提供了多种冗余备份密码、身份验证密钥和其他访问代码的方法。强烈建议利用这些功能。但是,仍然可能丢失这些密码。在这种不利的情况下,即使是美光等存储设备制造商也无法解密和恢复用户数据。因此,重要数据可能会永久丢失。

带有 32 位 PSID 和相应二维条形码的美光 SED

不仅数据会丢失,加密锁定的硬盘也无法进行正常的重新格式化操作。因此,如果用户数据丢失,硬盘本身也无法使用。

为了部分解决这一问题,美光 SED 系列支持物理安全标识符(PSID)还原功能。PSID 是一个由 32 个 ASCII 字符组成的字符串,打印在每个 SSD 的序列号标签上。每个硬盘的 PSID 都是唯一的。

虽然在丢失密码时 PSID 还原功能无法恢复用户数据,但可以使用 PSID 还原功能解锁 SED;启动 SANITIZE CRYPTO SCRAMBLE 命令;并使硬盘恢复正常功能,从而可以重新使用。

请注意,支持 Opal 1.0 规范的美光旧款 SSD 不支持 PSID 还原功能。

美光 Storage Executive 软件

美光现已发布一款名为 Micron Storage Executive 的免费软件实用程序,用于管理美光 SSD 的许多功能。这款软件提供了易于使用的 Windows® 或 Linux® GUI 以及命令行接口(CLI)选项,包括执行 SANITIZE BLOCK ERASE 和 PSID REVERT 命令的功能。请参阅美光的 Storage Executive 软件页面下载软件和文档。

美光 SED 还提供加密擦除功能,可使几乎所有当前已知的解密技术都无法读取 SSD 上的数据。然后,可以使用 SANITIZE BLOCK ERASE 操作来清除数据,并使 SSD 恢复到其 FOB 性能状态。

结论

将数据写入或覆盖到整个磁盘包是从 HDD 中安全删除数据的公认做法。然而,对于基于 NAND 闪存的 SSD 而言,覆盖以清除数据是多余的,不必要的,并且可能不安全。NAND 闪存应使用 BLOCK ERASE 功能进行正确擦除。

美光强烈建议使用 SANITIZE BLOCK ERASE 命令,而不是数据覆盖算法。对于美光旧款 SSD,建议使用 SECURITY ERASE 命令。这些命令中的任何一个都能确保 SSD 在整个用户空间、冗余空间以及备用块和不良块位置正确执行 BLOCK ERASE 命令。

美光 SED 还提供加密擦除功能,可使几乎所有当前已知的解密技术都无法读取 SSD 上的数据。然后,可以使用 SANITIZE BLOCK ERASE 操作来物理清除数据,并使 SSD 恢复到其 FOB 性能状态。您可以通过以下网址了解有关自加密 SSD 的更多信息:https://www.micron.com/solutions/storage-data-security。

只向符合美光生产数据表规格的产品提供质保。产品、计划和规格如有变更,恕不另行通知。

没有任何硬件、软件和系统能在所有条件下保证绝对安全。对于因使用美光产品(包括具有上述任何安全特性的产品)而导致的数据丢失、被盗或损坏,美光概不负责。

Principal SSD Product Engineer, CPG

Jon Tanguy

Jon is a Senior Technical Marketing Engineer for Micron's Storage Business Unit, with a focus on client solid state drives.