基于RISC-V的物理内存保护方法、系统和相关设备技术方案

技术编号:34149307 阅读:13 留言:0更新日期:2022-07-14 19:44
本发明专利技术适用于应用程序安全性领域,提供了一种基于RISC

【技术实现步骤摘要】
基于RISC

V的物理内存保护方法、系统和相关设备


[0001]本专利技术属于应用程序安全性领域,尤其涉及一种基于RISC

V的物理内存保护方法、系统和相关设备。

技术介绍

[0002]RISC

V架构是由加利福尼亚大学伯克利分校于2010年提出的一个基于精简指令集计算机(Reduced Instruction Set Computer,简称RISC)原则的开源指令集架构,与X86、ARM等通用的商业指令集架构不同,RISC

V作为开源指令集架构,可以自由、免费地应用于任何目的与场景中,并允许开发者或芯片厂商自由地设计、拓展、制造和销售RISC

V芯片。
[0003]RISC

V架构中设有一种用于物理内存保护的硬件设计,即PMP(Physical Memory Protection,物理内存保护),PMP将RISC

V的权限分为User

mode、Supervisor

mode、Machine

mode三个特权等级,权限等级依次升高,高权限能够访问低权限的所有资源,但低权限无法访问高权限的资源。PMP定义了几组寄存器,这些寄存器只有在Machine

mode权限下运行的程序可以访问,而处于User

mode和Supervisor

mode权限下运行的程序无法访问PMP定义的寄存器,每一组PMP寄存器可以用于表示某一块连续的物理内存的访问权限。
[0004]当运行在非Machine

mode权限时的CPU对内存发起访问时,硬件会按顺序查看各组PMP寄存器,当发现某组PMP寄存器所表示的物理内存区间包含了CPU将要访问的内存的物理地址时,CPU会中止对PMP寄存器的遍历,并根据这组PMP寄存器所表示的访问权限来决定当前内存访问操作是否合法,然后进行正常访问或抛出异常信息。借助PMP技术,在Machine

mode权限下运行的程序可以保护自身代码和数据所处的内存,还能限定运行在Supervisor

mode的操作系统内核对特定内存的访问,还能限定运行在User

mode下的应用程序对特定内存的访问。
[0005]TEE(Trusted Execution Enviroment,可信执行环境)指一个安全的、不受外界干扰或攻击的程序运行环境,运行在其中的程序被称为EAPP(Enclave App,飞地应用)。一些常见的服务器操作系统,例如Linux,其内核代码运行在Supervisor

mode的特权等级中,因此Linux的系统用户可以任意访问运行在User

Mode下的程序代码及内存,这意味着Linux内核的漏洞会使用户的应用具有安全问题。相对于Linux操作系统这样的运行环境,TEE是以一个尽量减少漏洞数量的、通过形式化验证等方法证明其安全性的可信基为基础、并利用可信基中的软件和硬件为上层的应用程序提供安全可靠的运行环境。
[0006]Keystone是RISC

V架构上的TEE系统,它通过运行在Machine

mode的SM(Security Monitor,安全监控器)配置PMP寄存器,隔离出一块操作系统内核无法访问的物理内存,用于存放和保护安全敏感的EAPP的代码,并在进程切换时负责保存和恢复TEE程序的寄存器,避免不可信的操作系统内核窥探或修改上下文。在Keystone的设计中,SM通过PMP技术隔离主机操作系统与TEE程序,由于主机操作系统不可信,SM在执行主机操作系统程序之前需要为每一个TEE程序配置一组PMP寄存器,并将权限设置为不可访问状态,以防止对应的物理
内存区间被操作系统访问。
[0007]问题在于,由于PMP寄存器组的数量是有限的,并且Keystone能划分的用于保护EAPP程序的物理内存区间的数量有限,因此能同时支持的EAPP程序的数量有限。在RISC

V的规范中,规定PMP最多64组,而现有的大部分芯片受限于成本以及传统的使用场景局限,只实现了8组或16组,例如sifive公司所生产并销售的旗下最新的P650芯片也只实现了8组PMP,其中1组用来保护SM,1组用来保护操作系统内核,只剩下6组可以用来保护EAPP,也就是说该芯片最多同时保护6个EAPP。这意味着当前大多数的RISC

