CN114490448A - 一种切换执行环境的方法及其相关设备 - Google Patents

一种切换执行环境的方法及其相关设备 Download PDF

Info

Publication number
CN114490448A
CN114490448A CN202011270083.8A CN202011270083A CN114490448A CN 114490448 A CN114490448 A CN 114490448A CN 202011270083 A CN202011270083 A CN 202011270083A CN 114490448 A CN114490448 A CN 114490448A
Authority
CN
China
Prior art keywords
page table
atf
tee
address
table entry
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
CN202011270083.8A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011270083.8A priority Critical patent/CN114490448A/zh
Priority to PCT/CN2021/117346 priority patent/WO2022100247A1/zh
Priority to EP21890775.6A priority patent/EP4231159A1/en
Publication of CN114490448A publication Critical patent/CN114490448A/zh
Priority to US18/316,377 priority patent/US20230281304A1/en
Pending legal-status Critical Current

Links

Images

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Automation & Control Theory (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种切换执行环境的方法及其相关设备,可有效防止黑客通过ATF恶意访问TEE的情况发生。本申请的方法包括:ATF在向TEE的返回地址寄存器写入第一虚拟地址之后判断该第一虚拟地址是否位于合法地址范围内,在确定该第一虚拟地址位于合法地址范围内时才基于该第一虚拟地址切换至TEE。

Description

一种切换执行环境的方法及其相关设备
技术领域
本申请涉及安全技术领域,尤其涉及一种切换执行环境的方法及其相关设备。
背景技术
随着互联网技术和智能终端的高速发展,对于智能终端运行环境的安全级别的要求也越来越高,信任区(TrustZone)已逐渐成为智能终端的标配。TrustZone是由ARM公司提出的一种安全技术,TrustZone引入了监控模式,在监控模式之上分为可信执行环境(trustexecution environment,TEE)和富执行环境(rich execution environment,REE)。TEE和REE各自具有一定的执行空间,TEE比REE的安全级别更高,且TEE所能访问的软硬件资源是与REE分离的。REE可运行android、linux等富操作系统(rich operating system,Rich OS)以及上层普通应用,而TEE可为可信应用(trusted application,TA)提供安全执行环境,同时也保护TA的资源和数据的保密性、完整性和访问权限。
一般地,在TEE和REE之间设置有一层组件,例如ARM可信固件(arm trustedfirmware,ATF)。在确保REE和TEE是隔离的前提下,ATF通常负责TEE和REE之间的通信和切换。ATF拥有最高的处理器执行权限,可访问TEE的敏感代码和关键资产。而且,ATF并不是为安全设计的组件,其安全防御能力较弱。因此,ATF经常成为黑客的攻击对象,黑客通过攻破ATF,从而进一步攻入TEE,以获取用户的关键资产。
具体的,当ATF需实现REE与TEE之间的切换时,ATF可向TEE的返回地址寄存器中写入TEE的入口地址(即用于进入TEE的虚拟地址),再从TEE的返回地址寄存器中读取该地址,并基于该地址切换至TEE,使得TEE从该地址所对应的代码处开始执行。在前述切换过程中,若ATF被黑客攻破,黑客可通过ATF向TEE的返回地址寄存器写入非法的入口地址,使得ATF基于非法的入口地址转入TEE的任意代码处执行,例如,在切换至TEE后,TEE跳过了某些关键的安全验证步骤,直接向REE返回验证成功的结果等等。因此,如何防止黑客通过ATF恶意访问TEE,成为了亟待解决的技术问题。
发明内容
本申请实施例提供了一种切换执行环境的方法及其相关设备,可有效防止黑客通过ATF恶意访问TEE的情况发生。
本申请实施例的第一方面提供了一种切换执行环境的方法,该方法包括:
当REE需要进入TEE时,可向ATF发起切换请求。ATF接收来自REE的切换请求后,可确定需要进行REE与TEE之间的切换。然后,ATF基于切换请求向TEE的返回地址寄存器写入第一虚拟地址(即TEE的入口地址)。接着,ATF判断寄存器中的第一虚拟地址是否位于预置的合法地址范围中,例如,若预置的合法地址范围内仅包含一个合法的入口地址,相当于仅设置了唯一一个用于进入TEE的入口地址,故ATF仅能基于该唯一的入口地址切换至TEE。又如,若预置的合法地址范围包含多个合法的入口地址,ATF则可基于这部分入口地址中的其中一个地址切换至TEE。最后,若ATF确定TEE的返回地址寄存器中的第一虚拟地址位于预置的合法地址范围内,则从TEE的返回地址寄存器中读取所述第一虚拟地址,并基于第一虚拟地址切换至TEE,使得TEE从第一虚拟地址对应的代码处开始执行,从而实现REE与TEE之间的切换。
从上述方法可以看出:ATF在接收到REE的切换请求后,可向TEE的返回地址寄存器写入第一虚拟地址。在确定寄存器内的第一虚拟地址位于预置的合法地址范围内后,ATF则从TEE的返回地址寄存器中读取第一虚拟地址,并基于第一虚拟地址切换至TEE。由于该第一虚拟地址位于预置的合法地址范围内,即第一虚拟地址仅能在预置的合法地址范围内进行取值,ATF基于被限制取值的第一虚拟地址切换至TEE,可使得TEE仅从特定位置的代码处开始执行,相当于ATF只能从某个或某些特定的入口进入TEE,可有效防止黑客通过ATF恶意访问TEE的情况发生。
在一种可能的实现方式中,该方法还包括:向TEE的页表基地址寄存器写入TEE的页表的基地址;若ATF确定TEE的返回地址寄存器中的第一虚拟地址位于预置的合法地址范围内,则从TEE的返回地址寄存器中读取第一虚拟地址具体包括:若ATF在TEE的返回地址寄存器和TEE的页表基地址寄存器中,确定第一虚拟地址和TEE的页表的基地址均位于预置的合法地址范围内,则从TEE的返回地址寄存器中读取第一虚拟地址。前述实现方式中,ATF在接收到切换请求后,可向TEE的返回地址寄存器和TEE的页表基地址寄存器分别写入第一虚拟地址和TEE的页表的基地址。在写入地址之前,ATF可能遭受到黑客的攻击,从而向两个寄存器写入非法的地址(向返回地址寄存器写入非法的地址,会导致没有通过合法的入口地址进入TEE,向TEE的页表基地址寄存器写入非法的地址,会导致TEE使用非法的页表),使得黑客通过ATF恶意访问TEE,因此,ATF在向两个寄存器分别写入地址后,可检测两个寄存器中的值,若第一虚拟地址和TEE的页表的基地址均位于预置的合法地址范围内,即二者均是合法的地址,则说明ATF并未遭受黑客的攻击,故ATF可从TEE的返回地址寄存器获取第一虚拟地址,以基于第一虚拟地址安全切换至TEE。
在一种可能的实现方式中,ATF基于第一虚拟地址切换至TEE具体包括:ATF从TEE的页表基地址寄存器读取TEE的页表的基地址,并基于TEE的页表的基地址获取TEE的页表目录,TEE的页表目录记录有多个TEE的虚拟地址与多个TEE的页表项的物理地址之间的一一对应关系,对于任意一个TEE的页表项,该页表项记录有一个TEE的数据段的物理地址,或,该页表项记录有一个TEE的代码段的物理地址,或,该页表项未记录内容;ATF在TEE的页表目录中,确定与第一虚拟地址对应的第一页表项的物理地址,第一虚拟地址为多个TEE的虚拟地址中的一个地址;ATF基于第一页表项的物理地址获取第一页表项,并确定第一页表项记录的物理地址;ATF基于第一页表项记录的物理地址切换至TEE。前述实现方式中,由于TEE的页表的基地址也为合法的地址,故ATF可基于该地址获取正确的TEE的页目录,从而在TEE的页目录中,基于第一虚拟地址获取第一页表项记录的物理地址,该物理地址指向TEE的入口位置的代码,那么ATF可基于该物理地址切换至TEE,使得TEE从该物理地址对应的代码处开始执行。
在一种可能的实现方式中,ATF接收来自REE的切换请求之前,该方法还包括:ATF关闭内存管理单元(memory management unit,MMU);ATF从ATF的页表基地址寄存器读取ATF的页表的基地址,并基于ATF的页表的基地址获取ATF的页表目录,ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系,对于任意一个ATF的页表项,该页表项记录有一个ATF的数据段以及该数据段的访问权限,或,该页表项记录有一个ATF的代码段的物理地址以及该代码段的访问权限,或,该页表项记录有多个ATF的页表项的访问权限,或,该页表项未记录内容;ATF获取第二虚拟地址,并在ATF的页表目录中确定与第二虚拟地址对应的第二页表项的物理地址,第二虚拟地址为多个ATF的虚拟地址中的一个地址,第二页表项记录有多个ATF的页表项的访问权限;ATF基于第二页表项的物理地址获取第二页表项,并在第二页表项中,将多个ATF的页表项的访问权限修改为只读;ATF获取第三虚拟地址,并在ATF的页表目录中确定与第三虚拟地址对应的第三页表项的物理地址,第三虚拟地址为多个ATF的虚拟地址中的一个地址;ATF基于第三页表项的物理地址获取第三页表项,并将第三页表项记录的目标代码段的访问权限设置为不可执行,目标代码段用于指示ATF的页表基地址寄存器的修改操作以及MMU的关闭操作;ATF开启MMU。现有技术中,若ATF遭受到黑客的攻击,黑客可通过ATF修改ATF的页表项中记录的物理地址,使得ATF的页表项映射至TEE的内存(若ATF的页表项中记录的物理地址未被恶意修改,则ATF的页表项映射的目标内存通常是ATF的内存),从而窃取或篡改TEE的数据和代码。更进一步地,黑客还可通过ATF向ATF的页表基地址寄存器写入非法的基地址,使得ATF获取黑客恶意创建的页表目录以及页表项,由于黑客创建的页表项记录的物理地址通常指向TEE的内存,故黑客也可通过此种攻击方式窃取或篡改TEE的数据和代码。前述实现方式中,ATF可先关闭MMU,然后将所有ATF的页表项的访问权限修改为只读,并将敏感指令(包含ATF的页表地址寄存器的修改操作以及MMU的关闭操作)的代码修改为不可执行,最后重新开启MMU。由于ATF的页表项的访问权限被设置为只读,且MMU不可再被关闭(因为MMU处于开启状态时,若强行修改ATF的页表项的访问权限以及敏感代码的访问权限,会使得系统崩溃),即使ATF遭受黑客的攻击,黑客也无法通过ATF对ATF的页表项进行修改,从而访问TEE的内存。更进一步地,由于ATF的页表地址寄存器中的取值不可被修改,故黑客也无法通过向ATF的页表地址寄存器写入非法的基地址,从而使用非法的页表映射TEE的内存并访问TEE的内存,可进一步防止黑客通过ATF恶意访问TEE的情况发生。
在一种可能的实现方式中,若切换请求用于指示ATF添加第四虚拟地址与目标物理地址之间的对应关系,第四虚拟地址为多个ATF的虚拟地址中的一个地址,目标物理地址指向ATF与TEE之间的新的共享内存区域,则ATF基于第一虚拟地址切换至TEE之后,该方法还包括:TEE接收来自ATF的切换请求;TEE基于切换请求,在ATF的页表目录中确定与第四虚拟地址对应的第四页表项的物理地址,ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系;TEE获取第五虚拟地址,第五虚拟地址为多个TEE的虚拟地址中的一个地址;TEE在TEE的页表目录中确定与第五虚拟地址对应的第五页表项的物理地址,并将基于第五页表项的物理地址获取第五页表项;TEE将第五页表项记录的内容修改为第四页表项的物理地址;TEE基于第五虚拟地址获取第四页表项;TEE将第四页表项记录的内容修改为目标物理地址。前述实现方式中,若REE在某些特殊的业务场景下发送的切换请求,用于指示ATF扩展自身的内存访问权限(通常指示ATF扩展的是新共享内存的访问权限),即指示ATF添加第四虚拟地址(多个ATF的虚拟地址中的一个地址)与目标物理地址(指向新的共享内存区域)之间的对应关系,由于ATF的页表项已被锁定(ATF的页表项只能被读取),故ATF无法对第四虚拟地址对应的第四页表项进行修改,但可通过TEE将第五虚拟地址(多个TEE的虚拟地址中的一个地址)映射至第四页表项,故TEE可基于第五虚拟地址获取第四页表项,从而将第四页表项记录的内容修改为目标物理地址,如此一来,则建立了第四虚拟地址与目标物理地址之间的对应关系,使得方案更加全面。
需要说明的是,TEE执行的方法也可以独立作为本申请提供的另一方面的方法。
在一种可能的实现方式中,ATF向TEE的返回地址寄存器写入第一虚拟地址之前,该方法还包括:ATF修改系统控制寄存器的取值,使得ATF处于中断屏蔽状态。前述实现方式中,ATF在向两个寄存器写入地址前,可先进入中断屏蔽状态,以防止后续的步骤被中断事件打断。
在一种可能的实现方式中,TEE将第四页表项记录的内容修改为目标物理地址之后,该方法还包括:TEE将第五页表项记录的内容删除。前述实现方式中,TEE在建立第四虚拟地址与目标物理地址之间的对应关系后,可将第五虚拟地址与第四页表项之间的对应关系解除。
应理解的是,以上方法可以由一个模块实现,也可以由多个模块协同实现。
本申请实施例的第二方面提供了一种切换执行环境的方法,该方法包括:ATF接收来自REE的切换请求之前,该方法还包括:ATF关闭内存管理单元(memory managementunit,MMU);ATF从ATF的页表基地址寄存器读取ATF的页表的基地址,并基于ATF的页表的基地址获取ATF的页表目录,ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系,对于任意一个ATF的页表项,该页表项记录有一个ATF的数据段以及该数据段的访问权限,或,该页表项记录有一个ATF的代码段的物理地址以及该代码段的访问权限,或,该页表项记录有多个ATF的页表项的访问权限,或,该页表项未记录内容;ATF获取第二虚拟地址,并在ATF的页表目录中确定与第二虚拟地址对应的第二页表项的物理地址,第二虚拟地址为多个ATF的虚拟地址中的一个地址,第二页表项记录有多个ATF的页表项的访问权限;ATF基于第二页表项的物理地址获取第二页表项,并在第二页表项中,将多个ATF的页表项的访问权限修改为只读;ATF获取第三虚拟地址,并在ATF的页表目录中确定与第三虚拟地址对应的第三页表项的物理地址,第三虚拟地址为多个ATF的虚拟地址中的一个地址;ATF基于第三页表项的物理地址获取第三页表项,并将第三页表项记录的目标代码段的访问权限设置为不可执行,目标代码段用于指示ATF的页表基地址寄存器的修改操作以及MMU的关闭操作;ATF开启MMU。
现有技术中,若ATF遭受到黑客的攻击,黑客可通过ATF修改ATF的页表项中记录的物理地址,使得ATF的页表项映射至TEE的内存(若ATF的页表项中记录的物理地址未被恶意修改,则ATF的页表项映射的目标内存通常是ATF的内存),从而窃取或篡改TEE的数据和代码。更进一步地,黑客还可通过ATF向ATF的页表基地址寄存器写入非法的基地址,使得ATF获取黑客恶意创建的页表目录以及页表项,由于黑客创建的页表项记录的物理地址通常指向TEE的内存,故黑客也可通过此种攻击方式窃取或篡改TEE的数据和代码。
从上述方法可以看出:ATF可先关闭MMU,然后将所有ATF的页表项的访问权限修改为只读,并将敏感指令(包含ATF的页表地址寄存器的修改操作以及MMU的关闭操作)的代码修改为不可执行,最后重新开启MMU。由于ATF的页表项的访问权限被设置为只读,且MMU不可再被关闭(因为MMU处于开启状态时,若强行修改ATF的页表项的访问权限以及敏感代码的访问权限,会使得系统崩溃),即使ATF遭受黑客的攻击,黑客也无法通过ATF对ATF的页表项进行修改,从而访问TEE的内存。更进一步地,由于ATF的页表地址寄存器中的取值不可被修改,故黑客也无法通过向ATF的页表地址寄存器写入非法的基地址,从而使用非法的页表映射TEE的内存并访问TEE的内存,可进一步防止黑客通过ATF恶意访问TEE的情况发生。
本申请实施例的第三方面提供了一种切换执行环境的装置,该装置包括REE、ATF和TEE,ATF用于:接收来自REE的切换请求;基于切换请求向TEE的返回地址寄存器写入第一虚拟地址;若ATF确定TEE的返回地址寄存器中的第一虚拟地址位于预置的合法地址范围内,则从TEE的返回地址寄存器中读取第一虚拟地址;基于第一虚拟地址切换至TEE。
从上述装置可以看出:ATF在接收到REE的切换请求后,可向TEE的返回地址寄存器写入第一虚拟地址。在确定寄存器内的第一虚拟地址位于预置的合法地址范围内后,ATF则从TEE的返回地址寄存器中读取第一虚拟地址,并基于第一虚拟地址切换至TEE。由于该第一虚拟地址位于预置的合法地址范围内,即第一虚拟地址仅能在预置的合法地址范围内进行取值,ATF基于被限制取值的第一虚拟地址切换至TEE,可使得TEE仅从特定位置的代码处开始执行,相当于ATF只能从某个或某些特定的入口进入TEE,可有效防止黑客通过ATF恶意访问TEE的情况发生。
在一种可能的实现方式中,ATF还用于向TEE的页表基地址寄存器写入TEE的页表的基地址;ATF具体用于若在TEE的返回地址寄存器和TEE的页表基地址寄存器中,确定第一虚拟地址和TEE的页表的基地址均位于预置的合法地址范围内,则从TEE的返回地址寄存器中读取第一虚拟地址。
在一种可能的实现方式中,ATF具体用于:从TEE的页表基地址寄存器读取TEE的页表的基地址,并基于TEE的页表的基地址获取TEE的页表目录,TEE的页表目录记录有多个TEE的虚拟地址与多个TEE的页表项的物理地址之间的一一对应关系,对于任意一个TEE的页表项,该页表项记录有一个TEE的数据段的物理地址,或,该页表项记录有一个TEE的代码段的物理地址,或,该页表项未记录内容;在TEE的页表目录中,确定与第一虚拟地址对应的第一页表项的物理地址,第一虚拟地址为多个TEE的虚拟地址中的一个地址;基于第一页表项的物理地址获取第一页表项,并确定第一页表项记录的物理地址;基于第一页表项记录的物理地址切换至TEE。
在一种可能的实现方式中,若切换请求用于指示ATF添加第四虚拟地址与目标物理地址之间的对应关系,第四虚拟地址为多个ATF的虚拟地址中的一个地址,目标物理地址指向ATF与TEE之间的新的共享内存区域,则TEE用于:接收来自ATF的切换请求;基于切换请求,在ATF的页表目录中确定与第四虚拟地址对应的第四页表项的物理地址,ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系;获取第五虚拟地址,并在TEE的页表目录中确定与第五虚拟地址对应的第五页表项的物理地址,第五虚拟地址为多个TEE的虚拟地址中的一个地址;将基于第五页表项的物理地址获取第五页表项,并将第五页表项记录的内容修改为第四页表项的物理地址;基于第五虚拟地址获取第四页表项;将第四页表项记录的内容修改为目标物理地址。
在一种可能的实现方式中,ATF还用于修改系统控制寄存器的取值,使得ATF处于中断屏蔽状态。
在一种可能的实现方式中,TEE还用于将第五页表项记录的内容删除。
本申请实施例的第四方面提供了一种切换执行环境的装置,该装置包括ATF,ATF用于:关闭MMU;从ATF的页表基地址寄存器读取ATF的页表的基地址,并基于ATF的页表的基地址获取ATF的页表目录,ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系,对于任意一个ATF的页表项,该页表项记录有一个ATF的数据段以及该数据段的访问权限,或,该页表项记录有一个ATF的代码段的物理地址以及该代码段的访问权限,或,该页表项记录有所述多个ATF的页表项的访问权限,或,该页表项未记录内容;获取第二虚拟地址,并在ATF的页表目录中确定与第二虚拟地址对应的第二页表项的物理地址,第二虚拟地址为多个ATF的虚拟地址中的一个地址,第二页表项记录有多个ATF的页表项的访问权限;基于第二页表项的物理地址获取第二页表项,并在第二页表项中,将多个ATF的页表项的访问权限修改为只读;获取第三虚拟地址,并在ATF的页表目录中确定与第三虚拟地址对应的第三页表项的物理地址,第三虚拟地址为多个ATF的虚拟地址中的一个地址;基于第三页表项的物理地址获取第三页表项,并将第三页表项记录的目标代码段的访问权限设置为不可执行,目标代码段用于指示ATF的页表基地址寄存器的修改操作以及MMU的关闭操作;开启MMU。
从上述装置可以看出:ATF可先关闭MMU,然后将所有ATF的页表项的访问权限修改为只读,并将敏感指令(包含ATF的页表地址寄存器的修改操作以及MMU的关闭操作)的代码修改为不可执行,最后重新开启MMU。由于ATF的页表项的访问权限被设置为只读,且MMU不可再被关闭(因为MMU处于开启状态时,若强行修改ATF的页表项的访问权限以及敏感代码的访问权限,会使得系统崩溃),即使ATF遭受黑客的攻击,黑客也无法通过ATF对ATF的页表项进行修改,从而访问TEE的内存。更进一步地,由于ATF的页表地址寄存器中的取值不可被修改,故黑客也无法通过向ATF的页表地址寄存器写入非法的基地址,从而使用非法的页表映射TEE的内存并访问TEE的内存,可进一步防止黑客通过ATF恶意访问TEE的情况发生。
本申请实施例的第五方面提供了一种终端设备,终端设备包括:处理器和存储器;存储器用于存储计算机执行指令;处理器用于执行存储器所存储的计算机执行指令,以使终端设备实现如第一方面、第一方面的任意一种可能的实现方式或第二方面所述的方法。
本申请实施例的第六方面提供了一种计算机存储介质,包括计算机可读指令,当计算机可读指令被执行时,实现如第一方面、第一方面的任意一种可能的实现方式或第二方面所述的方法。
本申请实施例的第七方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面、第一方面的任意一种可能的实现方式或第二方面所述的方法。应理解的是,TEE执行的方法可以作为另一种计算机程序产品。
本申请实施例的第八方面提供了一种芯片系统,该芯片系统包含一个或多个处理器和存储介质,所述存储介质存储有计算机可读指令,当所述一个或多个处理器读取所述计算机可读指令后促使所述芯片系统实现前述第一方面、第二方面或各自的任意一种实现方法。
本申请实施例中,ATF在接收到REE的切换请求后,可向TEE的返回地址寄存器写入第一虚拟地址。在确定寄存器内的第一虚拟地址位于预置的合法地址范围内后,ATF则从TEE的返回地址寄存器中读取第一虚拟地址,并基于第一虚拟地址切换至TEE。由于该第一虚拟地址位于预置的合法地址范围内,即第一虚拟地址仅能在预置的合法地址范围内进行取值,ATF基于被限制取值的第一虚拟地址切换至TEE,可使得TEE仅从特定位置的代码处开始执行,相当于ATF只能从某个或某些特定的入口进入TEE,可有效防止黑客通过ATF恶意访问TEE的情况发生。
附图说明
图1为本申请实施例提供的终端设备的一个软件结构示意图;
图2为本申请实施例提供的切换执行环境的方法的一个流程示意图;
图3为本申请实施例提供的切换执行环境的方法的另一流程示意图;
图4为本申请实施例提供的切换执行环境的方法的又一流程示意图;
图5为本申请实施例提供的切换执行环境的装置的一个结构示意图;
图6为本申请实施例提供的终端设备的一个结构示意图。
具体实施方式
本申请实施例提供了一种切换执行环境的方法及其相关设备,可有效防止黑客通过ATF恶意访问TEE的情况发生。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些端口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
本申请实施例可通过终端设备实现,终端设备可以终端可以是智能手机、个人数字助理(PersonalDigital Assistant,PDA)、平板电脑等设备。下文将对终端设备的软件架构进行简单的介绍,图1为本申请实施例提供的终端设备的一个软件结构示意图。如图1所示,终端设备上可以部署非安全运行环境和安全运行环境,其中,非安全运行环境为终端设备上的REE,REE可运行目前常用的富操作系统(即图1中的Rich OS),例如Android、iOS、WindowsPhone等操作系统。安全运行环境为终端设备上的TEE,TEE可运行一个功能简单、代码量小、封闭并且可人为审核控制的安全操作系统(即图1中的TEE OS)。安全性要求不高的客户端应用(client application,CA)运行在REE中,安全性要求较高的安全应用TA运行在TEE中,可为部署于Rich OS上的CA提供安全服务,例如,用户在使用终端设备中的CA过程中,若遇到电子支付等敏感操作,CA会向TA发送请求,TA接收到请求之后执行与支付相关的验证操作(例如,验证密码是否正确),并将验证成功后的结果向CA返回,CA继续执行后续步骤,从而防止数据(例如,上述密码)泄露。
一般地,TEE所能访问的软硬件资源与REE是隔离的。TEE可为REE提供安全服务,但TEE与REE是安全隔离的,REE中的Rich OS以及其上的CA无法直接访问TEE,故TEE构建了一个与REE隔离的安全运行环境,从而为TA提供安全的执行环境。REE与TEE之间设置有一层底层固件,该底层固件通常以ATF的形式呈现。ATF可在保证REE与TEE隔离的前提下,实现REE与TEE之间的通信和切换。ATF拥有最高的处理器执行权限,可访问REE和TEE的内存,故ATF被攻击的潜在威胁很大,而且ATF并非专门为安全设计的组件,其能够实现的安全机制少于TEE所能实现的安全机制,故ATF的安全防御能力较弱。因此,ATF经常成为黑客的攻击对象,黑客通过攻破ATF,从而进一步攻入TEE,以窃取用户的关键资产。
具体地,当ATF需实现REE与TEE之间的切换时,ATF可向TEE的返回地址寄存器中写入TEE的入口地址,再从TEE的返回地址寄存器中读取该地址,并基于该地址切换至TEE,使得TEE从该地址所对应的代码处开始执行。在前述切换过程中,若ATF被黑客攻破,黑客可通过ATF向TEE的返回地址寄存器写入非法的入口地址,使得ATF基于非法的入口地址转入TEE的任意代码处执行,例如,在切换至TEE后,TEE跳过了某些关键的安全验证步骤,直接向REE返回验证成功的结果等等。
进一步地,在正常情况下,ATF可基于ATF的页表访问ATF的内存(用于存放ATF的数据和代码),即ATF的页表可映射至ATF的内存。具体地,在ATF的页表中,ATF的页表项记录的物理地址指向ATF的内存,若ATF遭受到黑客的攻击,黑客可通过ATF恶意篡改ATF的页表项中记录的物理地址,使得ATF的页表项记录的地址指向TEE的内存(用于存放TEE的数据和代码),故黑客可通过ATF,基于修改后的ATF的页表访问TEE的内存,从而窃取或篡改TEE的数据和代码。
更进一步地,黑客还可通过ATF向ATF的页表基地址寄存器写入非法的基地址,使得ATF从ATF的页表基地址寄存器读取出非法的基地址后,基于该基地址获取黑客新创建的页表,由于黑客恶意创建的页表中,其页表项记录的物理地址通常指向TEE的内存,故黑客也可通过此种攻击方式窃取或篡改TEE的数据和代码。
因此,为了防止黑客通过ATF恶意访问TEE的情况发生,本申请实施例提供了一种切换执行环境的方法,可使得ATF能够实现全新的安全机制,提高ATF的安全防御能力。该新的安全机制包含初始化阶段的流程以及业务调用的流程,下文先对初始化阶段的流程进行介绍。需要说明的是,本申请实施例所提及的REE、ATF和TEE均为软件上的概念,三者均为处理器的运行模式,故在物理实现上,REE、ATF和TEE所执行的步骤均可视为是处理器在执行,后续不再赘述。图2为本申请实施例提供的切换执行环境的方法的一个流程示意图,如图2所示,该方法包括:
201、ATF关闭MMU。
当处理器启动后,ATF可进行初始化,ATF初始化的过程包含设置ATF的虚拟地址范围、构建ATF的页表、向ATF的页表基地址寄存器写入ATF的页表的基地址、开启MMU、设置ATF的数据段和代码段的访问权限等等。
ATF完成初始化后,则关闭MMU。当MMU处于开启状态的时候,ATF若强行对ATF的页表进行修改,例如,修改ATF的页表项的访问权限,修改ATF的数据段或代码段的访问权限等等,会导致系统崩溃。因此,为了顺利执行后续的步骤,ATF需要先关闭MMU。
202、ATF从ATF的页表基地址寄存器读取ATF的页表的基地址,并基于ATF的页表的基地址获取ATF的页表目录,ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系,对于任意一个ATF的页表项,该页表项记录有一个ATF的数据段以及该数据段的访问权限,或,该页表项记录有一个ATF的代码段的物理地址以及该代码段的访问权限,或,该页表项记录有多个ATF的页表项的访问权限,或,该页表项未记录内容。
本实施例中,ATF的内存被划分为多个内存区域,一个ATF的内存区域可用于存储ATF的页表目录、ATF的页表项、ATF的数据段或ATF的代码段等等,且一个ATF的内存区域具有专属的一个物理地址,ATF可基于物理地址找到相应的内存区域,从而对内存区域存储的对象进行操作,例如读、写或执行等等。需要说明的是,一个ATF的内存区域可以为一个ATF的专属内存区域(专供ATF使用),也可以为一个ATF与TEE之间的共享内存区域(可供ATF和TEE一起使用),还可以为一个ATF与REE之间的共享内存区域(可供ATF和REE一起使用)。
可以理解的是,由于某个物理地址指向某个内存区域,且该内存区域存储有相应的对象,故下文中所描述的“某个对象的物理地址”,可视为指向存储有该对象的内存区域的物理地址。例如,ATF的页表目录的物理地址,该地址指向存储有ATF的页表目录的内存区域,又如,ATF的代码段的物理地址,该地址指向存储有ATF的代码段的内存区域等等,后续不再赘述。
ATF的页表为两级结构,包含ATF的页表目录和多个ATF的页表项。其中,ATF的页表目录的物理地址即为ATF的页表的基地址。ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系,其中,每个ATF的虚拟地址均位于分配至ATF的虚拟地址范围中,每个ATF的页表项的物理地址指向一个用于存储该页表项的内存区域。
在上述多个ATF的页表项中,可分为两类页表项,其中一类为已使用的页表项,另一类为未使用的页表项。当某一个ATF的页表项为已使用的页表项时,该页表项记录有一个ATF的数据段的物理地址以及该数据段的访问权限,或,该页表项记录有一个ATF的代码段的物理地址以及该代码段的访问权限,或该页表项记录有多个ATF的页表项的访问权限。当某一个ATF的页表项为未使用的页表项时,该页表项未记录任何内容,即该页表项记录的内容为空。此外,ATF的页表项的访问权限包含读和写,ATF的数据段的访问权限包含读和写,ATF的代码段的访问权限包含读、写和执行。
综上所述,基于ATF的页表,可实现如下对应关系:ATF的虚拟地址→ATF的页表项的物理地址)→ATF的数据段的物理地址或ATF的代码段的物理地址,前述对应关系也可等同于以下对应关系:ATF的虚拟地址→ATF的页表项→ATF的数据段或ATF的代码段,故ATF可基于ATF的虚拟地址获取到相应的ATF的数据段或ATF的代码段。
若ATF需要修改ATF的页表,例如,对ATF的页表目录进行修改或对ATF的页表项进行修改,则可先从ATF的页表基地址寄存器中读取ATF的页表的基地址,然后从该基地址指向的内存区域获取ATF的页表目录。
203、ATF获取第二虚拟地址,并在ATF的页表目录中确定与第二虚拟地址对应的第二页表项的物理地址,第二虚拟地址为多个ATF的虚拟地址中的一个地址,第二页表项记录有多个ATF的页表项的访问权限。
204、ATF基于第二页表项的物理地址获取第二页表项,并在第二页表项中,将多个ATF的页表项的访问权限修改为只读。
ATF得到ATF的页表目录后,可对ATF的页表项的访问权限进行修改。具体地,ATF可获取用于修改ATF的页表项的访问权限的第二虚拟地址,并在ATF的页表目录中,确定与第二虚拟地址对应的第二页表项的物理地址,然后从第二页表项的物理地址指向的内存区域中获取第二页表项,第二页表项记录有所有ATF的页表项的访问权限。可以理解的是,在ATF的页表中,第二虚拟地址为多个ATF的虚拟地址中的一个,故第二页表项也为多个ATF的页表项中的一个。
然后,ATF可在第二页表项中,将每个ATF的页表项的访问权限修改为只读,故每个ATF的页表项记录的内容只可被读取而不可被修改。例如,设某个ATF的页表项记录有某个ATF的代码段的物理地址以及该代码段的访问权限。若该ATF的页表项的访问权限被设置为只读,则ATF只能读取该页表项记录的内容,但不可修改该页表项记录的内容,即无法修改该页表项记录的物理地址以及代码段的访问权限。
205、ATF获取第三虚拟地址,并在ATF的页表目录中与第三虚拟地址对应的确定第三页表项的物理地址,第三虚拟地址为多个ATF的虚拟地址中的一个地址。
206、ATF基于第三页表项的物理地址获取第三页表项,并将第三页表项记录的目标代码段的访问权限设置为不可执行,第三页表项记录的目标代码段用于指示ATF的页表基地址寄存器的修改操作以及MMU的关闭操作。
ATF得到ATF的页表目录后,还可对用于指示敏感指令的目标代码段的访问权限进行修改,其中,敏感指令包括ATF的页表基地址寄存器的修改操作以及MMU的关闭操作。具体地,ATF可先获取与目标代码段对应的第三虚拟地址,并在ATF的页表目录中,确定与第三虚拟地址对应的第三页表项的物理地址,然后从第三页表项的物理地址指向的内存区域中获取第三页表项。可以理解的是,在ATF的页表中,第三虚拟地址为多个ATF的虚拟地址中的一个,故第三页表项也为多个ATF的页表项中的一个,目标代码为多个ATF的代码段中的一个。
ATF得到第三页表项后,由于第三页表项记录有目标代码段的物理地址以及目标代码段的访问权限,故ATF可在第三页表项中,将目标代码段的访问权限修改为不可执行,即ATF不会再执行敏感指令,即ATF无法再向ATF的页表基地址寄存器写入新的基地址,也无法再关闭MMU。
应理解,步骤203和步骤205的执行顺序不分先后,步骤203和步骤205可同步进行,也可异步进行,例如,步骤203先于步骤205执行,又如,步骤203后于步骤205执行等等,此处不做限制。
207、ATF开启MMU。
ATF对ATF的页表完成修改后,可重新开启MMU,至此,则完成了初始化阶段的流程。
本实施例中,在ATF重新开启MMU后,即使ATF被黑客攻破,由于MMU不可再被关闭,故黑客无法通过ATF修改ATF的页表项的访问权限,进而ATF的页表项的访问权限被锁定为只读,黑客无法通过ATF修改ATF的页表项记录的物理地址,以令ATF的页表项记录的物理地址指向TEE的内存。更进一步地,黑客也无法通过ATF向ATF的页表基地址寄存器写入非法的基地址,以令ATF基于该非法的基地址获取黑客恶意创建的页表,并基于该页表访问TEE的内存。因此,ATF通过对ATF的页表进行了一系列的权限设置后,可有效提高自身的安全防御能力,防止黑客通过ATF恶意访问TEE的情况发生。
完成初始化阶段的流程后,若REE向TEE发起安全业务的调用,则可进入业务调用的流程。图3为本申请实施例提供的切换执行环境的方法的另一流程示意图,如图2所示,该方法包括:
301、ATF接收来自REE的切换请求。
若REE向TEE发起安全业务的调用,即REE需要进入TEE,则REE可向ATF发送切换请求。
302、ATF基于切换请求,向TEE的返回地址寄存器写入第一虚拟地址,并向TEE的页表基地址寄存器写入TEE的页表的基地址。
ATF接收到来自REE的切换请求后,可确定需要进行REE与TEE之间的切换。故ATF可向TEE的返回地址寄存器写入第一虚拟地址,并向TEE的页表基地址寄存器写入TEE的页表的基地址。
此外,在ATF向TEE的返回地址寄存器和TEE的页表基地址寄存器分别写入第一虚拟地址和TEE的页表的基地址之前,ATF可修改系统控制寄存器的取值,使得ATF处于中断屏蔽状态,从而为后续的步骤提供原子性保护,以防止后续的步骤被中断事件打断。
303、若ATF在TEE的返回地址寄存器和TEE的页表基地址寄存器中,确定第一虚拟地址和TEE的页表的基地址均位于预置的合法地址范围内,则从TEE的返回地址寄存器中读取第一虚拟地址。
在ATF向TEE的返回地址寄存器和TEE的页表基地址寄存器分别写入第一虚拟地址和TEE的页表的基地址之前,若黑客攻破了ATF,可将ATF即将写入的第一虚拟地址修改为非法的入口地址,导致ATF向TEE的返回地址寄存器写入非法的入口地址,从而基于该非法的地址转入TEE的任意代码处执行。进一步地,即使第一虚拟地址为合法的入口地址,但ATF在基于第一虚拟地址跳转至TEE的过程中,需要使用正确的TEE的页表,若ATF向TEE的页表基地址寄存器写入的TEE的页表的基地址为非法的地址,那么ATF则无法获取正确的TEE的页表,导致跳转不成功。更进一步地,后续TEE也无法获取正确的TEE的页表,导致系统出现一系列的安全问题。
由此可见,ATF并不确定其向TEE的返回地址寄存器和TEE的页表基地址寄存器写入的地址是否为合法的地址,故ATF需要对两个寄存器中的地址进行检测,判断两个寄存器中的地址是否位于预置的合法地址范围中,从而避免上述情况的发生。需要说明的是,预置的合法地址范围包含至少一个合法的入口地址,以及唯一一个正确的TEE的页表的基地址。例如,若预置的合法地址范围内仅包含唯一一个合法的入口地址,则ATF仅能基于该唯一的入口地址切换至TEE,使得TEE仅能从唯一一个指定的代码处开始执行。又如,若预置的合法地址范围包含多个TEE的入口地址,ATF则可基于多个入口地址中的其中一个地址切换至TEE,使得TEE能从多个指定的代码处中的一个开始执行。
在ATF确定第一虚拟地址和TEE的页表的基地址均位于预置的合法地址范围内,即ATF确定第一虚拟地址为合法的入口地址,且TEE的页表的基地址也为正确的地址,则ATF可从TEE的返回地址寄存器中读取第一虚拟地址。
304、ATF从TEE的页表基地址寄存器读取TEE的页表的基地址,并基于TEE的页表的基地址获取TEE的页表目录,TEE的页表目录记录有多个TEE的虚拟地址与多个TEE的页表项的物理地址之间的一一对应关系,对于任意一个TEE的页表项,该页表项记录有一个TEE的数据段的物理地址,或,该页表项记录有一个TEE的代码段的物理地址,或,该页表项未记录内容。
ATF读取第一虚拟地址后,则从TEE的页表基地址寄存器读取TEE的页表的基地址,并基于TEE的页表的基地址获取TEE的页表目录。需要说明的是,关于TEE的页表的相关说明,可参考步骤202中ATF的页表的相关说明部分,此处不再赘述。
305、ATF在TEE的页表目录中,确定与第一虚拟地址对应的第一页表项的物理地址,第一虚拟地址为多个TEE的虚拟地址中的一个地址。
ATF得到TEE的页表目录后,由于TEE的页表目录记录有多个TEE的虚拟地址与多个TEE的页表项的物理地址之间的一一对应关系,故ATF可在TEE的页表目录中,确定与第一虚拟地址对应的第一页表项的物理地址。在TEE的页表中,第一虚拟地址为多个TEE的虚拟地址中的一个,故第一页表项为多个TEE的页表项中的一个。
306、ATF基于第一页表项的物理地址获取第一页表项,并确定第一页表项记录的物理地址。
ATF得到第一页表项的物理地址后,则从第一页表项的物理地址指向的内存区域中获取第一页表项,并确定第一页表项记录的物理地址。
307、ATF基于第一页表项记录的物理地址切换至TEE。
由于第一页表项记录有某个TEE的代码段的物理地址,该代码段为提前指定的代码段,故ATF可基于第一页表项记录的物理地址切换至TEE,使得TEE从该物理地址对应的代码段开始执行。
本实施例中,ATF在接收到REE的切换请求后,可获取用于进入TEE的第一虚拟地址,由于该第一虚拟地址位于预置的合法地址范围内,即第一虚拟地址仅能在预置的合法地址范围内进行取值,ATF基于被限制取值的第一虚拟地址切换至TEE,可使得TEE仅从特定位置的代码处开始执行,相当于ATF只能从某个或某些特定的入口进入TEE,可有效防止黑客通过ATF恶意访问TEE的情况发生。
此外,在业务调用的流程中,若REE在某些特殊的业务场景下发送的切换请求,用于指示ATF扩展自身的内存访问权限(例如,在ATF当前能够访问的内存区域的基础上,令ATF能够额外访问一个新的共享内存区域),由于ATF的页表项的权限被锁定为只读,故无法通过修改ATF的页表以拓展ATF的内存访问权限。本申请实施例中,可通过TEE修改TEE的页表,以拓展ATF的内存访问权限。下文将对TEE拓展ATF的内存访问权限的过程进行介绍,图4为本申请实施例提供的切换执行环境的方法的又一流程示意图,如图4所示,该方法包括:
401、TEE接收来自ATF的切换请求,切换请求用于指示ATF添加第四虚拟地址与目标物理地址之间的对应关系,第四虚拟地址为多个ATF的虚拟地址中的一个地址,目标物理地址指向ATF与TEE之间的新的共享内存区域。
在ATF切换至TEE之前,ATF可将切换请求存入一个ATF与TEE之间的共享内存区域(已分配的共享内存区域)中。在切换至TEE后,TEE可从该共享内存区域中获取切换请求。切换请求用于指示ATF在ATF的页表中添加第四虚拟地址与目标物理地址之间的对应关系,其中,第四虚拟地址为多个ATF的虚拟地址中的一个,且第四虚拟地址对应的第四页表项(为多个ATF的页表项中的一个)通常为未使用的页表项,即该页表项未记录任何内容。值得注意的是,目标物理地址指向ATF与TEE之间的新的共享内存区域(即将分配的共享内存区域),故TEE基于切换请求可确定需要拓展ATF的内存访问权限。
402、TEE基于切换请求,在ATF的页表目录中确定与第四虚拟地址对应的第四页表项的物理地址。
TEE确定需要拓展ATF的内存访问权限后,可从切换请求中解析出第四虚拟地址。然后,TEE获取ATF的页表目录,并在ATF的页表目录中确定与第四虚拟地址对应的第四页表项的物理地址。
403、TEE获取第五虚拟地址,第五虚拟地址为多个TEE的虚拟地址中的一个地址。
确定第四页表项的物理地址后,TEE可获取第五虚拟地址,第五虚拟地址为多个TEE的虚拟地址中的一个地址,且第五虚拟地址对应的第五页表项(多个TEE的页表项中的一个)通常为未使用的页表项,即该页表项未记录任何内容。
404、TEE在TEE的页表目录中确定与第五虚拟地址对应的第五页表项的物理地址,并将基于第五页表项的物理地址获取第五页表项。
TEE获取第五虚拟地址后,则在TEE的页表目录中确定与第五虚拟地址对应的第五页表项的物理地址,并将从第五页表项的物理地址指向的存储区域中获取第五页表项。
405、TEE将第五页表项记录的内容修改为第四页表项的物理地址。
在TEE的页表中,TEE在得到第五页表项后,可对第五页表项进行修改。具体地,TEE可将第五页表项记录的内容修改为第四页表项的物理地址以及第四页表项的访问权限,一般地,第五页表项记录的第四页表项的访问权限为读和写。此时,TEE在TEE的页表中,建立了如下对应关系:第五虚拟地址→第五页表项→第四页表项。
406、TEE基于第五虚拟地址获取第四页表项。
TEE完成第五页表项的修改后,可基于第五虚拟地址获取第四页表项。具体地,TEE先获取TEE的页表目录。接着,TEE在TEE的页表目录中确定与第五虚拟地址对应的第五页表项的物理地址,并从第五页表项的物理地址指向的内存区域获取第五页表项。然后,TEE确定第五页表项记录的第四页表项的物理地址,并从第四页表项的物理地址指向的内存区域获取第四页表项。
407、TEE将第四页表项记录的内容修改为目标物理地址。
得到第四页表项后,TEE将第四页表项记录的内容修改为目标物理地址。此时,TEE在TEE的页表中,建立如下对应关系:第五虚拟地址→第五页表项→第四页表项→新的共享内存区域,也就相当于在ATF的页表中更新了如下对应关系:第四虚拟地址→第四页表项→新的共享内存区域(原先该对应关系为:第四虚拟地址→第四页表项)。
408、TEE将第五页表项记录的内容删除。
在ATF的页表中更新了对应关系后,TEE可将第五页表项记录的内容删除,即解除如下对应关系:第五虚拟地址→第五页表项→第四页表项→新的共享内存区域,从而使得TEE的页表恢复至修改前的状态,而ATF的页表依旧保持着修改后的状态。因此,TEE可作为代理,代替ATF拓展ATF的内存访问权限,使得方案更加全面。
以上是对本申请实施例提供的切换执行环境的方法所进行的具体说明,以下将对本申请实施例提供的切换执行环境的装置进行介绍。图5为本申请实施例提供的切换执行环境的装置的一个结构示意图,如图5所示,该装置包括REE、ATF和TEE,ATF用于:接收来自REE的切换请求;基于切换请求向TEE的返回地址寄存器写入第一虚拟地址;若ATF确定TEE的返回地址寄存器中的第一虚拟地址位于预置的合法地址范围内,则从TEE的返回地址寄存器中读取第一虚拟地址;基于第一虚拟地址切换至TEE。
在一种可能的实现方式中,ATF还用于向TEE的页表基地址寄存器写入TEE的页表的基地址;ATF具体用于若在TEE的返回地址寄存器和TEE的页表基地址寄存器中,确定第一虚拟地址和TEE的页表的基地址均位于预置的合法地址范围内,则从TEE的返回地址寄存器中读取第一虚拟地址。
在一种可能的实现方式中,ATF具体用于:从TEE的页表基地址寄存器读取TEE的页表的基地址,并基于TEE的页表的基地址获取TEE的页表目录,TEE的页表目录记录有多个TEE的虚拟地址与多个TEE的页表项的物理地址之间的一一对应关系,对于任意一个TEE的页表项,该页表项记录有一个TEE的数据段的物理地址,或,该页表项记录有一个TEE的代码段的物理地址,或,该页表项未记录内容;在TEE的页表目录中,确定与第一虚拟地址对应的第一页表项的物理地址,第一虚拟地址为多个TEE的虚拟地址中的一个地址;基于第一页表项的物理地址获取第一页表项,并确定第一页表项记录的物理地址;基于第一页表项记录的物理地址切换至TEE。
在一种可能的实现方式中,若切换请求用于指示ATF添加第四虚拟地址与目标物理地址之间的对应关系,第四虚拟地址为多个ATF的虚拟地址中的一个地址,目标物理地址指向ATF与TEE之间的新的共享内存区域,则TEE用于:接收来自ATF的切换请求;基于切换请求,在ATF的页表目录中确定与第四虚拟地址对应的第四页表项的物理地址;获取第五虚拟地址,并在TEE的页表目录中确定与第五虚拟地址对应的第五页表项的物理地址,第五虚拟地址为多个TEE的虚拟地址中的一个地址;将基于第五页表项的物理地址获取第五页表项,并将第五页表项记录的内容修改为第四页表项的物理地址;基于第五虚拟地址获取第四页表项;将第四页表项记录的内容修改为目标物理地址。
在一种可能的实现方式中,ATF还用于修改系统控制寄存器的取值,使得ATF处于中断屏蔽状态。
在一种可能的实现方式中,TEE还用于将第五页表项记录的内容删除。
此外,本申请还提供了切换执行环境的装置的另一个实施例。该装置包括ATF,ATF用于:关闭MMU;从ATF的页表基地址寄存器读取ATF的页表的基地址,并基于ATF的页表的基地址获取ATF的页表目录,ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系,对于任意一个ATF的页表项,该页表项记录有一个ATF的数据段以及该数据段的访问权限,或,该页表项记录有一个ATF的代码段的物理地址以及该代码段的访问权限,或,该页表项记录有所述多个ATF的页表项的访问权限,或,该页表项未记录内容;获取第二虚拟地址,并在ATF的页表目录中确定与第二虚拟地址对应的第二页表项的物理地址,第二虚拟地址为多个ATF的虚拟地址中的一个地址,第二页表项记录有多个ATF的页表项的访问权限;基于第二页表项的物理地址获取第二页表项,并在第二页表项中,将多个ATF的页表项的访问权限修改为只读;获取第三虚拟地址,并在ATF的页表目录中确定与第三虚拟地址对应的第三页表项的物理地址,第三虚拟地址为多个ATF的虚拟地址中的一个地址;基于第三页表项的物理地址获取第三页表项,并将第三页表项记录的目标代码段的访问权限设置为不可执行,目标代码段用于指示ATF的页表基地址寄存器的修改操作以及MMU的关闭操作;开启MMU。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参考本申请实施例前述所示的方法实施例中的叙述,此处不再赘述。
图6为本申请实施例提供的终端设备的一个结构示意图。如图6所示,本申请实施例中终端设备一个实施例可以包括一个或一个以上中央处理器601,存储器602,输入输出接口603,有线或无线网络接口604,电源605。
存储器602可以是短暂存储或持久存储。更进一步地,中央处理器601可以配置为与存储器602通信,在终端设备上执行存储器602中的一系列指令操作。
本实施例中,中央处理器601可以执行前述图2至图4所示实施例中ATF或TEE所执行的操作,具体此处不再赘述。
本实施例中,中央处理器601中的具体功能模块划分可以与前述图5中所描述的REE、ATF和TEE等模块的划分方式类似,此处不再赘述。
本申请实施例还涉及一种计算机存储介质,其特征在于,包括计算机可读指令,当计算机可读指令被执行时,实现如图2至图4中ATF或TEE所执行的方法步骤。
本申请实施例还涉及一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如图2至图4中ATF或TEE所执行的方法步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (18)

