题目:Storage Sanitization Recent Evolution
演讲者:Paul Suhler, Principal Engineer, SSD Standards, KIOXIA
会议:SNIA Compute, Memory, and Storage Summit
日期:2024年5月22日
我想探讨的是如何从存储设备上彻底消除数据的过程。虽然这项技术通常为人们所理解,但正确执行有时颇具挑战性。
目前,正在制定新标准,这些标准基于ISO 27040的存储安全标准和两年前批准的IEEE 2883(存储介质销毁的标准)。这些文件以及即将出台的文件将为组织提供更大的清晰度,并对构成合理安全标准的内容提出更高要求。各组织正在改进其工作的协调性,这将导致形成一套更为统一的标准,尽管这些标准来自不同的组织。
最后,本次会议将涵盖标准的一般框架、最近的能力以及该领域的最新发展。
我希望大家能从本次学习中了解数据销毁和相关标准的新发展,了解哪些标准适用于你的组织,以及哪些标准机构正在处理销毁的不同方面。
以下是今天演讲的大纲。首先,将介绍与销毁相关的关键术语。然后,将讨论最近批准的能力。接下来,我将介绍当前正在进行的工作,预计在未来一两年内将取得成果。之后,我将概述标准环境,重点介绍主要参与者以及他们的标准如何相互关联。最后,我将总结我的观点,并呼吁你积极参与。

这里是一份词汇表,涵盖了销毁(Sanitization)的几个方面。首先,关于执行销毁的方法,如ISO 2883所定义的。
最简单的方法是清除(Clear),在这种情况下,唯一的要求是在清除销毁后,无法从设备中恢复用户数据。清除后的设备仍然可用。
用户数据无法从介质中恢复——即使拆解设备并在非常低的级别读取介质,数据也是无法恢复的。
最后,最彻底的消除设备数据的方法是物理销毁。物理销毁设备意味着完全破坏设备及介质,使数据无法恢复。
为了本次讨论的目的,我将专注于清除方法,该方法可以从存储设备中彻底消除所有用户数据,使其再次可用。这包括存储在缓存中的数据,如NVMe的控制器内存缓冲区和持久内存区域——这两个独立的缓冲区,非持久性和持久性,包含必须删除的用户数据。
有三种技术:加密擦除(Cryptographic Erase)、块擦除(Block Erase)和覆盖(Overwrite)写入。销毁的一个重要方面是,在销毁成功之前,设备不能被读取或写入。为什么这是必要的呢?如果销毁失败,一些数据可能仍然可用,如果监督该过程的人员未注意到这一点,他们可能会将设备用于重复使用,从而可能暴露敏感用户数据,导致严重的财务后果。因此,只有在成功销毁后才允许进行正常的读取和写入操作。
如果销毁失败怎么办?在这种情况下,组织可能会采用物理破坏方法,比如粉碎。最后,销毁的记录是至关重要的。它应该是强制性的——通常都是这样——这样设备所有者可以验证销毁已经完成,并在必要时向外部方提供证明。
现在让我们更深入地探讨加密方法。第一种方法是覆盖写入。在这种情况下,用户数据被替换为指定的模式。目前,这主要适用于HDD。覆盖通常会多次进行,对于磁记录介质,多次覆盖位置并不是一个问题。然而,对于SSD来说,这是一个问题,因为它们在介质生命周期内的写入次数有限。对于SSD来说,更合适的方法是块擦除。这是对介质的每个部分进行的原子性擦除,可能一次只擦除一个芯片的一个平面。正如我所说,这适用于SSD。这可能会相当耗时,具体取决于一次可以擦除多少区域以及设备的大小。最快的机制是加密擦除。在这种情况下,用户数据在写入介质时会被加密,擦除只意味着消除用于执行该加密的密钥。当然,这种方法适用于所有设备,再次强调,这是执行销毁的最快方法。

