CN116611053A - 可信执行环境实现方法及装置、终端设备 - Google Patents

可信执行环境实现方法及装置、终端设备 Download PDF

Info

Publication number
CN116611053A
CN116611053A CN202310653862.3A CN202310653862A CN116611053A CN 116611053 A CN116611053 A CN 116611053A CN 202310653862 A CN202310653862 A CN 202310653862A CN 116611053 A CN116611053 A CN 116611053A
Authority
CN
China
Prior art keywords
virtual machine
machine monitor
ree
memory
tee
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.)
Pending
Application number
CN202310653862.3A
Other languages
English (en)
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.)
Beijing Ziguang Zhanrui Communication Technology Co Ltd
Original Assignee
Beijing Ziguang Zhanrui Communication 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 Beijing Ziguang Zhanrui Communication Technology Co Ltd filed Critical Beijing Ziguang Zhanrui Communication Technology Co Ltd
Priority to CN202310653862.3A priority Critical patent/CN116611053A/zh
Publication of CN116611053A publication Critical patent/CN116611053A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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/45583Memory management, e.g. access or allocation

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)

Abstract

本申请提供一种可信执行环境实现方法及装置、终端设备,该方法包括:设置虚拟机监视器以隔离REE和TEE;使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理,并使TEE运行于所述虚拟机监视器环境之外。利用本申请方案,可以提高TEE实现方式的灵活性,降低芯片复杂度和设计开发难度。

Description

