CN114611159A - 基于tee的安全计算方法、***及存储介质 - Google Patents

基于tee的安全计算方法、***及存储介质 Download PDF

Info

Publication number
CN114611159A
CN114611159A CN202210499572.3A CN202210499572A CN114611159A CN 114611159 A CN114611159 A CN 114611159A CN 202210499572 A CN202210499572 A CN 202210499572A CN 114611159 A CN114611159 A CN 114611159A
Authority
CN
China
Prior art keywords
module
library
file
calculation
tee
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.)
Pending
Application number
CN202210499572.3A
Other languages
English (en)
Inventor
张翔
卞阳
蔡晓娟
邢旭
李�根
陈立峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fucun Technology Shanghai Co ltd
Original Assignee
Fucun Technology Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fucun Technology Shanghai Co ltd filed Critical Fucun Technology Shanghai Co ltd
Priority to CN202210499572.3A priority Critical patent/CN114611159A/zh
Publication of CN114611159A publication Critical patent/CN114611159A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于TEE的安全计算方法、***及存储介质,安全计算方法包括:计算发起方发起计算请求,以用于启动一通信模块以及计算发起方在计算第三方的TEE中部署的运算器;运算器包括解释器和/或编译器;计算发起方检测运算器是否可信,若是,则通过通信模块发送运算文件至计算第三方;计算发起方接收运算器基于运算文件生成的运算结果。本申请在TEE中执行的解释器/编译器的部署设计,避免了针对不同的计算逻辑代码重新编译,避免将二进制代码发送给第三方后被反编译破译的可能性,运行速度更快、更直接,另外,上述解释器/编译器、动态链接库的部署过程代码经过双方审核,保证了计算的隐秘性和代码运行的安全性。

Description

基于TEE的安全计算方法、***及存储介质
技术领域
本发明涉及计算机安全技术领域,特别涉及一种基于TEE的安全计算方法、***及存储介质。
背景技术
在多方安全计算场景中,计算方必须在第三方(参与方)的用户空间中执行代码以在保证数据不出门的情况下完成计算,而计算方的计算目标有可能是隐私信息,也可能是涉及公司核心机密的算法,因此在现阶段,多方安全计算只能进行通用算法的计算。
现有技术中,可信执行环境可以在计算机内一个隔离独立的空间执行程序,保证程序运行过程不被supervisor(以管理员权限执行的程序访问),进一步缩小攻击面,从而保证了计算过程的安全。可执行环境同时提供程序认证机制(如intel ***SGX的认证)保证加载进入内存的程序是经过认证后没有改变的、可信的程序。然而,仅仅依赖可信执行环境仍然可能无法保证代码本身安全,执行前仍需计算方发送代码或二进制可执行程序到第三方,在使用时由第三方加入可信执行环境执行,后者还是有可能通过反编译等方式获知计算逻辑,存在一定的安全隐患。
发明内容
本发明要解决的技术问题是为了克服现有技术中的上述缺陷,提供一种基于TEE的安全计算方法、***及存储介质。
本发明是通过下述技术方案来解决上述技术问题:
一种基于TEE(可信执行环境)的安全计算方法,所述安全计算方法包括:
计算发起方发起计算请求,以用于启动一通信模块以及所述计算发起方在计算第三方的TEE中部署的运算器;所述运算器包括解释器和/或编译器;
计算发起方检测所述运算器是否可信,若是,则通过所述通信模块发送运算文件至所述计算第三方;
计算发起方接收所述运算器基于所述运算文件生成的运算结果。
较佳地,所述安全计算方法中通过以下步骤部署所述运算器,具体包括:
计算发起方发送包含library OS(库操作***)的运算器及动态链接库至计算第三方;所述动态链接库存储有多个***库的链接,其中,通过library OS基于所述链接访问对应的***库;
计算发起方接收所述计算第三方响应于所述运算器和所述链接库的审核的通过信息,在计算第三方的TEE中编译生成所述运算器的可信执行环境身份认证文件,并保存所述可信执行环境身份认证文件的可信执行环境身份认证参数,其中,所述可信执行环境身份认证参数用于验证运算器是否可信。
较佳地,所述安全计算方法中通过以下步骤生成所述运算结果,具体包括:
计算第三方接收所述运算文件后,加载预设清单文件;所述预设清单文件存储有多个文件及与每个文件对应的校验码;
通过library OS加载与执行所述运算文件对应的目标***库以及所述目标***库中的目标文件;
基于所述清单文件对所述目标文件进行验证;
若验证通过,则所述运算器通过library OS调用所述目标文件执行与所述运算文件并生成所述运算结果。
较佳地,所述安全计算方法还包括:
加载所述TEE信任的屏蔽库;
所述安全计算方法中通过所述屏蔽库加载目标***库及目标文件的文件信息,并通过所述屏蔽库执行所述目标文件的验证。
较佳地,所述通信模块包括第一通信单元和第二通信单元,所述第一通信单元部署在所述计算发起方,所述第二通信单元部署在所述计算第三方,所述计算发起方检测所述运算器是否可信之前,所述安全计算方法还包括:
执行所述第一通信单元和所述第二通信单元的握手认证;
其中,所述通信模块的通信协议中包含与TEE实现通信的协议证书。
一种基于TEE的安全计算***,所述安全计算***包括请求发起模块、检测模块、数据发送模块、结果接收模块和通信模块,所述请求发起模块、所述检测模块、所述数据发送模块和所述结果接收模块设于计算发起方;
所述请求发起模块用于发起计算请求,以用于启动所述通信模块以及所述计算发起方在计算第三方的TEE中部署的运算器;所述运算器包括解释器和/或编译器;
所述检测模块用于检测所述运算器是否可信,若是,则调用所述数据发送模块;
所述数据发送模块用于通过所述通信模块发送运算文件至所述计算第三方;
所述结果接收模块用于接收所述运算器基于所述运算文件生成的运算结果。
较佳地,所述安全计算***还包括部署模块、第一存储模块和第二存储模块,所述部署模块和所述第一存储模块设于计算发起方,所述第二存储模块设于计算第三方;
所述数据发送模块还用于发送包含library OS的运算器及动态链接库至计算第三方;所述动态链接库存储有多个***库的链接,其中,通过library OS基于所述链接访问对应的***库;
所述部署模块用于接收所述计算第三方响应于所述运算器和所述链接库的审核的通过信息后,在计算第三方的TEE中编译生成所述运算器的可信执行环境身份认证文件,并调用所述第一存储模块和所述第二存储模块;
所述第一存储模块和所述第二存储模块分别用于保存所述可信执行环境身份认证文件的可信执行环境身份认证参数,其中,所述可信执行环境身份认证参数用于验证运算器是否可信。
较佳地,所述安全计算***还包括清单加载模块、库加载模块和验证模块,所述清单加载模块、所述库加载模块和所述验证模块设于计算第三方;
所述清单加载模块用于在接收所述运算文件后,加载预设清单文件;所述预设清单文件存储有多个文件及与每个文件对应的校验码;
所述库加载模块用于通过library OS加载与执行所述运算文件对应的目标***库以及所述目标***库中的目标文件;
所述验证模块用于基于所述清单文件对所述目标文件进行验证,若验证通过,则调用所述运算器通过library OS调用所述目标文件执行与所述运算文件并生成所述运算结果。
较佳地, 所述库加载模块用于加载所述TEE信任的屏蔽库;
所述安全计算***中通过所述屏蔽库加载目标***库及目标文件的文件信息,并通过所述屏蔽库执行所述目标文件的验证。
较佳地,所述通信模块包括第一通信单元和第二通信单元,所述第一通信单元部署在所述计算发起方,所述第二通信单元部署在所述计算第三方,所述安全计算***还包括认证模块,所述认证模块设于计算发起方;
所述认证模块用于执行所述第一通信单元和所述第二通信单元的握手认证;
其中,所述通信模块的通信协议中包含与TEE实现通信的协议证书。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于TEE的安全计算方法。
本发明的积极进步效果在于:本申请使用的library OS***通过更改配置文件形式扩展了动态链接的库和数据,一次部署后可多次使用,同时,在enclave中执行的解释器/编译器的部署设计,避免了针对不同的计算逻辑代码重新编译后再生成新的enclave。另外,上述解释器/编译器、动态链接库的部署过程代码经过双方审核,保证了计算的隐秘性和代码运行的安全性。整个方案避免将二进制代码发送给第三方后被反编译破译的可能性,比较对代码加密的解决方案,运行速度更快、更直接、更安全。
附图说明
图1为本发明实施例1的基于TEE的安全计算方法的流程图。
图2为本发明实施例1的基于TEE的安全计算方法中运算器部署的流程图。
图3为本发明实施例1的基于TEE的安全计算方法中运算结果生成的流程图。
图4为本发明实施例2的基于TEE的安全计算***的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
本发明基于Intel推出的SGX(software guard extensions指令集扩展)的TEE执行环境,该部分为本专利提供基础硬件运行环境。SGX 使用 processor reserved memory(PRM)将一部分内存放于***软件及***设备访问之外。SGX 定义一个 Enclave (飞地,Intel SGX中***保留的受保护的内存单元。除使用飞地的程序外,任何其他程序都从硬件层面不可访问飞地内存,整个程序运行过程对飞地外不可见)的核心概念,指代内存中被保护的一个单元,Enclave 的交互仅限于用户空间通过SGX驱动启动的应用程序,以管理员身份运行的特权代码不可进入访问 enclave。敏感代码和数据存储在被保护的物理内存区域enclave page cache(EPC) 中。
一种基于TEE的安全计算方法,如图1所示,安全计算方法包括:
步骤11、计算发起方发起计算请求,以用于启动一通信模块以及计算发起方在计算第三方的TEE中部署的运算器;运算器包括解释器和/或编译器;
其中,通过以下步骤部署运算器,如图2所示,具体包括:
步骤101、计算发起方发送包含library OS的运算器及动态链接库至计算第三方;动态链接库存储有多个***库的链接,其中,通过library OS基于链接访问对应的***库;
其中,library OS将操作***功能以动态库形式,集成至程序,动态链接库作为数据加入library OS中,代码的解释器/编译器作为可执行文件,library OS提供标准化的***调用同时加载libc等通用基础库。
步骤102、计算发起方接收计算第三方响应于运算器和链接库的审核的通过信息,在计算第三方的TEE中编译生成运算器的可信执行环境身份认证文件,并保存可信执行环境身份认证文件的可信执行环境身份认证参数,其中,可信执行环境身份认证参数用于验证运算器是否可信。
上述部署中,由计算发起方发送带有library OS的解释器/编译器以及动态链接库给计算第三方,计算第三方审核library OS以及解释器/编译器的源码,评估必需动态链接库的安全性并将其加入自身的配置文件,在对安全性达成共识后,双方共同编译可信执行环境身份认证文件并保存可信执行环境身份认证参数以备后续运算器的验证。
步骤12、计算发起方检测运算器是否可信,若是,则执行步骤13;
步骤13、通过通信模块发送运算文件至计算第三方;
步骤14、计算发起方接收运算器基于运算文件生成的运算结果。需要说明的是,发送结果到计算发起方后,程序不在计算第三方保存结果并退出enclave。
其中,具体通过以下步骤进行可信检测以及生成运算结果,如图3所示,具体包括:
步骤201、计算第三方接收运算文件后,加载预设清单文件;预设清单文件存储有多个文件及与每个文件对应的校验码;
其中,在解释器/编译器代码编译部署后代码内容的哈希值(也即校验码)会被保存以作后续文件校验,运算文件包括计算逻辑代码和计算相关数据。
步骤202、通过library OS加载与执行运算文件对应的目标***库以及目标***库中的目标文件;
其中,目标***库包括比如Linux 库操作***(libLinux.so)、标准 C 库(ld-linux-x86-64.so 和 libc.so)以及解释器/编译器继续根据要执行的计算逻辑加载的额外的库等。
步骤203、基于清单文件对目标文件进行验证;
步骤204、若验证通过,则运算器通过library OS调用目标文件执行与运算文件并生成运算结果。
其中,在解释器中执行计算逻辑代码和相关数据,进而得到运算结果。
本实施例中,步骤202之前,参见图3,还包括:
步骤2011、加载TEE信任的屏蔽库;
进而,步骤202和步骤203中通过屏蔽库加载目标***库及目标文件的文件信息,并通过屏蔽库执行目标文件的验证。
其中,为了确保数据等安全,动态链接库和数据是否可信,是由TEE信任的屏蔽动态库(shielding libraries,如libshield.so、guard.so等)决定,在解释器/编译器代码编译部署前使用一个清单文件定义。如果验证过程中与清单文件不匹配,屏蔽库将拒绝打开这些库。
本实施例中,通信模块包括第一通信单元和第二通信单元,第一通信单元部署在计算发起方,第二通信单元部署在计算第三方,步骤12之前,参见图1,安全计算方法还包括:
步骤111、执行第一通信单元和第二通信单元的握手认证;
其中,所述通信模块的通信协议中包含与TEE实现通信的协议证书。
另外,本实施例的通信模块为基于RA-TLS通信的代码数据传输机制。RA-TLS将英特尔SGX远程认证整合到TLS连接设置中,基于SGX相关的信息扩展了标准的通信证书,额外的信息允许证书的远程用户(验证者)验证它确实能够与SGX飞地(证明者)进行通信。RA-TLS使用标准PKI通信流程,在其中额外加入enclave attestation过程以达到验证执行程序可信性目的。具体的,使用PKI握手时传输带有enclave证书的TLS证书,使用Intelattestation机制验证当前运行服务器和解释器是否是经过审核验证的enclave 程序,握手成功后建立通信信道,发送代码和必要数据至enclave中运行的解释器。本实施例中,使用的libOS***通过更改配置文件形式扩展了动态链接的库和数据,一次部署后可多次使用,同时,在enclave中执行的解释器/编译器的部署设计,避免了针对不同的计算逻辑代码重新编译后再生成新的enclave。另外,上述解释器/编译器、动态链接库的部署过程代码经过双方审核,保证了计算的隐秘性和代码运行的安全性。整个方案避免将二进制代码发送给第三方后被反编译破译的可能性,比较对代码加密的解决方案,运行速度更快、更直接、更安全。
实施例2
一种基于TEE的安全计算***,如图4所示,所述安全计算***包括请求发起模块31、检测模块32、数据发送模块33、结果接收模块34和通信模块,所述请求发起模块31、所述检测模块32、所述数据发送模块33和所述结果接收模块34设于计算发起方;
所述请求发起模块31用于发起计算请求,以用于启动所述通信模块以及所述计算发起方在计算第三方的TEE中部署的运算器;所述运算器包括解释器和/或编译器;
其中,通过以下实现所述运算器的部署,所述安全计算***还包括部署模块35、第一存储模块36和第二存储模块41,所述部署模块35和所述第一存储模块36设于计算发起方,所述第二存储模块41设于计算第三方;
所述数据发送模块33还用于发送包含library OS的运算器及动态链接库至计算第三方;所述动态链接库存储有多个***库的链接,其中,通过library OS基于所述链接访问对应的***库;
其中,library OS将操作***功能以动态库形式,集成至程序,动态链接库作为数据加入library OS中,代码的解释器/编译器作为可执行文件,library OS提供标准化的***调用同时加载libc等通用基础库。
所述部署模块35用于接收所述计算第三方响应于所述运算器和所述链接库的审核的通过信息后,在计算第三方的TEE中编译生成所述运算器的可信执行环境身份认证文件,并调用所述第一存储模块36和所述第二存储模块41;
所述第一存储模块36和所述第二存储模块41分别用于保存所述可信执行环境身份认证文件的可信执行环境身份认证参数,其中,所述可信执行环境身份认证参数用于验证运算器是否可信。
上述部署中,由计算发起方发送带有library OS的解释器/编译器以及动态链接库给计算第三方,计算第三方审核library OS以及解释器/编译器的源码,评估必需动态链接库的安全性并将其加入自身的配置文件,在对安全性达成共识后,双方共同编译可信执行环境身份认证文件并保存可信执行环境身份认证参数以备后续运算器的验证。
所述检测模块32用于检测所述运算器是否可信,若是,则调用所述数据发送模块33;
所述数据发送模块33用于通过所述通信模块发送运算文件至所述计算第三方;
所述结果接收模块34用于接收所述运算器基于所述运算文件生成的运算结果。需要说明的是,发送结果到计算发起方后,程序不在计算第三方保存结果并退出enclave。
其中,具体通过以下实现可信检测以及生成所述运算结果,所述安全计算***还包括清单加载模块42、库加载模块43和验证模块44,所述清单加载模块42、所述库加载模块43和所述验证模块44设于计算第三方;
所述清单加载模块42用于在接收所述运算文件后,加载预设清单文件;所述预设清单文件存储有多个文件及与每个文件对应的校验码;
其中,在解释器/编译器代码编译部署后代码内容的哈希值(也即校验码)会被保存以作后续文件校验,运算文件包括计算逻辑代码和计算相关数据。
所述库加载模块43用于通过library OS加载与执行所述运算文件对应的目标***库以及所述目标***库中的目标文件;
其中,目标***库包括比如Linux 库操作***(libLinux.so)、标准 C 库(ld-linux-x86-64.so 和 libc.so)以及解释器/编译器继续根据要执行的计算逻辑加载的额外的库等。
所述验证模块44用于基于所述清单文件对所述目标文件进行验证,若验证通过,则调用所述运算器通过library OS调用所述目标文件执行与所述运算文件并生成所述运算结果。
其中,在解释器中执行计算逻辑代码和相关数据,进而得到运算结果。
本实施例中,所述库加载模块43用于加载所述TEE信任的屏蔽库;
所述安全计算***中通过所述屏蔽库加载目标***库及目标文件的文件信息,并通过所述屏蔽库执行所述目标文件的验证。
其中,为了确保数据等安全,动态链接库和数据是否可信,是由TEE信任的屏蔽动态库(shielding libraries,如libshield.so、guard.so等)决定,在解释器/编译器代码编译部署前使用一个清单文件定义。如果验证过程中与清单文件不匹配,屏蔽库将拒绝打开这些库。
本实施例中,所述通信模块包括第一通信单元37和第二通信单元45,所述第一通信单元37部署在所述计算发起方,所述第二通信单元45部署在所述计算第三方,所述安全计算***还包括认证模块,所述认证模块设于计算发起方;
所述认证模块用于执行所述第一通信单元37和所述第二通信单元45的握手认证;
其中,所述通信模块的通信协议中包含与TEE实现通信的协议证书。
另外,本实施例的通信模块为基于RA-TLS通信的代码数据传输机制。RA-TLS将英特尔SGX远程认证整合到TLS连接设置中,基于SGX相关的信息扩展了标准的通信证书,额外的信息允许证书的远程用户(验证者)验证它确实能够与SGX飞地(证明者)进行通信。RA-TLS使用标准PKI通信流程,在其中额外加入enclave attestation过程以达到验证执行程序可信性目的。具体的,使用PKI握手时传输带有enclave证书的TLS证书,使用Intelattestation机制验证当前运行服务器和解释器是否是经过审核验证的enclave 程序,握手成功后建立通信信道,发送代码和必要数据至enclave中运行的解释器。
本实施例中,使用的libOS***通过更改配置文件形式扩展了动态链接的库和数据,一次部署后可多次使用,同时,在enclave中执行的解释器/编译器的部署设计,避免了针对不同的计算逻辑代码重新编译后再生成新的enclave。另外,上述解释器/编译器、动态链接库的部署过程代码经过双方审核,保证了计算的隐秘性和代码运行的安全性。整个方案避免将二进制代码发送给第三方后被反编译破译的可能性,比较对代码加密的解决方案,运行速度更快、更直接、更安全。
实施例3
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1所述的基于TEE的安全计算方法。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1所述的基于TEE的安全计算方法。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (11)

1.一种基于TEE的安全计算方法,其特征在于,所述安全计算方法包括:
计算发起方发起计算请求,以用于启动一通信模块以及所述计算发起方在计算第三方的TEE中部署的运算器;所述运算器包括解释器和/或编译器;
计算发起方检测所述运算器是否可信,若是,则通过所述通信模块发送运算文件至所述计算第三方;
计算发起方接收所述运算器基于所述运算文件生成的运算结果。
2.如权利要求1所述的基于TEE的安全计算方法,其特征在于,所述安全计算方法中通过以下步骤部署所述运算器,具体包括:
计算发起方发送包含library OS的运算器及动态链接库至计算第三方;所述动态链接库存储有多个***库的链接,其中,通过library OS基于所述链接访问对应的***库;
计算发起方接收所述计算第三方响应于所述运算器和所述链接库的审核的通过信息,在计算第三方的TEE中编译生成所述运算器的可信执行环境身份认证文件,并保存所述可信执行环境身份认证文件的可信执行环境身份认证参数,其中,所述可信执行环境身份认证参数用于验证运算器是否可信。
3.如权利要求1所述的基于TEE的安全计算方法,其特征在于,所述安全计算方法中通过以下步骤生成所述运算结果,具体包括:
计算第三方接收所述运算文件后,加载预设清单文件;所述预设清单文件存储有多个文件及与每个文件对应的校验码;
通过library OS加载与执行所述运算文件对应的目标***库以及所述目标***库中的目标文件;
基于所述清单文件对所述目标文件进行验证;
若验证通过,则所述运算器通过library OS调用所述目标文件执行与所述运算文件并生成所述运算结果。
4.如权利要求3所述的基于TEE的安全计算方法,其特征在于,所述安全计算方法还包括:
加载所述TEE信任的屏蔽库;
所述安全计算方法中通过所述屏蔽库加载目标***库及目标文件的文件信息,并通过所述屏蔽库执行所述目标文件的验证。
5.如权利要求1所述的基于TEE的安全计算方法,其特征在于,所述通信模块包括第一通信单元和第二通信单元,所述第一通信单元部署在所述计算发起方,所述第二通信单元部署在所述计算第三方,所述计算发起方检测所述运算器是否可信之前,所述安全计算方法还包括:
执行所述第一通信单元和所述第二通信单元的握手认证;
其中,所述通信模块的通信协议中包含与TEE实现通信的协议证书。
6.一种基于TEE的安全计算***,其特征在于,所述安全计算***包括请求发起模块、检测模块、数据发送模块、结果接收模块和通信模块,所述请求发起模块、所述检测模块、所述数据发送模块和所述结果接收模块设于计算发起方;
所述请求发起模块用于发起计算请求,以用于启动所述通信模块以及所述计算发起方在计算第三方的TEE中部署的运算器;所述运算器包括解释器和/或编译器;
所述检测模块用于检测所述运算器是否可信,若是,则调用所述数据发送模块;
所述数据发送模块用于通过所述通信模块发送运算文件至所述计算第三方;
所述结果接收模块用于接收所述运算器基于所述运算文件生成的运算结果。
7.如权利要求6所述的基于TEE的安全计算***,其特征在于,所述安全计算***还包括部署模块、第一存储模块和第二存储模块,所述部署模块和所述第一存储模块设于计算发起方,所述第二存储模块设于计算第三方;
所述数据发送模块还用于发送包含library OS的运算器及动态链接库至计算第三方;所述动态链接库存储有多个***库的链接,其中,通过library OS基于所述链接访问对应的***库;
所述部署模块用于接收所述计算第三方响应于所述运算器和所述链接库的审核的通过信息后,在计算第三方的TEE中编译生成所述运算器的可信执行环境身份认证文件,并调用所述第一存储模块和所述第二存储模块;
所述第一存储模块和所述第二存储模块分别用于保存所述可信执行环境身份认证文件的可信执行环境身份认证参数,其中,所述可信执行环境身份认证参数用于验证运算器是否可信。
8.如权利要求6所述的基于TEE的安全计算***,其特征在于,所述安全计算***还包括清单加载模块、库加载模块和验证模块,所述清单加载模块、所述库加载模块和所述验证模块设于计算第三方;
所述清单加载模块用于在接收所述运算文件后,加载预设清单文件;所述预设清单文件存储有多个文件及与每个文件对应的校验码;
所述库加载模块用于通过library OS加载与执行所述运算文件对应的目标***库以及所述目标***库中的目标文件;
所述验证模块用于基于所述清单文件对所述目标文件进行验证,若验证通过,则调用所述运算器通过library OS调用所述目标文件执行与所述运算文件并生成所述运算结果。
9.如权利要求8所述的基于TEE的安全计算***,其特征在于, 所述库加载模块用于加载所述TEE信任的屏蔽库;
所述安全计算***中通过所述屏蔽库加载目标***库及目标文件的文件信息,并通过所述屏蔽库执行所述目标文件的验证。
10.如权利要求6所述的基于TEE的安全计算***,其特征在于,所述通信模块包括第一通信单元和第二通信单元,所述第一通信单元部署在所述计算发起方,所述第二通信单元部署在所述计算第三方,所述安全计算***还包括认证模块,所述认证模块设于计算发起方;
所述认证模块用于执行所述第一通信单元和所述第二通信单元的握手认证;
其中,所述通信模块的通信协议中包含与TEE实现通信的协议证书。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述的基于TEE的安全计算方法。
CN202210499572.3A 2022-05-10 2022-05-10 基于tee的安全计算方法、***及存储介质 Pending CN114611159A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210499572.3A CN114611159A (zh) 2022-05-10 2022-05-10 基于tee的安全计算方法、***及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210499572.3A CN114611159A (zh) 2022-05-10 2022-05-10 基于tee的安全计算方法、***及存储介质

