CN108549571B - 一种适用于可信执行环境中的安全虚拟化方法 - Google Patents

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

Info

Publication number
CN108549571B
CN108549571B CN201810222867.XA CN201810222867A CN108549571B CN 108549571 B CN108549571 B CN 108549571B CN 201810222867 A CN201810222867 A CN 201810222867A CN 108549571 B CN108549571 B CN 108549571B
Authority
CN
China
Prior art keywords
execution environment
trusted execution
virtual machine
tee
trusted
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
Application number
CN201810222867.XA
Other languages
English (en)
Other versions
CN108549571A (zh
Inventor
韩泽锋
朱振
高峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Microtrust Technology Co ltd
Original Assignee
Shenyang Microtrust Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenyang Microtrust Technology Co ltd filed Critical Shenyang Microtrust Technology Co ltd
Priority to CN201810222867.XA priority Critical patent/CN108549571B/zh
Publication of CN108549571A publication Critical patent/CN108549571A/zh
Application granted granted Critical
Publication of CN108549571B publication Critical patent/CN108549571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种适用于可信执行环境中的安全虚拟化方法,包括:S1通过Micro Hypervisor建立至少一个虚拟机;S2配置至少一个可信执行环境TEE,所述TEE以第一模式访问虚拟机,实现资源调用,其中,在所述第一模式下,所述虚拟机确定所述可信执行环境具有访问权限后,将允许所述可信执行环境对所述资源进行访问;S3配置至少一个可信应用程序TA,所述TA运行在所述TEE中。本发明的有益效果:通过基于可信虚拟化技术、通过Micro Hypervisor建立一个虚拟机,在此虚拟机上运行GP TEE以及相应TA。因为TEE、TA都在各自的虚拟机上运行,实现了完全的隔离,大大提高了安全性。

Description

一种适用于可信执行环境中的安全虚拟化方法
技术领域
本发明涉及可信执行环境下的安全技术,具体来说,涉及一种适用于可信执行环境中的安全虚拟化方法。
背景技术
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, 内部进程通信端口IPCportals, 工厂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, 内部进程通信端口IPCportals, 工厂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中查找对应处理函数进行处理时,包含服务之间的调用、以及执行状态的切换。
综上所述,借助于本发明的上述技术方案,通过基于可信虚拟化技术、通过MicroHypervisor建立一个虚拟机,在此虚拟机上运行GP TEE以及相应TA。因为TEE、TA都在各自的虚拟机上运行,实现了完全的隔离,大大提高了安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种适用于可信执行环境中的安全虚拟化方法,其特征在于,包括:
S1 通过Micro Hypervisor建立至少一个虚拟机;
S2 配置至少一个可信执行环境TEE,所述TEE以第一模式访问虚拟机,实现资源调用,通过沙箱技术实现,用于提供TA运行的基本环境和资源,其中,在所述第一模式下,所述虚拟机确定所述可信执行环境具有访问权限后,所述可信执行环境通过虚拟处理器VCPU访问所述虚拟机,所述虚拟机基于所述VCPU的调用指令,查找所述资源调用对应的线程,在确定所述可信执行环境具有对所述线程的访问权限后,将允许所述可信执行环境对所述资源的调用,所述TA根据时间片原则、优先级策略轮询使用沙箱所提供的各种资源,每次只运行一个所述TA实例;
S3 配置至少一个可信应用程序TA,所述TA运行在所述TEE中。
2.根据权利要求1所述的适用于可信执行环境中的安全虚拟化方法,其特征在于,所述可信执行环境中提供的基础管理单元包括但不限于:属性管理单元、Session管理单元、TA管理单元、内存管理单元、异常管理单元。
3.根据权利要求1所述的适用于可信执行环境中的安全虚拟化方法,其特征在于,所述资源包括硬件资源和软件资源。
4.根据权利要求3所述的适用于可信执行环境中的安全虚拟化方法,其特征在于,所述虚拟机通过安全超级调用hypercall的方式陷入内核,由内核对访问中涉及到的内核对象进行能力集管理。
5.根据权利要求4所述的适用于可信执行环境中的安全虚拟化方法,其特征在于,对象能力集包括任务Tasks,线程threads, 内部进程通信端口IPC portals, 工厂factories,信号量semaphores,内核对象或者句柄的指针用于被创建、授权和删除。
6.根据权利要求4所述的适用于可信执行环境中的安全虚拟化方法,其特征在于,内存能力集包括虚拟内存页,发送一个内存能力集在发送方和接收方之间建立共享内存。
7.根据权利要求4所述的适用于可信执行环境中的安全虚拟化方法,其特征在于,输入输出IO能力集指对IO端口进行抽象,通过授权IO能力,允许Task或者地址空间访问被指定的IO端口。
CN201810222867.XA 2018-03-19 2018-03-19 一种适用于可信执行环境中的安全虚拟化方法 Active CN108549571B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810222867.XA CN108549571B (zh) 2018-03-19 2018-03-19 一种适用于可信执行环境中的安全虚拟化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810222867.XA CN108549571B (zh) 2018-03-19 2018-03-19 一种适用于可信执行环境中的安全虚拟化方法

Publications (2)

Publication Number Publication Date
CN108549571A CN108549571A (zh) 2018-09-18
CN108549571B true CN108549571B (zh) 2022-03-15

Family

ID=63516607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810222867.XA Active CN108549571B (zh) 2018-03-19 2018-03-19 一种适用于可信执行环境中的安全虚拟化方法

Country Status (1)

Country Link
CN (1) CN108549571B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003785B2 (en) 2019-07-16 2021-05-11 Advanced New Technologies Co., Ltd. Data transmission method and apparatus in tee systems
CN110427274B (zh) * 2019-07-16 2020-07-17 阿里巴巴集团控股有限公司 Tee系统中的数据传输方法和装置
CN112800431B (zh) * 2020-08-28 2023-09-29 支付宝(杭州)信息技术有限公司 超线程场景下安全进入可信执行环境的方法及装置
CN114625484A (zh) * 2022-03-31 2022-06-14 苏州浪潮智能科技有限公司 虚拟化实现方法、装置、电子设备、介质及arm平台
CN116049812B (zh) * 2022-06-28 2023-10-20 荣耀终端有限公司 访问硬件资源的方法和电子设备
CN117744117A (zh) * 2023-12-20 2024-03-22 元心信息科技集团有限公司 权限设置方法、装置、电子设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102524A (zh) * 2013-04-12 2014-10-15 中国银联股份有限公司 一种实现虚拟安全载体vse的方法
CN104620253A (zh) * 2012-09-28 2015-05-13 意法爱立信有限公司 用于维持安全时间的方法和设备
CN105574415A (zh) * 2015-12-08 2016-05-11 中电科华云信息技术有限公司 一种基于信任根的虚拟机安全管理方法
CN106845285A (zh) * 2016-12-28 2017-06-13 北京握奇智能科技有限公司 一种tee系统与ree系统配合以实现服务的方法及终端设备
CN106940655A (zh) * 2016-01-04 2017-07-11 中国移动通信集团公司 基于可信执行环境集成虚拟机的方法、终端
CN107038128A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160366123A1 (en) * 2015-06-10 2016-12-15 Mcafee, Inc. Device naming in an internet of things
US10114952B2 (en) * 2016-03-30 2018-10-30 Mcafee, Llc System, apparatus and method for performing secure memory training and management in a trusted environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104620253A (zh) * 2012-09-28 2015-05-13 意法爱立信有限公司 用于维持安全时间的方法和设备
CN104102524A (zh) * 2013-04-12 2014-10-15 中国银联股份有限公司 一种实现虚拟安全载体vse的方法
CN105574415A (zh) * 2015-12-08 2016-05-11 中电科华云信息技术有限公司 一种基于信任根的虚拟机安全管理方法
CN106940655A (zh) * 2016-01-04 2017-07-11 中国移动通信集团公司 基于可信执行环境集成虚拟机的方法、终端
CN107038128A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置
CN106845285A (zh) * 2016-12-28 2017-06-13 北京握奇智能科技有限公司 一种tee系统与ree系统配合以实现服务的方法及终端设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于TEE的安全支付系统设计与实现;金浩宇,温周莉等;《北京电子科技学院学报》;20170630;第25卷(第2期);全文 *

Also Published As

Publication number Publication date
CN108549571A (zh) 2018-09-18

Similar Documents

Publication Publication Date Title
CN108509251B (zh) 一种适用于可信执行环境中的安全虚拟化系统
CN108549571B (zh) 一种适用于可信执行环境中的安全虚拟化方法
US11200080B1 (en) Late load technique for deploying a virtualization layer underneath a running operating system
US10255088B2 (en) Modification of write-protected memory using code patching
US10176007B2 (en) Guest code emulation by virtual machine function
CN107015845B (zh) Gpu虚拟化
US10083129B2 (en) Code loading hardening by hypervisor page table switching
US11061710B2 (en) Virtual machine exit support by a virtual machine function
US8032741B2 (en) Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM)
US11294735B2 (en) Method and apparatus for accessing desktop cloud virtual machine, and desktop cloud controller
US10025615B2 (en) Dynamic guest virtual machine identifier allocation
US10409633B2 (en) Hypervisor-visible guest thread management
WO2019001434A1 (zh) 中断请求的处理方法、装置及虚拟化设备
CN110659101A (zh) 提供具有基于能力的安全性的函数级隔离的技术
US20170102957A1 (en) System and Method for Trusted Operability When Moving Between Network Functions Virtualization States
US9898327B2 (en) Compute node supporting virtual machines and services
US20220156103A1 (en) Securing virtual machines in computer systems
US7546600B2 (en) Method of assigning virtual process identifier to process within process domain
US10733005B1 (en) Providing access to mobile applications by heterogeneous devices
WO2022268150A1 (zh) 一种虚拟机与安全隔离区间的通信方法及相关装置
Chai et al. TEEI-A Mobile Security Infrastructure for TEE Integration
KR20100122431A (ko) 다수 개의 컴퓨팅 시스템 및/또는 환경들에서의 입출력 자원들의 공유
Cho et al. Sharing data between processes running on different domains in para-virtualized xen
CN116149820B (zh) 基于Xen的域间通信方法、装置、设备及存储介质
LU500447B1 (en) Nested isolation host virtual machine

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