可信执行环境实现方法及装置、终端设备
技术领域
本申请涉及计算机技术领域,具体涉及一种可信执行环境实现方法及装置,终端设备。
背景技术
TEE(Trusted Execution Environment,可信执行环境)是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。其基本思想是:在硬件中为敏感数据单独分配一块隔离的内存,所有敏感数据的计算均在这块内存中进行,并且除了经过授权的接口外,硬件中的其他部分不能访问这块隔离的内存中的信息,以此来实现敏感数据的处理。
在基于ARM(Advanced RISC Machine,进阶精简指令集机器)体系结构的芯片平台上构建TEE环境,一般有如下解决方案:
方案一:如果芯片所采用的ARM处理器支持ARMTrustZone(ARM公司推出的SoC(System on Chip,片上系统)及CPU系统范围的安全解决方案),则按照TrustZone规范的要求进行芯片设计,比如在系统总线中增加安全信号以标识访问状态、各外围设备区分安全和非安全访问、增加TrustZone保护IP(Intellectual Property,知识产权)核以支持外围设备安全状态和非安全状态的配置等。在软件层面,REE(Rich Execution Environment)和TEE分别运行在处理器的非安全模式和安全模式中。这种方案芯片内部需增加安全相关保护IP以及大量逻辑以区分安全和非安全状态,因此芯片设计和芯片产品成本都会明显增加。
方案二:利用软件实现Type-1Hypervisor(直接运行于硬件之上的Hypervisor),Hypervisor又称为虚拟机监视器,是用来建立与执行虚拟机器的软件、固件或硬件。REE操作系统和TEE操作系统都运行于Hypervisor环境下。如果芯片所采用的ARM处理器不支持硬件虚拟化,该方案的软件实现需完全依赖软件方法实现虚拟机之间的内存资源、CPU缓存、CPU执行上下文以及其他设备的隔离,因此软件实现较为复杂,并且在Hypervisor中运行的虚拟机性能较差。这种方案中,REE和TEE都以虚拟机方式运行,其对硬件资源的访问和运行状态皆受Hypervisor管理,相互之间的隔离机制也由Hypervisor实现。
相较于方案一,无论芯片处理器是否支持硬件虚拟化,Type-1Hypervisor方案在软件实现上复杂度更高。
发明内容
本申请实施例提供一种可信执行环境实现方法及装置、终端设备,以提高TEE实现方式的灵活性,降低芯片复杂度和设计开发难度。
一方面,本申请实施例提供一种可信执行环境实现方法,所述方法包括:
设置虚拟机监视器以隔离REE和TEE;
使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理,并使TEE运行于所述虚拟机监视器环境之外。
可选地,所述方法还包括:
分别设置非安全内存和非安全外部设备、以及安全内存和安全外部设备;
所述使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理包括:
通过所述虚拟机监视器限制REE对所述安全内存和安全外部设备的访问。
可选地,所述方法还包括:通过TEE操作系统开启所述虚拟机监视器的监控功能,通过REE操作系统关闭所述虚拟机监视器的监控功能。
可选地,所述方法还包括:
在TEE中设置切换开关;
通过TEE操作系统驱动所述切换开关开启和关闭所述虚拟机监视器的监控功能。
另一方面,本申请实施例还提供一种可信执行环境实现装置,所述装置包括:
虚拟机监视器,用于实现REE和TEE的隔离,使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理,并使TEE运行于所述虚拟机监视器环境之外。
可选地,所述虚拟机监视器包括:
核心模块,用于进行硬件环境配置和程序加载、以及内存管理,并监控来自REE的CPU对受控硬件资源的访问;
虚拟机内存保护模块,用于限制来自REE的具备DMA能力的设备对所述受控硬件资源的访问;
DMA监视模块,用于限制来自REE的DMA控制器对所述受控硬件资源的操作。
可选地,所述受控硬件资源包括安全内存和安全外部设备。
可选地,所述核心模块包括:
引导单元,用于实现开机启动阶段虚拟机监视器的硬件环境配置、以及虚拟机监视器程序在各CPU核上的引导加载;
内存管理单元,用于配置所述虚拟机监视器自身使用的内存,配置允许REE使用的内存和外部设备及其对应的二级地址映射表;
异常陷入处理单元,用于监控REE通过CPU对受控硬件资源的访问,在有来自REE的CPU对所述受控硬件资源的访问时,终止所述访问;在有来自REE的CPU对DMA设备的操作时,触发所述DMA监视模块监视所述操作。
可选地,所述DMA监视模块,还用于在所述操作的目标内存地址或者源内存地址为安全内存地址时,向所述核心模块上报异常。
可选地,所述虚拟机内存保护模块被配置为禁止REE访问。
可选地,所述装置还包括:切换开关,设置在TEE中,用于开启或关闭所述虚拟机监视器的监控功能。
可选地,所述切换开关被配置为由TEE操作系统驱动开启或关闭所述虚拟机监视器的监控功能。
另一方面,本申请实施例还提供一种终端设备,所述终端设备包括前面所述的可信执行环境实现装置。
另一方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时使得前面所述方法被执行。
另一方面,本申请实施例还提供一种终端设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时使得前面所述方法被执行。
本申请实施例提供的可信执行环境实现方法及装置、操作系统架构、终端设备,基于TrustZone规范和硬件虚拟化技术,通过对内存及外部设备资源按照其物理地址范围在逻辑上划分安全或非安全属性,并通过设置虚拟机监视器实现对REE和TEE的隔离,使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理,并使TEE运行于所述虚拟机监视器环境之外。从而在无需芯片支持相关硬件保护IP的情况下,通过软件方式即可实现TEE,提高了TEE实现方式的灵活性,降低了芯片复杂度、以及设计开发难度和成本。
附图说明
图1是本申请实施例提供的可信执行环境实现方法的一种流程图;
图2是本申请实施例中虚拟机监视器的开启和关闭流程示意图;
图3是本申请实施例可信执行环境实现装置的一种结构示意图;
图4是本申请实施例中虚拟机监视器的一种结构示意图;
图5是本申请实施例中利用二级地址映射表访问内存和外设的关系示意图;
图6是本申请实施例可信执行环境实现装置的另一种结构示意图。
具体实施方式
为使本申请的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本申请的具体实施例做详细的说明。
实现TEE的关键为REE和TEE隔离方案的设计,方案必须确保REE无法访问TEE的硬件资源,其中包括只允许TEE才有权限访问的安全内存和其他安全外部设备。
针对现有技术中TEE的实现方案存在的上述问题,本申请实施例提供一种可信执行环境实现方法及装置、终端设备,基于ARMTrustZone技术和ARM硬件虚拟化技术,在无需芯片支持相关硬件保护IP的情况下,通过软件方式实现可信执行环境。
在本技术方案中,将只允许TEE访问而禁止REE访问的内存和外部设备划分为安全内存和安全外部设备,并且将允许REE直接透传访问的内存和外部设备划分为非安全内存和非安全外部设备。除此之外,通用DMA设备可同时被REE和TEE访问,但REE对其访问请求会被监控。
如图1所示,是本申请实施例提供的可信执行环境实现方法的一种流程图,包括以下步骤:
步骤101,设置虚拟机监视器以隔离REE和TEE。
步骤102,使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理,并使TEE运行于所述虚拟机监视器环境之外。
进一步地,在本申请实施例中,还可分别设置非安全内存和非安全外部设备、以及安全内存和安全外部设备。具体地,将允许REE直接透传访问的内存和外部设备被划分为非安全内存和非安全外部设备,将只允许TEE访问而REE禁止访问的内存和外部设备被划分为安全内存和安全外部设备。
需要说明的是,所述内存和外部设备的安全或者非安全属性并不是指在硬件上的属性,而是按照其物理地址范围在逻辑上划分的属性。
相应地,可以通过所述虚拟机监视器限制REE对所述安全内存和安全外部设备的访问。
通常,REE操作系统运行过程中,其对硬件资源的访问大部分场景下是通过CPU完成的,比如读写内存数据、通过读写外部设备寄存器实现对外部设备的控制等。除此之外,REE操作系统还可通过芯片中的大量DMA类设备,在无需CPU介入的情况下,实现对内存和外部设备寄存器的访问。
为此,在具体应用中,限制REE对所述安全内存和安全外部设备的访问可以包括以下几方面:
(1)限制REE通过CPU对所述安全内存和安全外部设备的访问;
(2)限制REE通过DMA控制器对所述安全内存和安全外部设备的访问;
(3)限制REE通过具备DMA能力的设备对所述安全内存和安全外部设备的访问。
除此之外,通用DMA(Direct Memory Access,直接存储器访问)设备可同时被REE和TEE访问,但REE对其访问请求会被虚拟机监视器监控。
与现有技术不同的是,本申请实施例提供的可信执行环境实现方法,通过对内存及外部设备资源按照其物理地址范围在逻辑上划分安全或非安全属性,并通过设置虚拟机监视器实现对REE和TEE的隔离,而且不同于现有技术中REE操作系统和TEE操作系统都运行于Hypervisor环境下的方式,只需使REE运行于虚拟机监视器环境中受所述虚拟机监视器管理,而TEE运行于所述虚拟机监视器环境之外,从而在无需芯片支持相关硬件保护IP的情况下,通过软件方式即可方便实现TEE。
进一步地,为了提高方案的灵活性,满足各种不同应用需求,比如,在有些应用中,要求具备TEE的应用场景,则需要开启上述虚拟机监视器的监控功能,而在不要求具备TEE的应用场景,则可以关闭上述虚拟机监视器的监控功能。在虚拟机监视器的监控功能开启的情况下,才会对REE对安全内存和安全外部设备的访问进行监控。
为此,在本申请可信执行环境实现方法另一非限制性实施例中,还可包括:通过TEE操作系统开启或关闭所述虚拟机监视器的监控功能。比如,在TEE中设置切换开关,通过TEE操作系统驱动所述切换开关实现开启和关闭所述虚拟机监视器的监控功能。比如,在需要切换到REE时,TEE操作系统开启所述虚拟机监视器的监控功能;在由REE切换到TEE时,TEE操作系统关闭所述虚拟机监视器的监控功能。
图2示出了本申请实施例中虚拟机监视器的开启和关闭流程示意图。其中,REESwitch ON/OFF分别表示开启或关闭虚拟机监视对REE的监控功能。
需要说明的是,TEE和REE的切换可以由用户来决定,而且对其切换方式本申请实施例不做限定。
相应地,本申请实施例还提供一种可信执行环境实现装置,如图3所示,是该装置的一种结构示意图,图3中还同时示出了该装置对REE和TEE的隔离方式。
该实施例的可信执行环境实现装置包括:虚拟机监视器300,用于实现REE和TEE的隔离,使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理,并使TEE运行于所述虚拟机监视器环境之外。
该实施例中,虚拟机监视器300可以从逻辑上将硬件中的内存和外部设备划分为非安全内存和非安全外部设备、以及安全内存和安全外部设备。具体地,将允许REE直接透传访问的内存和外部设备被划分为非安全内存和非安全外部设备,将只允许TEE访问而REE禁止访问的内存和外部设备被划分为安全内存和安全外部设备。
相应地,虚拟机监视器300对来自REE对硬件资源的访问进行监控,限制其对受控硬件资源的访问。比如,来自CPU、DMA控制器、以及具备DMA能力的设备(比如DPU(DisplayProcessor Unit,显示控制器)、GPU(Graphic Processing Unit,图形处理器)和相机等设备)对安全内存和安全外部设备的访问。对于TEE对安全内存和安全外部设备的访问则不受虚拟机监视器300限制。
如图4所示,是上述虚拟机监视器300的一种结构示意图。该虚拟机监视器300包括以下各模块:
核心模块301,用于进行硬件环境配置和程序加载、以及内存管理,并监控来自REE的CPU对受控硬件资源的访问;
虚拟机内存保护模块302,用于限制来自REE的具备DMA能力的设备对所述受控硬件资源的访问,即借助硬件的内存保护功能来实现其保护安全内存的目的;
DMA监视模块303,用于限制来自REE的DMA控制器对所述受控硬件资源的操作。
具体地,DMA监视模块303检查来自REE的DMA控制器对DMA设备的操作,并且在所述操作的目标内存地址或者源内存地址为安全内存地址时,终止所述操作。进一步地,在所述操作的目标内存地址或者源内存地址为安全内存地址时,DMA监视模块303还可向所述核心模块301上报异常。
需要说明的是,在本申请实施例中,可以从逻辑上划分非安全内存和非安全外部设备、以及安全内存和安全外部设备。所述受控硬件资源包括:安全内存和安全外部设备;
继续参照图4,其中,所述核心模块301的一种非限制性结构可以包括以下各单元:
引导单元311,用于实现开机启动阶段虚拟机监视器的硬件环境配置、以及虚拟机监视器程序在各CPU核上的引导加载;
内存管理单元312,用于配置所述虚拟机监视器自身使用的内存地址,配置允许REE使用的内存和外部设备及其对应的二级地址映射表;
异常陷入处理单元313,用于监控REE通过CPU对受控硬件资源的访问,在有来自REE的CPU对所述受控硬件资源的访问时,终止所述访问;在有来自REE的CPU对DMA设备的操作时,触发所述DMA监视模块监视所述操作。
具体地,异常陷入处理单元313检查来自REE的CPU的操作地址(包括目标地址和/或源地址),在所述操作地址为安全内存地址或安全外部设备地址时,触发终止所述操作。进一步地,在所述操作的目标内存地址或者源内存地址为安全内存地址时,触发DMA监视模块303终止相应操作。
上述内存管理单元312需要对内存和外部设备进行管理,配置二级地址映射表。所述二级地址映射表描述的是虚拟机监视器允许REE访问的逻辑物理地址(IPA)和真实物理地址(PA)之间的映射关系。相应地,所述异常陷入处理单元313根据所述二级地址映射表限制来自REE的CPU对所述受控硬件资源的访问。
需要说明的是,在REE对内存和外部设备进行访问时,需要经过两级映射关系,即查找二级地址映射表和一级地址映射表,确定REE可以访问的物理地址。其中,一级地址映射表S1是在REE中配置的,其描述的是REE所访问的虚拟地址VA和逻辑物理地址IPA之间的映射关系;二级地址映射表是在上述虚拟机监视器中配置的,其描述的是虚拟机监视器允许REE访问的逻辑物理地址IPA和真实物理地址PA之间的映射关系。正是存在VA->IPA,IPA->PA这两级映射关系,同时这两级映射关系在REE运行于虚拟机环境下时是被虚拟机监视器强制设定的,即REE无法根据VA直接访问PA,因此虚拟机监视器可通过配置二级地址映射表来限制REE可以访问的物理地址。
图5示出了利用二级地址映射表访问内存和外设的关系示意图,所述外设即外部设备的简称。
如图6所示,是本申请实施例可信执行环境实现装置的另一种结构示意图。
与图3所示实施例的区别在于,该实施例中,所述装置还包括设置在TEE中的切换开关400,用于开启或关闭所述虚拟机监视器300的监控功能。
在一种非限制性实施例中,所述切换开关400可以被配置为由TEE操作系统驱动开启或关闭所述虚拟机监视器300的监控功能,比如,在切换到TEE后,关闭所述虚拟机监视器300的监控功能;在需要切换到REE时,开启所述虚拟机监视器300的监控功能。
REE和TEE的切换可以由用户及当前应用发起,对此本申请实施例不做限定。
本申请实施例提供的可信执行环境实现方法及装置,同时利用了ARM TrustZone机制和Hypervisor机制,前者提供了TEE环境所在安全处理器模式以使TEE的OS(OperatingSystem,操作系统)运行于不同于REEOS的特殊安全模式中,后者实现将属于REE和TEE的硬件资源进行隔离。
本申请实施例提供的技术方案实现了一个轻量化的Type-1Hypervisor,通过虚拟机监视器隔离REE和TEE,虚拟机监视器主要负责对REE可访问的内存及外部设备资源进行管理,以及对REE的内存访问操作和外部设备访问操作进行监控,其对TEE无需进行管理和监控。另外,对芯片只要求ARM处理器支持TrustZone和硬件虚拟化,无需增加其他安全相关芯片设计。
本申请实施例提供的可信执行环境实现方法及装置可应用于手机、POS机等要求具备可信执行环境的终端设备上。
相应地,本申请实施例还提供一种终端设备,包括上面所述的可信执行环境实现装置。所述终端设备可以是各种形式的终端设备,如用户设备、接入终端、移动设备、用户终端、手机、POS机、相机、PDA(Personal Digital Assistant,个人数字处理)、车载设备、可穿戴设备等,本申请实施例对此并不限定。
在具体实施中,关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。
例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述各方法实施例中的步骤。
本申请实施例还提供了一种终端设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述各方法实施例中的步骤。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/“,表示前后关联对象是一种“或”的关系。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
本申请所提供的各实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理布置,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
虽然本申请披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。

