芯片设计的新视野

保护DDR DRAM免受Rowhammer、RAMBleed和Cold-Boot攻击

保护DDR接口内存攻击
作者:Dana Neustadter,安全解决方案高级产品经理,Brett Murdock,内存接口IP产品线管理总监,Synopsys Solutions Group

2017年,征信局Equifax宣布,黑客入侵了其系统泄露了1.47亿人的个人信息。因此,该公司以4.25亿美元的价格解决了一项集体诉讼,以帮助那些受到影响的人。损失包括身份盗窃、欺诈、经济损失和清理费用。无论威胁是身份盗窃、欺诈、国家安全、安全,还是某种组合,数据都是所有威胁的核心,必须受到保护。虽然Equifax的黑客攻击是通过软件工具中的一个安全漏洞执行的,但它提醒了我们为什么需要保护电子系统中的数据。漏洞不仅存在于软件中,也存在于硬件中。

现实情况是,随着系统变得越来越复杂,硬件可能成为那些怀有恶意的人的切入点。多芯片设计越来越有吸引力,攻击面也在增加。

安全性正在半导体行业占据中心地位,保护片上系统(SoC)接口和在其上移动的数据可以防止数据被不良行为者访问、删除或以其他方式操纵。无论您是在高性能计算(HPC)、移动、物联网还是汽车soc中保护数据,都需要优化安全实现,以保持接口的性能,同时减少对延迟和面积的影响。

像DDR这样的高带宽接口正在激增,它们的速度一代又一代地在增长。如果您想保护您的数据,其中一个关键的安全领域是您的片外动态随机访问存储器(DRAM)。

在过去十年的大部分时间里,学术研究人员一直在警告罗瓦默袭击的可能性谷歌是零计划发现了另一个叫做RAMbleed的漏洞,这两个漏洞都是针对DRAM的。DRAM漏洞可以在真实场景中被利用,重要的是要防止Rowhammer、RAMbleed和冷启动攻击等攻击,以防止不良行为者读取或破坏数据,或检索对安全至关重要的加密密钥。由于信息传播得越来越快,系统变得越来越复杂,风险也越来越高,保护数据不应该是事后才考虑的事情,而应该是硬件设计中不可或缺的一部分。

请继续阅读,了解黑客如何通过DRAM设备破坏数据并窃取信息,以及为确保SoC中的DDR接口的安全而考虑的一些策略。

记忆攻击的工作原理

以下是一些特定于dram的漏洞示例:

  1. Rowhammer:使用Rowhammer策略的攻击者意图修改或破坏数据。Rowhammer攻击以高速重复读取内存行中的数据,导致相邻行页表项中的位翻转(从1到0或从0到1)。Project Zero团队在谷歌上表示,通过这种方式,攻击者可以获得对整个物理内存的读写访问权。随着DRAM芯片的不断缩小,它们变得更加容易受到这种类型的攻击,因为晶体管更密集地排列在一起,增加了此类攻击期间溢出的风险。
  2. 漫游:RAMBleed用于在数据跨系统移动时窃取数据。RAMBleed使用与Rowhammer攻击相同的原理,但它读取信息而不是修改信息,从而威胁到存储在内存中的数据的机密性。通过使用RAMBleed,攻击者可以从DRAM中提取信息。
  3. 冷启动攻击:在这种情况下,攻击者可以物理访问您的系统。它们可以使用其访问权限对特定系统进行硬重置,访问启动前物理内存数据以检索加密密钥,并造成严重破坏。

通过设计保护您的内存接口

内存和存储安全保护本地和外部云数据中心的存储资源和存储在其中的数据。随着对更大容量、更快访问和加速处理的需求的增加,设计人员正在转向高性能、低延迟内存加密解决方案,以保持性能,同时通过最新一代DDR、LPDDR、GDDR和HBM内存接口保护数据。

错误纠正码(ECC)曾经是一种流行的保护缓解策略,但它只能提供有限的恢复能力。ECC不提供安全性,因为它留下了更多未被检测到的损坏漏洞,使其成为内存完整性保护的幼稚方法。在采用适当的加密算法之前,设计人员通常会使用ECC作为一个止动间隙。

保护内存接口的最佳方法是通过基于标准的密码学设计解决数据的机密性和完整性问题。例如,使用AES-XTS加密对于数据机密性,Rowhammer攻击可以被阻止。虽然奇偶校验/ECC可以捕获1位或2位翻转,但加密覆盖所有位。通过加密,写入内存的数据看起来更像随机数据,几乎不可能创建Rowhammer模式。内存加密和适当的密钥刷新还可以防止RAMBleed和冷启动攻击。除了数据机密性之外,安全性还可以通过使用加密哈希算法等策略来增强数据真实性,以确保数据没有被恶意行为者修改。

