System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 高性能异构安全内存制造技术_技高网

高性能异构安全内存制造技术

技术编号:40351299 阅读:8 留言:0更新日期:2024-02-09 14:35
本发明专利技术提供了一种高性能异构安全内存,包括:HSMEM传输引擎、多模式保护引擎和接口;HSMEM传输引擎建立一个HSMEM传输通道,实现CPU和GPU之间的高速传输,HSMEM传输通道位于芯片内部,并控制用于安全内存的DMA请求;多模式保护引擎支持的每种内存保护方案被称为一个模式,一个内存块通过不同的模式进行保护,包括模式选择模块,用于为内存块选择模式,数据加密模块,用于数据加密和解密,完整性树模块,用于维护不同模式的完整性树;通过接口,开发人员使用预设指令明确更改内存块的模式。本发明专利技术在异构的安全内存之间实现高性能的数据传输,用在CPU‑GPU传输的时间更少,使得应用整体的性能更高。

【技术实现步骤摘要】

本专利技术涉及人工智能,具体地,涉及一种高性能异构安全内存


技术介绍

1、经过了近几年的发展,人工智能技术已经在很多领域得到了广泛的应用,如自动驾驶、人脸识别、医疗图像等领域。海量的训练数据和高价值的人工智能模型使数据隐私问题成为人们关注的焦点。由于其广泛的资源需求,现代人工智能应用通常部署在高性能数据中心,例如chatgpt训练的地方,使用了超过10k的nvidia a100gpu。因为软件栈的复杂性和潜在的漏洞(如linux内核超过3.6亿行代码和超过3k个漏洞),以及潜在的恶意员工都威胁着人工智能应用的数据隐私。一方面,数据中心本身的平台管理员可能存在恶意行为,另一方面,现有平台通常存在非常深的软件栈,由此带来的大量软件漏洞与攻击面,一旦云平台软件系统被挟持,那么其中机器学习应用的安全性也将无法保证。即使是在企业内部的机器中进行训练,其训练过程也可能受到内部恶意员工或者攻击者的破坏。因此,如何保障机器学习应用的安全性,防止其受到被挟持操作系统的攻击,成为了一个受到学术界与工业界广泛关注的问题。

2、可信执行环境(tee)被广泛用于保护应用程序免受不可信系统软件的攻击,tee保证任何tee外的组件都不能访问或修改tee内部组件的数据流和控制流。目前已经存在许多构建tee的方法,几乎所有cpu制造商,包括intel,amd和arm,都引入了他们的硬件tee扩展。然而,现代人工智能应用在很大程度上依赖于异构加速器,如gpu、npu等,这些加速器被广泛用于加速人工智能应用的计算。然而,这些加速器并不能直接被cpu端的tee所保护,因此,cpu端的tee对人工智能应用的安全性提升是非常有限的。因此,为了保护人工智能应用的数据安全,需要在人工智能加速器上构建可信执行环境,保证恶意的操作系统不能访问加速器的数据和篡改加速器的计算过程,gpu是人工智能应用的常见加速器,构建gpu tee是保护人工智能应用的有效方式。

3、虽然高带宽内存(hbm)被认为是安全的,不易受到物理攻击,但它昂贵、产能有限,并且在出现故障时难以替换。因此,在未来一段时间内,仍会存在使用gddr内存的加速器。即使在2023年8月,像h100这样搭载hbm的gpu已经长时间投入市场,nvidia还是宣布了l40sgpu,这是一款数据中心gpu产品,但仍然使用gddr内存。只有当未来hbm的成本和生产能力可控时,gddr才有可能完成其历史使命。此外,大多数现有的加速器模型,包括各种gpu,仍在使用gddr内存,同时,hbm无法解决rowhammer和rowpress问题,因此,许多学术研究是基于使用传统ddr或gddr构建安全内存的加速器。

4、加速器,包括gpu,在安全内存方面与cpu有所不同。它们可以在以下两个方面存在差异:1)完整性树结构可能不同。2)加密算法可能不同。gpu具有多个内存控制器,最近设计的gpu安全内存中,每个内存分区都有自己的安全内存控制器。通过采用多个内存分区,可以提高内存的并行访问能力。每个内存控制器都使用分区内的本地地址以及用于aes加密的计数器。此外,一些多芯片模块gpu包含多个gpu和内存芯片,它们通过芯片间连接进行连接,其带宽低于芯片内连接。如果为所有内存分区使用集中式引擎,由于引擎和内存控制器之间存在芯片内或芯片间互连,性能可能不理想。因此,最近的gpu安全内存架构采用每个控制器内部的保护引擎,并且每个内存分区维护其自己的完整性树。此外,某些gpu安全内存使用不同的加密算法,例如aes-xts。此外,cpu和gpu在内存保护的粒度上存在差异。gpu缓存行通常为128字节,而cpu缓存行为64字节。

