一种GPU可信执行环境构建方法、系统及数据传输方法技术方案

技术编号:38554141 阅读:16 留言:0更新日期:2023-08-22 20:59
本发明专利技术提供了一种GPU可信执行环境构建方法、系统及数据传输方法,属于GPU应用程序的可信执行环境技术领域,GPU可信执行环境构建方法包括:S1.初始化GPU;S2.为GPU应用程序创建TEE的上下文;S3.载入GPU应用程序,检查GPU应用程序是否符合安全策略;S4.在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;S5.通过加密的CPU

【技术实现步骤摘要】
一种GPU可信执行环境构建方法、系统及数据传输方法


[0001]本专利技术涉及GPU应用程序的可信执行环境
,尤其是涉及一种GPU可信执行环境构建方法、系统及数据传输方法。

技术介绍

[0002]人工智能技术的发展为智能助手、虚拟现实、个性化医疗等领域带来革命性的变化。当前人工智能技术要求大量的算力,实际的解决方案通常基于硬件加速器如GPU来实现。与此同时,由于这些领域中数据包括大量的隐私相关信息,处理这些数据的解决方案必须具备高级别的安全性和隐私性。GPU上的可信执行环境(TEE)技术将GPU应用程序放进隔离空间(enclave),TEE控制每个enclave和系统之间的数据流与控制流的交互,从而保证全应用程序的安全性。
[0003]现有的GPU TEE研究,如Graviton、Telekine、HIX、HETEE等要求各种硬件改动,不能在原有的GPU环境上运行,大大限制了他们的实用性。与此同时,这些方案也没有提供高效安全的enclave之间的通信原语,不适应GPU应用程序模块化的发展趋势。

技术实现思路

[0004]本专利技术提供一种GPU可信执行环境构建方法、系统及数据传输方法,适用于利用GPU进行大规模的多方安全计算、机器学习、联邦学习、隐私数据库、隐私信息检索等场景,解决了不能在原有的GPU环境上运行的问题。
[0005]本专利技术实施例的第一方面公开了一种GPU可信执行环境构建方法,包括:
[0006]S1.初始化GPU;
[0007]S2.为全应用程序创建TEE的上下文;
[0008]S3.载入GPU应用程序,检查全应用程序是否符合安全策略;
[0009]S4.在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;
[0010]S5.通过加密的CPU

GPU信道将全应用程序运行结果传回全应用程序。
[0011]本专利技术一实施例中,S1包括:
[0012]S11.启动硬件,并通过SecureBoot和TPM技术来确保硬件启动过程不受攻击;
[0013]S12.启用CPU的enclave模式;
[0014]S13.在特权等级启动安全监视器;
[0015]S14.在普通特权等级启动不受信任的操作系统;
[0016]S15.初始化GPU并验证操作系统和GPU之间交互,确保操作系统正确初始化GPU;
[0017]S16.在GPU上收集随机熵,以建立CPU和GPU之间的安全通信通道;
[0018]S17.分配GPU内存,用于存储元信息和工具内核。
[0019]本专利技术一实施例中,S2包括:
[0020]S21.初始化CPU enclave并检查其安全性;
[0021]S22.调用相关接口;
[0022]S23.创建新的GPU应用程序上下文;
[0023]S24.通过Diffe

Hillman方法创建一个共享密钥。
[0024]本专利技术一实施例中,S23包括:
[0025]S231.分配GPU驱动资源;
[0026]S232.将GPU应用程序的虚拟地址空间划分为隐藏、只读、读写和私有四个子空间;
[0027]S233.将内存映射到隐藏子空间内;
[0028]S234.在读写子空间上分配两个缓冲区,分别为队列缓冲区和数据交换缓冲区。
[0029]本专利技术一实施例中,S3包括:
[0030]S31.解析包含GPU内核的ELF二进制文件,提取证明和前置条件;
[0031]S32.调用验证器来验证二进制文件中的每个GPU内核。
[0032]本专利技术一实施例中,S32包括:
[0033]S321.反编译GPU内核的二进制代码;
[0034]S322.验证所有操作码是否有效,根据操作码连接程序的控制和数据流,构建GPU内核SSA表示形式;
[0035]S323.从GPU内核的SSA形式计算GPU内核中每个内存访问的地址的符号表达式;
[0036]S324.根据控制和数据流及其前置条件确定每个内存访问的地址范围;
[0037]S325.验证所有内存访问的地址范围是否符合预定义的安全策略;
[0038]S326.验证所有的系统调用指向S16中的安全通信通道;
[0039]S327.仅接受通过验证的GPU内核,如果不能验证则退出;
[0040]S328.记录前置条件并将GPU内核上传到GPU内存中。
[0041]本专利技术一实施例中,S4包括:
[0042]S41.获取GPU内核的参数,请求执行GPU内核;
[0043]S42.检查执行请求,同时确保执行参数满足S31中对应GPU内核的前置条件;
[0044]S43.将请求转发到GPU硬件请求队列;
[0045]S44.GPU硬件执行对应的GPU内核。
[0046]本专利技术一实施例中,S5包括:
[0047]S51.选择初始向量,请求传回特定空间的数据;
[0048]S52.检查请求的合法性,拒绝不安全的请求;
[0049]S53.利用初始向量以及S24中的共享密钥加密对应区域的数据,加密数据存入共享区域中;
[0050]S54.读取共享区域的加密数据并解密到其私有内存中。
[0051]本专利技术实施例的第二方面公开了一种GPU可信执行环境构建系统,用于执行上述的GPU可信执行环境构建方法;
[0052]所述GPU可信执行环境构建系统包括:
[0053]初始化模块,用于初始化GPU;
[0054]上下文创建模块,用于为全应用程序创建TEE的上下文;
[0055]验证模块,用于载入GPU应用程序,检查全应用程序是否符合安全策略;
[0056]执行模块,用于在运行时检查对GPU内核的调用,确保传入参数符合检查时的前置条件;
[0057]结果传回模块,用于通过加密的CPU

GPU信道将结果传回全应用程序。
[0058]本专利技术实施例的第三方面公开了一种数据传输方法,基于上述的GPU可信执行环境构建方法,在GPU TEE全应用程序中进行数据传输;
[0059]所述数据传输方法包括:
[0060]S61.接收RPC的全应用程序的队列缓冲区映射到全应用程序的读写空间中,将接收RPC的全应用程序的数据交换缓冲区映射到全应用程序的只读空间中;
[0061]S62.调用隐藏子空间内的调用来发送RPC;
[0062]S63.调用两端均采用轮询方法处理请求和返回的数据,该数据只在GPU内存中传输。
[0063]综上所述,本专利技术至少具有以下有益效果:
[0064]1.本专利技术利用程序分析结合系统设计的方法,构建基于软件方案的、高效安全的GPU TEE,适用于当前的CPU和GPU。
[0065]2.本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:麦浩晖
申请(专利权)人:南京恒木兴信息科技有限公司
类型:发明
国别省市:

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

1