1.一种切换执行环境的方法,其特征在于,所述方法包括:
ARM可信固件ATF接收来自富执行环境REE的切换请求;
所述ATF基于所述切换请求向可信执行环境TEE的返回地址寄存器写入第一虚拟地址;
若所述ATF确定所述TEE的返回地址寄存器中的所述第一虚拟地址位于合法地址范围内,则从所述TEE的返回地址寄存器中读取所述第一虚拟地址;
所述ATF基于所述第一虚拟地址切换至所述TEE。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述ATF向所述TEE的页表基地址寄存器写入所述TEE的页表的基地址;
所述若所述ATF确定所述TEE的返回地址寄存器中的所述第一虚拟地址位于合法地址范围内,则从所述TEE的返回地址寄存器中读取所述第一虚拟地址具体包括:
若所述ATF在所述TEE的返回地址寄存器和TEE的页表基地址寄存器中,确定所述第一虚拟地址和所述TEE的页表的基地址均位于合法地址范围内,则从所述TEE的返回地址寄存器中读取所述第一虚拟地址。
3.根据权利要求2所述的方法,其特征在于,所述ATF基于所述第一虚拟地址切换至所述TEE具体包括:
所述ATF从所述TEE的页表基地址寄存器读取所述TEE的页表的基地址,并基于所述TEE的页表的基地址获取所述TEE的页表目录,所述TEE的页表目录记录有多个TEE的虚拟地址与多个TEE的页表项的物理地址之间的一一对应关系,对于任意一个TEE的页表项,该页表项记录有一个TEE的数据段的物理地址,或,该页表项记录有一个TEE的代码段的物理地址,或,该页表项未记录内容;
所述ATF在所述TEE的页表目录中,确定与所述第一虚拟地址对应的第一页表项的物理地址,所述第一虚拟地址为所述多个TEE的虚拟地址中的一个地址;
所述ATF基于所述第一页表项的物理地址获取所述第一页表项,并确定所述第一页表项记录的物理地址;
所述ATF基于所述第一页表项记录的物理地址切换至所述TEE。
4.根据权利要求3所述的方法,其特征在于,若所述切换请求用于指示所述ATF添加第四虚拟地址与目标物理地址之间的对应关系,所述第四虚拟地址为多个ATF的虚拟地址中的一个地址,所述目标物理地址指向所述ATF与所述TEE之间的新的共享内存区域,则所述ATF基于所述第一虚拟地址切换至所述TEE之后,所述方法还包括:
所述TEE接收来自所述ATF的所述切换请求;
所述TEE基于所述切换请求,在ATF的页表目录中确定与所述第四虚拟地址对应的第四页表项的物理地址,所述ATF的页表目录记录有所述多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系;
所述TEE获取第五虚拟地址,并在所述TEE的页表目录中确定与所述第五虚拟地址对应的第五页表项的物理地址,所述第五虚拟地址为所述多个TEE的虚拟地址中的一个地址;
所述TEE将基于所述第五页表项的物理地址获取第五页表项,并将第五页表项记录的内容修改为所述第四页表项的物理地址;
所述TEE基于所述第五虚拟地址获取第四页表项;
所述TEE将所述第四页表项记录的内容修改为所述目标物理地址。
5.根据权利要求2或3所述的方法,其特征在于,所述ATF向所述TEE的返回地址寄存器写入第一虚拟地址之前,所述方法还包括:
所述ATF修改系统控制寄存器的取值,使得所述ATF处于中断屏蔽状态。
6.根据权利要求4所述的方法,其特征在于,所述TEE将所述第四页表项记录的内容修改为所述目标物理地址之后,所述方法还包括:
所述TEE将所述第五页表项记录的内容删除。
7.一种切换执行环境的方法,其特征在于,所述方法包括:
ATF关闭内存管理单元MMU;
所述ATF从所述ATF的页表基地址寄存器读取所述ATF的页表的基地址,并基于所述ATF的页表的基地址获取所述ATF的页表目录,所述ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系,对于任意一个ATF的页表项,该页表项记录有一个ATF的数据段以及该数据段的访问权限,或,该页表项记录有一个ATF的代码段的物理地址以及该代码段的访问权限,或,该页表项记录有所述多个ATF的页表项的访问权限,或,该页表项未记录内容;
所述ATF获取第二虚拟地址,并在所述ATF的页表目录中确定与所述第二虚拟地址对应的第二页表项的物理地址,所述第二虚拟地址为所述多个ATF的虚拟地址中的一个地址,所述第二页表项记录有所述多个ATF的页表项的访问权限;
所述ATF基于所述第二页表项的物理地址获取第二页表项,并在所述第二页表项中,将所述多个ATF的页表项的访问权限修改为只读;
所述ATF获取第三虚拟地址,并在所述ATF的页表目录中确定与所述第三虚拟地址对应的第三页表项的物理地址,所述第三虚拟地址为所述多个ATF的虚拟地址中的一个地址;
所述ATF基于所述第三表项的物理地址获取第三页表项,并将所述第三页表项记录的目标代码段的访问权限设置为不可执行,所述目标代码段用于指示所述ATF的页表基地址寄存器的修改操作以及所述MMU的关闭操作;
所述ATF开启所述MMU。
8.一种切换执行环境的装置,其特征在于,所述装置包括REE、ATF和TEE,所述ATF用于:
接收来自REE的切换请求;
基于所述切换请求向所述TEE的返回地址寄存器写入第一虚拟地址;
若所述ATF确定所述TEE的返回地址寄存器中的所述第一虚拟地址位于合法地址范围内,则从所述TEE的返回地址寄存器中读取所述第一虚拟地址;
基于所述第一虚拟地址切换至所述TEE。
9.根据权利要求8所述的装置,其特征在于,所述ATF还用于向所述TEE的页表基地址寄存器写入所述TEE的页表的基地址;
所述ATF具体用于若在所述TEE的返回地址寄存器和TEE的页表基地址寄存器中,确定所述第一虚拟地址和所述TEE的页表的基地址均位于合法地址范围内,则从所述TEE的返回地址寄存器中读取所述第一虚拟地址。
10.根据权利要求9所述的装置,其特征在于,所述ATF具体用于:
从所述TEE的页表基地址寄存器读取所述TEE的页表的基地址,并基于所述TEE的页表的基地址获取所述TEE的页表目录,所述TEE的页表目录记录有多个TEE的虚拟地址与多个TEE的页表项的物理地址之间的一一对应关系,对于任意一个TEE的页表项,该页表项记录有一个TEE的数据段的物理地址,或,该页表项记录有一个TEE的代码段的物理地址,或,该页表项未记录内容;
在所述TEE的页表目录中,确定与所述第一虚拟地址对应的第一页表项的物理地址,所述第一虚拟地址为所述多个TEE的虚拟地址中的一个地址;
基于所述第一页表项的物理地址获取所述第一页表项,并确定所述第一页表项记录的物理地址;
基于所述第一页表项记录的物理地址切换至所述TEE。
11.根据权利要求10所述的装置,其特征在于,若所述切换请求用于指示所述ATF添加第四虚拟地址与目标物理地址之间的对应关系,所述第四虚拟地址为多个ATF的虚拟地址中的一个地址,所述目标物理地址指向所述ATF与所述TEE之间的新的共享内存区域,则所述TEE用于:
接收来自所述ATF的所述切换请求;
基于所述切换请求,在ATF的页表目录中确定与所述第四虚拟地址对应的第四页表项的物理地址,所述ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系;
获取第五虚拟地址,并在所述TEE的页表目录中确定与所述第五虚拟地址对应的第五页表项的物理地址,所述第五虚拟地址为所述多个TEE的虚拟地址中的一个地址;
将基于所述第五页表项的物理地址获取第五页表项,并将第五页表项记录的内容修改为所述第四页表项的物理地址;
基于所述第五虚拟地址获取第四页表项;
将所述第四页表项记录的内容修改为所述目标物理地址。
12.根据权利要求9或10所述的装置,其特征在于,所述ATF还用于修改系统控制寄存器的取值,使得所述ATF处于中断屏蔽状态。
13.根据权利要求11所述的装置,其特征在于,所述TEE还用于将所述第五页表项记录的内容删除。
14.一种切换执行环境的装置,其特征在于,所述装置包括ATF,所述ATF用于:
关闭MMU;
从所述ATF的页表基地址寄存器读取所述ATF的页表的基地址,并基于所述ATF的页表的基地址获取所述ATF的页表目录,所述ATF的页表目录记录有多个ATF的虚拟地址与多个ATF的页表项的物理地址之间的一一对应关系,对于任意一个ATF的页表项,该页表项记录有一个ATF的数据段以及该数据段的访问权限,或,该页表项记录有一个ATF的代码段的物理地址以及该代码段的访问权限,或,该页表项记录有所述多个ATF的页表项的访问权限,或,该页表项未记录内容;
获取第二虚拟地址,并在所述ATF的页表目录中确定与所述第二虚拟地址对应的第二页表项的物理地址,所述第二虚拟地址为所述多个ATF的虚拟地址中的一个地址,所述第二页表项记录有所述多个ATF的页表项的访问权限;
基于所述第二页表项的物理地址获取第二页表项,并在所述第二页表项中,将所述多个ATF的页表项的访问权限修改为只读;
获取第三虚拟地址,并在所述ATF的页表目录中确定与所述第三虚拟地址对应的第三页表项的物理地址,所述第三虚拟地址为所述多个ATF的虚拟地址中的一个地址;
基于所述第三页表项的物理地址获取第三页表项,并将所述第三页表项记录的目标代码段的访问权限设置为不可执行,所述目标代码段用于指示所述ATF的页表基地址寄存器的修改操作以及所述MMU的关闭操作;
开启所述MMU。
15.一种终端设备,其特征在于,所述终端设备包括:处理器和存储器;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述终端设备实现如权利要求1至7任一项所述的方法。
16.一种计算机存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令被执行时,实现如权利要求1至7任一项所述的方法。
17.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1至7任一项所述的方法。
18.一种芯片系统,包括一个或多个处理器和存储介质,所述存储介质上存储有计算机指令,当所述一个或多个处理器读取所述计算机指令时,使得所述芯片实现如权利要求1至7任一项所述的方法。
CN202011270083.8A 2020-11-13 2020-11-13 一种切换执行环境的方法及其相关设备 Pending CN114490448A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011270083.8A CN114490448A (zh) 2020-11-13 2020-11-13 一种切换执行环境的方法及其相关设备
PCT/CN2021/117346 WO2022100247A1 (zh) 2020-11-13 2021-09-09 一种切换执行环境的方法及其相关设备
EP21890775.6A EP4231159A1 (en) 2020-11-13 2021-09-09 Method for switching execution environment and related device
US18/316,377 US20230281304A1 (en) 2020-11-13 2023-05-12 Method for switching execution environment and related device thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011270083.8A CN114490448A (zh) 2020-11-13 2020-11-13 一种切换执行环境的方法及其相关设备

