可信应用的运行方法、信息处理和内存分配方法及装置制造方法及图纸

技术编号:27742745 阅读:15 留言:0更新日期:2021-03-19 13:36
本申请实施例公开了一种可信应用程序的运行方法、信息处理方法、内存分配方法及装置,应用于部署有可信执行环境TEE和富执行环境REE的计算机系统中,REE上部署有REE操作系统,TEE上部署有TEE操作系统,TEE操作系统上运行一个或多个可信应用程序TA。以其中的一个目标TA为例,目标TA可以提供目标服务,TEE操作系统可以启动目标TA,之后,目标TA可以响应于目标服务的运行请求,向TEE操作系统发送对支持目标服务的目标动态库的加载请求,TEE操作系统可以响应于该加载请求,将目标动态库加载到目标TA的内存空间中。这样,在目标TA运行目标服务之前,无需将用于支持目标服务的程序模块加载至TA的内存空间中,有利用减少TA的内存空间的浪费。

【技术实现步骤摘要】
可信应用的运行方法、信息处理和内存分配方法及装置
本申请涉及通信
,尤其涉及一种可信应用程序的运行方法、信息处理方法、内存分配方法及装置。
技术介绍
随着移动互联网的发展,智能终端设备的应用越来越广泛。为了提供智能终端设备的丰富功能和可扩展属性,并且保护用户隐私和信息安全,终端设备构建在提供开放式操作环境的富执行环境(richexecutionenvrironment,REE)和可信执行环境(trustedexecutionenvironment,TEE)之上。REE也被称作一般运行环境,主要包括运行于通用处理器上的富操作系统(richoperatingsystem,RichOS)和运行在RichOS上的客户端应用程序(clientapplication,CA)。TEE是运行于REE之外的独立运行环境,主要包括运行于可信操作系统(trustedoperatingsystem,TrustedOS)和运行在TrustedOS上的可信应用程序(trustedapplication,TA),TEE与REE隔离。REE无法直接访问TEE的硬件和软件资源,例如TEE内存,二者只能通过授权的应用程序编程接口(applicationprogramminginterface,API)进行交互。因此TEE能够抵御在REE侧发生的软件攻击。由于TA在实现某个功能时,需要运行TA的目标文件中代码段的部分代码,并且访问数据段的部分数据,因此,可以在逻辑上将该功能对应的程序段(包括代码和数据)称作该功能对应的程序模块。现有技术中,TEE操作系统在启动TA的过程中,将TA的各个功能对应的程序模块均加载至TA的内存空间,TA在收到某个服务的运行请求时,可以利用支持该服务的各个程序模块运行该服务。随着TEE内部署的TA不断增多,TA的功能不断增加,TEE操作系统为TA分配的内存空间越来越大,TEE的安全内存作为TEE的一种有限的安全资源,面临着日趋严峻的挑战。而现有TA的运行方法中,TA可能未收到某个服务的运行请求,而支持该服务的各个程序模块均已被加载至TA的内存空间中,造成TA的内存空间的浪费,进一步增加了TEE的安全内存的压力。
技术实现思路
本申请实施例提供一种可信应用程序的运行方法、信息处理方法、内存分配方法及装置,用于节约TA的内存空间。为了保护用户隐私和信息安全,部署有富执行环境(richexecutionenvrironment,REE)和可信执行环境(trustedexecutionenvironment,TEE)的计算机系统的应用越来越广泛,该计算机系统的REE内部署有富操作系统(richoperatingsystem,RichOS),或称REE操作系统,该REE操作系统内一般部署有一个或多个CA,该计算机系统的TEE内部署有可信操作系统(trustedoperatingsystem,TrustedOS),或称TEE操作系统,该TEE操作系统上一般部署有一个或多个TA,TA一般可以提供一个或多个服务。以该TEE操作系统中部署的某个TA(称作目标TA)和目标TA提供的某个服务(称作目标服务)为例,下面介绍本申请实施例第一方面提供的TA的运行方法。需要说明的是,本申请并不限定TEE操作系统中部署的所有TA都按照本申请提供的方法运行。目标TA运行目标服务的前提是,该TEE操作系统启动目标TA,更具体的说法是,该TEE操作系统启动目标TA的主进程,并且用于支持目标服务的程序模块(或者说目标TA运行目标服务时所需利用的程序模块)被加载至目标TA的内存空间中。示例性的,TEE操作系统在启动目标TA的过程中,可以将目标TA的目标文件加载至目标TA的内存空间,并创建目标TA的进程来执行该目标文件。该目标文件的类型可以为共享的目标文件(例如.so文件)或可执行文件(例如.os文件)或其他类型的文件,在本申请实施例中,不对该目标文件的具体类型进行限定。示例性的,在本申请实施例中,以目标文件为可执行文件为例,该目标文件保存了能够直接加载到内存中执行的二进制代码。动态库(一般为.so文件)和可执行文件(一般为.os文件)一般都是可执行和可链接格式(executableandlinkableformat,ELF)格式的文件。本申请实施例中,在编译目标TA的目标文件时,未将支持目标服务的部分或全部程序模块复制到该目标文件中,而是将这部分程序模块单独编译为共享的目标文件,例如动态库,为了便于描述,将这部分程序模块编译得到的动态库称作目标动态库,目标动态库包括函数的代码,或者说包括符号(如变量或函数调用等)的定义,将目标动态库中的符号的引用(比如引用对象的标识)及其他登记信息(比如符号表和重定位信息等)添加在该目标文件中。TEE操作系统可以响应于目标TA的创建请求启动目标TA;目标TA被启动后,可以接收CA或其他TA发送的目标服务的运行请求,或自发启动(或产生)目标服务的运行请求,之后,目标TA响应于该运行请求,可以向TEE操作系统发送加载请求,该加载请求用于指示TEE操作系统加载目标动态库。TEE操作系统可以接收目标TA发送的该加载请求,响应于该加载请求,TEE操作系统可以将目标动态库加载到目标TA的内存空间中,之后,目标TA可以利用自己的内存空间中的目标动态库运行目标服务。下面对本申请实施例第一方面提供的TA的运行方法的有益效果进行分析:1)本申请实施例第一方面提供的TA的运行方法中,TEE操作系统可以在目标TA接收到目标服务的运行请求后,将用于支持目标服务的目标动态库加载至目标TA的内存空间,使目标TA利用目标动态库运行目标服务,这样,在TEE操作系统启动目标TA的过程中,或者,在目标TA接收到目标服务的运行请求之前,无需将用于支持目标服务的程序模块加载至TA的内存空间中,有利用减少TA的内存空间的浪费。2)由TEE操作系统将目标动态库加载至目标TA中,无需为目标TA配置加载目标动态库的权限,例如具体的,无需为目标TA配置对目标存储区域进行访问和配置属性的权限,有利于提高TEE的安全性。其中,目标存储区域存储有目标动态库,为TEE的存储区域中目标TA的内存空间以外的其他存储空间。需要说明的是,目标TA利用目标动态库运行目标服务,并不是限定目标TA仅利用目标动态库便可以运行目标服务,而是限定目标TA运行目标服务至少需要利用目标动态库。前面所说的“目标TA运行目标服务的前提是,该TEE操作系统启动目标TA”,不是限定目标TA运行目标服务的过程中,TEE操作系统均需启动目标TA,而是限定,目标TA运行目标服务前,TEE操作系统至少执行一次启动目标TA的步骤,使目标TA进入运行状态,可以接收或自发产生目标服务的运行请求。TEE操作系统将目标动态库加载到目标TA的内存空间的过程,作为举例,可以具体包括,TEE操作系统将目标动态库映射或装载到目标TA的内存空间,之后进行符号解析和重定位,使目标动态库链接至该目标文件。其中,符号解析可以理解为将目标动态库中的符号的定义与目标文本文档来自技高网
...