让我们来了解一下过去一年左右出现的一些新功能。首先是一种名为“Key Per I/O”的技术,旨在以非常细粒度的级别进行加密。例如,你可能会收到一项指令,要求从单个设备存储的众多用户数据中清除某个人的数据。解决方案是使用唯一的介质加密密钥加密属于一个人的文件,而使用不同的密钥加密属于其他人的文件。NVMe已经定义了实现这一目标的方法。每个写入命令可以指定不同的密钥来加密数据,同样,读取命令将指定相同的密钥来读取相同的数据。密钥不会存储在设备上,而是保存在密钥管理设备中。在设备内部,它们是暂时的。例如,在停电或电源循环时,密钥将被清除,必须重新加载。这意味着如果有人窃取设备并且设备失去电源,密钥将丢失,他们将无法解密该设备上的数据。
当你使用不同的密钥为不同用户的数据加密数据时,会发生什么情况?如果设备所有者收到指令要求删除某个用户的数据,那么该用户的密钥将从密钥管理设备中删除。此时,将无法从使用该密钥写入的任何存储设备中恢复加密数据。NVMe技术提案4055规定了一些标准,允许每个I/O命令使用不同的密钥进行加密或解密。那么,如何将密钥导入到设备中呢?答案是可信计算组织安全子系统类,也称为KeyPerI/O。它定义了向设备提供所需密钥的机制。
在使用Key Per I/O时,我们需要深入了解更多细节。首先,如何确保所有密钥的副本都已从所有密钥管理设备中彻底清除?在实施方面,若整个设备即将被销毁,那么,例如,我们需要构建一个机制,允许一次性对所有内容进行加密销毁——可能是通过一个可更改的第二级密钥来实现。显然,我们不会希望逐个删除设备上的所有密钥。

再来说说新的能力!另一个关键点是销毁的验证。我们的目标是证明原始用户数据已经不复存在,即读取设备时应显示其不再包含原始用户数据。然而,加密擦除和块擦除存在一些问题,因为它们会使介质上的错误检查和纠正(ECC)失效,导致普通读取命令在尝试读取这些数据时失败。因此,我们无法依赖现有的读取命令来进行验证。
最近,NVM Express批准了技术提案4152,名为“销毁后介质验证”(Post-Sanitize Media Verification)。它的工作原理是:成功销毁后,设备会进入一种特定状态,即介质验证状态。此时,适用于使用逻辑块的命名空间的NVM命令集中的读取命令(这个版本的读取命令)将允许在ECC错误的情况下返回数据,这样我们就可以查看介质上的数据,并确认它不是最初写入的数据。
不过,介质制造商指出了一个问题:如果反复对同一位置执行这种读取操作,并且读取次数足够多,那么他们可能会推导出介质的可靠性特征,如未校正的位错误率。这个未校正的位错误率是非常敏感的信息,没有人希望它被泄露。因此,TP4152允许在介质验证状态中的读取命令在连续读取时返回不同的数据,从而模糊未校正的位错误率,因为读取者永远无法两次获取相同的数据。最后,在退出介质验证状态时,所有介质将被释放,确保没有可以读取的逻辑块地址。

综上所述,这些是最近在销毁领域取得的一些进展。还有一些工作正在进行中。其中之一是对存储设备的子组件进行销毁,比如一个NVMe命名空间。一个存储设备可能被多个虚拟机共享,每个虚拟机运行不同的用户,并且每个虚拟机被分配一个不同的命名空间。当一个用户被移除,而其他用户继续使用时,该命名空间必须被销毁,而其他命名空间则必须继续支持读写操作。
存储设备中还有一些其他部分不能被销毁,这与整个设备的销毁是不同的。例如,控制器内存缓冲区可能包含一个数据缓冲区,用于传输到其他命名空间的I/O操作,因此其中的任何数据都不能被触及。在这种情况下,唯一真正适用的销毁方法是加密擦除。通过这种方式,即使目标用户数据与来自其他命名空间的数据混在存储设备的不同部分,我们也可以仅擦除该命名空间中的加密数据。