Publications (1)

Publication Number Publication Date
CN114490448A true CN114490448A (zh) 2022-05-13

Family

ID=81491116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011270083.8A Pending CN114490448A (zh) 2020-11-13 2020-11-13 一种切换执行环境的方法及其相关设备

Country Status (4)

Country Link
US (1) US20230281304A1 (zh)
EP (1) EP4231159A1 (zh)
CN (1) CN114490448A (zh)
WO (1) WO2022100247A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2499287A (en) * 2012-02-08 2013-08-14 Advanced Risc Mach Ltd Exception handling in data processing with different security domains
CN106775923B (zh) * 2016-11-16 2019-06-28 中国人民解放军信息工程大学 处理器协助的内核地址空间细粒度管理方法
CN107506638B (zh) * 2017-08-09 2020-10-16 南京大学 一种基于硬件机制的内核控制流异常检测方法
CN110348252B (zh) * 2018-04-02 2021-09-03 华为技术有限公司 基于信任区的操作系统和方法
US11010479B2 (en) * 2018-10-01 2021-05-18 International Business Machines Corporation Cyber security for space-switching program calls
DE102018132970A1 (de) * 2018-10-10 2020-04-16 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur Isolation von sensiblem nichtvertrauenswürdigem Programmcode auf mobilen Endgeräten
CN111858004A (zh) * 2020-07-21 2020-10-30 中国人民解放军国防科技大学 基于tee扩展的计算机安全世界实时应用动态加载方法及系统