V芯片在现有的TEE环境中很难满足多用户使用EAPP实现多任务的需求,同时,因为PMP寄存器组本身的性质,其无法在连续的物理空间中划分出连续的用于运行EAPP的内存空间,其保护的物理内存空间级方式存在更多的限制。

技术实现思路

[0008]本专利技术实施例提供一种基于RISC

V的物理内存保护方法、系统和相关设备,旨在解决现有的PMP寄存器在保护物理空间时受限于PMP数量的问题。
[0009]第一方面,本专利技术实施例提供一种基于RISC

V的物理内存保护方法,所述方法包括以下步骤:配置内存保护表,所述内存保护表用于记录CPU对所述物理内存的访问权限,其中,所述内存保护表由CPU的PMC寄存器定义,所述内存保护表和所述PMC寄存器均只能在Machine Mode下访问;通过CPU运行应用程序,并请求访问所述应用程序所在的所述物理内存;通过CPU访问所述物理内存,并通过所述内存保护表判断CPU对所述物理内存的访问是否具有访问权限,其中:若CPU对所述物理内存具有访问权限,则允许CPU对所述物理内存进行访问;若CPU对所述物理内存不具有访问权限,则认定CPU的请求访问非法,并终止CPU的访问,同时反馈访问异常。
[0010]更进一步地,所述内存保护表存储于所述物理内存中。
[0011]更进一步地,所述PMC寄存器包括:页面大小寄存器,用于定义所述内存保护表所保护的所述物理内存中每一个内存页面的大小;页面个数寄存器,用于定义所述内存页面的个数;保护起始地址寄存器,用于定义所述内存保护表所保护的所述物理内存的起始地址;保护模式寄存器,用于定义所述内存保护表在保护所述物理内存时的解析方式;基址寄存器,用于定义所述内存保护表在所述物理内存中的存储地址。
[0012]更进一步地,所述保护模式寄存器的所述解析方式分为:非限制模式,将所述物理内存中的所有内存地址的访问设为允许;第一解析模式,将所述内存页面使用1bit的数据进行标记,其中,当数据标记为0时,所述内存页面能够在User

mode和Supervisor

mode时被访问,当数据标记为1时,所述内存页面不能在User

mode和Supervisor

mode本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于RISC

V的物理内存保护方法,其特征在于,所述方法包括以下步骤:配置内存保护表,所述内存保护表用于记录CPU对所述物理内存的访问权限,其中,所述内存保护表由CPU的PMC寄存器定义,所述内存保护表和所述PMC寄存器均只能在Machine Mode下访问;通过CPU运行应用程序,并请求访问所述应用程序所在的所述物理内存;通过CPU访问所述物理内存,并通过所述内存保护表判断CPU对所述物理内存的访问是否具有访问权限,其中:若CPU对所述物理内存具有访问权限,则允许CPU对所述物理内存进行访问;若CPU对所述物理内存不具有访问权限,则认定CPU的请求访问非法,并终止CPU的访问,同时反馈访问异常。2.如权利要求1所述的基于RISC

V的物理内存保护方法,其特征在于,所述内存保护表存储于所述物理内存中。3.如权利要求1所述的基于RISC

V的物理内存保护方法,其特征在于,所述PMC寄存器包括:页面大小寄存器,用于定义所述内存保护表所保护的所述物理内存中每一个内存页面的大小;页面个数寄存器,用于定义所述内存页面的个数;保护起始地址寄存器,用于定义所述内存保护表所保护的所述物理内存的起始地址;保护模式寄存器,用于定义所述内存保护表在保护所述物理内存时的解析方式;基址寄存器,用于定义所述内存保护表在所述物理内存中的存储地址。4.如权利要求3所述的基于RISC

V的物理内存保护方法,其特征在于,所述保护模式寄存器的所述解析方式分为:非限制模式,将所述物理内存中的所有内存地址的访问设为允许;第一解析模式,将所述内存页面使用1bit的数据进行标记,其中,当数据标记为0时,所述内存页面能够在User

mode和Supervisor

mode时被访问,当数据标记为1时,所述内存页面不能在User

mode和Supervisor

mode时被访问;第二解析模式,对应所述第一解析模式,将所述内存页面使用1bit的数据进行标记,其中,...

【专利技术属性】
技术研发人员:胡伟
申请(专利权)人:睿思芯科深圳技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1