访问空间切换方法、装置、处理器、设备及存储介质与流程

文档序号:37426911发布日期:2024-03-25 19:15阅读:22来源:国知局
访问空间切换方法、装置、处理器、设备及存储介质与流程

本公开涉及安全访问,尤其涉及一种访问空间切换方法、装置、处理器、设备及存储介质。


背景技术:

1、对于armv8 aarch64架构的处理器安全访问场景,如图1所示,使用了信任区(trustzone,tz)机制将系统分为非安全空间(non-secure state/normal world/ree)和安全空间(secure state/secure world/tee),并在非安全空间和安全空间的基础上引入了称为监视模式(secure monitor,又称安全监视器)的处理器模式,使得非安全空间和安全空间之间可以通过安全监视器模式实现彼此自由切换。在上述tz架构的基础上,考虑到非安全空间和安全空间的各个组件对应有不同的访问系统和处理器资源的权限级别,因此又引入了可信固件(trusted firmware,tf)方案中的异常等级(exception levels,el)对其进一步划分,具体地:分为el0、el1、el2、el3这四个等级。其中,el0中运行的是普通app;而el1中一般运行的是操作系统或底层软件;el2提供了对虚拟化的支持,可以不实现;el3提供了安全空间与非安全空间之间的切换以及其他的高级功能。

2、对于目前的硬件验证来说,并不涉及复杂的操作系统以及任务调度等,更加聚焦在寄存器配置/硬件通路分析等,故目前的硬件验证一般都是非安全访问,并不涉及安全访问。但随着技术的进步,在一些安全场景(如机密计算和数字版权管理),对于外设来说,为保证安全性(如指纹验证),有一部分寄存器是私密的,对于普通的app(如微信)无法直接访问,否则会触发异常或返回值内容不符合预期。故有的硬件验证场景也需要涉及到安全访问,但目前的硬件验证固件代码并不支持安全访问,也不涉及非安全访问和安全访问之间的切换。若采用现有产品交付形式的安全空间或非安全空间的访问方法,需要实现或移植完整的el0/el1/el3中的堆栈/代码/处理逻辑以及相关的安全启动流程,具有工作量巨大、软件设计能力要求高的问题。

3、其中,arm(advanced risc machines,先进精简指令集机器)架构是一个精简指令集(reduced instruction set computer,risc)处理器架构,armvx中的x指的是arm的指令集和架构版本,armv8是第一代支持64位处理器的指令集和体系结构,armv8有两个执行状态,aarch64:64位的执行状态,aarch32:32位的执行状态。


技术实现思路

1、本公开的目的是提供一种访问空间切换方法、装置、处理器、设备及存储介质,以简化安全空间和非安全空间之间切换的工作量。

2、根据本公开的一个方面,提供一种访问空间切换方法,包括:

3、基于接收的访问参数确定待切换的访问空间,并从当前访问空间跳转至el3;访问空间包括安全空间和非安全空间,当前访问空间与待切换的访问空间为不同的访问空间;

4、在el3中,保存当前访问空间的上下文,并进行访问空间的切换设置,设置完成后恢复当前访问空间的上下文,基于恢复的当前访问空间的上下文,确定待切换的访问空间的运行程序;所述安全空间的运行程序和非安全空间的运行程序使用一套代码;

5、基于待切换的访问空间的运行程序和切换设置,进入到待切换的访问空间。

6、进一步的,访问空间切换方法还包括:

7、在进行访问空间切换之前,对安全空间和非安全空间进行固件堆栈设置。

8、进一步的,对安全空间和非安全空间进行固件堆栈设置,包括:

9、将安全空间的堆栈和非安全空间的堆栈设置为同一堆栈。

10、进一步的,对安全空间和非安全空间进行固件堆栈设置,还包括:

11、为安全空间和非安全空间配置相同的mmu页表。

12、进一步的,为安全空间和非安全空间配置相同的mmu页表,包括:

13、将mmu页表中的ns位设置为0。

14、进一步的,上下文包括当前访问空间的相关寄存器值,基于恢复的所述当前访问空间的上下文,确定待切换的访问空间的运行程序,包括:

15、基于当前访问空间的相关寄存器值获取当前访问空间的当前运行程序地址;

16、基于当前运行程序地址获得待切换的访问空间的运行程序。

17、进一步的,进行访问空间的切换设置包括:

18、根据待切换的访问空间的类型,对scr_el3寄存器的ns位进行设置;scr_el3寄存器的ns位设置为0则表征进行安全空间的访问行为,scr_el3寄存器的ns位设置为1则表征进行非安全空间的访问行为。

19、根据本公开的另一方面,本公开提供一种访问空间切换装置,包括:

20、访问空间确定模块,用于基于接收的访问参数确定待切换的访问空间,并从当前访问空间跳转至el3;访问空间包括安全空间和非安全空间,当前访问空间与待切换的访问空间为不同的访问空间;

21、访问空间切换设置模块,用于在el3中,保存当前访问空间的上下文,并进行访问空间的切换设置,设置完成后恢复当前访问空间的上下文,基于恢复的当前访问空间的上下文,确定待切换的访问空间的运行程序;所述安全空间的运行程序和非安全空间的运行程序使用一套代码;

22、访问空间切换模块,用于基于待切换的访问空间的运行程序和切换设置,进入到待切换的访问空间。

23、进一步的,访问空间切换装置还包括:

24、初始化设置模块,用于在进行访问空间切换之前,对安全空间和非安全空间进行固件堆栈设置。

25、进一步的,初始化设置模块,还用于将安全空间的堆栈和非安全空间的堆栈设置为同一堆栈。

26、进一步的,初始化设置模块,还用于为安全空间和非安全空间配置相同的mmu页表。

27、进一步的,初始化设置模块,还用于将mmu页表中的ns位设置为0。

28、进一步的,上下文包括当前访问空间的相关寄存器值,访问空间切换设置模块,还用于基于当前访问空间的相关寄存器值获取当前访问空间的当前运行程序地址;

29、基于当前运行程序地址获得待切换的访问空间的运行程序。

30、进一步的,访问空间切换设置模块,还用于根据待切换的访问空间的类型,对scr_el3寄存器的ns位进行设置;scr_el3寄存器的ns位设置为0则表征进行安全空间的访问行为,scr_el3寄存器的ns位设置为1则表征进行非安全空间的访问行为。

31、根据本公开的另一方面,提供一种处理器,将处理器划分为安全空间、非安全空间和el3,处理器基于上述任一实施例所述的访问空间切换方法,进行安全空间和非安全空间之间的切换。

32、根据本公开的另一方面,提供一种电子装置,包括上述任一实施例所述的处理器。

33、根据本公开的另一方面,提供一种电子设备,包括上述任一实施例所述的电子装置。

34、根据本公开的另一方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的访问空间切换方法的步骤。

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