Also Published As

Publication number Publication date
EP4231159A1 (en) 2023-08-23
US20230281304A1 (en) 2023-09-07
WO2022100247A1 (zh) 2022-05-19

Similar Documents

Publication Publication Date Title
CN110348252B (zh) 基于信任区的操作系统和方法
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
CN109522754B (zh) 一种移动终端可信隔离环境核心控制方法
CN109923546B (zh) 虚拟机安全性应用程序的事件过滤
CN103907098B (zh) 用于管理程序环境中的关键地址空间保护的系统和方法
US20210124824A1 (en) Securing secret data embedded in code against compromised interrupt and exception handlers
US9507941B2 (en) Method of verifying integrity of electronic device, storage medium, and electronic device
EP1857943A1 (en) Computer system having memory protection function
US11822654B2 (en) System and method for runtime detection, analysis and signature determination of obfuscated malicious code
CN105393255A (zh) 用于虚拟机中的恶意软件检测的过程评估
CN111353162B (zh) 基于TrustZone分核异步执行的主动可信计算方法及系统
CN111400702A (zh) 一种虚拟化的操作系统内核保护方法
RU2580016C1 (ru) Способ передачи управления между областями памяти
JP2010182196A (ja) 情報処理装置およびファイル検証システム
CN110532767B (zh) 面向sgx安全应用的内部隔离方法
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
CN112219202A (zh) 用于客户操作系统的存储器分配
US20060168212A1 (en) Security system and method
CN115422554B (zh) 请求处理方法、编译方法和可信计算系统
CN114490448A (zh) 一种切换执行环境的方法及其相关设备
CN115509677A (zh) 一种虚拟机与安全隔离区间的通信方法及相关装置
US20240134720A1 (en) Apparatus, and method
EP3814910B1 (en) Hardware protection of files in an integrated-circuit device
JP2018036695A (ja) 情報処理監視装置、情報処理監視方法、監視プログラム、記録媒体及び情報処理装置
CN112580023A (zh) 影子栈管理方法及装置、介质、设备

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