一、Key per IO功能介绍
在当前的数据中心环境中,数据加密通常采用存储设备内部生成和管理的加密密钥与加密数据紧密耦合的方式进行。TCG Opal定义了一套针对自加密硬盘(SED, Self-Encrypting Drives)的标准化安全子系统类(SSC, Security Subsystem Class),用于实现对存储设备上数据的透明加密和访问控制。
这种方式存在一定的安全隐患:一旦存储设备内部的加密机制遭到破坏或攻击,客户的数据安全将直接受到威胁。此外,这些存储设备普遍具有自我管理加密数据的能力,意味着主机对数据加密密钥以及由此延伸的数据本身的控制能力有限。
为了解决这些问题并提升数据中心的整体数据安全性及存储系统性能,NVMe®(非易失性内存Express)引入了Key Per I/O技术。该技术允许NVMe设备使用由主机维护的数据加密密钥,并确保数据加密密钥与实际加密数据在物理层面分离。
NVMe Key Per I/O功能是由NVM Express与Trusted Computing Group(TCG)合作开发的一项创新技术,它允许主机在I/O命令级别为NVMe存储设备提供并使用主机管理的数据加密密钥,从而细化和扩展了对非易失性介质上主机用户数据的加密控制能力。通过采用Key Per I/O技术,存储系统能够将数据加密密钥与存储在存储设备上的加密数据分离存放,使得主机能够在任意细粒度级别上关联任意数量的数据加密密钥与主机用户数据,同时保持数据静止时的安全保护特性。
扩展阅读:AES-KW (AES Key Wrap) 和 AES-XTS (AES XEX-based Tweaked Codebook Mode with Ciphertext Stealing) 是两种不同的AES加密模式,它们分别用于不同的安全应用场景:
AES-KW(AES密钥封装):
-
用途:AES-KW主要用于加密其他密钥。它是一种专为密钥管理设计的算法,确保了存储或传输加密密钥时的安全性。
-
工作原理:AES-KW基于RFC 3394和RFC 5649标准,采用一个主密钥来加密其它密钥或其他小块数据。该模式通过将要加密的数据分为多个64位的部分,并使用特定的过程对这些部分进行加密和包裹,以保证即使在攻击者知道一些明文数据的情况下也能保持安全性。
-
特点:AES-KW适合加密长度固定且较小的数据块(如密钥),并不直接应用于大量用户数据的加密。
AES-XTS(AES XTS模式):
-
用途:AES-XTS主要用于磁盘加密和大容量存储设备的数据加密,特别适用于需要保护连续写入大数据块的应用场景。
-
工作原理:AES-XTS模式使用两个独立的AES密钥,每个密钥都用于生成针对不同数据块的加密密钥。它结合了XEX模式(eXtended eXclusive OR cipher mode)和Tweak概念,其中Tweak值是根据逻辑地址计算得出的一个附加参数,与每个数据块相关联,确保了相同数据在不同位置加密后的结果各异,从而避免了同一数据在物理存储上重复出现时的弱点。
-
特点:AES-XTS提供了强大的数据完整性保护,能够防止重放攻击和已知明文攻击,并且支持并行处理,有助于提高大容量数据加密解密的速度。
总结来说,AES-KW主要用于密钥管理和保护较小的数据块,而AES-XTS则专门设计用于大型文件系统、硬盘驱动器等场合的大规模数据加密,两者在目标用途、工作方式和安全特性上存在显著区别。
通过Key Per I/O技术,NVMe设备能够原生地将数据中心的管理角色与主机的数据加密角色分离开来。这意味着租户可以完全掌控自己的数据,而平台所有者则可以在无需租户介入的情况下灵活、动态地管理设备上的命名空间(namespace)。对于超大规模数据中心运营商而言,Key Per I/O还带来了额外的好处,比如支持在现有NVMe存储设备上进行动态扩展和容纳更多租户,而不必升级到更大容量的存储设备。
NVMe Key Per I/O的理想应用场景之一是数据擦除或当租户不再需要其数据时,从存储设备中清除这些数据的过程。利用Key Per I/O,主机可以轻松地跨多个存储设备删除特定客户端数据,而无需采用更激进的方法,例如擦除整个带区或设备。数据中心管理人员能够在保持租户隔离的同时增加总的租户数量,并且无需升级更大的硬件缓存即可实现这一目标。具体来说,Key Per I/O允许:
-
租户独立控制:每个租户可以根据自身安全策略使用独立的加密密钥对数据进行加密,从而确保了数据的私有性和安全性。
-
高效资源管理:由于数据加密任务交由主机处理,数据中心管理者可集中精力于资源调度和优化,而非直接参与各个租户的数据加密活动。
-
简化数据清理过程:当某个租户退租或者不再需要存储在设备上的数据时,通过仅移除该租户对应的密钥,即可实现对这部分数据的安全擦除,避免了对整个设备或大量未涉及数据区域的无效操作。
-
提升设备利用率:通过Key Per I/O技术,即使不更换硬件也能适应租户数量的增长和变化,提高了既有NVMe存储设备的使用率和经济性。
通过启用支持Key Per I/O功能的NVMe设备,数据中心管理者能够:
-
增强数据安全保障:每个I/O操作可以使用独立、由主机提供的密钥进行加密,降低了密钥被一并破解的风险,提高了租户数据的安全级别。
-
提高密钥管理灵活性:主机拥有对数据加密密钥的完全控制权,可以根据需求灵活配置和管理密钥,以满足不同的安全策略和合规要求。
-
优化存储系统性能:由于Key Per I/O实现了密钥与数据在处理上的解耦,有助于实现更高效的I/O操作和资源利用,从而改善整体存储系统的性能表现。虽然理论上每个I/O单独加密可能会增加额外的计算负担,但通过硬件加速和智能管理,Key Per I/O技术可以有效地平衡安全性与性能之间的关系。
总的来说,NVMe Key Per I/O技术旨在提供一种更加安全、可控且高性能的数据加密方案,使得数据中心能够在保证数据安全的同时,提升存储系统的整体效率和响应速度。