Claims (15)

1.一种可信执行环境实现方法,其特征在于,所述方法包括:
设置虚拟机监视器以隔离REE和TEE;
使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理,并使TEE运行于所述虚拟机监视器环境之外。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别设置非安全内存和非安全外部设备、以及安全内存和安全外部设备;
所述使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理包括:
通过所述虚拟机监视器限制REE对所述安全内存和安全外部设备的访问。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
通过TEE操作系统开启所述虚拟机监视器的监控功能,通过REE操作系统关闭所述虚拟机监视器的监控功能。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在TEE中设置切换开关;
通过TEE操作系统驱动所述切换开关开启和关闭所述虚拟机监视器的监控功能。
5.一种可信执行环境实现装置,其特征在于,所述装置包括:
虚拟机监视器,用于实现REE和TEE的隔离,使REE运行于所述虚拟机监视器环境中受所述虚拟机监视器管理,并使TEE运行于所述虚拟机监视器环境之外。
6.根据权利要求5所述的装置,其特征在于,所述虚拟机监视器包括:
核心模块,用于进行硬件环境配置和程序加载、以及内存管理,并监控来自REE的CPU对受控硬件资源的访问;
虚拟机内存保护模块,用于限制来自REE的具备DMA能力的设备对所述受控硬件资源的访问;
DMA监视模块,用于限制来自REE的DMA控制器对所述受控硬件资源的操作。
7.根据权利要求6所述的装置,其特征在于,所述受控硬件资源包括安全内存和安全外部设备。
8.根据权利要求7所述的装置,其特征在于,所述核心模块包括:
引导单元,用于实现开机启动阶段虚拟机监视器的硬件环境配置、以及虚拟机监视器程序在各CPU核上的引导加载;
内存管理单元,用于配置所述虚拟机监视器自身使用的内存,配置允许REE使用的内存和外部设备及其对应的二级地址映射表;
异常陷入处理单元,用于监控REE通过CPU对受控硬件资源的访问,在有来自REE的CPU对所述受控硬件资源的访问时,终止所述访问;在有来自REE的CPU对DMA设备的操作时,触发所述DMA监视模块监视所述操作。
9.根据权利要求8所述的装置,其特征在于,
所述DMA监视模块,还用于在所述操作的目标内存地址或者源内存地址为安全内存地址时,向所述核心模块上报异常。
10.根据权利要求6所述的装置,其特征在于,所述虚拟机内存保护模块被配置为禁止REE访问。
11.根据权利要求5至10任一项所述的装置,其特征在于,所述装置还包括:
切换开关,设置在TEE中,用于开启或关闭所述虚拟机监视器的监控功能。
12.根据权利要求11所述的装置,其特征在于,
所述切换开关被配置为由TEE操作系统驱动开启或关闭所述虚拟机监视器的监控功能。
13.一种终端设备,其特征在于,所述终端设备包括如权利要求5至12任一项所述的可信执行环境实现装置。
14.一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时使得权利要求1至4中任一项所述方法被执行。
15.一种终端设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时使得权利要求1至4中任一项所述方法被执行。
CN202310653862.3A 2023-06-02 2023-06-02 可信执行环境实现方法及装置、终端设备 Pending CN116611053A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310653862.3A CN116611053A (zh) 2023-06-02 2023-06-02 可信执行环境实现方法及装置、终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310653862.3A CN116611053A (zh) 2023-06-02 2023-06-02 可信执行环境实现方法及装置、终端设备

