CN115048642B - 多可信执行环境下可信应用间的通信方法及电子设备 - Google Patents
多可信执行环境下可信应用间的通信方法及电子设备 Download PDFInfo
- Publication number
- CN115048642B CN115048642B CN202111436296.8A CN202111436296A CN115048642B CN 115048642 B CN115048642 B CN 115048642B CN 202111436296 A CN202111436296 A CN 202111436296A CN 115048642 B CN115048642 B CN 115048642B
- Authority
- CN
- China
- Prior art keywords
- execution environment
- trusted
- proxy module
- trusted execution
- request
- 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.)
- Active
Links
Images
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种多可信执行环境下可信应用间的通信方法及电子设备,该方法包括:第二代理模块接收第二可信应用的第一请求;向预设共享内存发送第一请求并生成第一切换指令;第一切换指令用于切换电子设备切换当前的可信执行环境至第一可信执行环境;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;基于第一代理模块发送的第二切换指令,获取预设共享内存中的第一代理模块发送的第一请求响应;第二代理模块将第一请求响应发送至第二可信应用。进而依据预设的共享内存以及可信执行环境中的第一代理模块和第二代理模块,不需要对可信执行环境中的可信应用进行任何修改配置,就可以实现不同可信执行环境间的可信应用通信。
Description
技术领域
本申请实施例涉及定时领域,尤其涉及一种多可信执行环境下可信应用间的通信方法及电子设备。
背景技术
目前,随着通信技术的不断发展,智能终端的应用也越来越广泛,为了保护用户营私和信息安全,智能终端设备中(例如:手机,平板电脑等)通常包含富执行环境(richexecution environment,REE)和可信执行环境(trusted executionenvironment,TEE)。其中,REE也称为普通执行环境,包括运行在通用处理器上的富执行环境操作系统(richexecution environment operating system,REE OS)及客户端应用(clientapplication,CA)。TEE也称为安全执行环境,可以运行可信执行环境操作系统(trustedexecution environment operating system,TEE OS),为CA提供可信赖的安全服务(例如指纹比对服务,密码校验服务,人脸比对服务等),这些安全服务可以以可信应用(trustapplication,TA)的形式运行在TEE OS上。
发明内容
本申请提供一种多可信执行环境下可信应用间的通信方法及电子设备,用以实现不同可信执行环境下可信应用间的通信。
第一方面,本申请提供一种多可信执行环境下可信应用间的通信方法,应用于电子设备,所述电子设备包括:第一可信执行环境与第二可信执行环境;所述第一可信执行环境包括:第一可信应用与第一代理模块;所述第二可信执行环境中包括:第二可信应用以及第二代理模块;所述方法包括:
所述第二代理模块接收所述第二可信应用的第一请求,所述第一请求用于向第一可信执行环境中的第一可信应用发送请求数据;
所述第二代理模块向预设共享内存发送第一请求并生成第一切换指令;所述第一切换指令用于切换所述电子设备切换当前的可信执行环境至第一可信执行环境;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;
所述第二代理模块基于所述第一代理模块发送的第二切换指令,获取所述预设共享内存中的所述第一代理模块发送的第一请求响应,所述第一请求响应为所述第一可信应用依据所述第一代理模块基于所述第一切换指令从所述预设共享内存中获取的第一请求得到的;所述第二切换指令用于切换所述电子设备切换当前的可信执行环境至第二可信执行环境;
所述第二代理模块将所述第一请求响应发送至所述第二可信应用。进而,该实施例中,可以依据预设的共享内存,以及第一可信执行环境和第二可信执行环境中设置的第一代理模块和第二代理模块,实现不同可信执行环境中的可信应用间的通信。且该通信方式不需要对可信执行环境中的可信应用进行修改。
在一些实施例中,所述第二代理模块向预设共享内存发送第一请求并生成第一切换指令,包括:
若所述第二代理模块确定所述第一请求验证通过预设第一白名单,则所述第二代理模块向预设共享内存发送第一请求并生成第一切换指令。
本实施例中,第二代理模块在向预设共享内存发送第一请求时,还会对第一请求进行验证,进而确保该第一请求符合第一可信执行环境的访问条件。
在一些实施例中,所述第一请求包括:第一目标可信应用标识以及第一目标可信执行环境标识;所述第二代理模块确定所述第一请求验证通过,包括:
若所述第二代理模块确定所述第一请求中的第一目标可信应用标识以及第一目的可信执行环境标识符合预设第一白名单,则确定验证通过。
本实施例中,第二代理模块在向预设共享内存发送第一请求时,可以通过对第一请求中的第一目标可信应用标识以及第一目标可信执行环境标识进行验证,进而确保该第一请求符合第一可信执行环境的访问条件。
在一些实施例中,所述第一请求响应为所述第一代理模块确定所述第一请求响应验证通过后发送至预设内存的。
在一些实施例中,所述方法还包括:
所述第二代理模块申请预设共享内存,并将所述预设共享内存的地址发送至第一代理模块。
第二方面,本申请提供一种多可信执行环境下可信应用间的通信方法,应用于电子设备,所述电子设备包括:第一可信执行环境与第二可信执行环境;所述第一可信执行环境包括:第一可信应用与第一代理模块;所述第二可信执行环境中包括:第二可信应用以及第二代理模块;所述方法包括:
所述第一代理模块基于所述第二代理模块发送的第一切换指令,获取预设共享内存中的第一请求;所述第一请求为所述第二可信应用通过所述第二代理模块发送至所述预设内存的,用于请求向所述第一可信执行环境中的第一可信应用发送请求数据;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;所述第一切换指令用于切换所述电子设备切换当前的可信执行环境至第一可信执行环境;
所述第一代理模块向所述第一可信应用发送所述第一请求;
所述第一代理模块向所述预设共享内存发送第一请求响应并生成第二切换指令,以使所述第二代理模块获取所述第一请求响应;所述第一请求响应为第一可信应用依据所述第一请求得到的;所述第二切换指令用于切换所述电子设备切换当前的可信执行环境至第二可信执行环境。
在一些实施例中,所述第一代理模块向预设共享内存发送第一请求响应并生成第二切换指令,包括:
若所述第一代理模块确定所述第一请求响应验证通过预设第二白名单,则所述第一代理模块向预设共享内存发送第一请求响应并生成第二切换指令。
在一些实施例中,所述第一请求响应包括:第二目标可信应用标识,以及第二目标可信执行环境标识;所述第一代理模块确定所述第一请求响应验证通过预设第二白名单,包括:
若所述第一代理模块确定所述第一请求响应中的第二目标可信应用标识以及第二目的可信执行环境标识符合预设第二白名单,则确定验证通过。
第三方面,本申请提供一种电子设备,包括:第一可信执行环境与第二可信执行环境;所述第一可信执行环境包括:第一可信应用与第一代理模块;所述第二可信执行环境中包括:第二可信应用以及第二代理模块;
所述第二代理模块,用于接收所述第二可信应用的第一请求,所述第一请求用于向第一可信执行环境中的第一可信应用发送请求数据;
所述第二代理模块,用于向预设共享内存发送第一请求并生成第一切换指令;所述第一切换指令用于切换所述电子设备切换当前的可信执行环境至第一可信执行环境;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;
所述第二代理模块,用于基于所述第一代理模块发送的第二切换指令,获取所述预设共享内存中的所述第一代理模块发送的第一请求响应,所述第一请求响应为所述第一可信应用依据所述第一代理模块基于所述第一切换指令从所述预设共享内存中获取的第一请求得到的;所述第二切换指令用于切换所述电子设备切换当前的可信执行环境至第二可信执行环境;
所述第二代理模块,用于将所述第一请求响应发送至所述第二可信应用。
第四方面,本申请提供一种电子设备,包括:第一可信执行环境与第二可信执行环境;所述第一可信执行环境包括:第一可信应用与第一代理模块;所述第二可信执行环境中包括:第二可信应用以及第二代理模块;
所述第一代理模块,用于基于所述第二代理模块发送的第一切换指令,获取预设共享内存中的第一请求;所述第一请求为所述第二可信应用通过所述第二代理模块发送至所述预设内存的,用于请求向所述第一可信执行环境中的第一可信应用发送请求数据;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;所述第一切换指令用于切换所述电子设备切换当前的可信执行环境至第一可信执行环境;
所述第一代理模块,用于向所述第一可信应用发送所述第一请求;
所述第一代理模块,用于向所述预设共享内存发送第一请求响应并生成第二切换指令,以使所述第二代理模块获取所述第一请求响应;所述第一请求响应为第一可信应用依据所述第一请求得到的;所述第二切换指令用于切换所述电子设备切换当前的可信执行环境至第二可信执行环境。
第五方面,本申请提供一种计算机可读存储介质,所述计算机存储介质存储有计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行第一方面任一项所述的方法,或者,执行时实现第二方面任一项所述的方法。
第六方面,本申请提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时,实现第一方面任一项所述的方法,或者,执行时实现如第二方面任一项所述的方法。
本申请一些实施例提供了一种多可信执行环境下可信应用间的通信方法及电子设备,第二代理模块接收第二可信应用的第一请求;向预设共享内存发送第一请求并生成第一切换指令;第一切换指令用于切换电子设备切换当前的可信执行环境至第一可信执行环境;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;基于第一代理模块发送的第二切换指令,获取预设共享内存中的第一代理模块发送的第一请求响应;第二代理模块将第一请求响应发送至第二可信应用。进而依据预设的共享内存以及可信执行环境中的第一代理模块和第二代理模块,不需要对可信执行环境中的可信应用进行任何修改配置,就可以实现不同可信执行环境间的可信应用通信。
附图说明
图1为本申请提供的一种电子设备的框架示意图;
图2为本申请提供的一种电子设备中的交互流程示意图;
图3为本申请实施例提供的第二种电子设备的框架示意图;
图4为本申请实施例提供的第二种电子设备的交互流程示意图;
图5A为本申请实施例适用的电子设备的一种结构示意图;
图5B为本申请实施例适用的电子设备的软件结构框图;
图6为本申请实施例提供的一种可信应用通信的流程路径示意图;
图7为本申请实施例提供的一种共享内存的注册的流程图;
图8为本实施例提供的一种可信应用的通信流程交互示意图;
图9为本申请实施例提供的又一种可信应用通信的流程交互示意图;
图10为本申请实施例提供的又一种可信应用通信的流程路径示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与本申请的一些方面相一致的装置和方法的例子。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
随着电子设备的智能化的不断发展,电子设备也涉及到越来越多的用户隐私、商业隐私等信息。为了确保电子设备的安全运行,保证隐私信息不受篡改,通常采用TEE(Trusted execution environment,可信执行环境)技术来确保隐私信息的安全性。
图1为本申请实施例提供的一种电子设备的框架示意图。其中,该框架中包括:TEE可信执行环境(在本文中的一些实施例中也称之为第一TEE)以及REE(Rich ExecutionEnvironment,富执行环境)。
TEE与REE为两个独立的运行环境,其中,REE为电子设备中的普通执行环境。在REE中可以运行客户端应用21(client appl icat ion,CA)和富执行环境操作系统22(RichExecution Environment operating system,REE OS)。客户端应用21中包括可以为用户提供可信应用的应用。当需要调用可信应用时,富执行环境操作系统22通过可信执行环境客户端应用编程接口(applicationprogramming interface,API)与可信执行环境操作系统22(trusted execut ion environment operating system,TEE OS)通信,请求可信应用支持。
富执行环境操作系统22中包括驱动,用于支持系统与硬件设备之间完成数据传送,以及支持REE与TEE之间可信应用的交互工作。例如可以包括可信应用模块(可信应用驱动),时钟驱动等。
ARM(Advanced RISC Machines)将TrustZone技术与Coretex-A处理器集成,提供了能够支持完全可信执行环境TEE以及安全感知应用程序和安全服务的平台,即将TEE作为为电子设备中的可信执行环境,为REE侧提供可信应用。TEE为一个安全区域,在该独立的环境中运行可信应用31(trust application,TA)以及可信执行环境操作系统32(trustedexecution environment operating system,TEE OS),可信应用程序31运行于采用基于TrustZone技术的可信执行环境操作系统32之上,与REE侧的操作系统分开,可防止软件/恶意软件攻击。并且TrustZone技术可支持系统切换到安全模式,以提供硬件支持的隔离。此外,可信执行环境操作系统32通过调用可信执行环境内部应用编程接口与富执行环境操作系统22进行通信,提供可信应用支持。
此外,该框架中还包括有安全监视器23(Security Monitor)。另外一方面,ARM也推出了Virtualization Extension技术(虚拟化扩展技术)用于支持ARM平台的硬件虚拟机化,从而在正常运行环境也能实现为不同的运行环境提供硬件的隔离。此外,ARMv8开始支持四种EL(异常级别,Exception Level),分别为从EL0到EL3,并且异常级别后面的数字越大,则,安全等级越高。一般来说,应用程序运行在EL0层,系统内核(在一些实施例中称为操作系统)运行在EL1层,hypevisor(虚拟机管理器)运行在EL2层,Secure Monitor(安全监视器)运行在EL3层。这些技术的发展使得基于虚拟机的TEE环境得以实现,从而实现更为复杂的安全场景。例如,在上述框架示意图中,其中可信应用31以及客户端应用21位于框架中的EL0层,可信执行环境操作系统32以及富执行环境操作系统22位于框架中的EL1层,安全监视器23位于框架中的EL3层。
在一种可能的情况中,安全监视器23可以设置在ARM可信固件(arm trustedfirmware,ATF)中。
图2为本申请提供的一种电子设备中的交互流程示意图。在图1所示的结构的基础上,图2中通过箭头以及标号①至标号⑧表明了客户端应用调用可信应用的具体流程。具体地,当客户端应用需要调用可信应用时,客户端应用通过调用富执行环境操作系统的API接口(例如,图中的富执行环境侧的GP TEE cl ient API接口221,该GP TEE client API接口221用于为客户端应用21调用可信执行环境中的TA提供接口)向富执行环境操作系统22发出申请,经过富执行环境操作系统22中的内核驱动后通过调用SMC(Secure Monitor Call)指令将客户端应用21的申请发送至安全监视器23,之后经安全监视器23解析后发送至可信执行环境操作系统32;经过可信执行环境操作系统32的分发之后,发送至对应的TA(例如,图中可信执行环境操作系统32可以通过调用GP TEE Internal API接口321,发送至对应的TA)。TA对接收到的请求进行处理之后,通过调用可信执行环境的接口将处理结果发送至可信执行环境操作系统32,并且经可信执行环境操作系统32调用SMC指令后,将处理结果返回至安全监视器23,经安全监视器23解析之后,将处理结果返回至富执行环境操作系统22,之后由富执行环境操作系统22处理结果发送至对应的客户端应用21。
在图1所示的电子设备的框架示意图的基础上,在一些示例中,电子设备的框架示意图中还包括有至少一个第二TEE——HTEE(HTEE仅是一种名称以指代该第二TEE,以区别于上述第一TEE,第一TEE例如高通公司提供的QTEE),该HTEE为基于虚拟机(即ARM框架中的EL2层虚拟机管理器层)实现的另一可信环境。图3为本申请实施例提供的第二种电子设备的框架示意图。在图1所示的结构的基础上,图3框架示意图中,包括有REE、第二TEE(如HTEE)、第一TEE(如QTEE)。图3中的QTEE环境与图1中的TEE为同一环境。
其中,HTEE为电子设备中的另一个可信执行环境,可以为REE侧提供可信应用。HTEE为一个安全区域,包括有在该独立的环境中运行可信应用41(trust application,TA)以及第二可信执行环境操作系统42(图中,用HTEE OS表示)。需要说明的是,此处的HTEE可信执行环境与TEE可信执行环境为两个独立的环境,HTEE为基于虚拟机管理器24(hypervisor)所构建的可信执行环境。两个可信执行环境中对应有各自的可信应用31及可信应用41。
图4为本申请实施例提供的第二种电子设备的交互流程示意图。当客户端应用21需要调用可信应用时,若该客户端应用对应的可信应用位于HTEE环境中时(即图中的TA[41])此时该客户端应用21通过调用API接口向富执行环境操作系统22(即,图中的富执行环境操作系统22)发出申请,之后经富执行环境操作系统22中的内核驱动后通过调用HVC(hypervi sor call)将客户端应用21申请发送至hypervi sor,经过hypervisor处理后发送至第二可信执行环境操作系统42;之后通过第二可信执行环境操作系统42的分发处理之后,发送至对应的TA(即,图中的可信应用41)。TA对接收到的请求进行处理之后,将处理结果返回至第二可信执行环境操作系统42,并通过第二可信执行环境操作系统42调用HVC指令发送至hypervisor;经hypervisor处理后,将TA的处理结果返回至富执行环境操作系统22;之后由富执行环境操作系统22将处理结果发送至对应的客户端应用21。第二可信执行环境需要访问对第一可信执行环境中的资源进行访问时,第二可信执行环境侧的TA可以通过SMC指令发送到第一可信执行环境进行交互。此外,在第二可信执行环境操作系统42与可信应用41交互时,可以通过GP TEE Internal API接口421进行交互。
当客户端应用21需要调用的可信应用位于TEE环境中时,此时相关处理过程可以参见图2中的相关处理流程,此处不再赘述。
一些示例中,电子设备中还包括硬件平台,用于支撑电子设备运行,以及存储安全硬件资源。例如,安全硬件资源可以包括:安全内存,以及硬件钥匙,安全键盘等。在本申请的一些实施例中,安全内存用于存储备份的TEE OS镜像,以及用于存放可信应用相关数据等。
图5A为本申请实施例适用的电子设备的一种结构示意图。如图5A所示,该电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。可以理解的是,本实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件,或软件和硬件的组合实现。
在本申请的一些实施例中,处理器110的运行环境可以包括:REE、TEE以及至少一个HTEE。其中,TEE中运行有可信应用程序31以及可信执行环境操作系统32,HTEE中运行有可信应用程序41以及第二可信执行环境操作系统42,REE中运行有客户端应用21以及富执行环境操作系统22。REE用于接收用户通过客户端应用发起的可信应用请求,并根据该可信应用请求调用TEE或者HTEE中的可信应用TA,并由TA返回相应的结果。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图5B为本申请实施例适用的电子设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图5B所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。在本申请的一些实施例中,该应用程序层中的应用运行在电子设备的EL0层。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图5B所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。在本申请的一些实施例中,安卓系统中的应用程序框架层对应分布于电子设备中的EL0与EL1层中。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。在本申请的一些实施例中,安卓系统中的安卓运行时和系统库可均对应分布于电子设备中的EL0与EL1层中。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。在本申请的一些实施例中,内核层对应分布于电子设备的EL1层。
在一些实施例中,当电子设备中的包括有多个可信执行环境时,即在电子设备原有的基于ARM的TrustZone硬件技术实现的可信执行环境(第一可信执行环境,在本申请实施例中用QTTEE标识)的基础上,又基于虚拟机(即ARM框架中的EL2层虚拟机管理器层)实现的其余一个或多个可信执行环境(即第二可信执行环境,在本申请实施例中用HTEE标识)时,为了实现第二可信执行环境与第一可信执行环境中的可信应用之间的通信,本申请提供了以下两种方式。
在一种可能的实现方式中,在电子设备中新添加第二可信执行环境之后,第二可信执行环境中的可信应用可以通过富执行环境的转发进而实现与第一可信执行环境中的可信应用的通信。
具体地,图6为本申请实施例提供的一种可信应用通信的流程路径示意图。图中电子设备中设置有富执行环境(REE)、第一可信执行环境(HTEE)以及第二可信执行环境(QTEE)。第二可信执行环境中运行有可信应用2,在第一可信执行环境中运行有可信应用1,富执行环境中运行有客户端应用1。并且,客户端应用1可以调用第一可信执行环境中的可信应用1,二者之间可以相互通信。图中的标号①-⑧代表了数据发送的时序。当第二可信执行环境中的可信应用2需要与第一可信执行环境中的可信应用1进行通信时,首先,第二可信执行环境中的可信应用2需要通过hypervisor层将可信应用的请求数据发送至富可信执行环境中的客户端应用1。之后客户端应用1将其接收到的请求数据通过hypervisor层,发送至需要与可信应用2通信的可信应用1。第一可信执行环境中的可信应用1响应于接收到的请求数据,得到响应数据。之后,可信应用1通过原路将响应数据返回至可信应用2。即,可信应用1将响应数据通过hypervisor层发送至富执行环境中的客户端应用,之后客户端应用通过hypervisor层将响应数据发送至可信应用2,进而实现可信应用2与可信应用1的通信。
在一些实施例中,当富执行环境中的客户端应用1与第一可信执行环境中的可信应用1通过hypervisor层进行通信时,需要客户端应用1将请求数据通过hypervisor层发送至电子设备中的EL3层(安全监视器23)的转发后可以发送至第一可信执行环境中的可信应用1,之后在可信应用1返回响应数据时,也可以通过电子设备中的EL3层的转发,将响应数据发送至富执行环境中的客户端应用1。
在另一种可能的实现方式中,在电子设备中新添加第二可信执行环境之后,也可以通过以下方式实现第二可信执行环境中的可信应用与第一可信执行环境中的可信应用的直接通信,而不必通过富执行环境中的客户端应用的转发。
在实现第一可信执行环境中的可信应用与第二可信执行环境中的可信应用时,首先需要申请注册第一可信执行环境与第二可信执行环境之间的共享内存。图7为本申请实施例提供的一种共享内存的注册的流程图。如图所示,图中包括有第一可信执行环境HTEE以及第二可信执行环境QTEE。该共享内存可以为第二可信执行环境中对应的内存中的一部分。在第二可信执行环境确定出共享内存的地址时,可以直接将该共享内存的地址发送至hypervisor层(即,图中的标号①),并由hypervisor层将该共享内存的地址发送至第一可信执行环境中(即图中的标号②),进而将该内存地址对应的存储空间作为第一可信执行环境与第二可信执行环境的预设共享内存。并且该预设的共享内存仅可由运行在第一可信执行环境与第二可信执行环境的可信应用或者可信执行环境操作系统访问。之后,第一可信执行环境与第二可信执行环境中的可信应用可以通过该预设的共享内存通信(即图中的标号③)。
在一些实施例中,在申请共享内存时,可以在每次由需要与第一可信执行环境通信的第二可信执行环境中的可信应用或者第二可信执行环境中的第二代理模块申请得到后,将该内存地址发送至第一可信执行环境中,进而建立预设共享内存,当第一可信执行环境中的可信应用与第二可信执行环境中的可信应用通信结束之后,释放该共享内存至第二可信执行环境的内存中。
在一些实施例中,也可以直接将第二可信执行环境的内存中的一部分直接指定为该第二可信执行环境与第一可信执行环境的共享空间。后续,在第一可信执行环境中的可信应用与第二可信执行环境中的可信应用进行通信时,可直接通过该预设的共享内存作为通信通道,而不必每次通信时都去申请。若是在通信中确定出预设的共享内存的空间不足时,还可以由第二可信执行环境中的可信应用再去申请。
在第一可信执行环境与第二可信执行环境间的共享内存申请注册好之后,第二可信执行环境中的可信应用可以通过共享内存与第一可信执行环境中的可信应用通信。图8为本申请实施例提供的一种可信应用的通信流程交互示意图。
图8中,包括有设置在第一可信执行环境中的第一代理模块和第一可信应用,设置在第二可信执行环境中的第二代理模块以及第二可信应用。并且第一可信执行环境与第二可信执行环境设置有预设的共享内存,第二可信执行环境中的可信应用可以通过预设的共享内存与第一可信执行环境中的可信应用通信。
具体地,在第二可信执行环境中的第二可信应用需要与第一可信执行环境中的第一可信应用通信时,具体包括以下步骤:
S101、第二可信应用向第二代理模块发送第一请求。
示例性地,当第二可信应用需要调用第一可信执行环境中的第一可信应用时,首先,第二可信应用可向第二代理模块发送第一请求,该第一请求可用于请求第一可信执行环境中的第一可信应用通信。
一些示例中,第一请求中包括第二可信应用需要发送至第一可信应用的数据。
S102、第二代理模块将第一请求发送至预设共享内存。
一些示例中,第一请求中包括有第一目标可信应用的标识以及第一目标可信执行环境标识,第二代理模块在接收到第二可信应用发送的第一请求时,也就是第二代理模块将第一请求发送至预设共享内存之前(即,步骤S102之前),还包括步骤S201:第一代理模块对第一请求进行校验。如图9所示,图9为本申请实施例提供的又一种可信应用通信的流程交互示意图。
一个示例中,在对第一请求进行校验时,首先确定需要访问的第一目标可信执行环境的标识,若第一目标可信执行环境的标识与当前第二可信应用所处的可信执行环境的标识相同,且依据当前第一目标可信应用标识确定出待访问的目标可信应用也位于当前第二可信应用所处的可信执行环境中,则此时,第二代理模块可直接将该第一请求发送至第一目标可信应用标识对应的可信应用。
一个示例中,在对第一请求进行校验时,若依据第一目标可信执行环境的标识确定出需要访问的可信执行环境为第一可信执行环境,则进一步依据第一目标可信应用的标识确定该可信应用标识对应的可信应用是否存在于第一可信执行环境中,若存在,则第二代理模块可以将第一请求发送至预设共享内存。也就是说,通过第一代理模块可以区分第二可信应用需要通信的可信应用是否位于当前第二可信应用对应的第二可信执行环境中。
一个示例中,在对第一请求进行校验时,第二代理模块中可以预先设置有第一白名单,第一白名单中包括有第一可信执行环境标识,以及第一可信执行环境中的第一可信应用的标识,若第二代理模块依据第一目标可信执行环境确定出待访问的可信执行环境为第一可信执行环境时,则此时可以将第一目标可信应用标识与第一白名单中的第一可信应用标识比对,若符合,则此时可以将第一请求发送至预设共享内存。
一个示例中,在对第一请求进行校验时,第二代理模块中可以预先设置有第一白名单,第一白名单中包括有第二可信执行环境允许访问的第一可信执行环境中的第一可信应用的标识,若第二代理模块依据第一目标可信执行环境确定出待访问的可信执行环境为第一可信执行环境时,则此时可以将第一目标可信应用标识与第一白名单中的第一可信应用标识比对,若符合,则此时可以将第一请求发送至预设共享内存。
S103、第二代理模块生成第一切换指令,进而使得电子设备从第二可信执行环境切换至第一可信执行环境。
示例性地,在第二代理模块将第一请求发送至预设共享内存之后,需要将当前电子设备的执行环境从第二可信执行环境切换至第一可信执行环境以使得第一可信执行环境可以从预设共享内存中接收到第二代理模块发送的第一请求。
一个示例中,第一切换指令中包括有待切换的电子设备执行环境的标识。第二代理模块生成的第一切换指令可以通过调用SMC指令生成,且第二代理模块生成的第一切换指令可以直接发送至电子设备中的EL3层(安全监视器23)中,经过安全监视器23解析后依据解析后的第一切换指令中的执行环境中的标识,将当前电子设备的执行环境切换至第一可信执行环境。
S104、第一代理模块从预设共享内存中获取第一请求。
示例性地,在电子设备的可信执行环境切换至第一可信执行环境时,第一可信执行环境中的第一代理模块可以从预设共享内存中获取到第二代理模块发送的第一请求。
一个示例中,在切换至第一可信执行环境后,第一代理模块可以实时的监测预设共享内存,当有发现有数据存入时,即可从预设共享内存中获取到。
一个示例中,在第一切换指令中也可以携带有通知消息,该通知消息可以随着第一切换指令从第二代理模块发送至电子设备的EL3层,经过EL3层解析之后,将该通知消息发送至第一代理模块,第一代理模块接收到该通知消息之后,从预设共享内存中获取到第一请求。在本示例中,该通知消息中也可以携带有第一请求在预设共享内存中的位置信息,进而第一代理模块可以依据通知消息中的位置信息,在预设共享内存中查找到第二代理模块发送的第一请求。
S105、第一代理模块将第一请求发送至第一可信应用。
示例性地,在第一代理模块从预设共享内存中获取到第一请求时,可以直接将该第一请求发送至对应的第一可信应用。
一个示例中,第一请求中的第一目标可信应用标识中包括有需要访问的第一可信应用的名字以及第一可信应用的通用唯一识别码(Universally Unique Identifier,UUID)。第一代理模块则可以依据该第一目标可信应用标识中的第一可信应用的名字以及UUID查找到对应的第一可信应用。
一个示例中,在步骤S105之前,即第一代理模块向第一可信应用发送第一请求之前,第一代理模块也会对第一请求进行白名单校验。例如,当第一请求中包括第一目标可信应用的标识以及第一目标可信执行环境标识时,此时,第一代理模块会对该请求中的上述标识进行验证,进一步确定第一请求中需要访问的可信执行环境为当前第一代理模块所处的第一可信执行环境,并且,还会对第一目标可信应用标识进行校验,确定其为当前第一可信执行环境中的可信应用,确定之后,第一代理模块会将第一请求发送至第一可信应用。另一种情况中,第一代理模块还会对发起第一请求的第二可信应用的标识进行校验,进而确定该第二可信应用是否有权限访问第一请求中的第一可信应用标识对应的第一可信应用,若有权限,则将第一请求发送至对应的第一可信应用。
S106、第一可信应用响应于第一请求得到第一请求响应,并将第一请求响应发送至第一代理模块。
示例性地,第一可信应用接收到第一代理模块发送的第一请求之后,会对第一请求进行处理,进而得到响应后的第一请求响应发送至第一代理模块。
S107、第一代理模块将第一请求响应发送至预设共享内存。
一些示例中,第一请求响应中包括有第二目标可信应用的标识以及第二目标可信执行环境标识,第一代理模块在接收到第一可信应用发送的第一请求响应时,也就是第一代理模块将第一请求响应发送至预设共享内存之前(即,在步骤S107之前),还包括如图9中的步骤S202:第一代理模块对第一请求响应进行校验。
一个示例中,在对第一请求响应进行校验时,首先确定需要访问的第二目标可信执行环境的标识,若第二目标可信执行环境的标识与当前第一可信应用所处的可信执行环境的标识相同,且依据当前第二目标可信应用标识确定出待访问的目标可信应用也位于当前第一可信应用所处的可信执行环境中,则此时,第一代理模块可直接将该第一请求响应发送至第二目标可信应用标识对应的可信应用。
一个示例中,在对第一请求响应进行校验时,若依据第二目标可信执行环境的标识确定出需要访问的可信执行环境为第二可信执行环境,则进一步依据第二目标可信应用的标识确定该可信应用标识对应的可信应用是否存在于第二可信执行环境中,若存在,则第一代理模块可以将第一请求响应发送至预设共享内存。
一个示例中,在对第一请求响应进行校验时,第一代理模块中可以预先设置有第二白名单,第二白名单中包括有第二可信执行环境标识,以及第二可信执行环境中的第二可信应用的标识,若第二代理模块依据第一目标可信执行环境确定出待访问的可信执行环境为第二可信执行环境时,则此时可以将第一目标可信应用标识与第二白名单中的第二可信应用标识比对,若符合,则此时可以将第一请求发送至预设共享内存。
一个示例中,在对第一请求响应进行校验时,第一代理模块中可以预先设置有第二白名单,第二白名单中包括有第一可信执行环境允许访问的第二可信执行环境中的第二可信应用的标识,若第二代理模块依据第二目标可信执行环境确定出待访问的可信执行环境为第二可信执行环境时,则此时可以将第二目标可信应用标识与第二白名单中的第二可信应用标识比对,若符合,则此时可以将第一请求响应发送至预设共享内存。
一个示例中,当第一请求中携带有发起第一请求的第二可信应用的标识时,第一代理模块会对该标识进行记录,在第一代理模块接收到第一请求响应之后,会将第一请求响应中的第二目标可信应用标识与接收到的第一请求中的第二可信应用标识进行比对,若比对结果一致,则可以将第一请求响应发送至预设共享内存。
S108、第一代理模块生成第二切换指令,进而使得电子设备从第一可信执行环境切换至第二可信执行环境。
示例性地,在第一代理模块将第一请求响应发送至预设共享内存之后,需要将当前电子设备的执行环境从第一可信执行环境切换至第二可信执行环境以使得第二可信执行环境可以从预设共享内存中接收到第一代理模块发送的第一请求响应。
一个示例中,第二切换指令中包括有待切换的电子设备执行环境的标识。第一代理模块生成的第二切换指令可以通过调用SMC指令生成,且第一代理模块生成的第二切换指令可以直接发送至电子设备中的EL3层(安全监视器23)中,经过安全监视器23解析后依据解析后的第二切换指令中的执行环境中的标识,将当前电子设备所处的第一可信执行环境切换至第二可信执行环境。
S109、第二代理模块从预设共享内存中获取第一请求。
示例性地,在电子设备的执行环境切换至第二可信执行环境时,第二可信执行环境中的第二代理模块可以从预设共享内存中获取到第一代理模块发送的第一请求响应。
一个示例中,在切换至第二可信执行环境后,第二代理模块可以实时的监测预设共享内存,当有发现有数据存入时,即可从预设共享内存中获取到。
一个示例中,在第二切换指令中也可以携带有第二通知消息,该第二通知消息可以随着第二切换指令从第一代理模块发送至电子设备的EL3层,经过EL3层解析之后,将该第二通知消息发送至第二代理模块,第二代理模块接收到该第二通知消息之后,从预设共享内存中获取到第一请求信息。在本示例中,该第二通知消息中也可以携带有第一请求响应在预设共享内存中的位置信息,进而第一代理模块可以依据第二通知消息中的位置信息,在预设共享内存中查找到第一代理模块发送的第一请求响应。
S110、第二代理模块将第一请求响应发送至第二可信应用。
示例性地,在第二代理模块从预设共享内存中获取到第一请求响应时,可以直接将该第一请求响应发送至对应的第一可信应用。
一个示例中,第一请求响应中的第二目标可信应用标识中包括有需要访问的第二可信应用的名字以及第二可信应用的通用唯一识别码(Universally Unique Identifier,UUID)。第二代理模块则可以依据该第二目标可信应用标识中的第二可信应用的名字以及UUID查找到对应的第二可信应用。
一个示例中,在步骤S110之前,即第二代理模块向第二可信应用发送第一请求响应之前,第二代理模块也会对第一请求响应进行白名单校验。例如,当第一请求响应中包括第二目标可信应用的标识以及第二目标可信执行环境标识时,此时,第二代理模块会对该请求中的上述标识进行验证,进一步确定第一请求响应中需要访问的可信执行环境为当前第二代理模块所处的第二可信执行环境,并且,还会对第二目标可信应用标识进行校验,确定其为当前第二可信执行环境中的可信应用,确定之后,第二代理模块会将第一请求响应发送至第二可信应用。另一种情况中,第二代理模块还会对发起第一请求响应的第一可信应用的标识进行校验,进而确定该第一可信应用是否有权限访问第一请求响应中的第二目标可信应用标识对应的第而可信应用,若有权限,则将第一请求响应发送至对应的第二可信应用。
通过本实施例提供的方式,可以缩短通信路径。如图10所示,图10为本申请实施例提供的又一种可信应用通信的流程路径示意图。第二可信执行环境HTEE中的第二可信应用与第一可信执行环境QTEE中的第一可信应用进行通信时,第二可信应用可以通过第二代理模块将请求数据发送至预设共享内存,并且调用切换指令,该切换指令通过hypevisor层发送至第一可信执行环境中,之后第一可信应用在接收到共享内存中的请求数据后,会将响应数据存入共享内存中,并且调用第二切换指令,第二切换指令通过hypevisor层发送至第二可信执行环境,进而使得电子设备的执行环境切换至第二可信执行环境之后,第二可信应用可以获取到响应数据。
在实际应用中,以安卓手机中的功能为例,可以将其中的钱包应用设置在第二可信执行环境中,而将人脸识别的应用设置在第一可信执行环境中,当使用钱包功能时,若需要在钱包应用中使用人脸识别功能时,(例如,在钱包中使用人脸识别支付、或者修改支付密码需要人脸验证时),此时,位于第二可信执行环境中的钱包应用可以将手机摄像模组采集得到的人脸数据发送至第一可信执行环境与第二可信执行环境的预设共享内存中,之后,当安卓的执行环境切换至第一可信执行环境中时,位于第一可信执行环境中的人脸识别应用可以依据第一代理模块从预设共享内存中获取到人脸数据,对人脸数据进行验证之后向第一代理模块返回验证结果(验证成功、验证失败或者重新采集等)。第一代理模块之后通过预设的共享内存,将验证结果在原路返回至钱包应用,钱包应用接收到验证结果之后,可以进一步向用户返回操作结果(例如,支付成功,验证通过切换至修改密码界面、请重新采集等)。
本实施例中提供的不同可信执行环境间(即第一可信执行环境与第二可信执行环境间)的可信应用的通信方法,相比于通过富执行环境转发的通信方法,本实施例中缩短了通信路径,提供了通信性能和效率。并且,避免了当请求和响应数据通过富执行环境转发时,在富执行环境中容易导致隐私数据中的数据被泄露的风险。并且,采用本实施例中的通信方法时,不需要对第二可信执行环境以及第一可信执行环境中的可信应用进行任何修改配置,就可以实现不同可信执行环境间的可信应用通信。
本申请实施例提供了一种电子设备,包括:第一可信执行环境与第二可信执行环境;第一可信执行环境包括:第一可信应用与第一代理模块;第二可信执行环境中包括:第二可信应用以及第二代理模块;方法包括:
第二代理模块,用于接收第二可信应用的第一请求,第一请求用于向第一可信执行环境中的第一可信应用发送请求数据;
第二代理模块,用于向预设共享内存发送第一请求并生成第一切换指令;第一切换指令用于切换电子设备切换当前的可信执行环境至第一可信执行环境;预设共享内存仅可由第一可信执行环境与第二可信环境访问;
第二代理模块,用于基于第一代理模块发送的第二切换指令,获取预设共享内存中的第一代理模块发送的第一请求响应,第一请求响应为第一可信应用依据第一代理模块基于第一切换指令从预设共享内存中获取的第一请求得到的;第二切换指令用于切换电子设备切换当前的可信执行环境至第二可信执行环境;
第二代理模块,用于将第一请求响应发送至第二可信应用。
第二代理模块向预设共享内存发送第一请求并生成第一切换指令,包括:
若第二代理模块确定第一请求验证通过预设第一白名单,则第二代理模块向预设共享内存发送第一请求并生成第一切换指令。
在一些实施例中,第一请求包括:第一目标可信应用标识以及第一目标可信执行环境标识;第二代理模块,具体用于若第二代理模块确定第一请求中的第一目标可信应用标识以及第一目的可信执行环境标识符合预设第一白名单,则确定验证通过。
在一些实施例中,第一请求响应为第一代理模块确定第一请求响应验证通过后发送至预设内存的。
在一些实施例中,第二代理模块,还用于申请预设共享内存,并将预设共享内存的地址发送至第一代理模块。
本申请实施例提供了另一种电子设备,该电子设备包括第一可信执行环境与第二可信执行环境;第一可信执行环境包括:第一可信应用与第一代理模块;第二可信执行环境中包括:第二可信应用以及第二代理模块;
第一代理模块,用于基于第二代理模块发送的第一切换指令,获取预设共享内存中的第一请求;第一请求为第二可信应用通过第二代理模块发送至预设内存的,用于请求向第一可信执行环境中的第一可信应用发送请求数据;预设共享内存仅可由第一可信执行环境与第二可信环境访问;第一切换指令用于切换电子设备切换当前的可信执行环境至第一可信执行环境;
第一代理模块,用于向第一可信应用发送第一请求;
第一代理模块,用于向预设共享内存发送第一请求响应并生成第二切换指令,以使第二代理模块获取第一请求响应;第一请求响应为第一可信应用依据第一请求得到的;第二切换指令用于切换电子设备切换当前的可信执行环境至第二可信执行环境。
在一些实施例中,第一代理模块用于若第一代理模块确定第一请求响应验证通过,则第一代理模块向预设共享内存发送第一请求响应并生成第二切换指令。
在一些实施例中,第一请求响应包括:第二目标可信应用标识,以及第二目标可信执行环境标识;第一代理模块具体用于,若第一代理模块确定第一请求响应中的第二目标可信应用标识以及第二目的可信执行环境标识符合预设第二白名单,则确定验证通过。
需要说明的是,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Di sk(SSD))等。
本申请实施例中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。在本申请实施例中,“示例性的”或者“例如”等表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种多可信执行环境下可信应用间的通信方法,其特征在于,应用于电子设备,所述电子设备包括:第一可信执行环境与第二可信执行环境;所述第一可信执行环境包括:第一可信应用与第一代理模块;所述第二可信执行环境中包括:第二可信应用以及第二代理模块;所述方法包括:
所述第二代理模块接收第二可信应用的第一请求,所述第一请求用于向第一可信执行环境中的第一可信应用发送请求数据;
所述第二代理模块向预设共享内存发送第一请求并生成第一切换指令;所述第一切换指令用于切换所述电子设备切换当前的可信执行环境至第一可信执行环境;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;
所述第二代理模块基于所述第一代理模块发送的第二切换指令,获取所述预设共享内存中的所述第一代理模块发送的第一请求响应;所述第一请求响应为所述第一可信应用依据所述第一代理模块基于所述第一切换指令从所述预设共享内存中获取的第一请求得到的;所述第二切换指令用于切换所述电子设备切换当前的可信执行环境至第二可信执行环境;
所述第二代理模块将所述第一请求响应发送至所述第二可信应用。
2.根据权利要求1所述的方法,其特征在于,所述第二代理模块向预设共享内存发送第一请求并生成第一切换指令,包括:
若所述第二代理模块确定所述第一请求验证通过预设第一白名单,则所述第二代理模块向预设共享内存发送第一请求并生成第一切换指令。
3.根据权利要求2所述的方法,其特征在于,所述第一请求包括:第一目标可信应用标识以及第一目标可信执行环境标识;所述第二代理模块确定所述第一请求验证通过预设第一白名单,包括:
若所述第二代理模块确定所述第一请求中的第一目标可信应用标识以及第一目的可信执行环境标识符合预设第一白名单,则确定验证通过。
4.根据权利要求1所述的方法,其特征在于,所述第一请求响应为所述第一代理模块确定所述第一请求响应验证通过后发送至预设共享 内存的。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
所述第二代理模块申请预设共享内存,并将所述预设共享内存的地址发送至第一代理模块。
6.一种多可信执行环境下可信应用间的通信方法,其特征在于,应用于电子设备,所述电子设备包括:第一可信执行环境与第二可信执行环境;所述第一可信执行环境包括:第一可信应用与第一代理模块;所述第二可信执行环境中包括:第二可信应用以及第二代理模块;所述方法包括:
所述第一代理模块基于所述第二代理模块发送的第一切换指令,获取预设共享内存中的第一请求;所述第一请求为所述第二可信应用通过所述第二代理模块发送至所述预设共享 内存的,用于请求向所述第一可信执行环境中的第一可信应用发送请求数据;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;所述第一切换指令用于切换所述电子设备切换当前的可信执行环境至第一可信执行环境;
所述第一代理模块向所述第一可信应用发送所述第一请求;
所述第一代理模块向所述预设共享内存发送第一请求响应并生成第二切换指令,以使所述第二代理模块获取所述第一请求响应;所述第一请求响应为第一可信应用依据所述第一请求得到的;所述第二切换指令用于切换所述电子设备切换当前的可信执行环境至第二可信执行环境。
7.根据权利要求6所述的方法,其特征在于,所述第一代理模块向预设共享内存发送第一请求响应并生成第二切换指令,包括:
若所述第一代理模块确定所述第一请求响应验证通过预设第二白名单,则所述第一代理模块向预设共享内存发送第一请求响应并生成第二切换指令。
8.根据权利要求7所述的方法,其特征在于,所述第一请求响应包括:第二目标可信应用标识,以及第二目标可信执行环境标识;所述第一代理模块确定所述第一请求响应验证通过预设第二白名单,包括:
若所述第一代理模块确定所述第一请求响应中的第二目标可信应用标识以及第二目的可信执行环境标识符合预设第二白名单,则确定验证通过。
9.一种电子设备,其特征在于,包括:第一可信执行环境与第二可信执行环境;所述第一可信执行环境包括:第一可信应用与第一代理模块;所述第二可信执行环境中包括:第二可信应用以及第二代理模块;
所述第二代理模块,用于接收所述第二可信应用的第一请求,所述第一请求用于向第一可信执行环境中的第一可信应用发送请求数据;
所述第二代理模块,用于向预设共享内存发送第一请求并生成第一切换指令;所述第一切换指令用于切换所述电子设备切换当前的可信执行环境至第一可信执行环境;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;
所述第二代理模块,用于基于所述第一代理模块发送的第二切换指令,获取所述预设共享内存中的所述第一代理模块发送的第一请求响应,所述第一请求响应为所述第一可信应用依据所述第一代理模块基于所述第一切换指令从所述预设共享内存中获取的第一请求得到的;所述第二切换指令用于切换所述电子设备切换当前的可信执行环境至第二可信执行环境;
所述第二代理模块,用于将所述第一请求响应发送至所述第二可信应用。
10.一种电子设备,其特征在于,包括:第一可信执行环境与第二可信执行环境;所述第一可信执行环境包括:第一可信应用与第一代理模块;所述第二可信执行环境中包括:第二可信应用以及第二代理模块;
所述第一代理模块,用于基于所述第二代理模块发送的第一切换指令,获取预设共享内存中的第一请求;所述第一请求为所述第二可信应用通过所述第二代理模块发送至所述预设共享 内存的,用于请求向所述第一可信执行环境中的第一可信应用发送请求数据;所述预设共享内存仅可由第一可信执行环境与第二可信环境访问;所述第一切换指令用于切换所述电子设备切换当前的可信执行环境至第一可信执行环境;
所述第一代理模块,用于向所述第一可信应用发送所述第一请求;
所述第一代理模块,用于向所述预设共享内存发送第一请求响应并生成第二切换指令,以使所述第二代理模块获取所述第一请求响应;所述第一请求响应为第一可信应用依据所述第一请求得到的;所述第二切换指令用于切换所述电子设备切换当前的可信执行环境至第二可信执行环境。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行权利要求1-5中任一项所述的方法,或者,执行时实现如权利要求6-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111436296.8A CN115048642B (zh) | 2021-11-29 | 2021-11-29 | 多可信执行环境下可信应用间的通信方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111436296.8A CN115048642B (zh) | 2021-11-29 | 2021-11-29 | 多可信执行环境下可信应用间的通信方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115048642A CN115048642A (zh) | 2022-09-13 |
CN115048642B true CN115048642B (zh) | 2023-04-25 |
Family
ID=83156664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111436296.8A Active CN115048642B (zh) | 2021-11-29 | 2021-11-29 | 多可信执行环境下可信应用间的通信方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115048642B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118535410A (zh) * | 2023-02-21 | 2024-08-23 | 中兴通讯股份有限公司 | 主机操作系统的监测方法、电子设备 |
CN116382896B (zh) * | 2023-02-27 | 2023-12-19 | 荣耀终端有限公司 | 图像处理算法的调用方法、终端设备、介质及产品 |
CN116861445B (zh) * | 2023-09-04 | 2023-12-15 | 湖北芯擎科技有限公司 | 可信执行环境的实现方法、系统级芯片及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125216A (zh) * | 2014-06-30 | 2014-10-29 | 华为技术有限公司 | 一种提升可信执行环境安全性的方法、系统及终端 |
CN105930731A (zh) * | 2015-12-21 | 2016-09-07 | 中国银联股份有限公司 | 一种安全应用ta交互的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512576A (zh) * | 2015-12-14 | 2016-04-20 | 联想(北京)有限公司 | 一种数据安全存储的方法及电子设备 |
US20210240807A1 (en) * | 2016-06-30 | 2021-08-05 | Huawei Technologies Co., Ltd. | Authentication method for mobile terminal and mobile terminal |
CN112528288A (zh) * | 2019-08-30 | 2021-03-19 | 华为技术有限公司 | 可信应用的运行方法、信息处理和内存分配方法及装置 |
CN111859395B (zh) * | 2020-07-21 | 2024-03-26 | 中国人民解放军国防科技大学 | 具备tee扩展的计算平台上的通信优化方法及系统 |
-
2021
- 2021-11-29 CN CN202111436296.8A patent/CN115048642B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125216A (zh) * | 2014-06-30 | 2014-10-29 | 华为技术有限公司 | 一种提升可信执行环境安全性的方法、系统及终端 |
CN105930731A (zh) * | 2015-12-21 | 2016-09-07 | 中国银联股份有限公司 | 一种安全应用ta交互的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115048642A (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115048642B (zh) | 多可信执行环境下可信应用间的通信方法及电子设备 | |
CN113032766B (zh) | 应用权限管理的方法和装置 | |
CN113746777B (zh) | 安全访问数据的方法及电子设备 | |
CN114489917B (zh) | 应用程序异常退出的处理方法、电子设备和可读存储介质 | |
EP3796616A1 (en) | Container management method, apparatus, and device | |
KR20190069574A (ko) | 무선 네트워크 유형 검출 방법과 장치, 및 전자 디바이스 | |
CN112262548B (zh) | 一种文件处理方法及终端设备 | |
CN113836540B (zh) | 管理应用权限的方法、设备、存储介质和程序产品 | |
CN115544585A (zh) | 一种动态配置安全内存的方法、设备、装置及存储介质 | |
CN112835632B (zh) | 一种端能力的调用方法、设备和计算机存储介质 | |
CN112286632B (zh) | 云平台、云平台管理方法、装置、电子设备及储存介质 | |
CN113541981B (zh) | 网络切片的成员管理方法及系统 | |
CN110673970B (zh) | 一种基于web应用的跨进程调用系统及方法 | |
CN114862398A (zh) | 一种基于分布式安全设备的风险控制方法以及相关装置 | |
CN113468606A (zh) | 一种应用程序的访问方法及电子设备 | |
CN113938890B (zh) | 数据共享方法和终端设备 | |
CN117667115A (zh) | 应用程序的安装方法及电子设备 | |
CN113835889A (zh) | 获取输入事件的方法和相关装置 | |
CN115981576B (zh) | 共享数据的方法、电子设备及存储介质 | |
CN115767776A (zh) | 用于蓝牙通信的方法和电子设备 | |
CN113850633B (zh) | 信息推送方法和装置 | |
CN113496039A (zh) | 一种权限管理方法及终端 | |
CN117857646B (zh) | 数据网络共享方法、电子设备及存储介质 | |
CN114205099B (zh) | 网页鉴权方法、电子设备及系统 | |
CN113472840B (zh) | 一种云服务动态管理方法及装置 |
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 |