5、可信执行环境(tee)用于保护用户数据和程序,可以构造隔离区与外部在逻辑上隔离。然而,仅凭逻辑隔离并不足以防御物理攻击,硬件供应商在内存控制器中引入了内存保护引擎,以保护数据免受物理攻击。当前产品中最强的保护机制可以确保机密性、完整性和新鲜度,例如intel sgx,该架构类似于bmt(bonsai merkle tree)。基于计数器的完整性树用于确保使用正确的计数器。通过计数器值、存储在芯片上的密钥和、内存地址,可以对内存块进行加密。此外,为了保证块的完整性,还计算并存储了一个消息认证码(mac)。完整性树的根存储在芯片上并且从未被篡改。当一个块被载入芯片时,完整性树用于计算正确的计数器,并提取mac以验证块的完整性。当一个脏块从缓存中淘汰并写回内存时,计数器值会增加。此外,还有不同的内存寻址方式,如图1所示。假设有k个内存分区,交错粒度为g个内存块。即使对于这种随机交错的内存,它仍然确保连续的k*g个内存块来自不同的内存分区。内存保护的基本方法中,主要由一个完整性树保护计数器(counter)的完整性,然后一个counter用于一个内存块的加密,如图3所示。

6、nvidia h100gpu包含许多安全功能,可以限制不可信的软件对gpu内容的访问,其gpu内部存在有片上安全处理器,支持多种类型和级别的加密,并提供硬件保护的内存区域。nvidia h100gpu的机密计算功能,需要和机密虚拟机配合使用,在一个机密虚拟机被cpu端的tee保护的情况下,一个机密虚拟机可以和若干个开启安全计算模式的h100gpu相关联,或者若干个mig计算实例相关联。此后,gpu会和cpu上的机密虚拟机之间建立安全信道的机制,gpu和cpu的数据传输都会通过硬件加解密,同时,相关的硬件可以保证不可信的虚拟机监控器不能直接访问处于安全计算模式的gpu。nvidia h100gpu允许用户验证他们正在与启用机密计算的nvidiagpu进行通信,并且检验gpu的安全状态。然而,该技术传输速率低,根据其技术报告,cpu-gpu的传输速度仅4gb/s,同时只保护hbm内存,大量使用传统内存的gpu无法受到保护。

7、mmt发表在2023的hpca大会上(efficient distributed secure memory withmigratable merkle tree),为了实现在分布式飞地之间实现(几乎)线性的安全数据传输速度,该工作将内存保护引擎的规模从一个节点扩展到多个节点。该内存保护引擎已经能够保护物理内存的机密性、完整性和新鲜度。通过重用硬件保护机制,无需额外的基于密码学的操作,飞地可以通过各种连接(如pcie、rdma等)直接向另一个飞地传输数据。本方案提出了可迁移的默克尔树(mmt),它可以在没有软件参与(例如重新加密)的情况下将数据和元数据传输到远程节点。mmt的一个关键见解是(单节点)硬件内存保护已经为不可信任的dram提供了机密性、完整性和新鲜度保证,可以在不可信任的网络中重复使用进行保护。为此,该工作首先将单个完整性树扩展为跨多个节点的完整性森林,并打破了仅限于cpu的加密元数据的限制。此外,改工作设计了一个新的协议:mmt closure delegation,用于保护在不可信任的网络中传输的数据。它可以安全地传输完整性子树的根、节点和数据到远程节点,以防止泄露机密信息或重放攻击。最后,该本文档来自技高网...

【技术保护点】

1.一种高性能异构安全内存,其特征在于,包括:HSMEM传输引擎、多模式保护引擎和接口;

2.根据权利要求1所述的高性能异构安全内存,其特征在于,在初始化时,HSMEM传输引擎与对等设备生成密钥,构建传统的安全信道,当数据将要传输时,HSMEM传输引擎准备需要与数据一起传输的元数据,此外,安全信道用于在初始化过程中交换一些基本的系统配置;

