基于TrustZone架构的应用程序执行方法、装置和终端的制作方法_3

文档序号:9865259阅读:来源:国知局
系统library能力的ClassLoader (类加载器);
[0065]4)向上提供统一的Java API,运行可信的JAVA安全应用。
[0066]其中,Java安全应用执行过程如下所述:
[0067]a) Java源文件(*.java)通过编译器形成字节码文件(*.class)。
[0068]b)字节码文件被JVM的类加载器Classloader加载,进入执行引擎。JVM进程向安全操作系统请求在内存中分配属于安全世界(Secure World)的内存区域给Java安全应用进程。
[0069]c)安全系统将Java安全应用进程装载进入相应的安全世界内存,建立堆空间和方法区。
[0070]d)解释器通过执行引擎提供的适应安全系统的指令集,将java字节码文件解释为安全系统指令,交由安全系统内核执行。
[0071]其中,根据TrustZone机制,在TEE中的Java安全应用进程由安全内核执行,该进程的内存分配由TZBSP中的安全内存管理单元(Secure Memory Management Unit,SMMU)进行内存映射管理。因此,Java安全应用进程的所有内存资源属于TEE,REE中的进程无权访问,从而保证了安全应用的安全性。另外,Java安全应用进程的生命周期结束后,所分配的内存由JVM收回,放入整个系统的空闲内存堆,可再由REE下的内存管理单元NMMU (NormalMemory Management Unit)映射为REE下的内存资源或由SMMU映射为TEE下的内存资源。
[0072]此外,为了提高安全应用的平台无关性,JVM中的执行引擎需要提供适应于安全系统的指令集,以由解释器将字节码翻译为对应安全系统的指令,从而隐藏底层差异,所有在JVM上层的Java安全应用不需要关心运行在何种操作系统。
[0073]为了提高安全应用的灵活性,在安全系统上实现的JVM需要向上层提供同一的API,从而实现第三方Java安全应用的开发。为实现安全系统上的Java API,JVM通过JNI封装安全系统内核提供的系统调用,向上支持API,具体如下所示:
[0074]Secure Java Applicat1n (安全的 Java 应用程序)
[0075]?
[0076]Secure Java API (安全的 Java API)
[0077]?
[0078]JNI
[0079]?
[0080]Secure OS SystemCall (安全系统的系统调用)
[0081]Java安全应用通过JVM中的JNI实现安全系统中的系统调用功能,从而确保Java安全应用对于系统资源的使用都具有TEE下的所有权限。
[0082]本发明的上述技术方案通过向TrustZone框架下的TEE中移植JVM,实现了运行可信的JAVA安全应用,消除了现有方案中C/C++实现的安全应用的较高的平台依赖性,提高了安全应用的可移植性,为第三方开发者开发可信的安全应用提供了可能。
[0083]以上结合附图详细说明了本发明的技术方案,考虑到现有的TrustZone架构中,由于可运行于SEE之上的SAPP是来自各种OME的安全应用,且由C/C++语言实现,这样的SAPP对于平台依赖性较强,可移植性较差。因此,本发明提出了一种新的基于TrustZone架构的应用程序执行方案,使得能够在确保安全系统中运行可信的应用程序的前提下,有效降低了目前的安全应用对系统平台的依赖性,提高了安全应用的可移植性。
[0084]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于TrustZone架构的应用程序执行方法,适用于具有多系统的终端,其特征在于,包括: 基于所述终端的TrustZone支持包和所述终端中的指定系统构建虚拟机; 通过所述虚拟机中的编译器对所述应用程序的执行源文件进行编译,以形成字节码文件; 通过所述虚拟机中的类加载器将所述字节码文件加载至所述虚拟机中的执行引擎,由所述执行引擎向所述指定系统申请分配内存,并通过所述指定系统将所述应用程序对应的进程装载至所述指定系统分配的内存中; 由所述虚拟机中的解释器根据与所述指定系统相对应的指令集,将所述字节码文件解释为所述指定系统的执行指令,并将所述执行指令交由所述指定系统的内核进行执行。2.根据权利要求1所述的基于TrustZone架构的应用程序执行方法,其特征在于,由所述执行引擎向所述终端的指定系统申请分配内存的步骤具体为: 通过所述执行引擎向所述TrustZone支持包中的内存管理单元申请分配内存。3.根据权利要求2所述的基于TrustZone架构的应用程序执行方法,其特征在于,还包括: 在所述指定系统的内核对所述执行指令执行完成之后,由所述虚拟机回收所述指定系统分配的内存,并放入所述指定系统的空闲内存堆。4.根据权利要求2所述的基于TrustZone架构的应用程序执行方法,其特征在于,所述指定系统为所述终端内的安全系统,则由所述执行引擎向所述终端的指定系统申请分配内存的步骤具体还包括: 通过所述执行引擎向所述TrustZone支持包中的内存管理单元申请分配属于所述终端中的安全世界的内存。5.根据权利要求1至4中任一项所述的基于TrustZone架构的应用程序执行方法,其特征在于,还包括: 通过所述虚拟机提供应用程序编程接口,以提供在所述指定系统中的应用程序开发功會K ; 其中,所述虚拟机为JVM,所述JVM通过JNI实现对所述指定系统的功能进行调用,以将所述执行指令交由所述指定系统的内核进行执行。6.一种基于TrustZone架构的应用程序执行装置,适用于具有多系统的终端,其特征在于,包括: 构建单元,用于基于所述终端的TrustZone支持包和所述终端中的指定系统构建虚拟机; 编译单元,用于通过所述虚拟机中的编译器对所述应用程序的执行源文件进行编译,以形成字节码文件; 处理单元,用于通过所述虚拟机中的类加载器将所述字节码文件加载至所述虚拟机中的执行引擎,由所述执行引擎向所述指定系统申请分配内存,并通过所述指定系统将所述应用程序对应的进程装载至所述指定系统分配的内存中; 解释单元,用于由所述虚拟机中的解释器根据与所述指定系统相对应的指令集,将所述字节码文件解释为所述指定系统的执行指令; 执行单元,用于将所述执行指令交由所述指定系统的内核进行执行。7.根据权利要求6所述的基于TrustZone架构的应用程序执行装置,其特征在于,所述处理单元具体用于: 通过所述执行引擎向所述TrustZone支持包中的内存管理单元申请分配内存。8.根据权利要求7所述的基于TrustZone架构的应用程序执行装置,其特征在于,所述处理单元还用于: 在所述指定系统的内核对所述执行指令执行完成之后,由所述虚拟机回收所述指定系统分配的内存,并放入所述指定系统的空闲内存堆。9.根据权利要求7所述的基于TrustZone架构的应用程序执行装置,其特征在于,所述指定系统为所述终端内的安全系统,则所述处理单元具体还用于: 通过所述执行引擎向所述TrustZone支持包中的内存管理单元申请分配属于所述终端中的安全世界的内存。10.根据权利要求6至9中任一项所述的基于TrustZone架构的应用程序执行装置,其特征在于,还包括: 功能支持单元,用于通过所述虚拟机提供应用程序编程接口,以提供在所述指定系统中的应用程序开发功能; 其中,所述虚拟机为JVM,所述JVM通过JNI实现对所述指定系统的功能进行调用,以将所述执行指令交由所述指定系统的内核进行执行。11.一种终端,其特征在于,包括:如权利要求6至10中任一项所述的基于TrustZone架构的应用程序执行装置。
【专利摘要】本发明提供了一种基于TrustZone架构的应用程序执行方法、装置和终端,其中,所述应用程序执行方法,包括:基于终端的TrustZone支持包和终端中的指定系统构建虚拟机;通过虚拟机中的编译器对应用程序的执行源文件进行编译,以形成字节码文件;通过类加载器将字节码文件加载至执行引擎,由执行引擎向指定系统申请分配内存,并通过指定系统将应用程序对应的进程装载至分配的内存中;由虚拟机中的解释器根据与指定系统相对应的指令集,将字节码文件解释为指定系统的执行指令,并将执行指令交由指定系统的内核进行执行。本发明的技术方案使得能够在确保安全系统中运行可信的应用程序的前提下,有效降低安全应用对系统平台的依赖性,提高了安全应用的可移植性。
【IPC分类】G06F9/45, G06F9/445
【公开号】CN105630534
【申请号】CN201510204312
【发明人】申泽奇
【申请人】宇龙计算机通信科技(深圳)有限公司
【公开日】2016年6月1日
【申请日】2015年4月27日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1