CN116611124A - 一种gpu可信执行环境构建方法、系统及数据传输方法 - Google Patents
一种gpu可信执行环境构建方法、系统及数据传输方法 Download PDFInfo
- Publication number
- CN116611124A CN116611124A CN202310599974.5A CN202310599974A CN116611124A CN 116611124 A CN116611124 A CN 116611124A CN 202310599974 A CN202310599974 A CN 202310599974A CN 116611124 A CN116611124 A CN 116611124A
- Authority
- CN
- China
- Prior art keywords
- gpu
- application program
- execution environment
- trusted execution
- checking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000005540 biological transmission Effects 0.000 title claims abstract description 14
- 238000010276 construction Methods 0.000 title claims description 16
- 230000008569 process Effects 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 28
- 238000012795 verification Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 claims description 6
- 230000003993 interaction Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 238000010801 machine learning Methods 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 abstract 1
- 238000012986 modification Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000579895 Chlorostilbon Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 239000010976 emerald Substances 0.000 description 1
- 229910052876 emerald Inorganic materials 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种GPU可信执行环境构建方法、系统及数据传输方法,属于GPU应用程序的可信执行环境技术领域,GPU可信执行环境构建方法包括:S1.初始化GPU;S2.为GPU应用程序创建TEE的上下文;S3.载入GPU应用程序,检查GPU应用程序是否符合安全策略;S4.在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;S5.通过加密的CPU‑GPU信道将全应用程序运行结果传回GPU应用程序。本发明适用于利用GPU进行大规模的多方安全计算、机器学习、联邦学习、隐私数据库、隐私信息检索等场景,解决了不能在原有的GPU环境上运行的问题。
Description
技术领域
本发明涉及GPU应用程序的可信执行环境技术领域,尤其是涉及一种GPU可信执行环境构建方法、系统及数据传输方法。
背景技术
人工智能技术的发展为智能助手、虚拟现实、个性化医疗等领域带来革命性的变化。当前人工智能技术要求大量的算力,实际的解决方案通常基于硬件加速器如GPU来实现。与此同时,由于这些领域中数据包括大量的隐私相关信息,处理这些数据的解决方案必须具备高级别的安全性和隐私性。GPU上的可信执行环境(TEE)技术将GPU应用程序放进隔离空间(enclave),TEE控制每个enclave和系统之间的数据流与控制流的交互,从而保证全应用程序的安全性。
现有的GPU TEE研究,如Graviton、Telekine、HIX、HETEE等要求各种硬件改动,不能在原有的GPU环境上运行,大大限制了他们的实用性。与此同时,这些方案也没有提供高效安全的enclave之间的通信原语,不适应GPU应用程序模块化的发展趋势。
发明内容
本发明提供一种GPU可信执行环境构建方法、系统及数据传输方法,适用于利用GPU进行大规模的多方安全计算、机器学习、联邦学习、隐私数据库、隐私信息检索等场景,解决了不能在原有的GPU环境上运行的问题。
本发明实施例的第一方面公开了一种GPU可信执行环境构建方法,包括:
S1.初始化GPU;
S2.为全应用程序创建TEE的上下文;
S3.载入GPU应用程序,检查全应用程序是否符合安全策略;
S4.在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;
S5.通过加密的CPU-GPU信道将全应用程序运行结果传回全应用程序。
本发明一实施例中,S1包括:
S11.启动硬件,并通过SecureBoot和TPM技术来确保硬件启动过程不受攻击;
S12.启用CPU的enclave模式;
S13.在特权等级启动安全监视器;
S14.在普通特权等级启动不受信任的操作系统;
S15.初始化GPU并验证操作系统和GPU之间交互,确保操作系统正确初始化GPU;
S16.在GPU上收集随机熵,以建立CPU和GPU之间的安全通信通道;
S17.分配GPU内存,用于存储元信息和工具内核。
本发明一实施例中,S2包括:
S21.初始化CPU enclave并检查其安全性;
S22.调用相关接口;
S23.创建新的GPU应用程序上下文;
S24.通过Diffe-Hillman方法创建一个共享密钥。
本发明一实施例中,S23包括:
S231.分配GPU驱动资源;
S232.将GPU应用程序的虚拟地址空间划分为隐藏、只读、读写和私有四个子空间;
S233.将内存映射到隐藏子空间内;
S234.在读写子空间上分配两个缓冲区,分别为队列缓冲区和数据交换缓冲区。
本发明一实施例中,S3包括:
S31.解析包含GPU内核的ELF二进制文件,提取证明和前置条件;
S32.调用验证器来验证二进制文件中的每个GPU内核。
本发明一实施例中,S32包括:
S321.反编译GPU内核的二进制代码;
S322.验证所有操作码是否有效,根据操作码连接程序的控制和数据流,构建GPU内核SSA表示形式;
S323.从GPU内核的SSA形式计算GPU内核中每个内存访问的地址的符号表达式;
S324.根据控制和数据流及其前置条件确定每个内存访问的地址范围;
S325.验证所有内存访问的地址范围是否符合预定义的安全策略;
S326.验证所有的系统调用指向S16中的安全通信通道;
S327.仅接受通过验证的GPU内核,如果不能验证则退出;
S328.记录前置条件并将GPU内核上传到GPU内存中。
本发明一实施例中,S4包括:
S41.获取GPU内核的参数,请求执行GPU内核;
S42.检查执行请求,同时确保执行参数满足S31中对应GPU内核的前置条件;
S43.将请求转发到GPU硬件请求队列;
S44.GPU硬件执行对应的GPU内核。
本发明一实施例中,S5包括:
S51.选择初始向量,请求传回特定空间的数据;
S52.检查请求的合法性,拒绝不安全的请求;
S53.利用初始向量以及S24中的共享密钥加密对应区域的数据,加密数据存入共享区域中;
S54.读取共享区域的加密数据并解密到其私有内存中。
本发明实施例的第二方面公开了一种GPU可信执行环境构建系统,用于执行上述的GPU可信执行环境构建方法;
所述GPU可信执行环境构建系统包括:
初始化模块,用于初始化GPU;
上下文创建模块,用于为全应用程序创建TEE的上下文;
验证模块,用于载入GPU应用程序,检查全应用程序是否符合安全策略;
执行模块,用于在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;
结果传回模块,用于通过加密的CPU-GPU信道将结果传回全应用程序。
本发明实施例的第三方面公开了一种数据传输方法,基于上述的GPU可信执行环境构建方法,在GPU TEE全应用程序中进行数据传输;
所述数据传输方法包括:
S61.接收RPC的全应用程序的队列缓冲区映射到全应用程序的读写空间中,将接收RPC的全应用程序的数据交换缓冲区映射到全应用程序的只读空间中;
S62.调用隐藏子空间内的调用来发送RPC;
S63.调用两端均采用轮询方法处理请求和返回的数据,该数据只在GPU内存中传输。
综上所述,本发明至少具有以下有益效果:
1.本发明利用程序分析结合系统设计的方法,构建基于软件方案的、高效安全的GPU TEE,适用于当前的CPU和GPU。
2.基于系统的构建方法,本发明允许不同的GPU应用程序enclave安全、高效地通过RPC原语交换数据。
3.程序分析技术,如静态分析和多面体分析对全应用程序中每条内存访问指令进行建模和检查,确认GPU应用程序只能访问对应的虚拟地址子空间。
4.程序分析能灵活地检查其他可能的安全缺陷,例如防止GPU共享内存造成的信息泄漏。
5.程序分析能高效地用于检查现实生产环境的全应用程序。
6.在一定的威胁模型下,程序分析和系统的构建方法允许系统的安全性只取决于系统监视器和检查器的实现,因此其可信计算基础(Trusted Computing Base,TCB)可以比传统的基于Linux的方案小一到两个量级。
7.本发明核心在于通过程序分析技术保证在GPU硬件上运行的程序都符合系统的安全策略,从而可以精简TCB,而且GPU硬件可以以原生速度执行。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中所涉及的GPU可信执行环境构建方法的步骤示意图。
图2为本发明中所涉及的GPU可信执行环境构建系统的模块示意图。
图3为本发明中所涉及的运行在本发明上的应用程序的架构示意图。
图4为本发明中所涉及的GPU应用程序的虚拟地址空间的示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明实施例的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
下文的公开提供了许多不同的实施方式或例子用来实现本发明实施例的不同结构。为了简化本发明实施例的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明实施例。此外,本发明实施例可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。
下面结合附图对本发明的实施例进行详细说明。
如图1所示,本发明实施例的第一方面公开了一种GPU可信执行环境构建方法,包括:
S1.安全地初始化GPU;
S2.为全应用程序创建GPU TEE的上下文;
S3.系统(指下述的GPU可信执行环境构建系统,下述简称系统)载入GPU应用程序,调用检查器检查全应用程序符合系统的安全策略;
S4.系统在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;
S5.通过加密的CPU-GPU信道将全应用程序运行结果传回全应用程序。
本发明利用CPU TEE(如SEV-SNP)支持,建立加密的CPU-GPU信道,并通过程序分析确保GPU上执行的所有程序符合系统的安全策略,从而以软件方式实现GPU上的TEE。
其中,全应用程序是指包括在CPU上运行的应用程序和在GPU上运行的应用程序,如图3所示,箭头(1)-(3)分别表示GPU和CPU之间在注册GPU程序、运行GPU程序和传输数据时候的数据流。安全监视器(Security Monitor)检查所有的数据流以确保安全性。GPU应用程序是指在GPU上运行的应用程序,GPU应用程序的虚拟地址空间如图4所示。检查器通过静态检查分析GPU应用程序,确保所有的内存访问都符合安全要求。
S11.机器加电启动;
S12.用户通过SecureBoot和TPM技术来确保整个加电启动过程不受攻击;
S13.根据具体的CPU型号,系统启用CPU的enclave模式。如对于AMD GPU,系统进入SEV-SNP模式;
S14.系统在特权等级启动安全监视器;
S15.系统在普通特权等级启动不受信任的操作系统(OS)。系统控制OS与GPU之间的所有交互;
S16.OS初始化GPU。系统验证OS和GPU之间交互,确保OS正确初始化GPU;
S17.系统在GPU上收集随机熵,以建立CPU和GPU之间的安全通信通道;
S18.系统分配一段GPU内存,用于存储系统的元信息和工具内核。
S2包括:
S21.用户程序初始化CPU enclave并检查其安全性;
S22.用户程序调用系统的相关接口;
S23.系统创建新的GPU应用程序上下文,包括:
S231.分配PASID、页表等GPU驱动资源;
S232.系统将GPU应用程序的虚拟地址空间划分为隐藏、只读、读写和私有四个子空间;
S233.系统将S18中的内存映射到隐藏子空间内;
S234.系统在读写子空间上分配两个缓冲区,分别作为S61中的队列缓冲区和数据交换缓冲区;
S24.用户程序和系统通过Diffe-Hillman方法创建一个共享密钥。
S3包括:
S31.用户程序将GPU内核传给系统;
S32.系统解析包含GPU内核的ELF二进制文件。它从二进制文件中提取证明和前置条件。
S33.调用验证器来验证二进制文件中的每个GPU内核,包括:
S331.反编译GPU内核的二进制代码;
S332.验证所有操作码是否有效,根据操作码连接程序的控制和数据流,构建GPU内核SSA表示形式;
S333.从GPU内核的SSA形式计算GPU内核中每个内存访问的地址的符号表达式;
S334.根据控制和数据流及其前置条件确定每个内存访问的地址范围;
S335.验证所有内存访问的范围是否符合预定义的安全策略;
S336.验证所有的系统调用指向S16中的安全通信通道;
S337.系统仅接受通过验证的GPU内核,如果不能验证则退出;
S338.系统记录前置条件并将GPU内核上传到GPU内存中。
S4包括:
S41.用户程序准备好GPU内核的参数,通过驱动接口请求执行GPU内核;
S42.系统检查执行请求,同时确保执行参数满足S31中对应GPU内核的前置条件;
S43.系统将请求转发到GPU硬件请求队列;
S44.GPU硬件执行对应的GPU内核;
S5包括:
S51.用户选择初始向量(IV),请求系统传回特定空间的数据;
S52.系统检查请求的合法性,拒绝不安全的请求;
S53.系统利用IV以及S24中的共享密钥加密对应区域的数据,结果存入系统和用户程序的共享区域中;
S54.用户程序读取共享区域的加密数据并解密到其自己的私有内存中。
本发明实施例的第二方面公开了一种GPU可信执行环境构建系统,用于执行上述的GPU可信执行环境构建方法;
GPU可信执行环境构建系统包括:
初始化模块,用于初始化GPU;
上下文创建模块,用于为全应用程序创建TEE的上下文;
验证模块,用于载入GPU应用程序,检查全应用程序是否符合安全策略;
执行模块,用于在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;
结果传回模块,用于通过加密的CPU-GPU信道将结果传回全应用程序。
在一些实施例中,GPU可信执行环境构建系统还包括:
处理器,与初始化模块、上下文创建模块、验证模块、执行模块和结果传回模块连接;
存储器,与处理器连接,并存储有可在处理器上运行的计算机程序;其中,当处理器执行计算机程序时,处理器控制初始化模块、上下文创建模块、验证模块、执行模块和结果传回模块工作,以实现上述的GPU可信执行环境构建方法。
本发明实施例的第三方面公开了一种数据传输方法,基于上述的GPU可信执行环境构建方法,在GPU TEE全应用程序中进行数据传输;
数据传输方法包括:
S6.不同的GPU应用程序可以高效地安全交换数据。
S6包括:
S61.系统将接收RPC的全应用程序的队列缓冲区映射到全应用程序的读写空间中,将接收RPC的全应用程序的数据交换缓冲区映射到全应用程序的只读空间中;
S62.GPU应用程序调用隐藏子空间内的系统调用来发送RPC;
S63.RPC两端均采用轮询方法处理请求和返回的数据,数据只在GPU内存中传输。
以上所述实施例是用以说明本发明,并非用以限制本发明,所以举例数值的变更或等效元件的置换仍应隶属本发明的范畴。
由以上详细说明,可使本领域普通技术人员明了本发明的确可达成前述目的,实已符合专利法的规定。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,应当指出的是,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。例如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例有关的某一特征、结构或特性。因此,应当强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。因此,本申请的各个方面可以完全由硬件实施、可以完全由软件(包括固件、常驻软件、微代码等)实施、也可以由硬件和软件组合实施。以上硬件或软件均可被称为“单元”、“模块”或“系统”。此外,本申请的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,其中计算机可读程序代码包含在其中。
本申请各部分操作所需的计算机程序代码可以用任意一种或以上程序设计语言编写,包括如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等的面向对象程序设计语言、如C程序设计语言、VisualBasic、Fortran2103、Perl、COBOL2102、PHP、ABAP的常规程序化程序设计语言、如Python、Ruby和Groovy的动态程序设计语言或其它程序设计语言等。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,尽管上述各种组件的实现可以体现在硬件设备中,但是它也可以实现为纯软件解决方案,例如,在现有服务器或移动设备上的安装。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请的实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为反映所申明的客体需要比每个权利要求中明确记载的更多特征的意图。相反,发明的主体应具备比上述单一实施例更少的特征。
Claims (10)
1.一种GPU可信执行环境构建方法,其特征在于,包括:
S1.初始化GPU;
S2.为全应用程序创建TEE的上下文;
S3.载入GPU应用程序,检查全应用程序是否符合安全策略;
S4.在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;
S5.通过加密的CPU-GPU信道将全应用程序运行结果传回全应用程序。
2.根据权利要求1所述的GPU可信执行环境构建方法,其特征在于,S1包括:
S11.启动硬件,并通过SecureBoot和TPM技术来确保硬件启动过程不受攻击;
S12.启用CPU的enclave模式;
S13.在特权等级启动安全监视器;
S14.在普通特权等级启动不受信任的操作系统;
S15.初始化GPU并验证操作系统和GPU之间交互,确保操作系统正确初始化GPU;
S16.在GPU上收集随机熵,以建立CPU和GPU之间的安全通信通道;
S17.分配GPU内存,用于存储元信息和工具内核。
3.根据权利要求2所述的GPU可信执行环境构建方法,其特征在于,S2包括:
S21.初始化CPU enclave并检查其安全性;
S22.调用相关接口;
S23.创建新的GPU应用程序上下文;
S24.通过Diffe-Hillman方法创建一个共享密钥。
4.根据权利要求3所述的GPU可信执行环境构建方法,其特征在于,S23包括:
S231.分配GPU驱动资源;
S232.将GPU应用程序的虚拟地址空间划分为隐藏、只读、读写和私有四个子空间;
S233.将内存映射到隐藏子空间内;
S234.在读写子空间上分配两个缓冲区,分别为队列缓冲区和数据交换缓冲区。
5.根据权利要求4所述的GPU可信执行环境构建方法,其特征在于,S3包括:
S31.解析包含GPU内核的ELF二进制文件,提取证明和前置条件;
S32.调用验证器来验证二进制文件中的每个GPU内核。
6.根据权利要求5所述的GPU可信执行环境构建方法,其特征在于,S32包括:
S321.反编译GPU内核的二进制代码;
S322.验证所有操作码是否有效,根据操作码连接程序的控制和数据流,构建GPU内核SSA表示形式;
S323.从GPU内核的SSA形式计算GPU内核中每个内存访问的地址的符号表达式;
S324.根据控制和数据流及其前置条件确定每个内存访问的地址范围;
S325.验证所有内存访问的地址范围是否符合预定义的安全策略;
S326.验证所有的系统调用指向S16中的安全通信通道;
S327.仅接受通过验证的GPU内核,如果不能验证则退出;
S328.记录前置条件并将GPU内核上传到GPU内存中。
7.根据权利要求6所述的GPU可信执行环境构建方法,其特征在于,S4包括:
S41.获取GPU内核的参数,请求执行GPU内核;
S42.检查执行请求,同时确保执行参数满足S31中对应GPU内核的前置条件;
S43.将请求转发到GPU硬件请求队列;
S44.GPU硬件执行对应的GPU内核。
8.根据权利要求7所述的GPU可信执行环境构建方法,其特征在于,S5包括:
S51.选择初始向量,请求传回特定空间的数据;
S52.检查请求的合法性,拒绝不安全的请求;
S53.利用初始向量以及S24中的共享密钥加密对应区域的数据,加密数据存入共享区域中;
S54.读取共享区域的加密数据并解密到其私有内存中。
9.一种GPU可信执行环境构建系统,其特征在于,用于执行权利要求1~8中任一项所述的GPU可信执行环境构建方法;
所述GPU可信执行环境构建系统包括:
初始化模块,用于初始化GPU;
上下文创建模块,用于为全应用程序创建TEE的上下文;
验证模块,用于载入GPU应用程序,检查全应用程序是否符合安全策略;
执行模块,用于在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;
结果传回模块,用于通过加密的CPU-GPU信道将结果传回全应用程序。
10.一种数据传输方法,其特征在于,基于权利要求1~8中任一项所述的GPU可信执行环境构建方法,在GPU TEE全应用程序中进行数据传输;
所述数据传输方法包括:
S61.接收RPC的全应用程序的队列缓冲区映射到全应用程序的读写空间中,将接收RPC的全应用程序的数据交换缓冲区映射到全应用程序的只读空间中;
S62.调用隐藏子空间内的调用来发送RPC;
S63.调用两端均采用轮询方法处理请求和返回的数据,该数据只在GPU内存中传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310599974.5A CN116611124B (zh) | 2023-05-25 | 2023-05-25 | 一种gpu可信执行环境构建方法、系统及数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310599974.5A CN116611124B (zh) | 2023-05-25 | 2023-05-25 | 一种gpu可信执行环境构建方法、系统及数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116611124A true CN116611124A (zh) | 2023-08-18 |
CN116611124B CN116611124B (zh) | 2024-04-05 |
Family
ID=87674326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310599974.5A Active CN116611124B (zh) | 2023-05-25 | 2023-05-25 | 一种gpu可信执行环境构建方法、系统及数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116611124B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648998A (zh) * | 2024-01-29 | 2024-03-05 | 西安电子科技大学 | 一种基于可信执行环境的大语言模型联邦预训练方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190142910A (ko) * | 2018-06-19 | 2019-12-30 | 한국과학기술원 | 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법 |
US20200134208A1 (en) * | 2019-12-23 | 2020-04-30 | Intel Corporation | Trusted local memory management in a virtualized gpu |
CN111949369A (zh) * | 2020-08-03 | 2020-11-17 | 上海交通大学 | 面向图形处理器的可信执行环境构建方法及系统 |
CN112446032A (zh) * | 2020-11-20 | 2021-03-05 | 南方科技大学 | 可信执行环境构建方法、系统及存储介质 |
KR102365263B1 (ko) * | 2020-11-23 | 2022-02-21 | 한국과학기술원 | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 |
CN115935364A (zh) * | 2021-09-24 | 2023-04-07 | 辉达公司 | 跨多个处理器设备实现受信执行环境 |
-
2023
- 2023-05-25 CN CN202310599974.5A patent/CN116611124B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190142910A (ko) * | 2018-06-19 | 2019-12-30 | 한국과학기술원 | 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법 |
US20200134208A1 (en) * | 2019-12-23 | 2020-04-30 | Intel Corporation | Trusted local memory management in a virtualized gpu |
CN111949369A (zh) * | 2020-08-03 | 2020-11-17 | 上海交通大学 | 面向图形处理器的可信执行环境构建方法及系统 |
CN112446032A (zh) * | 2020-11-20 | 2021-03-05 | 南方科技大学 | 可信执行环境构建方法、系统及存储介质 |
KR102365263B1 (ko) * | 2020-11-23 | 2022-02-21 | 한국과학기술원 | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 |
CN115935364A (zh) * | 2021-09-24 | 2023-04-07 | 辉达公司 | 跨多个处理器设备实现受信执行环境 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648998A (zh) * | 2024-01-29 | 2024-03-05 | 西安电子科技大学 | 一种基于可信执行环境的大语言模型联邦预训练方法 |
CN117648998B (zh) * | 2024-01-29 | 2024-04-26 | 西安电子科技大学 | 一种基于可信执行环境的大语言模型联邦预训练方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116611124B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12032712B2 (en) | Data protection via aggregation-based obfuscation | |
CN110083610B (zh) | 数据处理方法、装置、系统、可信计算装置、设备和介质 | |
JP2021533435A (ja) | セキュアな電子トランザクションプラットフォームのためのシステムと方法 | |
JP5996804B2 (ja) | ウェブページ又はウェブブラウザアプリケーションのウェブオブジェクトへのアクセスを制御するためのデバイス、方法及びシステム | |
TWI575397B (zh) | 利用運行期代理器及動態安全分析之應用程式逐點保護技術 | |
US10032037B1 (en) | Establishing application trust levels using taint propagation as a service | |
Gu et al. | Securing input data of deep learning inference systems via partitioned enclave execution | |
CN116611124B (zh) | 一种gpu可信执行环境构建方法、系统及数据传输方法 | |
US20140157382A1 (en) | Observable authentication methods and apparatus | |
CN102483699B (zh) | 密码密钥的虚拟化 | |
EP3913513A1 (en) | Secure debug of fpga design | |
CN111967065B (zh) | 一种数据保护方法、处理器及电子设备 | |
Leung et al. | Towards privacy-preserving collaborative gradient boosted decision trees | |
US20220414223A1 (en) | Training data protection for artificial intelligence model in partitioned execution environment | |
CN103885725A (zh) | 一种基于云计算环境的虚拟机访问控制系统及其控制方法 | |
JP5797666B2 (ja) | 計算リソースの安全な実行 | |
US10192066B2 (en) | Semantic restriction | |
CN112149140B (zh) | 预测方法、装置、设备及存储介质 | |
CN114881773B (zh) | 一种用户信息处理系统、方法、装置、设备及介质 | |
KR102489574B1 (ko) | 가명정보 파일을 판별하기 위한 정보집합물 내에 삽입된 서명을 포함하는 가명정보 파일의 생성 및 판별 방법, 장치 및 컴퓨터프로그램 | |
CN117560455B (zh) | 图像特征处理方法、装置、设备及存储介质 | |
US20220269773A1 (en) | Execution code provision method and software development system | |
Phatangare et al. | New Algorithms for Secure Outsourcing of Large-Scale Systems of Linear Equations | |
Qiu | A Performance Analysis of Hardware-assisted Security Technologies | |
CN115987958A (zh) | 一种http会话实现方法、系统、计算机设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |