CN117411662A - 一种异构可信执行环境下飞地的跨平台度量验证方法及系统 - Google Patents
一种异构可信执行环境下飞地的跨平台度量验证方法及系统 Download PDFInfo
- Publication number
- CN117411662A CN117411662A CN202310948002.2A CN202310948002A CN117411662A CN 117411662 A CN117411662 A CN 117411662A CN 202310948002 A CN202310948002 A CN 202310948002A CN 117411662 A CN117411662 A CN 117411662A
- Authority
- CN
- China
- Prior art keywords
- enclave
- cross
- platform
- metrics
- heterogeneous
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000005259 measurement Methods 0.000 title claims abstract description 44
- 238000012795 verification Methods 0.000 title claims abstract description 43
- 238000013507 mapping Methods 0.000 claims abstract description 59
- 230000008569 process Effects 0.000 claims description 18
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000013175 transesophageal echocardiography Methods 0.000 abstract description 88
- 230000001737 promoting effect Effects 0.000 abstract description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 13
- 230000004044 response Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000009795 derivation Methods 0.000 description 4
- 244000035744 Hura crepitans Species 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012737 microarray-based gene expression Methods 0.000 description 3
- 238000012243 multiplex automated genomic engineering Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种异构可信执行环境下飞地的跨平台度量验证方法、系统,应用于直接验证异构TEE下的飞地,所述方法包括:云服务提供商对跨平台应用程序构建生成载荷程序并构建飞地;可信度量映射对跨平台应用程序计算跨平台度量与异构TEE下飞地的原生度量;验证方利用预先持有的目标跨平台应用程序的跨平台度量,通过可信度量映射对目标飞地进行远程认证。本发明有益效果是简化异构TEE间的飞地的验证模式,推动异构TEE互联互通,并为载荷程序提供了基于TEE硬件特性的度量手段,从而实现更加安全可靠的验证方案。
Description
【技术领域】
本发明涉及计算机技术领域,具体涉及的是一种异构可信执行环境下飞地的跨平台度量验证方法及系统。
【背景技术】
随着人们对隐私保护的日益重视和云计算的普及,许多隐私保护应用程序已经部署在云服务器上的可信执行环境(Trusted Execution Environment,缩写为TEE)中。TEE是CPU内部的一个安全隔区(通常称为飞地/Enclave),能够在安全区域外的特权软件(如操作系统)不可信的情况下保护内部加载的代码和数据的机密性和完整性。飞地通常通过其初始代码和数据的哈希摘要来识别,该哈希摘要也称为飞地的度量。同时,TEE提供了一种远程认证的机制,以授权远程用户验证通信飞地的度量以建立对其的信任,进而向其传输隐私数据。目前较为成功且已商业化的TEE包括Intel SGX、AMD SEV、ARM TrustZone。此外,各种基于RISC-V的TEE也已经出现,例如Penglai和Keystone。
由于不同的TEE的设计通常基于不同的指令集架构,针对特定架构TEE开发的应用一般不能在其他架构的TEE上执行。然而,随着云服务器开始支持各种异构TEE,跨平台TEE应用的支持将同时利好云服务提供商以及开发者。为解决TEE与硬件平台强耦合所带来的应用部署困难,有大量工作尝试将TEE应用程序开发与底层硬件分离,例如,通过使用跨平台编程语言或中间表示(缩写为IR)开发应用程序。具体而言,开发者使用跨平台语言开发应用程序,或将原程序代码编译为跨平台的IR,再部署到与底层平台相关的TEE运行时容器中运行。
然而,基于TEE运行时容器的TEE应用程序的远程认证与普通飞地略有不同。在传统的远程认证中,飞地度量的计算由TEE执行,因此,当远程认证成功时,远程用户可以确信目标飞地为预期的应用程序。然而对于基于TEE运行时容器的应用程序,传统远程认证流程只适用于验证的TEE运行时容器(不包括目标应用程序),而对目标应用程序的认证则要依赖TEE运行时容器来间接进行。然而,当TEE运行时容器和应用程序处于相同的地址空间时,间接认证的方式可能会引入新的安全问题。具体而言,攻击者可以提供恶意的应用程序,攻击TEE运行时容器并获得其控制权,进而恶意操纵间接认证。由于TEE运行时容器的度量只是其初始数据和代码的哈希摘要,用户无法通过远程认证区分真正的和受篡改的TEE运行时容器,从而可能导致隐私数据泄露。
针对上述问题,一个现有的解决方案是利用沙盒技术隔离TEE运行时容器和作为载荷的目标应用程序,例如软件故障隔离(SFI)。然而,这不仅会来带额外的性能和内存开销,如何验证SFI的正确实现也是一个难题。另一方面,此前也已经有相关攻击表示,沙盒技术并不能完全抵御载荷程序对TEE运行时容器的攻击。
综上所述,现有的解决方案依然存在缺陷,我们的发明针对异构TEE下飞地的跨平台度量验证提出新的解决方案。
【发明内容】
本发明的目的是,提供一种异构可信执行环境(Trusted ExecutionEnvironment,缩写为TEE)下飞地的跨平台度量验证方法,旨在解决现有技术间接验证飞地内的载荷程序所带来的安全问题。
为实现上述目的,本发明采用的技术方案是一种异构TEE下飞地的跨平台度量验证方法,应用于直接验证异构TEE下的飞地,所述飞地利用TEE运行时容器运行跨平台的载荷程序,所述验证各方包括独立软件供应商(Independent software vendor,简称ISV),云服务提供商,异构云平台,可信度量映射,验证方,其中,所述ISV开发跨平台应用程序,所述云服务提供商通过所述跨平台应用程序构建飞地,所述异构云平台运行所述飞地,所述可信度量映射可通过TEE飞地实现,用于维护跨平台度量与原生度量的映射信息,所述验证方需要对目标飞地进行验证,所述方法包括:
M1所述云服务提供商对跨平台应用程序构建生成载荷程序并构建飞地;
M2所述可信度量映射对跨平台应用程序计算跨平台度量与异构TEE下飞地的原生度量;
M3所述验证方利用预先持有的目标跨平台应用程序的跨平台度量,通过可信度量映射对目标飞地进行远程认证。
优选的,所述异构TEE下飞地的跨平台度量验证方法,所述可信度量映射服务有多种实现形式,除基于TEE飞地实现之外,具体还包括:
验证方本地编译和计算:分别生成跨平台应用程序的跨平台度量和利用原生度量的生成机制编译和计算原生度量,从而生成二者映射;
区块链上的智能合约:利用智能合约模拟原生度量的生成,在区块链上记录跨平台度量与原生度量的可信映射。
优选的,所述异构TEE下飞地的跨平台度量验证方法,M1所述云服务提供商对跨平台应用程序构建飞地,具体包括:
S11所述ISV将跨平台应用程序上传云服务提供商;
S12所述云服务提供商确定飞地的配置信息,所述飞地的配置信息可由ISV指定,若无指定则由云服务提供商确定;
S13可选的,若所述飞地的配置信息中指定程序需经过进一步编译,则由云服务提供商对跨平台应用程序进行编译得到(对应平台的)载荷程序,若无需进一步编译,载荷程序为原跨平台应用程序;
S14所述云服务提供商载入载荷程序并建立飞地,所述飞地将在异构云平台运行;
S15所述云服务提供商返回目标飞地的配置信息。
优选的,所述异构TEE下飞地的跨平台度量验证方法,S12异构TEE下飞地的配置信息,具体包括:具体TEE架构,处理器安全版本号,飞地版本号,程序是否经过进一步编译等
优选的,所述异构TEE下飞地的跨平台度量验证方法,M2所述可信度量映射对跨平台应用程序计算跨平台度量与异构TEE下飞地的原生度量的映射,以基于TEE飞地实现的可信度量映射为例,具体包括以下步骤:
S21所述可信度量映射预先产生异构TEE下飞地的中间哈希摘要;
S22所述ISV对可信度量映射进行远程认证,并将跨平台应用程序和飞地的配置信息上传可信度量映射;
S23可信度量映射用哈希摘要算法对跨平台应用程序计算摘要,记录摘要结果作为跨平台度量;
S24可选的,若所述飞地的配置信息中指定程序需经过进一步编译,则所述可信度量映射根据飞地的配置信息可选地进一步编译跨平台应用程序,得到(对应平台的)载荷程序,若无需进一步编译,载荷程序为原跨平台应用程序;
S25所述可信度量映射以载荷程序为输入,从中间哈希摘要继续哈希摘要过程,最终得到异构TEE下飞地的原生度量,所述哈希摘要过程使用的算法对应异构TEE生成原生度量的算法;
S26所述可信度量映射存储跨平台度量、异构TEE的原生度量、异构TEE的飞地的配置信息的映射到数据库,以供远程认证过程中进行查询。
优选的,所述异构TEE下飞地的跨平台度量验证方法,S21所述可信度量映射预先产生异构TEE下飞地的中间哈希状态,具体包括:在异构TEE的飞地中预留区域(payloadsection,称为载荷节)用于存储载荷程序代码,执行异构TEE加载和度量飞地的过程,在即将加载和度量所述载荷节时停止摘要,并输出已计算得出的中间哈希状态。
优选的,所述异构TEE下飞地的跨平台度量验证方法,M3所述验证方利用预先持有的目标跨平台应用程序的跨平台度量,通过可信度量映射对目标飞地进行远程认证,具体包括以下步骤:
S31所述验证方遵循传统远程认证协议,获取目标飞地的quote;
S32a所述验证方从quote中提取飞地的原生度量,向所述可信度量映射发起查询请求并发送原生度量和飞地的配置信息;
S33a所述可信度量映射处理查询请求,在数据库中查找飞地对应跨平台应用程序的跨平台度量,发送msg1给验证方,所述msg1包含查询结果;
S34所述可信度量映射发送msg2给验证方,所述msg2包含自身quote和查询结果的摘要值以供验证msg1完整性;
S35所述验证方通过msg2对可信度量映射进行远程认证,通过查询结果的摘要值验证msg1查询结果的完整性;
S36a验证通过后,所述验证方通过对比msg1查询结果与期望的跨平台度量确定是否为目标飞地。
优选的,所述异构TEE下飞地的跨平台度量验证方法,除基于对比期望跨平台度量之外,验证方法还包括基于对比期望原生度量,与权利要求6区别在于S32a,S33a,S35a,具体包括:
S32b验证方向所述可信度量映射发起查询请求并发送期望跨平台度量和飞地的配置信息;
S33b所述可信度量映射在数据库中查找飞地对应跨平台应用程序的原生度量,发送msg1给验证方,所述msg1包含查询结果;
S36b验证通过后,所述验证方通过对比msg1查询结果与飞地quote中的原生度量确定其真实身份。
本发明第二方面提供一种异构TEE下飞地的跨平台度量验证系统,所述异构TEE下飞地的跨平台度量验证系统包括:
可信度量映射:包括映射生成模块和数据库模块,分别用于产生和储存跨平台度量与原生度量的映射;
目标飞地:包括目标应用程序模块、目标应用程序的运行时模块、验证服务模块,用于运行目标应用和实现远程认证的功能。
由上可见,本发明提供了一种异构TEE下飞地的跨平台度量验证方法、系统,应用于直接验证跨平台应用程序在异构TEE下实现的飞地,所述方法包括:云服务提供商对跨平台应用程序构建飞地;可信度量映射对跨平台应用程序计算跨平台度量与异构TEE下飞地的原生度量;验证方利用预先持有的目标跨平台应用程序的跨平台度量,通过可信度量映射对目标飞地进行远程认证。本发明有益效果是简化异构TEE间的飞地的验证模式,推动异构TEE互联互通,并为载荷程序提供了基于TEE硬件特性的度量手段,从而实现更加安全可靠的验证方案。
【附图说明】
图1是异构TEE下飞地的跨平台度量验证方法下ISV部署目标应用程序的示意图;
图2是异构TEE下飞地的跨平台度量验证方法下验证方验证目标应用程序的示意图。
图3是实施例1载荷节的示意图;
图4是实施例2载荷节的示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
【实施例1】
本实施例实现一种异构TEE下飞地的跨平台度量验证方法。
【本实施例方法所要解决的技术问题】
针对当前TEE运行时存在的间接验证隐患和对应的沙盒技术安全策略存在的不足,本实施例方法提出一个替代的策略,将目标应用程序的内容包括到整个飞地的度量中,从而能够直接证明预期的跨平台应用程序。此外,由于异构TEE实现计算的度量,即原生度量,不是跨平台的,我们引入跨平台度量的概念来度量跨平台应用程序,以便验证两个异构飞地实际上是否运行相同的跨平台应用程序,即使它们具有不同的原生度量。
【本实施例方法技术方案】
本实施例方法技术方案包括一个安全的支持异构TEE下飞地的跨平台度量验证框架PORTMR,所述PORTMR框架下,跨平台TEE应用程序使用跨平台程序语言或IR开发,并使用加密哈希算法进行度量以生成其跨平台度量。然后,将跨平台的TEE应用程序经可选的编译阶段生成载荷程序,最后硬编码到TEE运行时的一个保留部分中,以生成相应TEE平台的最终飞地。因此,目标飞地的原生度量将包括载荷程序的内容,从而直接实现载荷程序的远程认证。为了促进跨平台度量的使用,我们引入了两种机制,用于从跨平台度量中确定性地推导原生度量,或从原生度量中推导跨平台度量,并设计了一个基于TEE飞地的可信度量映射来实现这两种机制。
基于上述方案,我们通过采用WebAssembly(WASM)作为IR和WebAssembly MicroRuntime作为TEE运行时提供了PORTMR的原型实现,并采用Intel SGX和RISC-V Penglaienclave作为具有不同ISA(分别为x86和RISC-V)。以下介绍我们开发的TEE飞地样例TPLENCL和两种度量机制的实现,以及PORTMR框架下可信映射和验证服务的相关实现方法。
【TPLENCL实施例方法】
本实例中,TPLENCL的主要任务是以位于载荷节的WASM或进一步编译的AoT的形式加载和执行跨平台应用程序。这是通过定制WAMR的iwasm作为TPLENCL的底层VM内核来实现的。另一个任务,即支持远程认证,是通过在TPLENCL中引入另外两个WebAssembly系统接口(WASI)API来实现的,稍后将在二者对应的验证方法中详细介绍。
iwasm支持在包括x86、ARM和RISC-V在内的主流架构上执行WASM应用程序,从而可以将我们的框架扩展到多种异构TEE。iwasm已经提供了WASI API的SGX实现,并支持在SGX飞地内执行WASM/AoT载荷程序。但与现有的方式不同,我们不再从外部输入文件中加载WASM/AoT程序,而是使飞地从其自身的预留的载荷节加载WASM/AoT程序。具体来说,我们提供了一个SDK库libsgx_wasm,它保留了一个名为.sgx_wasm的节来保存载荷程序及其大小。为了将WASM/AoT程序硬编码到.sgx_wasm部分,我们在英特尔SGX SDK的签名工具中扩展了SIGN_WASM模式,该模式先将给定WASM/AoT文件及其大小放入.sgx_wasm节,再进行传统的对enclave.so的签名过程。
iwasm本身不支持Penglai enclave,因此我们将iwasm移植到Penglai enclave并支持对WASI API的调用。为了在创建飞地时将WASM载荷程序硬编码到飞地中,我们修改了Penglai SDK中的飞地驱动程序,以便在创建飞地期间,修改后的驱动程序将分配一个具有固定长度的载荷节在预定义的高地址0xFFFFFFF000000000处创建页并将提供的WASM二进制文件及其大小复制到飞地中的页面。
载荷节从页面对齐的地址开始,大小等于页面大小PG(即4KB)的n倍,表示为n*PG。为了同时保存WASM/AoT载荷程序及其大小,最直接的设计是从节的开头顺序放置它们。具体来说,载荷节最开头是载荷程序大小,类型是8字节无符号整数,然后是载荷程序缓冲区,并以填充零或其他已知值结束,如图3所示。然而,若使用这种方法,固定载荷节大小后,在计算该部分摘要值时,即使实际载荷程序非常小,它需要的计算时间也与填满整个载荷节几乎相同。因此,为了进一步缩短计算时间,我们将载荷程序及其大小放在载荷节的末尾,并用已知值(即零)填充前部,如图4所示。TPLENCL的任意中间哈希状态都可以提前计算,这样推导原生度量时只需要从载荷程序前的中间哈希状态继续度量过程,从而实现更高的效率。
【度量机制实施例方法】
本实施例中,受MAGE的启发,为提高计算原生度量的效率,我们修改了Intel SGXSDK和Penglai SDK以调整度量过程的顺序,以实现从中间哈希状态计算原生度量。首先,如TPLENCL实施例方法所述,我们最小化了不同TPLENCL的后缀部分的大小,并输出了前缀部分的中间哈希状态以硬编码到MAPENCL中。以下我们分别介绍SGX TPLENCL和PenglaiTPLENCL如何从给定的载荷程序计算原生度量。
对于SGX,飞地页面通过加载enclave.so二进制文件进行创建和初始化,而飞地的度量在飞地页面创建的同时更新。SGX TPLENCL预留了.sgx_wasm节以加载载荷程序。本实施例中,我们遵循MAGE中介绍的方法,修改了Intel SGX SDK中的enclave.so解析器(parser)和加载器(loader),使得.sgx_wasm节在最后被加载。具体来说,当修改后的加载器在飞地创建时加载到.sgx_wasm节时,将选择暂时跳过,并在飞地初始化前的最后时刻加载该节中的页面。由于前缀部分包含除了WASM/AoT载荷程序的所有内容,后缀部分得以最小化。此外,我们引入另一种模式GEN_WASM_VM_MR来扩展英特尔SGX SDK的签名工具。该模式下,SHA256的中间哈希状态,包括中间哈希值、.sgx_wasm之前处理的块数量以及.sgx_wasm的偏移量,都将被输出以供原生度量计算。
对于Penglai enclave,飞地的度量是通过页表从最低地址到最高地址遍历内存来计算的。我们修改了Penglai enclave驱动,将WASM载荷程序存放在预定义的地址(即0xFFFFFFF000000000)。由于它是Penglai enclave SBI中飞地默认内存布局中最高地址,WASM载荷也得以在最后计算,从而实现最小的后缀部分。此外,我们修改PLenclave_attest()的SBI实现(Penglai enclave SDK获取飞地的度量生成飞地报告API),使得当遇到载荷节起始地址时输出中间哈希状态和处理的字节总数,以供原生度量计算。
计算原生度量首先需要确定中间哈希状态和TPLENCL配置信息的元数据,该元数据由三个不同的字段组成:第一个字段TEE Type指定目标TEE平台的类型,而第二个字段CPU SVN表示TEE实现的安全版本号,第三个字段TPLENCL Version表示TPLENCL在目标TEE平台上的版本号。这三个字段中的每一个都对中间散列状态有直接影响。此外,如TPLENCL实施例方法中所述,为提高计算原生度量的效率,我们还提供了启动函数derivation_init(),用于计算具有不同大小的前缀页的中间哈希状态列表。
对于载荷程序,当目标TEE平台(例如SGX TPLENCL)的TEE运行时支持AoT模式时,我们可以选择wamrc编译器将WASM代码编译成AoT二进制文件来作为载荷程序,wamrc编译器是WAMR的一部分,兼容TPLENCL的VM内核(即iwasm)。因此,为了导出以AoT作为载荷程序的TPLENCL的原生度量,这里需要使用相同的编译器wamrc重现编译过程。
给定目标TEE平台信息和WASM或AoT二进制文件,我们首先检索在derivation_init()中预先计算的相应中间哈希状态列表,然后计算载荷程序应该在TPLENCL中硬编码的页面的索引,并从列表中获取对应的中间哈希状态。最后,使用输入的WASM或AoT二进制文件的内容继续度量过程,并使用目标TEE相应的加密哈希算法获得预期目标飞地的原生度量。
本实施例中,我们采用SHA256生成WASM的256位摘要作为跨平台度量,SHA-256是安全哈希算法2(SHA-2)系列之一,也是当今最安全的哈希函数之一。因此,生成的摘要可以识别输入的WASM代码,同时成功地保护它们的完整性。
为得到原生度量和跨平台度量的映射,需要通过原生度量机制实施例方法计算原生度量。进一步生成映射信息,包含跨平台度量,原生度量,及目标飞地的配置信息,所述目标飞地的配置信息包含四个字段:TPL生成时产生的TEE Type、CPU SVN、TPLENCL Version,以及Payload Format表示载荷程序的具体格式是WASM或AoT二进制文件派生的,从而表示跨平台代码是否经过进一步编译
【度量映射和验证实施例方法】
为了支持PORTMR框架,我们基于TEE飞地实现了MAPENCL以计算和维护跨平台度量与原生度量之间的映射。我们的实施例MAPENCL基于SGX和Occlum,并在TPLENCL端提供了两个WASI API用于WASM应用获取其自身的跨平台度量和原生度量。
在MAPENCL中,本实施例包括一个名为req_measurement_generation()的API,用于产生度量映射。在MAPENCL初始化后,首先调用derivation_init()计算中间哈希状态列表。随后,若需要支持AoT模式,MAPENCL需要复现编译过程,该编译过程要求是确定性且可复现的,以保证产生云平台相同的原生度量。本例中,我们的多次实验表示wamrc产生了相同的编译结果,因此我们认为采用的wamrc是符合确定性和可复现性的要求的。为保证编译过程可信,我们把wamrc放到飞地中,并采用Occlum来实现MAPENCL。度量映射计算完成后,MAPENCL通过定义好的映射结构将映射存储在本地,以实现对验证方的原生度量推导和跨平台度量推导服务。为了实现映射的高效查询,我们采用SQLite,一个实现小型、快速SQL数据库引擎的C语言库来索引映射。SQL数据库的完整性由Occlum的简单加密文件系统保护。此外,一个MAPENCL可以在使用MAGE等机制相互证明后与另一个MAPENCL共享其度量映射,以节省在另一个MAPENCL上生成度量映射所需的时间。因此,一组MAPENCL可以共享它们的度量映射并以分散的方式提供服务,而不是运行单个集中式MAPENCL。
在MAPENCL中,本实施例还包括一个名为req_measurement_mapping()的API,它将跨平台度量(或原生度量)、TEE类型、CPU SVN、TPLENCL版本和载荷程序格式作为输入,并在其数据库中搜索具有匹配字段的记录。如果未找到记录,MAPENCL将要求上传WASM应用程序以生成映射。如果找到这样的记录(映射),MAPENCL会生成一个报告,其中记录的SHA-256哈希摘要值作为其报告数据,将被发送到quote enclave以获得带有EPID签名的quote。随后,MAPENCL向英特尔认证服务(IAS)发送请求,并将quote作为IAS报告的请求正文。IAS报告包含基本字段,例如证书、包含quote和quote状态的响应主体以及响应主体的签名,TPLENCL将使用它来验证报告的有效性和MAPENCL的身份。IAS报告的上述三个字段与查询结果一起被发送回用户或发出请求的飞地。
在TPLENCL中,为便于WASM应用程序开发人员使用跨平台度量,本实施例引入并实现了两个WASI API,即get_native_measurement()和get_portable_measurement(),用于飞地内的WASM程序获取自身跨平台度量和飞地的原生度量。
对于SGX TPLENCL,get_native_measurement()利用Intel SGX SDK提供的sgx_create_report()API生成报告,并获取位于生成报告中的原生度量。get_portable_measurement()首先获取原生度量以发送给MAPENCL。由于飞地内不支持网络访问,本实例还引入了几个与网络相关的API以实现TPLENCL和MAPENCL之间的通信。MAPENCL以映射和IAS报告的三个字段(即证书、签名和响应正文)进行响应。对返回的映射结果进行验证具体包括以下五个步骤:
1.使用从IAS获得并预先硬编码到TPLENCL中的IAS根密钥来验证证书。如果成功,则保证IAS报告确实从IAS返回并提取证书密钥;
2.使用证书密钥对带有签名的响应体进行验证。如果成功,TPLENCL可以相信响应主体未被修改;
3.检查响应主体内的quote状态,确保quote的EPID签名被IAS正确验证。如果状态为OK,则quote有效;
4.将quote中的度量与预期的MAPENCL度量进行比较,该度量提前硬编码到TPLENCL的初始数据中,这使TPLENCL相信IAS报告是对MAPENCL请求的响应,而不是其他恶意飞地;
5.验证映射内的原生度量并将映射的散列与报告数据进行比较以确保映射的完整性。如果上述所有验证过程都成功,则TPLENCL可以信任返回的映射并返回其中的跨平台度量。
对于Penglai enclave TPLENCL,Penglai enclave SDK现有的get_report()API计算并返回飞地内存中实时内容的哈希摘要。但是,此哈希摘要很可能与具有初始内容的哈希摘要不同。为了解决这个问题,我们使用新的API get_initial_report()扩展了Penglai enclave SBI和Penglai enclave SDK,该API生成包含初始内容度量的报告。它由get_native_measurement()调用以获取本机度量。Penglai enclave get_portable_measurement()的流程与Intel SGX类似。与Intel SGX一样,Penglai enclave飞地也不支持网络访问。为了实现Penglai enclave TPLENC和MAPENC之间的网络通信,我们在Penglaienclave SDK和Penglai enclave SBI上扩展了五个套接字相关的API,包括eapp_socket()、eapp_socket_connect()、eapp_socket_send()、eapp_socket_recv()和eapp_socket_shutdown()。get_portable_measurement()的验证过程是使用WolfSSL库实现的,该库已集成到Penglai enclave SDK中。
由于只有在TPLENCL的前缀部分确定后才能确定预期的MAPENCL度量,因此我们将MAPENCL的度量硬编码到TPLENCL的后缀部分中。另一方面,由于原生度量的推导需要后缀部分的内容,MAPENCL可以在运行时获取这条信息(即它自身的度量)来完成推导。此外,为了简单起见,我们将载荷节的最后64字节保留为后缀部分以保存两个TPLENCL的MAPENCL度量,而不是新建一个预留区域。
本领域普通技术人员可以理解,实现上述实施例的全部或部分方法可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。
Claims (10)
1.一种异构可信执行环境下飞地的跨平台度量验证方法,应用于直接验证异构可信执行环境下的飞地,所述飞地利用TEE运行时容器运行跨平台的载荷程序,异构云平台运行所述飞地,其特征在于,所述方法包括:
M1云服务提供商对跨平台应用程序构建生成载荷程序并构建飞地;
M2可信度量映射对跨平台应用程序计算跨平台度量与异构TEE下飞地的原生度量;
M3验证方利用预先持有的目标跨平台应用程序的跨平台度量,通过可信度量映射对目标飞地进行远程认证。
2.根据权利要求1所述异构可信执行环境下飞地的跨平台度量验证方法,其特征在于,所述可信度量映射服务的实现形式还包括:
验证方本地编译和计算:分别生成跨平台应用程序的跨平台度量和利用原生度量的生成机制编译和计算原生度量,从而生成二者映射;
区块链上的智能合约:利用智能合约模拟原生度量的生成,在区块链上记录跨平台度量与原生度量的可信映射。
3.根据权利要求1所述异构可信执行环境下飞地的跨平台度量验证方法,其特征在于,所述M1云服务提供商对跨平台应用程序构建飞地,具体包括:
S11所述ISV将跨平台应用程序上传所述云服务提供商;
S12所述云服务提供商确定飞地的配置信息,该飞地的配置信息由ISV指定,若无指定则由云服务提供商确定;
S13若所述飞地的配置信息中指定程序需经过进一步编译,则由云服务提供商对跨平台应用程序进行编译得到(对应平台的)载荷程序,若无需进一步编译,载荷程序为原跨平台应用程序;
S14所述云服务提供商载入载荷程序并建立飞地,所述飞地将在异构云平台运行;
S15所述云服务提供商返回目标飞地的配置信息。
4.根据权利要求3所述异构可信执行环境下飞地的跨平台度量验证方法,其特征在于,所述S12异构TEE下飞地的配置信息,具体包括:TEE架构,处理器安全版本号,飞地版本号,程序是否经过进一步编译。
5.根据权利要求1所述异构可信执行环境下飞地的跨平台度量验证方法,其特征在于,所述M2所述可信度量映射对跨平台应用程序计算跨平台度量与异构TEE下飞地的原生度量的映射,以基于TEE飞地实现的可信度量映射为例,具体包括以下步骤:
S21所述可信度量映射预先产生异构TEE下飞地的中间哈希摘要;
S22所述ISV对可信度量映射进行远程认证,并将跨平台应用程序和飞地的配置信息上传可信度量映射;
S23可信度量映射用哈希摘要算法对跨平台应用程序计算摘要,记录摘要结果作为跨平台度量;
S24若所述飞地的配置信息中指定程序需经过进一步编译,则所述可信度量映射根据飞地的配置信息可选地进一步编译跨平台应用程序,得到(对应平台的)载荷程序,若无需进一步编译,载荷程序为原跨平台应用程序;
S25所述可信度量映射以载荷程序为输入,从中间哈希摘要继续哈希摘要过程,最终得到异构TEE下飞地的原生度量,所述哈希摘要过程使用的算法对应异构TEE生成原生度量的算法;
S26所述可信度量映射存储跨平台度量、异构TEE的原生度量、异构TEE的飞地的配置信息的映射到数据库,以供远程认证过程中进行查询。
6.根据权利要求5所述异构可信执行环境下飞地的跨平台度量验证方法,其特征在于,S21所述可信度量映射预先产生异构TEE下飞地的中间哈希状态,具体包括:在异构TEE的飞地中预留区域用于存储载荷程序代码,执行异构TEE加载和度量飞地的过程,在即将加载和度量所述载荷节时停止摘要,并输出已计算得出的中间哈希状态。
7.根据权利要求1所述异构可信执行环境下飞地的跨平台度量验证方法,其特征在于,M3所述验证方利用预先持有的目标跨平台应用程序的跨平台度量,通过可信度量映射对目标飞地进行远程认证,具体包括以下步骤:
S31所述验证方遵循传统远程认证协议,获取目标飞地的quote;
S32a所述验证方从目标飞地的quote中提取飞地的原生度量,向所述可信度量映射发起查询请求并发送原生度量和飞地的配置信息;
S33a所述可信度量映射处理查询请求,在数据库中查找飞地对应跨平台应用程序的跨平台度量,发送msg1给验证方,所述msg1包含查询结果;
S34所述可信度量映射发送msg2给验证方,所述msg2包含自身quote和查询结果的摘要值以供验证msg1完整性;
S35所述验证方通过msg2对可信度量映射进行远程认证,通过查询结果的摘要值验证msg1查询结果的完整性;
S36a验证通过后,所述验证方通过对比msg1查询结果与期望的跨平台度量确定是否为目标飞地。
8.根据权利要求7所述异构可信执行环境下飞地的跨平台度量验证方法,其特征在于,除基于对比期望跨平台度量之外,验证方法还包括基于对比期望原生度量,与权利要求6区别在于S32a,S33a,S35a,具体包括:
S32b验证方向所述可信度量映射发起查询请求并发送期望跨平台度量和飞地的配置信息;
S33b所述可信度量映射在数据库中查找飞地对应跨平台应用程序的原生度量,发送msg1给验证方,所述msg1包含查询结果;
S36b验证通过后,所述验证方通过对比msg1查询结果与飞地quote中的原生度量确定其真实身份。
9.一种异构可信执行环境下飞地的跨平台度量验证系统,其特征在于,包括:
可信度量映射,包括映射生成模块和数据库模块,分别用于产生和储存跨平台度量与原生度量的映射;
目标飞地,用于运行目标应用和实现远程认证的功能。
10.根据权利要求9所述的异构可信执行环境下飞地的跨平台度量验证系统,其特征在于,包括:所述目标飞地,包括:
目标应用程序模块,用于在异构可信执行环境下的飞地中作为载荷运行ISV提供的应用程序;
目标应用程序的运行时模块,用于执行载荷程序,提供载荷程序所需运行时支持;
验证服务模块,用于提供异构可信执行环境下的飞地与验证方进行远程认证的相关接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310948002.2A CN117411662A (zh) | 2023-07-31 | 2023-07-31 | 一种异构可信执行环境下飞地的跨平台度量验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310948002.2A CN117411662A (zh) | 2023-07-31 | 2023-07-31 | 一种异构可信执行环境下飞地的跨平台度量验证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117411662A true CN117411662A (zh) | 2024-01-16 |
Family
ID=89496872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310948002.2A Pending CN117411662A (zh) | 2023-07-31 | 2023-07-31 | 一种异构可信执行环境下飞地的跨平台度量验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117411662A (zh) |
-
2023
- 2023-07-31 CN CN202310948002.2A patent/CN117411662A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Anati et al. | Innovative technology for CPU based attestation and sealing | |
US10771264B2 (en) | Securing firmware | |
US7711960B2 (en) | Mechanisms to control access to cryptographic keys and to attest to the approved configurations of computer platforms | |
US9288155B2 (en) | Computer system and virtual computer management method | |
JP5497171B2 (ja) | セキュア仮想マシンを提供するためのシステムおよび方法 | |
CN111262889B (zh) | 一种云服务的权限认证方法、装置、设备及介质 | |
KR102618665B1 (ko) | 블록체인을 사용한 버전 이력 관리 | |
US20030037237A1 (en) | Systems and methods for computer device authentication | |
KR20170088858A (ko) | 애플리케이션 무결성 검증을 제공하기 위한 방법 및 디바이스 | |
KR20170089859A (ko) | 애플리케이션 무결성의 검증을 제공하기 위한 방법 및 디바이스 | |
CN101226569A (zh) | 在虚拟机中验证代码模块的方法及装置 | |
CN108140092B (zh) | 具有多个可信根的设备 | |
Ménétrey et al. | WaTZ: A trusted WebAssembly runtime environment with remote attestation for TrustZone | |
Chen et al. | {MAGE}: Mutual Attestation for a Group of Enclaves without Trusted Third Parties | |
KR20170087887A (ko) | 애플리케이션 무결성의 검증을 제공하는 방법 및 디바이스 | |
CN115580413B (zh) | 一种零信任的多方数据融合计算方法和装置 | |
US20220224546A1 (en) | Software integrity protection method and apparatus, and software integrity verification method and apparatus | |
US20220006637A1 (en) | File system supporting remote attestation-based secrets | |
CN110704368A (zh) | 基于fpga的安全智能合约处理器的高效运算方法及装置 | |
JP6769999B2 (ja) | セキュア計算環境 | |
CN113448681B (zh) | 一种虚拟机监控器公钥的注册方法、设备和存储介质 | |
CN117411662A (zh) | 一种异构可信执行环境下飞地的跨平台度量验证方法及系统 | |
Xu et al. | A symbolic model for systematically analyzing TEE-based protocols | |
England et al. | Towards a programmable TPM | |
Niemi et al. | Platform attestation in consumer devices |
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 |