【技术保护点】
1.一种可信应用程序TA的运行方法,其特征在于,应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE内部署有REE操作系统,所述TEE内部署有TEE操作系统,所述TEE操作系统上部署有一个或多个可信应用程序TA,所述方法包括:/n所述TEE操作系统启动目标TA,所述目标TA为所述一个或多个TA中的任意一个TA;/n所述TEE操作系统接收所述目标TA响应于目标服务的运行请求发送的加载请求,所述加载请求用于指示加载目标动态库,其中,所述目标服务为所述目标TA提供的服务;/n响应于所述加载请求,所述TEE操作系统加载所述目标动态库到所述目标TA的内存空间中,所述目标动态库用于支持所述目标服务的运行。/n

【技术特征摘要】
1.一种可信应用程序TA的运行方法,其特征在于,应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE内部署有REE操作系统,所述TEE内部署有TEE操作系统,所述TEE操作系统上部署有一个或多个可信应用程序TA,所述方法包括:
所述TEE操作系统启动目标TA,所述目标TA为所述一个或多个TA中的任意一个TA;
所述TEE操作系统接收所述目标TA响应于目标服务的运行请求发送的加载请求,所述加载请求用于指示加载目标动态库,其中,所述目标服务为所述目标TA提供的服务;
响应于所述加载请求,所述TEE操作系统加载所述目标动态库到所述目标TA的内存空间中,所述目标动态库用于支持所述目标服务的运行。


