用于进程间通信的方法、装置、电子设备和介质与流程

文档序号:37621687发布日期:2024-04-18 17:36阅读:8来源:国知局
用于进程间通信的方法、装置、电子设备和介质与流程

本公开的实施例主要涉及计算机,尤其是操作系统技术。更具体地,本公开的实施例涉及用于进程间通信的方法、装置、电子设备、计算机可读存储介质以及计算机程序产品。


背景技术:

1、可信执行环境(trusted execution environment,简称“tee”)是计算机系统中通过软、硬件构造的安全区域,通过保证加载到该区域的代码和数据的完整性和隐私性,实现对代码执行和数据资产的保护。飞地进程(enclave)是可信执行环境中运行的可信应用,由可信硬件和可信软件提供其运行环境。

2、可信执行环境具有更强的隔离机制,因而对运行在可信执行环境中的飞地进程之间的通信引入了更大的限制。对于云场景来说,运行在云上的飞地进程之间的通信是至关重要的性能因素。


技术实现思路

1、本公开的实施例提供了用于可信执行环境的飞地进程之间的进程间通信方案。

2、根据本公开的第一方面,提供了一种用于进程间通信的方法。方法包括:向可信执行环境的服务飞地进程分配至少一个令牌;基于至少一个令牌,将服务飞地进程的虚拟地址范围映射到可信执行环境的至少一个安全内存区域,每个安全内存区域与至少一个令牌中的一个令牌绑定;向可信执行环境的客户飞地进程分配至少一个令牌中的令牌;将客户飞地进程的虚拟地址范围映射到与令牌绑定的安全内存区域;以及基于服务飞地进程的虚拟地址范围和客户飞地进程的虚拟地址范围到安全内存区域的映射,执行服务飞地进程和客户飞地进程的进程间通信。

3、以此方式,能够基于令牌和可信执行环境中的安全内存区域之间的绑定关系,分别建立服务飞地进程和客户飞地进程的虚拟地址范围到相同或共享安全内存区域的映射,从而建立了服务飞地进程和客体飞地进程之间的安全连接。由于令牌分配和地址映射过程是可信的,并且在可信执行环境下,无令牌的其他进程无法访问与令牌绑定的共享安全内存区域,所以此后服务飞地进程和客户飞地进程不需要在每次通信时都执行特权态下的调用和鉴权。由此实现了服务飞地进程和客户飞地进程之间的异步直通通信,提高了可信执行环境的飞地进程之间的通信性能。

4、在第一方面的一些实施例中,向可执行环境的服务飞地进程分配至少一个令牌可以包括:启动用于进程间通信的通信管理器飞地进程;响应于接收到服务飞地进程的注册服务的请求,通信管理器飞地进程获取用于该服务的至少一个令牌;以及通信管理器飞地进程将用于该服务的至少一个令牌分配给服务飞地进程。以此方式,服务飞地进程可以基于服务来获取与安全内存区域绑定的令牌,由此客户飞地进程也可以基于服务来获取这些令牌中的一个令牌。因此,实现了服务飞地进程和客户飞地进程之间的基于服务的进程间通信。

5、在第一方面的一些实施例中,向可信执行环境的客户飞地进程分配令牌可以包括:响应于接收到客户飞地进程的针对服务的请求,通信管理器飞地进程将至少一个令牌中的令牌分配给客户飞地进程。以此方式,客户飞地进程可以获取与所期望的服务相关联的令牌,该令牌是服务飞地进程已经获取的并绑定到特定共享安全内存区域。由此,客户飞地进程和服务飞地进程可以利用相同令牌建立到特定共享安全内存区域的映射以用于后续的异步直通通信。

6、在第一方面的一些实施例中,通信管理器飞地进程可以是在用户态运行的飞地进程,其中,基于可信执行环境的安全监控器的控制,通信管理器飞地进程分配服务飞地进程的至少一个令牌和客户飞地进程的令牌。相比于现有通信方案依赖于特权态的调用和鉴权,将通信管理器设置为在用户态下运行能够有效降低系统的可信计算基,保证了更高的系统安全性。另外,在建立飞地进程之间的安全连接之后就不需要通信管理器和特权管理的参与,从而达到更高的通信性能。

7、在第一方面的一些实施例中,将服务飞地进程的虚拟地址范围映射到可信执行环境的至少一个安全内存区域可以包括:针对至少一个令牌中的每个令牌,在可信执行环境的特权态创建与每个令牌绑定的安全内存区域,得到至少一个安全内存区域;以及将服务飞地进程的虚拟地址范围映射到至少一个安全内存区域。以此方式,能利用可信执行环境的软件和硬件确保服务飞地进程对安全内存区域的访问的安全性。