Publications (1)

Publication Number Publication Date
CN114611159A true CN114611159A (zh) 2022-06-10

Family

ID=81869073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210499572.3A Pending CN114611159A (zh) 2022-05-10 2022-05-10 基于tee的安全计算方法、***及存储介质

Country Status (1)

Country Link
CN (1) CN114611159A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948810A (zh) * 2021-05-12 2021-06-11 支付宝(杭州)信息技术有限公司 一种可信计算程序调用方法、装置、电子设备及存储介质
CN112989319A (zh) * 2021-05-12 2021-06-18 支付宝(杭州)信息技术有限公司 一种实现可信计算的方法、装置、电子设备及存储介质
WO2021184961A1 (zh) * 2020-03-18 2021-09-23 支付宝(杭州)信息技术有限公司 部署合约的方法及装置
US20210374232A1 (en) * 2020-05-28 2021-12-02 Red Hat, Inc. Data distribution using a trusted execution environment in an untrusted device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021184961A1 (zh) * 2020-03-18 2021-09-23 支付宝(杭州)信息技术有限公司 部署合约的方法及装置
US20210374232A1 (en) * 2020-05-28 2021-12-02 Red Hat, Inc. Data distribution using a trusted execution environment in an untrusted device
CN112948810A (zh) * 2021-05-12 2021-06-11 支付宝(杭州)信息技术有限公司 一种可信计算程序调用方法、装置、电子设备及存储介质
CN112989319A (zh) * 2021-05-12 2021-06-18 支付宝(杭州)信息技术有限公司 一种实现可信计算的方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马小峰 等: "《区块链技术原理与实践》", 28 February 2020 *