在标准方面,还有一些其他工作正在进行。其中两个项目在IEEE安全和存储工作组中进行。P2883.1被称为“存储销毁方法使用的推荐实践”(Recommended Practice for Use of Storage Sanitization Methods)。它基本上提供了如何使用标准2883的指导,帮助组织了解什么是适合他们数据的适当方法,以及这些方法的风险、可行性、有效性、经济性和环境后果。这个项目标准预计将在今年晚些时候进入公开审查阶段。
另一个与销毁不直接相关但间接相关的工作是IEEE 1619。多年来,它一直定义块定向存储设备上数据的加密保护。这是大多数自加密驱动器使用的加密方法。它定义了AES块密码。目前,这个标准的新修订正在进行中,将收紧密钥使用要求以提高安全性。换句话说,它将减少使用给定密钥加密的字节数,以提供更少的可用于破解加密的数据。预计这个新修订将在今年夏天或更早进入公开审查。
与此相关的是来自美国国家标准与技术研究所(NIST)的信息。他们将更新他们的SP800-38E标准,该标准提供了关于1619使用的指导,以参考这个新的修订版。因此,这是我提到的不同标准组织开始相互合作和协调他们标准的例子之一。

在IEEE SISWG中,还有一些正在进行的工作。其中一个是针对虚拟化和云存储销毁的推荐实践(2883.2)。它提供了关于在大规模系统中实施销毁的指导。P3406被称为“销毁和破坏销毁框架”。它提出了定义新销毁命令的要求,帮助确定需要销毁的设备部分、适用的销毁方法,以及应包含在销毁定义中的验证销毁的手段。我们希望这将被广泛采纳,而不仅仅是局限于像NVMe这样的定义其设备销毁方法的组织。

另一个正在进行的工作是围绕合规性测试的。这是因为客户必须能够信任销毁过程。例如,如果他们不相信存储设备已经被彻底销毁,那么数据泄露的责任可能高达数千万美元,而且可能存在方法无效或执行错误的情况。客户可能会选择简单地销毁整个设备,这无疑是一种浪费。我们正在探索的一种方法是建立合规性测试机制,换句话说,就是确认设备是否正确执行了销毁操作。
我们还在考虑建立一个介质销毁认证计划。目前,销毁认证是由几个不同的第三方机构临时进行的,他们各自设定自己的标准。我们认为将这些内容纳入一个统一的标准销毁计划可能会是一个有益的改进。
最后,我们谈谈循环利用。我之前提到过,简单地销毁设备其实是一种浪费。我们当然不希望频繁地更换设备,更不希望销毁设备的残骸污染垃圾填埋场。理想的情况是,我们能够清除用户数据后重新使用设备;若清除出现问题,则可以通过拆解设备,将其组件回收至不同的回收流程中,从而减轻潜在的污染。

在标准环境方面,我提到了IEEE安全和存储工作组及其所处理的标准。ISO/IEC 27040最近获得了第二版的批准,并与IEEE 2883有所关联,它依赖于2883。

NIST也提供了许多标准,其中包括由FIPS定义的加密模块验证程序。最后,欧盟的2019/424号法规,通常被称为Lot 9,现在可以同时参考27040和2883。

总结一下,一些新发展为我们提供了清除存储设备部分、验证销毁是否完成、为用户提供指导、为实施者提供方法,并协调销毁标准的机会。更重要的是,这些发展有助于建立客户对销毁的信心。

我呼吁大家行动起来。请了解你组织的需求,并据此进行销毁操作。考虑利用这些新的能力,并积极参与定义销毁不同方面的不同组织。
--【本文完】---
近期受欢迎的文章:
更多交流,可添加本人微信
(请附姓名/单位/关注领域)