8、在第一方面的一些实施例中,方法还可以包括:基于可信执行环境的寄存器的值,确定用于可信执行环境的进程间通信的地址空间;以及在地址空间中确定服务飞地进程的虚拟地址范围和客户飞地进程的虚拟地址范围。以此方式,使用硬件方式定义专门用于可信执行环境的进程间通信的虚拟地址空间。在飞地进程访问寄存器所定义的虚拟地址空间中的虚拟地址时,能够在硬件上保护与这样的虚拟地址对应的内存的安全性,而且这样的硬件保证对于飞地进程来说是无感知的,不影响飞地进程的执行效率。

9、在第一方面的一些实施例中,方法还可以包括:生成可信执行环境的全局共享密钥;以及响应于服务飞地进程或客户飞地进程访问安全内存区域,使用全局共享密钥进行加密和解密。以此方式,飞地进程可以使用统一的密钥,在保护内存数据隐私的同时简化了内存数据的加解密开销。

10、在第一方面的一些实施例中,全局共享密钥可以基于可信执行环境的硬件生成或由硬件密钥得到,并且使用全局共享密钥进行加密和解密可以包括:经由可信执行环境的硬件,使用全局共享密钥进行加密和解密。以此方式,使用硬件方式实现了内存数据的隐私保护,而且这样的硬件保证对于飞地进程来说是无感知的,不影响飞地进程的执行效率。如果飞地进程要访问共享安全内存区域进行进程间通信,例如通过硬件寄存器的值来确定,则使用飞地进程的全局硬件密钥执行内存加解密,如果在访问其他内存区域,则使用私有硬件密钥执行内存加解密。

11、在第一方面的一些实施例中,执行服务飞地进程和客户飞地进程的进程间通信可以包括:基于客户飞地进程的虚拟地址范围到安全内存区域的映射,将客户飞地进程的服务请求写入安全内存区域;更新安全内存区域的状态为指示存在服务请求;响应于状态指示存在服务请求,基于服务飞地进程的虚拟地址范围到安全内存区域的映射,由服务飞地进程读取服务请求以进行处理;将服务飞地进程的针对服务请求的处理结果写入安全内存区域;以及更新安全内存区域的状态为指示处理已完成,以使客户飞地进程获取处理结果。以此方式,实现了服务飞地进程和客户飞地进程之间的高可靠通信。

12、在第一方面的一些实施例中,客户飞地进程是第一客户飞地进程,被分配给第一客户飞地进程的令牌是第一令牌,与第一令牌绑定的安全内存区域是第一安全内存区域,方法还可以包括:向可信执行环境的第二客户飞地进程分配至少一个令牌中的第二令牌;将第二客户飞地进程的虚拟地址范围映射到与第二令牌绑定的第二安全内存区域;以及基于服务飞地进程的虚拟地址范围和第二客户飞地进程的虚拟地址范围到第二安全内存区域的映射,执行服务飞地进程和第二客户飞地进程之间的通信。在建立服务飞地进程和客户飞地进程之间的连接之后不再需要特权级调用和鉴权,因此,服务飞地进程能够同时与多个客户飞地进程进行并发的连接和通信,提高了通信性能。

13、在第一方面的一些实施例中,方法还可以包括:轮询第一安全内存区域和第二安全内存区域;以及响应于第一安全内存区域和第二安全内存区域中的任一个的状态指示存在服务请求,服务飞地进程读取对应的服务请求以进行处理。以此方式,服务飞地进程无需考虑异步通信的细节,能够直接使用类似同步函数调用的接口。

14、根据本公开的第二方面,提供了一种用于进程间通信的装置,包括:第一分配单元,被配置为向可信执行环境的服务飞地进程分配至少一个令牌;第一映射单元,被配置为基于至少一个令牌,将服务飞地进程的虚拟地址范围映射到可信执行环境的至少一个安全内存区域,每个安全内存区域与至少一个令牌中的一个令牌绑定;第二分配单元,被配置为向可信执行环境的客户飞地进程分配至少一个令牌中的令牌;第二映射单元,被配置为将客户飞地进程的虚拟地址范围映射到与令牌绑定的安全内存区域;以及进程间通信元,被配置为基于服务飞地进程的虚拟地址范围和客户飞地进程的虚拟地址范围到安全内存区域的映射,执行服务飞地进程和客户飞地进程的进程间通信。

15、根据本公开的第三方面,提供了一种电子设备,包括处理器,处理器包括多个处理核;以及存储器;多个处理核中的至少一个处理核被配置用于执行存储器中的指令,使得电子设备执行根据本公开的第一方面的方法。

16、根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行使处理器执行根据本公开的第一方面的方法。

17、根据本公开的第五方面,提供了一种计算机程序产品,包括机器可执行指令,机器可执行指令在由设备执行时使设备执行根据本公开的第一方面的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1