Publications (1)

Publication Number Publication Date
CN116611053A true CN116611053A (zh) 2023-08-18

Family

ID=87679889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310653862.3A Pending CN116611053A (zh) 2023-06-02 2023-06-02 可信执行环境实现方法及装置、终端设备

Country Status (1)

Country Link
CN (1) CN116611053A (zh)

Similar Documents

Publication Publication Date Title
EP3761208B1 (en) Trust zone-based operating system and method
US7467285B2 (en) Maintaining shadow page tables in a sequestered memory region
KR101952226B1 (ko) 보안 인터렉션 방법 및 장치
US7950020B2 (en) Secure operating system switching
EP1939754B1 (en) Providing protected access to critical memory regions
US10445154B2 (en) Firmware-related event notification
EP3047419B1 (en) Virtual secure mode for virtual machines
US10146940B2 (en) Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems
WO2020244369A1 (zh) 进程间通信的方法、装置以及计算机设备
US10360386B2 (en) Hardware enforcement of providing separate operating system environments for mobile devices
US20050204357A1 (en) Mechanism to protect extensible firmware interface runtime services utilizing virtualization technology
US9886408B2 (en) Data access protection for computer systems
US20220180009A1 (en) Peripheral component interconnect express protection controller
EP4155949A1 (en) Method and apparatus for isolating kernel from task
WO2023123850A1 (zh) 一种固件可信根的实现方法、装置、设备和可读存储介质
CN110276214B (zh) 一种基于从机访问保护的双核可信soc架构及方法
CN112256396A (zh) 内存管理方法、系统及安全处理装置、数据处理装置
CN109154895B (zh) 上下文数据控制
CN117150478A (zh) 一种基于片上系统的信任根、芯片以及数据校验方法
US20230281135A1 (en) Method for configuring address translation relationship, and computer system
CN116881987A (zh) Pcie设备直通虚拟机的方法、装置及相关设备
WO2022268150A1 (zh) 一种虚拟机与安全隔离区间的通信方法及相关装置
CN116611053A (zh) 可信执行环境实现方法及装置、终端设备
Schnarz et al. Towards attacks on restricted memory areas through co-processors in embedded multi-OS environments via malicious firmware injection
EP4187387A1 (en) Inter-process communication method and apparatus, and computer storage medium

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