高性能异构可信执行环境实现方法及系统

文档序号:37356371发布日期:2024-03-18 18:41阅读:33来源:国知局
本发明涉及计算机,具体地,涉及高性能异构可信执行环境实现方法及系统,更为具体地,涉及基于软件的高性能异构可信执行环境。
背景技术
::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对人工智能应用的安全性提升是非常有限的。3、因此,为了保护人工智能应用的数据安全,需要在人工智能加速器上构建可信执行环境,保证恶意的操作系统不能访问加速器的数据和篡改加速器的计算过程,gpu是人工智能应用的常见加速器,构建gpu tee是保护人工智能应用的有效方式。4、gpu通过pcie与cpu连接,拥有自己的设备内存,gpu内存有更高的带宽,以匹配gpu线程的高度并行性。gpu还支持虚拟内存,其页表默认存储在gpu内存中,并由gpu驱动程序初始化,对于dma,复制引擎(或dma引擎)可以在gpu内存和其他内存之间复制数据。同时,指令处理单元(command processor)从命令队列(gpu通道)中获取用户空间或内核空间驱动程序提交的命令,并将这些命令分发给各个内部引擎。最后,gpu暴露给cpu一些mmio寄存器和一些由pcie基地址寄存器(bar)指定的设备内存。在gpu上执行操作时,软件必须通过gpu通道提交命令,通道有缓冲区,这里统一称为通道缓冲区。gpu有两种不同特权的通道:特权通道和非特权通道。非特权通道不能执行特权方法,任何从这种通道运行特权操作的尝试都会导致中断并将调用软件驱动程序。当创建通道时,驱动程序在gpu内存中创建相应的结构,对于pcie bar没有暴露的gpu内存区域,软件需要通过gpu通道发送命令,让dma引擎将数据复制到这些区域。cuda驱动程序作为应用程序的用户空间驱动程序,可以通过mmio直接访问gpu通道状态的一小部分。5、nvidia h100 gpu包含许多安全功能,可以限制不可信的软件对gpu内容的访问,其gpu内部存在有片上安全处理器,支持多种类型和级别的加密,并提供硬件保护的内存区域。nvidia h100 gpu的机密计算功能,需要和机密虚拟机配合使用,在一个机密虚拟机被cpu端的tee保护的情况下,一个机密虚拟机可以和若干个开启安全计算模式的h100 gpu相关联,或者若干个mig计算实例相关联。此后,gpu会和cpu上的机密虚拟机之间建立安全通道的机制,gpu和cpu的数据传输都会通过硬件加解密,同时,相关的硬件可以保证不可信的虚拟机监控器不能直接访问处于安全计算模式的gpu。nvidia h100 gpu允许用户验证他们正在与启用机密计算的nvidia gpu进行通信,并且检验gpu的安全状态。6、目前,其gpu内部的细节仍未公开,其具体的gpu安全保护机制还无法从现有的公开信息中获取。7、nvidia的机密计算技术使用条件较为苛刻,无法使用在存量硬件上。首先需要使用h100 gpu,但现有的数据中心中存在大量的存量gpu,这些gpu无法直接从应用在h100gpu中的机密计算机制中获益,同时,该技术需要机密虚拟机的支持,现有的机密虚拟机只有少部分的cpu能够支持,绝大部分的存量cpu都无法支持nvidia的机密计算技术,因此其使用的场景是较为有限的,且需要额外的更换硬件的从成本。8、现有的部分学术工作通常cpu或gpu的硬件修改从而对gpu tee进行支持,目前已有部分此类工作。9、graviton是由微软研究院与里斯本大学合作完成的工作,发表在2018年的osdi大会上。graviton系统的主要目的是通过软硬件方案,对运行在gpu上的人工智能程序进行保护。系统假设在cpu上已经使用了诸如intel sgx等现有tee技术对cpu上的应用程序进行保护,graviton则进一步通过硬件层的加密技术,确保人工智能应用能够在gpu上被安全运行。具体来说,graviton系统通过构建加密信道的方式,确保gpu上代码与数据的隐私性。在cpu内部,有一个名为指令处理单元(command processor)的模块,该模块负责接收cpu发起的gpu操作指令。graviton系统对指令处理单元进行了扩展,在其中添加了一系列可信信道管理指令,用于可信信道的创建、销毁和信道属性配置。当需要运用gpu进行人工智能计算时,应用可首先通过远程验证的方式从gpu中的指令处理单元中获取一个加密信道的密钥,之后,当每次需要向gpu提交指令或上传数据时,都使用该密钥对指令以及数据的隐私性与完整性进行保护,这样能够保证恶意的系统软件无法破坏gpu中人工智能应用的代码与数据隐私性。当密文指令与数据被传递到gpu之后,gpu中的指令处理单元将能够在gpu内部解密这些指令与数据,并直接利用明文状态的指令与数据进行计算,其核心是利用cpu-gpu传输过程的加密,确保没有信道密钥的恶意操作系统无法窃取在gpu上所运行的指令与数据。10、hix是一种通过对cpu硬件进行修改从而支持gpu tee的系统,发表在2019年的asplos大会上。hix系统尝试直接扩展intel的sgx技术,通过将gpu驱动保护在专用的gpuenclave中,从而进一步构建基于gpu的tee。因为该工作不需要修改gpu硬件,所以理论上可以支持已有的gpu设备。intel sgx技术本身构建的enclave抽象无法直接使用gpu,为解决这一问题,hix系统通过构建一个专用的gpu enclave来保护gpu驱动。gpu enclave能够直接通过mmio对gpu进行安全访问,而一般的enclave则能够通过与gpu enclave进行安全的跨enclave通信,从而将人工智能任务运行在gpu上。具体来说,hix系统会新增一个egcreate指令进行gpu enclave的创建,并扩展sgx对内存的安全检查从而将gpu的管理内存独占式地分配给gpu enclave,以此确保仅有gpu enclave中的gpu驱动程序才能够直接操作gpu。在将数据拷贝到gpu的过程中,hix使得用户程序enclave和gpu共享密钥,用户程序利用共享密钥将数据进行加密并传输到gpu后,gpu可以通过解密的gpu kernel利用共享密钥获得数据明文。11、因为需要定制化的修改,而目前市场上尚无可用硬件,因此难以部署到实际的生产环境中去,现有的基础设施平台不能直接从中获益。12、现有学术工作不要求硬件层面的修改,使用软件支持了gpu tee,但该工作只能应用于arm平台的集成显卡。13、strongbox是南方科技大学在2022年的ccs大会上发表的研究工作,该工作利用现有硬件特性构建的gpu tee以支持机密计算,其主要针对存在于arm终端的集成显卡。不同于需要pcie连接的独立显卡,arm平台的集成显卡与cpu共享统一的内存,在arm gpu上进行机密计算时,strongbox通过确保对gpu的独占访问提供了一个隔离的执行环境。该工作同时利用了trustzone提供的内存保护机制和虚拟化拓展提供的二阶段地址翻译,实现了细粒度的内存保护策略,将内存划分为非安全的内存以及受保护的安全内存,而无需进行硬件的修改。该工作需要在el3中运行一个可信的监控器作为可信基,该监控器会进行内存权限配置等关键操作,用户程序需要将数据加密并传输给监控器,监控器对数据集进行解密,并代替用户程序通过mmio与gpu交互以启动运算任务。该工作使用了现有的的arm maligpu进行了原型系统的测试,在几个基准测试中,相较于未使用gpu tee保护的程序,其性能开销小于20%。14、该工作无法在x86平台上运行,无法支持独立显卡,然而在现在的数据中心和云平台上,均采用独立显卡进行训练,集成显卡计算能力非常有限,难以用于有大量计算需求的模型的训练。技术实现思路1、针对现有技术中的缺陷,本发明的目的是提供一种高性能异构可信执行环境实现方法及系统。2、根据本发明提供的一种高性能异构可信执行环境实现方法,包括:3、构建xputee监视器,管理所有的xpuenclave;4、所述xpuenclave由至少一个cenclave和若干个xenclave组成;所述cenclave是cpu上的隔离环境;所述xenclave是gpu上的隔离环境;5、同属于一个xpuenclave的cenclave和xenclave通过xpuenclave通道实现快速通信;6、所述xputee监视器可直接访问运行在cpu上的cenclave,所述xputee监视器通过mmio访问gpu上的xenclave。7、优选地,为所述xputee监视器创建独立的执行环境,防止操作系统修改xputee监视器。8、优选地,所述xputee监视器包括:内存权限控制模块、pcie保护模块、通道管理模块以及enclave认证模块;9、所述内存权限管理模块负责控制内存映射和配置内存权限;10、所述pcie保护模块捕获pcie mmio配置的所有修改,保护pcie mmio设置的完整性;11、所述通道管理模块构建xpuenclave通道,用于cenclave和xenclave之间快速通信;12、所述enclave认证模块生成用于远程认证的信息,使用户能够对运行在enclave中的内容进行远程认证。13、优选地,所述内存权限管理模块包括:在操作系统和设备内存中构造enclave内存以阻止不受信任的cpu软件或gpu任务访问受保护的内存,通过对cpu mmu、iommu和gpu mmu进行独占控制,来管理cpu和gpu上的内存映射关系;14、对于cpu mmu来说,扩展页表用于控制物理内存的权限;对于gpu mmu,管理gpu的虚拟地址到物理地址的转换,并在gpu上强制隔离不同的xenclave;管理iommu映射,以防止不受信任的设备访问cenclave。15、优选地,所述内存权限控制模块包括:cpu内存映射、gpu内存映射和iommu内存映射,并通过内存的映射构建cenclave和xenclave;16、所述cpu内存映射包括:通过独占mmu配置对cpu的内存访问权限进行控制;为xpuenclave和不受信任的软件程序维护不同的页表,在所有页表中,内核代码页、页表页和iommu页表页都映射为写保护;此外,pcie配置内存和预设gpu mmio区域被映射为只读,运行在内核空间的gpu驱动程序需要通过gpu上的mmio寄存器和通过pcie暴露给cpu的gpu内存来配置gpu,内存权限管理模块在系统软件的页表中将这些被用于配制gpu的区域映射为只读,因此内核空间的gpu驱动程序必须要显示利用xputee提供的接口调用内存权限管理模块来操作gpu;每个gpu通道都有一个用户可访问的gpu mmio区域,内存权限管理模块将该区域映射给相应的应用的页表,因此用户空间gpu运行时可以使用gpu通道发送指令并创建gpu上的计算任务;内存权限管理模块为xputee监视器配置预设的页表,可以访问所有的物理地址,为了保存xputee监视器运行时的数据和代码,内存权限管理会在内存中留出预设大小的地址空间用于保护xputee监视器本身,这块物理内存区域在其他所有的页表中都是没有映射的;17、所述gpu内存映射包括:作为独立显卡的gpu支持虚拟内存机制,使用保存在gpu内存中的页表将gpu的虚拟地址转换为gpu的物理地址;gpu页表页位于pcie bar暴露的gpummio内存区域中;为了独占控制gpu映射,内存权限管理模块通过控制内存映射将gpu mmio区域在内核空间驱动程序的页表中映射为只读,同时,它在驱动程序的页表中将特权gpu通道的缓冲区映射为只读,此外,用于gpu固件rpc的消息队列也被映射为只读;采用这样的映射模式后,内核空间gpu驱动程序必须调用xputee监视器中的内存权限管理模块来修改gpu页表,内存权限管理模块此时可以检查所有gpu内存映射修改,并强制xenclave的内存不能映射到不受信任的任务;18、所述iommu映射包括:内存权限管理模块独占控制iommu;当启用iommu时,设备对系统内存或其他设备内存的任何访问都必须经过iommu,它将iova转换为iopa;iommu使用root table和context table将设备映射到iommu页表,xputee监视器将root table和context table的页面、iommu页表页和iommu的配置寄存器在除了xputee监视器的页表外映射为不可写;因此,内核必须调用xputee监视器来配置iommu;19、所述cenclave构建包括:cenclave是cpu端tee,用于保护与xenclave协调的应用程序;xputee保证一个cenclave的内存只能由相应xpuenclave中的软件访问;20、所述xenclave构建包括:xenclave是由同一个xpuenclave中的cenclave创建的,不能被不受信任的gpu任务篡改,每个gpu通道可以设置其使用的页表,所以xputee将gpu通道的地址空间隔离为xenclave,xenclave和cpu上不受信任的进程之间的数据传输是被禁止的。21、根据本发明提供的一种高性能异构可信执行环境实现系统,包括:22、构建xputee监视器,管理所有的xpuenclave;23、所述xpuenclave由至少一个cenclave和若干个xenclave组成;所述cenclave是cpu上的隔离环境;所述xenclave是gpu上的隔离环境;24、同属于一个xpuenclave的cenclave和xenclave通过xpuenclave通道实现快速通信;25、所述xputee监视器可直接访问运行在cpu上的cenclave,所述xputee监视器通过mmio访问gpu上的xenclave。26、优选地,为所述xputee监视器创建独立的执行环境,防止操作系统修改xputee监视器。27、优选地,所述xputee监视器包括:内存权限控制模块、pcie保护模块、通道管理模块以及enclave认证模块;28、所述内存权限管理模块负责控制内存映射和配置内存权限;29、所述pcie保护模块捕获pcie mmio配置的所有修改,保护pcie mmio设置的完整性;30、所述通道管理模块构建xpuenclave通道,用于cenclave和xenclave之间快速通信;31、所述enclave认证模块生成用于远程认证的信息,使用户能够对运行在enclave中的内容进行远程认证。32、优选地,所述内存权限管理模块包括:在操作系统和设备内存中构造enclave内存以阻止不受信任的cpu软件或gpu任务访问受保护的内存,通过对cpu mmu、iommu和gpu mmu进行独占控制,来管理cpu和gpu上的内存映射关系;33、对于cpu mmu来说,扩展页表用于控制物理内存的权限;对于gpu mmu,管理gpu的虚拟地址到物理地址的转换,并在gpu上强制隔离不同的xenclave;管理iommu映射,以防止不受信任的设备访问cenclave。34、优选地,所述内存权限控制模块包括:cpu内存映射、gpu内存映射和iommu内存映射,并通过内存的映射构建cenclave和xenclave;35、所述cpu内存映射包括:通过独占mmu配置对cpu的内存访问权限进行控制;为xpuenclave和不受信任的软件程序维护不同的页表,在所有页表中,内核代码页、页表页和iommu页表页都映射为写保护;此外,pcie配置内存和预设gpu mmio区域被映射为只读,运行在内核空间的gpu驱动程序需要通过gpu上的mmio寄存器和通过pcie暴露给cpu的gpu内存来配置gpu,内存权限管理模块在系统软件的页表中将这些被用于配制gpu的区域映射为只读,因此内核空间的gpu驱动程序必须要显示利用xputee提供的接口调用内存权限管理模块来操作gpu;每个gpu通道都有一个用户可访问的gpu mmio区域,内存权限管理模块将该区域映射给相应的应用的页表,因此用户空间gpu运行时可以使用gpu通道发送指令并创建gpu上的计算任务;内存权限管理模块为xputee监视器配置预设的页表,可以访问所有的物理地址,为了保存xputee监视器运行时的数据和代码,内存权限管理会在内存中留出预设大小的地址空间用于保护xputee监视器本身,这块物理内存区域在其他所有的页表中都是没有映射的;36、所述gpu内存映射包括:作为独立显卡的gpu支持虚拟内存机制,使用保存在gpu内存中的页表将gpu的虚拟地址转换为gpu的物理地址;gpu页表页位于pcie bar暴露的gpummio内存区域中;为了独占控制gpu映射,内存权限管理模块通过控制内存映射将gpu mmio区域在内核空间驱动程序的页表中映射为只读,同时,它在驱动程序的页表中将特权gpu通道的缓冲区映射为只读,此外,用于gpu固件rpc的消息队列也被映射为只读;采用这样的映射模式后,内核空间gpu驱动程序必须调用xputee监视器中的内存权限管理模块来修改gpu页表,内存权限管理模块此时可以检查所有gpu内存映射修改,并强制xenclave的内存不能映射到不受信任的任务;37、所述iommu映射包括:内存权限管理模块独占控制iommu;当启用iommu时,设备对系统内存或其他设备内存的任何访问都必须经过iommu,它将iova转换为iopa;iommu使用root table和context table将设备映射到iommu页表,xputee监视器将root table和context table的页面、iommu页表页和iommu的配置寄存器在除了xputee监视器的页表外映射为不可写;因此,内核必须调用xputee监视器来配置iommu;38、所述cenclave构建包括:cenclave是cpu端tee,用于保护与xenclave协调的应用程序;xputee保证一个cenclave的内存只能由相应xpuenclave中的软件访问;39、所述xenclave构建包括:xenclave是由同一个xpuenclave中的cenclave创建的,不能被不受信任的gpu任务篡改,每个gpu通道可以设置其使用的页表,所以xputee将gpu通道的地址空间隔离为xenclave,xenclave和cpu上不受信任的进程之间的数据传输是被禁止的。40、与现有技术相比,本发明具有如下的有益效果:41、安全性:本系统可以同时保护cpu和gpu上的敏感数据和代码,当其他不可信应用程序尝试窃取被保护的进程数据时,通过确保不可信应用程序中不存在被保护的程序的内存映射,使得被保护的程序数据无法被其无法访问;同样的,在gpu上,通过将受保护的gpu内存通过gpu本身的页表与gpu上的其他任务隔离,使得其他gpu任务不可以直接访问被保护的gpu内存;同时即使在操作系统时恶意的情况下,本系统通过将关于gpu与cpu的关键操作均交给一个可信的微型监控器,使得恶意的操作系统也无法窃取被保护的cpu程序和gpu任务中的数据。42、与cpu设备的兼容性:xputee通过软件设计和现有硬件构建可信执行环境,从而不需要对cpu进行特殊的硬件修改,并且不依赖cpu特殊的硬件扩展(如intel sgx,amd-sev等),因此大多数cpu只要支持普通的页表隔离和虚拟化支持,都可以使用xputee。43、与gpu设备的兼容性:xputee通过软件设计和现有硬件构建可信执行环境,xputee不需要对gpu进行特殊的硬件修改,并且不依赖特殊的gpu硬件扩展(比如nvidia h100的机密计算扩展),因此大多数非集成显卡的gpu都可以使用xputee。44、性能:xputee通过页表隔离构建一个统一的可信执行环境,gpu的安全计算任务可以直接访问cpu侧的安全计算任务,因此gpu的安全计算任务可以直接读取cpu侧的安全内存,而无需一个加密的信道,从而节省了密码学操作的时间,实现了高效的数据传输和通信。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1