3.根据权利要求1所述的高性能异构安全内存,其特征在于,在初始化时,所述HSMEM传输引擎包括初始化模块,具体为:

4.根据权利要求1所述的高性能异构安全内存,其特征在于,在初始化时,所述HSMEM传输引擎包括元信息选取模块,具体为:

5.根据权利要求1所述的高性能异构安全内存,其特征在于,所述模式选择模块包括:在CPU或GPU上,对于每个内存块,内存控制器都知道该块的当前模式,当带有安全元数据的块从CPU传输到GPU时,它仍然受到原始保护方案的保护;

6.根据权利要求1所述的高性能异构安全内存,其特征在于,所述数据加密模块包括:CPU或GPU直接互相传输数据而无需重新加密,设置加密或解密内存块,加密需要地址和计数器,如果两个块使用相同的加密密钥、地址和计数器进行加密,则被视为不安全,因此,每当一个脏内存块从缓存中逐出并写入内存时,内存块的计数器会增加,如果CPU和GPU使用共享的加密密钥,则还需要为CPU或GPU上的每个内存块维护唯一的地址,因此,内存加密使用的地址与CPU或GPU上的本地物理地址不同;

7.根据权利要求1所述的高性能异构安全内存,其特征在于,GPU模式的完整性树模块包括:不同的内存控制器使用自己的完整性树,并在不与其他内存分区交互的情况下验证其数据,为了直接访问传输的数据,GPU支持CPU模式和GPU模式的保护方案,CPU模式的数据使用来自CPU的地址和计数器进行加密,当获取这样的内存块时,内存控制器获取正确的计数器值和地址以解密该块,为了支持CPU模式,完整性树的一个叶节点涉及来自不同内存分区的块,因此,设置一个模块来验证计数器,并向所有内存控制器传达正确的计数器值;

8.根据权利要求1所述的高性能异构安全内存,其特征在于,CPU模式的完整性树模块包括:CPU端的引擎支持两种不同的模式,除了CPU模式计数器的根节点外,CPU上的内存控制器还留出空间来存储GPU模式下子树的根节点,这两种不同类型的完整性树直接在CPU的单个内存控制器中支持,子树的EAS地址也与缓存中的计数节点一起存储,当模式选择引擎确定一个内存块处于GPU模式时,多模保护引擎首先验证GPU模式下的计数器和传输块的EAS地址,然后解密和验证该块,为了支持GPU模式,CPU维护几个GPU模式的完整性树;

9.根据权利要求1所述的高性能异构安全内存,其特征在于,HSMEM传输信道的数据传输过程为:

10.根据权利要求1所述的高性能异构安全内存,其特征在于,多模式数据保护引擎的内存访问流程为:

...

【技术特征摘要】

1.一种高性能异构安全内存,其特征在于,包括:hsmem传输引擎、多模式保护引擎和接口;

2.根据权利要求1所述的高性能异构安全内存,其特征在于,在初始化时,hsmem传输引擎与对等设备生成密钥,构建传统的安全信道,当数据将要传输时,hsmem传输引擎准备需要与数据一起传输的元数据,此外,安全信道用于在初始化过程中交换一些基本的系统配置;

3.根据权利要求1所述的高性能异构安全内存,其特征在于,在初始化时,所述hsmem传输引擎包括初始化模块,具体为:

4.根据权利要求1所述的高性能异构安全内存,其特征在于,在初始化时,所述hsmem传输引擎包括元信息选取模块,具体为:

5.根据权利要求1所述的高性能异构安全内存,其特征在于,所述模式选择模块包括:在cpu或gpu上,对于每个内存块,内存控制器都知道该块的当前模式,当带有安全元数据的块从cpu传输到gpu时,它仍然受到原始保护方案的保护;

6.根据权利要求1所述的高性能异构安全内存,其特征在于,所述数据加密模块包括:cpu或gpu直接互相传输数据而无需重新加密,设置加密或解密内存块,加密需要地址和计数器,如果两个块使用相同的加密密钥、地址和计数器进行加密,则被视为不安全,因此,每当一个脏内存块从缓存中逐出并写入内存时,内存块的计数器会增加,如果cpu和gpu使用共享的加密密钥,则还需要为cpu或gpu上的每个内存块维护唯一的地址,因此,内存加密使用的地...

【专利技术属性】
技术研发人员:华志超樊树霖夏虞斌陈海波
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1