2.根据权利要求1所述的方法,其特征在于,所述TEE操作系统加载所述目标动态库到所述目标TA的内存空间中,包括:
所述TEE操作系统从所述TEE操作系统的内存空间加载所述目标动态库到所述目标TA的内存空间中。


3.根据权利要求1所述的方法,其特征在于,所述TEE操作系统加载所述目标动态库到所述目标TA的内存空间中,包括:
所述TEE操作系统从所述REE操作系统获取所述目标动态库,并将所述目标动态库加载到所述目标TA的内存空间中。


4.根据权利要求3所述的方法,其特征在于,所述TEE操作系统从所述REE操作系统获取所述目标动态库,包括:
所述TEE操作系统向所述REE操作系统发送所述目标动态库的传递请求,所述传递请求包括所述目标动态库的标识,所述传递请求用于指示所述REE操作系统将所述目标动态库发送到所述TEE操作系统;
所述TEE操作系统接收所述REE操作系统发送的所述目标动态库。


5.根据权利要求3所述的方法,其特征在于,所述TEE操作系统从所述REE操作系统获取所述目标动态库,包括:
所述TEE操作系统从所述REE操作系统获取加密文件;
所述TEE操作系统对所述加密文件进行解密,得到解密文件,所述解密文件包括所述目标动态库。


6.根据权利要求1或2所述的方法,其特征在于,所述目标服务的运行请求由部署在所述REE操作系统的目标客户端应用程序CA发送,所述目标CA有调用所述目标服务的权限,所述目标动态库由所述REE操作系统响应于第二传递请求发送给所述TEE操作系统,其中,所述第二传递请求由所述目标CA响应于第一传递请求发送给所述REE操作系统,所述第一传递请求由所述目标TA响应于所述目标服务的运行请求发送给所述目标CA。


7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述TEE操作系统启动目标TA,包括:
所述TEE操作系统从所述REE操作系统获取一个或多个动态库,并将所述一个或多个动态库存储在所述TEE操作系统的内存空间中,其中,所述一个或多个动态库被记录在所述目标TA的目标文件中。


8.根据权利要求1至7中任意一项所述的方法,其特征在于,所述TEE操作系统加载所述目标动态库到所述目标TA的内存空间中,包括:
所述TEE操作系统根据目标权限信息判断所述目标TA是否具有调用所述目标动态库的权限;
基于所述目标TA具有调用所述目标动态库的权限,所述TEE操作系统将所述目标动态库加载到所述目标TA的内存空间中。


9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:
所述TEE操作系统获取所述目标TA响应于所述目标服务的运行请求发送的内存请求,所述内存请求用于向所述TEE操作系统申请运行所述目标服务所需的内存;
响应于所述内存请求,所述TEE操作系统向所述REE操作系统获取内存分配信息,所述内存分配信息用于指示所述REE操作系统将第一内存分配给所述TEE操作系统;
所述TEE操作系统将所述第一内存分配给所述目标TA。


10.根据权利要求9所述的方法,其特征在于,所述第一内存大于所述内存请求所申请的内存。


11.根据权利要求9所述的方法,其特征在于,所述TEE操作系统将所述第一内存分配给目标TA,包括:
所述TEE操作系统将所述第一内存配置为安全内存;
所述TEE操作系统将配置为安全内存的所述第一内存分配给所述目标TA。


12.根据权利要求9至11中任意一项所述的方法,其特征在于,在所述TEE操作系统将所述第一内存分配给所述目标TA之后,所述方法还包括:
所述TEE操作系统接收所述目标TA发送的TA内存释放请求,所述TA内存释放请求用于请求所述TEE操作系统释放所述第一内存;
响应于所述TA内存释放请求,所述TEE操作系统释放所述第一内存。


13.根据权利要求12所述的方法,其特征在于,所述TEE操作系统释放所述第一内存,包括:
所述TEE操作系统将所述第一内存配置为非安全内存;
所述TEE操作系统释放被配置为非安全内存的所述第一内存。