Similar Documents

Publication Publication Date Title
Parno et al. Bootstrapping trust in modern computers
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
CN110334521B (zh) 可信计算***构建方法、装置、可信计算***及处理器
RU2390836C2 (ru) Отображение достоверности из высоконадежной среды на незащищенную среду
KR101503785B1 (ko) 동적 라이브러리를 보호하는 방법 및 장치
US10915609B2 (en) Securing applications on mobile devices
EP3275159A1 (en) Technologies for secure server access using a trusted license agent
US20180012025A1 (en) Dynamic security module terminal device and method of operating same
WO2023029447A1 (zh) 模型保护方法、装置、设备、***以及存储介质
CN108595950A (zh) 一种结合远程认证的sgx安全增强方法
Li et al. Android-based cryptocurrency wallets: Attacks and countermeasures
Strackx et al. Salus: Kernel support for secure process compartments
KR20100054940A (ko) 임베디드 리눅스에서 서명 검증 방식을 이용한 악성 프로그램 차단 장치 및 방법
KR100833618B1 (ko) 다중 os를 이용하여 전자 금융 거래가 가능한 단말기 및그 제어 방법
Vella et al. RV-TEE: secure cryptographic protocol execution based on runtime verification
CN114611159A (zh) 基于tee的安全计算方法、***及存储介质
CN113961939B (zh) 嵌入式操作***安全的防护方法和***
EP3966721A1 (en) Apparatus and method for disk attestation
CN115563588A (zh) 一种软件离线鉴权的方法、装置、电子设备和存储介质
Titze et al. Preventing library spoofing on android
CN114168909A (zh) 基于代码签名的程序保护方法、装置、设备和存储介质
Hei et al. From hardware to operating system: a static measurement method of android system based on TrustZone
DONG et al. Sesoa: Security enhancement system with online authentication for android apk
Xu et al. Toward a secure android software protection system
Nowfeek et al. A Review of Android operating system security issues

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220610

RJ01 Rejection of invention patent application after publication