一种适用于可信执行环境中的安全虚拟化方法与流程

文档序号:15462290发布日期:2018-09-18 18:27阅读:351来源:国知局

本发明涉及可信执行环境下的安全技术,具体来说,涉及一种适用于可信执行环境中的安全虚拟化方法。



背景技术:

TEE是可信执行环境的简称。当前的可信执行环境主要是基于智能终端(如智能手机)中处理器的安全区域构建的可信执行环境。TEE是一个独立的执行区域,它提供了很多安全属性,如隔离性,TA的完整性等,同时TEE也确保了加载到TEE中代码和数据的安全性。传统的TEE技术包含ARM的TrustZone等。GP组织(GlobalPlatform,全球平台国际标准组织)公布了TEE的基本保护范围,相关API和安全属性,符合该标准的TEE被称为GPTEE。同时还有其他的TEE,如N3TEE等。TEE的安全级别介于REE(Rich Execution Environment)和SE(Secure Element)之间。

虚拟化是一种在同一台机器上可以同时运行多种客户操作系统的技术。这种技术要追溯到60年代中期的IBM的大型机上。虚拟化技术在沉寂了很长时间之后,在90年开始复兴,Disco和VMware就是其中的典型代表。随着硬件对虚拟化的支持,新的虚拟化环境开始出现。典型的实施方法是在硬件和主机操作系统之间添加一个软件抽象层。通过在虚拟设备和物理设备之间转换,虚拟抽象层促进了客户操作系统到硬件平台的资源共享和解耦。

目前,TEE的实现方式通常是将TEE与TA绑定作为一个BTA存在,之间与下层的Microkernel或者hypervisor进行通信。这种方式的缺点是进程上运行操作系统的操作空间非常小,将TEE作为一个与TA平行的软件层,则TA与TEE之间就共享了内存区域,无法保证多TA运行而做到TA之间的隔离;造成安全隐患。

针对相关技术中的问题,目前尚未提出有效的解决方案。



技术实现要素:

针对相关技术中的上述技术问题,本发明提出一种适用于可信执行环境中的安全虚拟化方法,能够保证TA在安全环境下运行。

为实现上述技术目的,本发明的技术方案是这样实现的:

一种适用于可信执行环境中的安全虚拟化方法,包括:

S1 通过Micro Hypervisor建立至少一个虚拟机;

S2 配置至少一个可信执行环境TEE,所述TEE以第一模式访问虚拟机,实现资源调用,其中,在所述第一模式下,所述虚拟机确定所述可信执行环境具有访问权限后,将允许所述可信执行环境对所述资源进行访问;

S3 配置至少一个可信应用程序TA,所述TA运行在所述TEE中。

进一步的,所述TEE通过沙箱技术实现,用于提供TA运行的基本环境和资源。

进一步的,所述可信执行环境中提供的基础管理单元包括但不限于:属性管理单元、Session管理单元、TA管理单元、内存管理单元、异常管理单元。

进一步的,所述TA根据时间片原则、优先级策略轮询使用沙箱所提供的各种资源,每次只运行一个所述TA实例。

进一步的,在第一模式下,所述可信执行环境通过虚拟处理器VCPU访问所述虚拟机,所述虚拟机基于所述VCPU的调用指令,查找所述资源调用对应的线程,在确定所述可信执行环境具有对所述线程的访问权限后,将允许所述可信执行环境对所述资源的调用。

进一步的,所述资源包括硬件资源和软件资源。

进一步的,所述虚拟机通过安全超级调用hypercall的方式陷入内核,由内核对访问中涉及到的内核对象进行能力集管理。

进一步的,对象能力集包括任务Tasks,线程threads, 内部进程通信端口IPC portals, 工厂factories,信号量semaphores,内核对象或者句柄的指针用于被创建、授权和删除。

进一步的,内存能力集包括虚拟内存页,发送一个内存能力集在发送方和接收方之间建立共享内存。

进一步的,输入输出IO能力集指对IO端口进行抽象,通过授权IO能力,允许Task或者地址空间访问被指定的IO端口。

本发明的有益效果:通过基于可信虚拟化技术、通过Micro Hypervisor建立一个虚拟机,在此虚拟机上运行GP TEE以及相应TA。因为TEE、TA都在各自的虚拟机上运行,实现了完全的隔离,大大提高了安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例所述的一种适用于可信执行环境中的安全虚拟化方法的流程示意图;

图2是根据本发明实施例所述的一种适用于可信执行环境中的安全虚拟化方法所构建的虚拟系统的示意性结构图;

图3是根据本发明实施例所述的一种适用于可信执行环境中的安全虚拟化方法所构建的虚拟系统的一种具体应用示意图;

图4是根据本发明实施例所述的虚拟机中安全超级调用hypercall的访问方式示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,根据本发明实施例所述的一种适用于可信执行环境中的安全虚拟化方法,包括:

S1 通过Micro Hypervisor建立至少一个虚拟机;

S2 配置至少一个可信执行环境TEE,所述TEE以第一模式访问虚拟机,实现资源调用,其中,在所述第一模式下,所述虚拟机确定所述可信执行环境具有访问权限后,将允许所述可信执行环境对所述资源进行访问;

S3 配置至少一个可信应用程序TA,所述TA运行在所述TEE中。

进一步的,所述TEE通过沙箱技术实现,用于提供TA运行的基本环境和资源。

进一步的,所述可信执行环境中提供的基础管理单元包括但不限于:属性管理单元、Session管理单元、TA管理单元、内存管理单元、异常管理单元。

进一步的,所述TA根据时间片原则、优先级策略轮询使用沙箱所提供的各种资源,每次只运行一个所述TA实例。

进一步的,在第一模式下,所述可信执行环境通过虚拟处理器VCPU访问所述虚拟机,所述虚拟机基于所述VCPU的调用指令,查找所述资源调用对应的线程,在确定所述可信执行环境具有对所述线程的访问权限后,将允许所述可信执行环境对所述资源的调用。

进一步的,所述资源包括硬件资源和软件资源。

进一步的,所述虚拟机通过安全超级调用hypercall的方式陷入内核,由内核对访问中涉及到的内核对象进行能力集管理。

进一步的,对象能力集包括任务Tasks,线程threads, 内部进程通信端口IPC portals, 工厂factories,信号量semaphores,内核对象或者句柄的指针用于被创建、授权和删除。

进一步的,内存能力集包括虚拟内存页,发送一个内存能力集在发送方和接收方之间建立共享内存。

进一步的,输入输出IO能力集指对IO端口进行抽象,通过授权IO能力,允许Task或者地址空间访问被指定的IO端口。

为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。

在具体使用时,如图2所示为本发明所述一种适用于可信执行环境中的安全虚拟化方法所构建的虚拟系统的示范性实施例,通过Micro Hypervisor建立虚拟机,在虚拟机上运行有可信执行环境TEE,在可执行环境TEE中运行有可信应用程序TA。当TA的调用过程中,可信执行环境TEE需要访问虚拟机中资源时,虚拟机首先需要确定所述可信执行环境TEE是否具有访问权限,确定可信执行环境TEE对指定资源具有访问权限后,将允许所述可信执行环境对所述资源进行访问。

如图3所示的本发明所构建的虚拟系统的一种具体实施例,可信应用TA为多个,每个可信应用均在沙箱中运行。根据本发明的一个示例,虚拟化系统中包括一个沙箱。在可信应用调用沙箱的过程中,采用隔离的方式,即沙箱中只允许一次运行一个可信应用实例,不同的可信应用根据时间片原则和/或优先级策略轮询使用沙箱所提供的各种软硬件资源,从而保证了资源空间访问的隔离,保证了安全需求。而Vcpu在整个TEE环境中充当了TA和TEE之间访问的桥梁。此外,在沙箱从可信应用A切换到可信应用B时,可以保留可信应用A的运行配置参数,并在需要再次运行可信应用A时,根据可信应用A的运行配置参数,快速切换到可信应用A。此外,本发明的虚拟化操作系统也可以支持多个沙箱,以并行运行多个可信应用。每个沙箱之间,以及沙箱与可信执行环境之间彼此隔离。

此外,根据本发明所构建的虚拟系统的一个示例,如图3所示,虚拟化系统中,可信应用可以包括两类,即第一可信应用和第二可信应用。第一可信应用在沙箱环境中运行,第二可信应用不在沙箱环境中运行。例如,参见图2,第二可信应用运行在非沙箱的可信执行环境TEE中。

本发明实施例,通过使用沙箱技术,使得可信应用采用隔离的方式分别运行,保证了每个可信应用资源访问的安全性。

如图4所示,在本发明的一种具体实施例中,虚拟机通过安全超级调用hypercall的方式陷入内核,由内核对访问中涉及到的内核对象进行能力集管理。安全超级调用的访问方式具体为:TA调用GP API,产生SVC调用陷入VCPU内核状态,根据VCPU模式,Fiasco内核查找该调用所对应的线程,进入TEE中查找对应的处理函数进行处理,处理完成后切换到用户态的TA。

其中,在VCPU模式下通过内核查到调用对应线程时,根据微内核能力集进行访问控制。在进入TEE中查找对应处理函数进行处理时,包含服务之间的调用、以及执行状态的切换。

综上所述,借助于本发明的上述技术方案,通过基于可信虚拟化技术、通过Micro Hypervisor建立一个虚拟机,在此虚拟机上运行GP TEE以及相应TA。因为TEE、TA都在各自的虚拟机上运行,实现了完全的隔离,大大提高了安全性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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