14.根据权利要求12所述的方法,其特征在于,在所述TEE操作系统释放所述第一内存之后,所述方法还包括:
所述TEE操作系统向所述REE操作系统发送TEE内存释放请求,所述TEE内存释放请求用于请求所述REE操作系统释放所述第一内存。


15.一种可信应用程序TA的运行方法,其特征在于,应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE内部署有REE操作系统,所述TEE内部署有TEE操作系统,所述TEE操作系统上部署有一个或多个可信应用程序TA,所述方法包括:
所述TEE操作系统启动目标TA,所述目标TA为所述一个或多个TA中的任意一个TA;
所述TEE操作系统为所述目标TA提供目标动态库,所述目标动态库由所述目标TA加载至所述目标TA的内存空间中,以支持所述目标TA运行目标服务,所述目标服务为所述目标TA提供的服务。


16.根据权利要求15所述的方法,其特征在于,所述TEE操作系统为所述目标TA提供所述目标动态库,包括:
所述TEE操作系统接收所述目标TA响应于所述目标服务的运行请求发送的获取请求,所述获取请求用于指示所述TEE操作系统获取所述目标动态库;
响应于所述获取请求,所述TEE操作系统获取所述目标动态库。


17.根据权利要求16所述的方法,其特征在于,所述TEE操作系统获取所述目标动态库,包括:
所述TEE操作系统从所述REE操作系统获取所述目标动态库。


18.根据权利要求17所述的方法,其特征在于,所述TEE操作系统从所述REE操作系统获取所述目标动态库,包括:
所述TEE操作系统向所述REE操作系统发送所述目标动态库的传递请求,所述传递请求包括所述目标动态库的标识,所述传递请求用于指示所述REE操作系统将所述目标动态库发送到所述TEE操作系统;
所述TEE操作系统接收所述REE操作系统发送的所述目标动态库。


19.根据权利要求17所述的方法,其特征在于,所述TEE操作系统从所述REE操作系统获取所述目标动态库,包括:
所述TEE操作系统从所述REE操作系统获取加密文件;
所述TEE操作系统对所述加密文件进行解密,得到解密文件,所述解密文件包括所述目标动态库。


20.根据权利要求15所述的方法,其特征在于,所述TEE操作系统为所述目标TA提供所述目标动态库包括:
所述TEE操作系统接收所述REE操作系统响应于第二传递请求发送的所述目标动态库,所述目标服务的运行请求由部署在所述REE操作系统的目标客户端应用程序CA发送,所述目标CA有调用所述目标服务的权限,所述第二传递请求由所述目标CA响应于第一传递请求发送给所述REE操作系统,所述第一传递请求由所述目标TA响应于所述目标服务的运行请求发送给所述目标CA。


21.根据权利要求15至20中任一项所述的方法,其特征在于,所述TEE操作系统启动目标TA,包括:
所述TEE操作系统从所述REE操作系统获取一个或多个动态库,并将所述一个或多个动态库存储在所述TEE操作系统的内存空间中,其中,所述一个或多个动态库被记录在所述目标TA的目标文件中。


22.根据权利要求15至21中任一项所述的方法,其特征在于,所述TEE操作系统为所述目标TA提供所述目标动态库包括:
所述TEE操作系统接收所述目标TA发送的访问请求,所述访问请求用于请求访问所述TEE操作系统的内存空间,所述目标动态库存储在所述TEE操作系统的内存空间;
基于所述目标TA具有访问所述TEE操作系统的内存空间的权限,所述TEE操作系统向所述目标TA发送允许访问信息,所述允许访问信息用于通知所述目标TA访问所述TEE操作系统的内存空间。


23.根据权利要求22所述的方法,其特征在于,所述访问请求用于请求访问所述目标动态库;
所述TEE操作系统向所述目标TA发送允许访问信息包括:
基于所述目标TA具有访问所述TEE操作系统的内存空间的权限,并且,基于所述目标TA具有调用所述目标动态库的权限,所述TEE操作系统向所述目标TA发送所述应答信息。


24.一种可信应用程序TA的运行方法,其特征在于,应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE内部署有REE操作系统,所述TEE内部署有TEE操作系统,所述TEE操作系统上部署有一个或多个TA,所述方法包括:
响应于目标服务的运行请求,目标TA加载目标动态库到所述目标TA的内存空间中,所述目标TA为所述一个或多个TA中的任意一个TA,所述目标服务为所述目标TA提供的服务;
所述目标TA利用所述目标动态库运行所述目标服务。


