[发明专利]基于RISC-V实现任意数量EAPP的方法、系统有效
申请号: | 202210643381.X | 申请日: | 2022-06-09 |
公开(公告)号: | CN114722404B | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 胡伟 | 申请(专利权)人: | 睿思芯科(深圳)技术有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F12/02;G06F9/54 |
代理公司: | 深圳君信诚知识产权代理事务所(普通合伙) 44636 | 代理人: | 刘伟 |
地址: | 518000 广东省深圳市前海深港合作*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 risc 实现 任意 数量 eapp 方法 系统 | ||
本发明适用于应用程序安全性领域,提供了一种基于RISC‑V实现任意数量EAPP的方法、系统,所述方法包括:将可信执行环境下的物理内容空间划分为连续的三部分,分别为安全监控器区域、EAPP区域、操作系统区域;在所述安全监控器区域运行安全监控器,并通过安全监控器来配置PMP,所述PMP包括多条,PMP的内容包括访问策略和保护区域,之后,根据PMP对物理内容空间进行内存访问。本发明在不修改RISC‑V内核的前提下,使用先进行静态内存分配、再基于静态内存空间配置PMP的方法,在可信执行环境下能够通过少量PMP实现任意数量的EAPP的保护,减少了芯片对PMP的数量要求,降低了成本。
技术领域
本发明属于应用程序安全性领域,尤其涉及一种基于RISC-V实现任意数量EAPP的方法、系统。
背景技术
RISC-V架构是由加利福尼亚大学伯克利分校于2010年提出的一个基于精简指令集计算机(Reduced Instruction Set Computer,简称RISC)原则的开源指令集架构,与X86、ARM等通用的商业指令集架构不同,RISC-V作为开源指令集架构,可以自由、免费地应用于任何目的与场景中,并允许开发者或芯片厂商自由地设计、拓展、制造和销售RISC-V芯片。
RISC-V架构中设有一种用于物理内存保护的硬件设计,即PMP(Physical MemoryProtection,物理内存保护),PMP将RISC-V的权限分为User-mode、Supervisor-mode、Machine-mode三个特权等级,权限等级依次升高,高权限能够访问低权限的所有资源,但低权限无法访问高权限的资源。PMP定义了几组寄存器,这些寄存器只有在Machine-mode权限下运行的程序可以访问,而处于User-mode和Supervisor-mode权限下运行的程序无法访问PMP定义的寄存器,每一组PMP寄存器可以用于表示某一块连续的物理内存的访问权限。
当运行在非Machine-mode权限时的CPU对内存发起访问时,硬件会按顺序查看各组PMP寄存器,当发现某组PMP寄存器所表示的物理内存区间包含了CPU将要访问的内存的物理地址时,CPU会中止对PMP寄存器的遍历,并根据这组PMP寄存器所表示的访问权限来决定当前内存访问操作是否合法,然后进行正常访问或抛出异常信息。借助PMP技术,在Machine-mode权限下运行的程序可以保护自身代码和数据所处的内存,还能限定运行在Supervisor-mode的操作系统内核对特定内存的访问,还能限定运行在User-mode下的应用程序对特定内存的访问。
TEE(Trusted Execution Enviroment,可信执行环境)指一个安全的、不受外界干扰或攻击的程序运行环境,运行在其中的程序被称为EAPP(Enclave App,飞地应用)。一些常见的服务器操作系统,例如Linux,其内核代码运行在Supervisor-mode的特权等级中,因此Linux的系统用户可以任意访问运行在User-Mode下的程序代码及内存,这意味着Linux内核的漏洞会使用户的应用具有安全问题。相对于Linux操作系统这样的运行环境,TEE是以一个尽量减少漏洞数量的、通过形式化验证等方法证明其安全性的可信基为基础、并利用可信基中的软件和硬件为上层的应用程序提供安全可靠的运行环境。
Keystone是RISC-V架构上的TEE系统,它通过运行在Machine-mode的SM(SecurityMonitor,安全监控器)配置PMP寄存器,隔离出一块操作系统内核无法访问的物理内存,用于存放和保护安全敏感的EAPP的代码,并在进程切换时负责保存和恢复TEE程序的寄存器,避免不可信的操作系统内核窥探或修改上下文。在Keystone的设计中,SM通过PMP技术隔离主机操作系统与TEE程序,由于主机操作系统不可信,SM在执行主机操作系统程序之前需要为每一个TEE程序配置一组PMP寄存器,并将权限设置为不可访问状态,以防止对应的物理内存区间被操作系统访问。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于睿思芯科(深圳)技术有限公司,未经睿思芯科(深圳)技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210643381.X/2.html,转载请声明来源钻瓜专利网。