从一开始就让安全性成为DDR接口设计的一部分并非没有挑战。安全性需要正确处理,因为一个薄弱环节就可能危及整个系统及其数据。例如,在SoC的可信/安全区域生成和管理密钥并通过专用通道分发到加密模块是至关重要的。密钥的回读保护和控制配置也需要成为整体安全体系结构的一部分。

另一个挑战是内存加密会带来成本,包括影响功率、性能、面积(PPA)和延迟的开销。您面临的挑战是使您的DDR接口设计安全、符合标准,而且高度优化。

我们已经见证了PCI Express®(PCIe®)和计算快速链路(CXL)接口的完整性和数据加密(IDE)安全性的快速采用,现在我们在内存接口(如DDR和LPDDR)上也看到了类似的轨迹。由于技术在不断变化——犯罪分子的方法越来越聪明,因为工程师设计了更聪明的解决方案——无论您选择何种安全策略,都应该能够不断适应不断变化的威胁生态系统。

SoC中保护DDR接口的策略

以下是一些策略,可以帮助您开始保护SoC中的DDR接口:

  1. 设计一个安全的基础设施其中,控制平面用于认证和密钥管理,数据平面用于数据加密和完整性。
  2. 遵守标准。对于内存,数据机密性利用基于标准的加密算法,如NIST SP800-38E定义的具有所有密钥大小的AES-XTS。
  3. 实现高度最优解可以有效地扩展支持内存接口所需的最新带宽。利用流水线架构,具有高效的调整计算、键刷新和低延迟。考虑优化选项,例如在一个周期中运行多个AES轮,并使用特定的AES S-box实现以获得更优的面积或最大频率。
  4. 支持每个区域加密/解密为各种用例提供灵活性。
  5. 在安全的环境中使用密钥生成和管理。内存加密解决方案需要控制平面组件进行身份验证和管理。通常,这是通过一个具有信任根的安全飞地来解决的。它需要通过固件更新来适应,以帮助未来证明您的密钥管理策略,包括算法的潜在变化。

保护DRAM数据的一种解决方案是在将数据发送到DDR控制器之前对其进行密钥加密,但这并不理想,因为加密块必须管理大量操作以确保数据包大小合适。例如,应用程序写入一个字节的内存——加密块将需要读取该内存位置,合并新写入的字节,最后将其写回内存。加密与内存的距离越远,必须管理的内容就越多。这不仅会影响您的性能预算(内存带宽的开销很大),而且还必须注意性能下降,因为您正在跨SoC移动数据。

最佳的解决方案是在DDR或LPDDR控制器内部紧密耦合加密/解密,以实现最大的内存效率和最低的总体延迟。控制器尽可能地接近内存。

完整的Synopsys输入法安全模块用于DDR/LPDDR保护数据

Synopsys用于DDR/LPDDR的内联内存加密(IME)安全模块通过内存接口或存储在片外存储器中,帮助确保使用中的数据的机密性。它是一种基于AES-XTS算法的标准兼容、认证就绪、开箱即用的解决方案,可实现内存控制器(包括Synopsys DDR5或LPDDR5控制器)的高效吞吐量。它支持AES-XTS的所有密钥大小,包括128位、256位密钥,并支持可扩展的128位、256位和512位数据路径。的IME安全模块通过每个地址或边带键选择为您提供每个区域的内存保护,具有非常低的延迟,并且可以针对具有最佳PPA的特定应用程序进行调优。内存加密在Synopsys内部启用DDR5而且LPDDR5控制器,节省您的性能预算以更好地使用,并提供行业中最低的延迟。

随着我们的世界越来越频繁地在云中运行,对虚拟化的需求也越来越大,这将需要反映在内存保护上。Synopsys IME安全模块允许管理不同区域的数据保护,从不同的虚拟环境启动,非常适合支持各种云计算虚拟化环境。

除了安全的DDR/LPDDR接口,Synopsys还提供完全符合标准的接口为最广泛使用的协议提供安全接口解决方案,包括作为PCIeCXLHDMI显示接口USB c型,以太网.该解决方案解决了最具挑战性的需求,使设计人员能够以低风险和快速上市的方式在soc中快速实现所需的安全性。

万一你错过了

从这些博客文章中获得更多的见解:

Baidu