25.根据权利要求24所述的方法,其特征在于,所述目标TA加载目标动态库到所述目标TA的内存空间中,包括:
所述目标TA向所述TEE操作系统发送获取请求,所述获取请求用于请求所述TEE操作系统获取所述目标动态库;
所述目标TA将所述TEE操作系统获取到的所述目标动态库加载到所述目标TA的内存空间中。


26.根据权利要求25所述的方法,其特征在于,所述目标动态库为所述TEE操作系统从所述REE操作系统获取的。


27.根据权利要求24所述的方法,其特征在于,所述目标TA加载目标动态库到所述目标TA的内存空间中,包括:
所述目标TA向目标客户端应用程序CA发送第一传递请求,所述目标CA部署在所述REE操作系统中,并且有调用所述目标服务的权限,所述目标服务的运行请求由所述目标CA发送;
所述目标TA将所述TEE操作系统接收的所述目标动态库加载到所述目标TA的内存空间中,所述目标动态库由所述REE操作系统响应于第二传递请求发送给所述TEE操作系统,所述第二传递请求由所述目标CA响应于所述第一传递请求发送给所述REE操作系统。


28.根据权利要求24至27中任一项所述的方法,其特征在于,所述目标TA加载目标动态库到所述目标TA的内存空间中,包括:
所述目标TA从所述TEE操作系统的内存空间加载所述目标动态库到所述目标TA的内存空间中。


29.根据权利要求28所述的方法,其特征在于,所述目标TA从所述TEE操作系统的内存空间加载所述目标动态库到所述目标TA的内存空间中,包括:
所述目标TA向所述TEE操作系统发送访问请求,所述访问请求用于请求访问所述TEE操作系统的内存空间,所述目标动态库存储在所述TEE操作系统的内存空间中;
基于接收到所述TEE操作系统发送的允许访问信息,所述目标TA访问将所述TEE操作系统的内存空间中的所述目标动态库,并将所述目标动态库加载到所述目标TA的内存空间中。


30.一种信息处理方法,其特征在于,应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE内部署有REE操作系统,所述TEE内部署有TEE操作系统,所述方法包括:
响应于传递请求,所述REE操作系统获取目标文件,所述传递请求用于指示所述REE操作系统将所述目标文件传递至所述TEE操作系统;
所述REE操作系统将所述目标文件发送给所述TEE操作系统。


31.根据权利要求30所述的方法,其特征在于,所述目标文件为目标动态库,所述目标动态库用于加载至目标TA的内存空间中,以支持所述目标TA运行目标服务,所述目标服务为目标TA提供的服务,所述目标TA为所述TEE操作系统上部署的一个或多个TA中的任意一个TA。


32.根据权利要求31所述的方法,其特征在于,所述传递请求为所述TEE操作系统发送的,或者,所述传递请求为目标客户端应用程序CA发送的,所述目标CA有调用所述目标服务的权限。


33.一种内存分配方法,其特征在于,应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE内部署有REE操作系统,所述TEE内部署有TEE操作系统,其特征在于,所述方法包括:
所述TEE操作系统向所述REE操作系统发送第一内存请求,所述第一内存请求用于请求所述REE操作系统为是TEE操作系统分配内存;
所述TEE操作系统接收所述REE操作系统发送的内存分配信息,所述内存分配信息用于指示为所述TEE操作系统分配的内存为目标内存;
所述TEE操作系统将所述目标内存配置为安全内存。


34.根据权利要求33所述的方法,其特征在于,所述TEE操作系统向所述REE操作系统发送第一内存请求之前,所述方法还包括:
所述TEE操作系统获取目标TA发送的第二内存请求,所述目标TA为所述TEE操作系统上部署的一个或多个TA中的任意一个TA,所述第二内存请求用于向所述TEE操作系统申请内存。


35.根据权利要求34所述的方法,其特征在于,所述TEE操作系统将所述目标内存配置为安全内存之后,所述方法还包括:
所述TEE操作系统将所述目标内存分配给所述目标TA。


36.根据权利要求34或35所述的方法,其特征在于,所述第二内存请求为所述目标TA响应于目标服务的运行请求发送的,所述第二内存请求用于申请所述目标TA运行所述目标服务所需的内存,所述目标服务为所述目标TA提供的服务。


37.根据权利要34至36中任一项所述的方法,其特征在于,所述第一内存请求申请的内存大于所述第二内存申请的内存。


38.根据权利要求35所述的方法,其特征在于,在所述TEE操作系统将所述第一内存分配给所述目标TA之后,所述方法还包括:
所述TE...

【专利技术属性】
技术研发人员:彭建新
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1