CN111651778A - 基于risc-v指令架构的物理内存隔离方法 - Google Patents
基于risc-v指令架构的物理内存隔离方法 Download PDFInfo
- Publication number
- CN111651778A CN111651778A CN202010456182.9A CN202010456182A CN111651778A CN 111651778 A CN111651778 A CN 111651778A CN 202010456182 A CN202010456182 A CN 202010456182A CN 111651778 A CN111651778 A CN 111651778A
- Authority
- CN
- China
- Prior art keywords
- tee
- program
- memory
- spmp
- teeos
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于RISC‑V指令架构的物理内存隔离方法,是一种在RISC‑V指令架构现有的Machine mode可配置的物理内存隔离技术PMP的基础之上,增加了Supervisor mode可配置的物理内存隔离技术sPMP;所述物理内存隔离技术sPMP:依赖于只有Machine mode程序和Supervisor mode程序可以读写的几组sPMP寄存器。本发明突破了现有基于PMP寄存器组的TEE系统的安全应用数量的限制,并且能够提供高效安全应用启动,高效安全应用间通信,细粒度安全应用内存资源分配等特性。本系统对于现有TEE设计在安全性和可扩展性上均有极大的提升。
Description
技术领域
本发明涉及应用程序的安全性领域,具体地,涉及一种基于RISC-V指令架构的物理内存隔离方法。尤其地,涉及一种基于RISC-V指令集架构的操作系统特权级物理内存隔离硬件技术(Supervisor-mode Physical Memory Protection)以及软硬件结合提供可信执行环境的系统和方法。
背景技术
RISC-V指令集架构:RISC-V架构是由加利福尼亚大学伯克利分校于2010年首次提出的一个基于精简指令集(RISC)原则的开源指令集架构。与X86、ARM等通用的商业指令集架构不同,RISC-V作为一款开源指令集架构,可以自由、免费地应用于任何目的与场景中,允许开发者或芯片厂商自由地设计、拓展、制造和销售RISC-V芯片。除此之外,RISC-V架构的设计同时考虑到了现代异构场景下对不同计算设备的适用问题,可被应用于物联网设备、手机终端、高性能计算处理器CPU等场景。因此一经推出,RISC-V架构就吸引了伯克利大学之外的大批学术界研究者和行业工作者,并催生了一批开源的RISC-V芯片项目和商用物联网设备RISC-V芯片及服务器RISC-V芯片。
物理内存隔离(Physical Memory Protection)技术:PMP技术是RISC-V指令集架构中的一个用于物理内存保护的硬件设计。在RISC-V架构中共有User mode、Supervisormode、Hypervisor mode、Machine mode四个特权级,权限等级依次升高。其中,除了Hypervisor mode一般不会被实现和应用外,User mode和Supervisor mode分别用于运行用户态程序与操作系统内核,Machine mode用于运行一个轻量级的安全监控器,安全监控器负责监控整个计算机系统的运行状态,提供基本的安全保护功能。PMP主要依赖于只有Machine mode程序可以读写的几组PMP寄存器。每一组PMP寄存器可以用于表示某一块连续的物理内存的起始地址和大小,以及当前CPU对这块连续物理内存的访问权限(读/写/执行)。当CPU(运行在非Machine mode权限时)对内存发起访问时,硬件会按顺序查看各组PMP寄存器,当发现某组PMP寄存器所表示的物理内存区间包含了CPU将要访问的内存的物理地址时,中止对PMP寄存器的遍历,并根据这组PMP寄存器所表示的访问权限来决定当前内存访问操作是否合法,然后进行正常访存或抛出异常信息。借助PMP技术,Machine mode程序可以保护自身代码和数据所处的内存,或者限定运行在Supervisor mode的操作系统内核对特定内存的访问。
可信执行环境(Trusted Execution Enviroment,TEE):TEE是可信执行环境的别名,可信执行环境指一个安全的、不受外界干扰或攻击的程序运行环境,运行在其中的程序被称为TEE程序。考虑当前服务器领域比较流行的Linux操作系统,其宏内核(所有内核代码均运行在高权限的Supervisor mode,可任意访问用户态程序的代码及内存)的设计以及庞大的代码数量(截止至2019年11月,Linux内核源码行数已达到2500多万行)意味着内核中任何一点漏洞都有可能导致攻击者控制整个内核,并利用内核的高权限对低权限的用户态程序发起攻击,更改正常的执行流或者窃取用户的数据。再考虑云服务场景下,用户的程序运行在云服务厂商提供的服务器上,操作系统或者更底层的虚拟机管理器(hypervisor)本身均位于服务器厂商的控制下,用户无法保证自己的程序能否正确运行。在同一机器上运行的其他用户程序甚至是操作系统内核等高权限程序不可信的情况下如何保证程序的正确运行与数据的安全性变成了一个新的问题。因此,TEE的概念应运而生。通常,TEE技术需要一个轻量级(尽量减少漏洞数量)的、可验证(通过形式化验证等方法证明其安全性)的可信基,例如Intel SGX中的CPU、本发明以及本发明的相关工作Keystone中的CPU和运行在Machine mode的安全监控器,并利用可信基中的软件和硬件为上层的应用程序提供安全可靠的运行环境。
和本发明相关的现有技术一,使用PMP技术限制操作系统内核对物理内存的访问,以此提供可信执行环境的系统,如Keystone[1]https://keystone-enclave.org/。Keystone是RISC-V架构上的TEE系统,它通过运行在Machine mode的安全监控器配置PMP寄存器,隔离出一块操作系统内核无法访问的物理内存,用于存放和保护安全敏感的用户程序(即TEE程序)的代码,并在进程切换时负责保存和恢复TEE程序的寄存器,避免不可信的操作系统内核窥探或修改上下文。在Keystone的设计中,安全监控器通过PMP技术隔离主机操作系统与TEE程序,由于主机操作系统不可信,安全监控器在执行主机操作系统程序之前需要为每一个TEE程序配置一组PMP寄存器,并将权限设置为不可访问状态,以防止对应的物理内存区间被操作系统访问。然而,由于PMP寄存器组的数量有限制,Keystone能划分的用于保护TEE程序的物理内存区间的数量有限,因此能同时支持的TEE程序的数量有限。
相关的现有技术二,使用其他软硬件结合的方式提供安全可信执行环境的TEE系统,如Sanctum[2]:Costan,Victor,Ilia Lebedev,and Srinivas Devadas."Sanctum:Minimal hardware extensions for strong software isolation."25th{USENIX}Security Symposium({USENIX}Security 16).2016。Sanctum同样是RISC-V架构下的TEE系统,它在硬件层面将物理内存划分为若干没有重合的内存区间(与PMP技术不同,该划分是静态的),并通过运行在Machine mode的安全监视器管理这些内存区间。安全监视器将不同的物理内存区间分配给操作系统内核和不同的TEE程序,确保操作系统和TEE程序之间以及TEE程序与TEE程序之间的隔离。同时,Sanctum对物理内存区间的划分方式保证不同物理内存区间中的数据被加载到缓存中时位于不同的缓存组(cache set)里面,避免不同TEE程序的数据在缓存中的彼此冲突和替换,以此来防范缓存旁路攻击(cache side channelattack)。由于物理内存区间静态划分的数量有限,Sanctum与Keystone一样存在同时支持的TEE程序有限的问题。同时,Sanctum和Keystone的设计均没有考虑到物联网设备中没有页表翻译的硬件支持的问题,这意味着操作系统内核无法通过页表限制用户的访存区间,即任一用户程序的访存均不需要经过虚拟地址到物理地址的转换,可直接利用物理地址访问任意其他程序甚至操作系统的代码和数据。
本发明有效地解决了以上系统的问题。具体来说,本发明在RISC-V架构的Supervisor mode中增加了物理内存隔离技术(我们称之为sPMP),使操作系统内核在没有页表翻译的物联网设备中仍然能限制用户程序的访存区间,提高系统的安全性。此外,本发明将sPMP技术与PMP技术结合起来。具体做法是,引入一个新的Supervisor mode程序,一个轻量级、可验证的安全操作系统(我们称之为TEEOS),并通过PMP技术将其与主机操作系统隔离以保证其安全性。TEEOS通过sPMP技术管理和保护上层的TEE程序,并通过sPMP寄存器的调度解决Keystone和Sanctum只能支持有限个TEE程序的问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于RISC-V指令架构的物理内存隔离方法。
根据本发明提供的一种基于RISC-V指令架构的物理内存隔离方法,是一种在RISC-V指令架构现有的Machine mode可配置的物理内存隔离技术PMP的基础之上,增加了Supervisor mode可配置的物理内存隔离技术sPMP;
所述物理内存隔离技术sPMP:依赖于只有Machine mode程序和Supervisor mode程序可以读写的几组sPMP寄存器;
每一组sPMP寄存器包括地址寄存器和配置寄存器,用于表示某一块连续的物理内存的起始地址和大小,以及当前CPU对这块连续物理内存的访问权限,包括:读、写及执行;
当CPU运行在User mode权限时对内存发起访问,且已经通过了PMP技术的检查时,硬件会按顺序查看各组sPMP寄存器,当发现某组sPMP寄存器所表示的物理内存区间包含了CPU将要访问的内存的物理地址时,中止对sPMP寄存器的遍历,并根据这组sPMP寄存器所表示的访问权限来决定当前内存访问操作是否合法,然后进行正常访存或抛出异常信息;
所述RISC-V指令集架构有四个执行权限级:User mode、Supervisor mode、Hypervisor mode和Machine mode,权限等级依次升高,Machine mode程序即运行在最高权限级Machine mode的程序;
Supervisor mode程序指运行在Supervisor mode权限级的程序,包括:Linuxkernel。
优选地,还兼容SMAP内存保护策略,该SMAP内存保护策略用于限制Supervisormode程序对User mode程序的内存的访问;
对于一组sPMP寄存器限定的物理内存,sPMP寄存器中表示权限的比特位中的一个特殊比特U bit被置为一表示该内存属于User mode程序;
当RISC-V处理器中的特殊状态寄存器mstatus寄存器中的SUM位被置为零时,任何Supervisor mode程序对这块物理内存的访问均会被硬件检测为非法访问,并抛出异常;
当mstatus寄存器中的SUM位被置为一时硬件才允许Supervisor mode程序对这块User mode程序内存的访问。
优选地,还兼容SMEP内存保护策略,该SMEP内存保护策略用于限制Supervisormode程序执行位于User mode程序内存中的代码;
对于一块属于User mode程序的内存,硬件会禁止任何Supervisor mode程序执行位于这块内存上的代码。
优选地,还兼容RISC-V指令架构对Hypervisor mode的扩展;
对于Hypervisor mode和Supervisor mode均支持页表翻译,即同时支持guestpage table和host page table的场景,Hypervisor mode程序通过host page table来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisor mode程序通过guest page table或sPMP技术或同时使用两者来限制User mode程序对于内存的访问;
对于只有Hypervisor mode支持页表翻译的情况,Hypervisor mode程序通过hostpage table来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisor mode程序通过sPMP技术限制User mode程序对内存的访问;
对于Hypervisor mode和Supervisor mode均不支持页表翻译的情况,Hypervisormode程序通过请求Machine mode配置PMP寄存器的方式限制Supervisor程序对内存的访问,Supervisor程序通过sPMP技术限制User mode程序对内存的访问;
guest page table指一台物理机上运行多台虚拟客户机时,用于将客户机虚拟地址翻译为客户机物理地址的页表;
host page table指用于将客户机物理地址翻译为实际物理地址的页表。
根据本发明提供的一种根据上述中任一项所述的基于RISC-V指令架构的物理内存隔离方法的可信执行系统,可信计算集基于所述的基于RISC-V指令架构的物理内存隔离方法,组成了一个可扩展高灵活的TEE系统;
可信计算集包括运行在Machine mode的安全监控器,运行在Supervisor mode的可信操作系统TEEOS;
安全监控器是一个轻量级、可验证的安全程序,在开机时由硬件固件负责启动并验证其哈希值,以保证其安全性和完整性,安全监控器负责接收和处理主机操作系统创建或销毁TEE程序的请求,并通过PMP技术隔离保护TEE程序,或者将请求转发给TEEOS,由TEEOS创建TEE程序,并通过sPMP技术对TEE进行隔离保护;
TEEOS是一个轻量级、可验证的安全操作系统,在系统开机时由安全监控器启动并验证其状态,以保证TEEOS的安全性和完整性;
安全监控器在创建和启动TEEOS时会为其分配与主机操作系统和其他直接运行在安全监控器之上的TEE程序没有重叠的一块物理内存,并用PMP隔离保护这块内存,TEEOS在这块内存上创建和运行新的TEE程序,并通过sPMP技术进行隔离保护;
TEE程序可以直接运行在经过安全监控器验证的TEEOS之上,TEEOS无需将每一组sPMP寄存器与某一个TEE绑定,只需在执行TEE程序之前使用两组sPMP寄存器配置当前TEE程序可以访问和不能访问的物理内存区间,因此能够在调度TEE程序时像切换上下文一样切换sPMP寄存器中的值,从而不受sPMP寄存器组数量的限制,支持多个TEE程序;
所述的可扩展高灵活的TEE系统的工作流程包括以下步骤:
步骤S1:TEE开发人员完成TEE程序代码开发;
步骤S2:用户发送创建TEE请求,要求主机操作系统加载和创建TEE;
步骤S3:主机操作系统根据用户参数选择将TEE交给安全监控器还是TEEOS,选择将TEE交给安全监控器的情况下,主机操作系统为TEE分配内存,配置页表,并将TEE创建请求、内存分配信息、页表信息发送给安全监控器;选择将TEE交给TEEOS的情况下,主机操作系统仅仅将创建请求发送给TEEOS;
步骤S4:安全监控器对内存分配信息、页表信息进行检查,然后真正创建和运行TEE;或者将TEE镜像与创建请求中转给TEEOS,TEEOS从自己的内存中为TEE分配内存,配置页表并运行;
步骤S5:在TEE程序直接由安全监控器创建和运行的情况下,由硬件的PMP技术隔离保护TEE不受主机操作系统和其它TEE程序及用户程序的攻击;
步骤S6:在TEE程序由TEEOS创建和运行的情况下,由硬件的sPMP技术隔离保护TEE不受运行在同一TEEOS之上的其它TEE程序或用户程序的攻击,硬件的PMP技术保护TEEOS以及在其上层运行的所有TEE程序不受主机操作系统的攻击;
步骤S7:用户发送销毁TEE请求,安全监控器或TEEOS将TEE销毁,并擦除内存中遗留的敏感数据。
优选地,所述步骤S1中,用户将TEE程序和相关参数信息打包进同一TEE镜像;
相关参数信息包括:所需要的内存大小、哈希值。
优选地,所述步骤S3中,选择将TEE交给安全监控器的情况下,主机操作系统根据TEE镜像以及TEE创建请求中的相关参数计算应该为TEE程序分配的连续物理内存区间的大小,分配完后同时从这块内存区间中抽取若干页用于为TEE创建页表,在物联网设备场景下不需要配置页表;
选择将TEE交给TEEOS的情况下,主机操作系统会将TEE镜像和用户创建TEE的相关参数发送给TEEOS,由于TEEOS被PMP保护,主机操作系统发送的信息需要经过安全监控器中转。
优选地,所述步骤S4中,安全监控器会检查内存是否与其它TEE程序重叠、页表是否映射到了其它TEE的内存;
所述步骤S5中,硬件PMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时安全监控器会保存被切换走的TEE程序的上下文,并相应更改PMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存;
所述步骤S6中,硬件sPMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时TEEOS会保存被切换走的TEE程序的上下文,并相应更改sPMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存;
所述步骤S7中,在TEE销毁阶段,TEE的内存信息以及寄存器信息会被擦除以防止信息泄漏。
优选地,包括硬件sPMP技术,轻量级可验证的安全监控器和TEEOS,以及TEEOS通过调度sPMP寄存器获得高扩展性的设计;
所述sPMP技术负责在硬件层面提供TEE程序与其它程序之间的隔离,同时保证在物联网设备场景下操作系统仍然能限制用户态程序的访存区间;
所述安全监控器和TEEOS分别负责管理PMP寄存器和sPMP寄存器,安全监控器通过PMP技术隔离TEEOS与主机操作系统以及其它直接由安全监控器调度运行的TEE程序,TEEOS通过sPMP技术隔离运行在同一TEEOS之上的TEE程序,安全监控器在系统开机时由硬件固件验证安全性与完整性,TEEOS由安全监控器验证安全性与完整性;
所述TEEOS调度sPMP以获得高扩展性的设计是指,TEEOS在调度TEE程序时,为接下来要运行的TEE程序配置sPMP寄存器以限制其访存区间,使TEE只能访问分配给其的物理内存,包括:TEEOS在调度执行某一个TEE程序时,使用第一组sPMP寄存器表示被分配给该TEE程序的内存区间,并设置可读或可写或可执行权限;使用第二组sPMP寄存器表示整个物理内存区间,并设置权限为不可访问,该TEE程序访存时,对于自身内存的访问均会落入第一组sPMP寄存器,硬件顺序检查sPMP寄存器组,并被允许访问,而对于其它内存的访问则会落入第二组sPMP寄存器,并被禁止访问,TEEOS可以不受sPMP寄存器组数量的限制,通过调度sPMP寄存器的方式支持较多个TEE程序,同时还能够适用于物联网设备没有页表翻译的场景。
与现有技术相比,本发明具有如下的有益效果:
1、相比较于现有的TEE方案,本发明结合sPMP技术,使得操作系统能在物联网设备场景(没有地址翻译硬件模块,即不支持页表,不支持虚拟地址)下限制用户程序(包括TEE程序与非TEE程序)的访存区间,提高整个系统的安全性,同时兼容RISC-V架构的SMAP、SMEP内存保护策略及Hypervisor mode拓展。
2、相比较现有的基于RISC-V架构的TEE方案,本发明引入了可验证的轻量级操作系统TEEOS负责管理调度TEE程序,通过TEEOS对sPMP寄存器组的调度解决了现有的TEE方案受PMP寄存器组数量或静态划分的物理内存区间的数量的限制,只能同时支持有限个TEE程序的问题。
3、本发明通过硬件固件验证启动安全监控器、安全监控器验证启动TEEOS,TEEOS验证启动TEE,形成了一条完整的可信链,可将验证结果经密钥签名后发送回用户,具有较高的安全性和可验证性。
4、本发明通过引入TEEOS,将对TEE程序的内存管理和调度功能从安全监控器中抽离出来,进一步减小了安全监控器的攻击面,提高了系统核心部件安全监控器的安全性。TEEOS的引进也提高了软件更新的灵活性,能够支持在TEEOS中快速启动一个安全应用,跨应用高效交互以及基于TEEOS的细粒度内存资源分配。
5、通过物理内存隔离技术(Physical Memory Protection)为安全敏感的程序从软件和硬件层面提供一个强隔离的进程级别的可信执行环境,在操作系统内核不可信或者极容易被攻击的情况下,保护TEE程序的正常执行流与程序里的敏感数据,解决了当前RISC-V架构下的TEE程序的可扩展性不足以及不支持物联网设备的问题。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例的系统架构示意图;
图2为本发明一实施例的sPMP架构示意图;
图3为本发明一实施例的TEE新建和使用软件流程图;
图4为本发明中基于sPMP的隔离方式与传统的基于PMP的隔离方式的对比示意图,sPMP的方式能够提供更大的灵活性;
图5为本发明中sPMP配置寄存器的一个样例实现示意图,其他的布局实现也可;
图6为本发明中sPMP地址寄存器的一个样例实现示意图,其他的布局实现也可;
图7为本发明中TEEOS可以支持的功能示意图,包含快速启动(fork),快速通信,可扩展实例,以及细粒度内存资源隔离等。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于RISC-V指令架构的物理内存隔离方法,是一种在RISC-V指令架构现有的Machine mode可配置的物理内存隔离技术PMP的基础之上,增加了Supervisor mode可配置的物理内存隔离技术sPMP;
所述物理内存隔离技术sPMP:依赖于只有Machine mode程序和Supervisor mode程序可以读写的几组sPMP寄存器;
每一组sPMP寄存器包括地址寄存器和配置寄存器,用于表示某一块连续的物理内存的起始地址和大小,以及当前CPU对这块连续物理内存的访问权限,包括:读、写及执行;
当CPU运行在User mode权限时对内存发起访问,且已经通过了PMP技术的检查时,硬件会按顺序查看各组sPMP寄存器,当发现某组sPMP寄存器所表示的物理内存区间包含了CPU将要访问的内存的物理地址时,中止对sPMP寄存器的遍历,并根据这组sPMP寄存器所表示的访问权限来决定当前内存访问操作是否合法,然后进行正常访存或抛出异常信息;
所述RISC-V指令集架构有四个执行权限级:User mode、Supervisor mode、Hypervisor mode和Machine mode,权限等级依次升高,Machine mode程序即运行在最高权限级Machine mode的程序;
Supervisor mode程序指运行在Supervisor mode权限级的程序,包括:Linuxkernel。
优选地,还兼容SMAP内存保护策略,该SMAP内存保护策略用于限制Supervisormode程序对User mode程序的内存的访问;
对于一组sPMP寄存器限定的物理内存,sPMP寄存器中表示权限的比特位中的一个特殊比特U bit被置为一表示该内存属于User mode程序;
当RISC-V处理器中的特殊状态寄存器mstatus寄存器中的SUM位被置为零时,任何Supervisor mode程序对这块物理内存的访问均会被硬件检测为非法访问,并抛出异常;
当mstatus寄存器中的SUM位被置为一时硬件才允许Supervisor mode程序对这块User mode程序内存的访问。
优选地,还兼容SMEP内存保护策略,该SMEP内存保护策略用于限制Supervisormode程序执行位于User mode程序内存中的代码;
对于一块属于User mode程序的内存,硬件会禁止任何Supervisor mode程序执行位于这块内存上的代码。
优选地,还兼容RISC-V指令架构对Hypervisor mode的扩展;
对于Hypervisor mode和Supervisor mode均支持页表翻译,即同时支持guestpage table和host page table的场景,Hypervisor mode程序通过host page table来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisor mode程序通过guest page table或sPMP技术或同时使用两者来限制User mode程序对于内存的访问;
对于只有Hypervisor mode支持页表翻译的情况,Hypervisor mode程序通过hostpage table来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisor mode程序通过sPMP技术限制User mode程序对内存的访问;
对于Hypervisor mode和Supervisor mode均不支持页表翻译的情况,Hypervisormode程序通过请求Machine mode配置PMP寄存器的方式限制Supervisor程序对内存的访问,Supervisor程序通过sPMP技术限制User mode程序对内存的访问;
guest page table指一台物理机上运行多台虚拟客户机时,用于将客户机虚拟地址翻译为客户机物理地址的页表;
host page table指用于将客户机物理地址翻译为实际物理地址的页表。
根据本发明提供的一种根据上述中任一项所述的基于RISC-V指令架构的物理内存隔离方法的可信执行系统,可信计算集基于所述的基于RISC-V指令架构的物理内存隔离方法,组成了一个可扩展高灵活的TEE系统;
可信计算集包括运行在Machine mode的安全监控器,运行在Supervisor mode的可信操作系统TEEOS;
安全监控器是一个轻量级、可验证的安全程序,在开机时由硬件固件负责启动并验证其哈希值,以保证其安全性和完整性,安全监控器负责接收和处理主机操作系统创建或销毁TEE程序的请求,并通过PMP技术隔离保护TEE程序,或者将请求转发给TEEOS,由TEEOS创建TEE程序,并通过sPMP技术对TEE进行隔离保护;
TEEOS是一个轻量级、可验证的安全操作系统,在系统开机时由安全监控器启动并验证其状态,以保证TEEOS的安全性和完整性;
安全监控器在创建和启动TEEOS时会为其分配与主机操作系统和其他直接运行在安全监控器之上的TEE程序没有重叠的一块物理内存,并用PMP隔离保护这块内存,TEEOS在这块内存上创建和运行新的TEE程序,并通过sPMP技术进行隔离保护;
TEE程序可以直接运行在经过安全监控器验证的TEEOS之上,TEEOS无需将每一组sPMP寄存器与某一个TEE绑定,只需在执行TEE程序之前使用两组sPMP寄存器配置当前TEE程序可以访问和不能访问的物理内存区间,因此能够在调度TEE程序时像切换上下文一样切换sPMP寄存器中的值,从而不受sPMP寄存器组数量的限制,支持多个TEE程序;
所述的可扩展高灵活的TEE系统的工作流程包括以下步骤:
步骤S1:TEE开发人员完成TEE程序代码开发;
步骤S2:用户发送创建TEE请求,要求主机操作系统加载和创建TEE;
步骤S3:主机操作系统根据用户参数选择将TEE交给安全监控器还是TEEOS,选择将TEE交给安全监控器的情况下,主机操作系统为TEE分配内存,配置页表,并将TEE创建请求、内存分配信息、页表信息发送给安全监控器;选择将TEE交给TEEOS的情况下,主机操作系统仅仅将创建请求发送给TEEOS;
步骤S4:安全监控器对内存分配信息、页表信息进行检查,然后真正创建和运行TEE;或者将TEE镜像与创建请求中转给TEEOS,TEEOS从自己的内存中为TEE分配内存,配置页表并运行;
步骤S5:在TEE程序直接由安全监控器创建和运行的情况下,由硬件的PMP技术隔离保护TEE不受主机操作系统和其它TEE程序及用户程序的攻击;
步骤S6:在TEE程序由TEEOS创建和运行的情况下,由硬件的sPMP技术隔离保护TEE不受运行在同一TEEOS之上的其它TEE程序或用户程序的攻击,硬件的PMP技术保护TEEOS以及在其上层运行的所有TEE程序不受主机操作系统的攻击;
步骤S7:用户发送销毁TEE请求,安全监控器或TEEOS将TEE销毁,并擦除内存中遗留的敏感数据。
优选地,所述步骤S1中,用户将TEE程序和相关参数信息打包进同一TEE镜像;
相关参数信息包括:所需要的内存大小、哈希值。
优选地,所述步骤S3中,选择将TEE交给安全监控器的情况下,主机操作系统根据TEE镜像以及TEE创建请求中的相关参数计算应该为TEE程序分配的连续物理内存区间的大小,分配完后同时从这块内存区间中抽取若干页用于为TEE创建页表,在物联网设备场景下不需要配置页表;
选择将TEE交给TEEOS的情况下,主机操作系统会将TEE镜像和用户创建TEE的相关参数发送给TEEOS,由于TEEOS被PMP保护,主机操作系统发送的信息需要经过安全监控器中转。
优选地,所述步骤S4中,安全监控器会检查内存是否与其它TEE程序重叠、页表是否映射到了其它TEE的内存;
所述步骤S5中,硬件PMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时安全监控器会保存被切换走的TEE程序的上下文,并相应更改PMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存;
所述步骤S6中,硬件sPMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时TEEOS会保存被切换走的TEE程序的上下文,并相应更改sPMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存;
所述步骤S7中,在TEE销毁阶段,TEE的内存信息以及寄存器信息会被擦除以防止信息泄漏。
优选地,包括硬件sPMP技术,轻量级可验证的安全监控器和TEEOS,以及TEEOS通过调度sPMP寄存器获得高扩展性的设计;
所述sPMP技术负责在硬件层面提供TEE程序与其它程序之间的隔离,同时保证在物联网设备场景下操作系统仍然能限制用户态程序的访存区间;
所述安全监控器和TEEOS分别负责管理PMP寄存器和sPMP寄存器,安全监控器通过PMP技术隔离TEEOS与主机操作系统以及其它直接由安全监控器调度运行的TEE程序,TEEOS通过sPMP技术隔离运行在同一TEEOS之上的TEE程序,安全监控器在系统开机时由硬件固件验证安全性与完整性,TEEOS由安全监控器验证安全性与完整性;
所述TEEOS调度sPMP以获得高扩展性的设计是指,TEEOS在调度TEE程序时,为接下来要运行的TEE程序配置sPMP寄存器以限制其访存区间,使TEE只能访问分配给其的物理内存,包括:TEEOS在调度执行某一个TEE程序时,使用第一组sPMP寄存器表示被分配给该TEE程序的内存区间,并设置可读或可写或可执行权限;使用第二组sPMP寄存器表示整个物理内存区间,并设置权限为不可访问,该TEE程序访存时,对于自身内存的访问均会落入第一组sPMP寄存器,硬件顺序检查sPMP寄存器组,并被允许访问,而对于其它内存的访问则会落入第二组sPMP寄存器,并被禁止访问,TEEOS可以不受sPMP寄存器组数量的限制,通过调度sPMP寄存器的方式支持较多个TEE程序,同时还能够适用于物联网设备没有页表翻译的场景。
下面通过优选例,对本发明进行更为具体地说明。
优选例1:
针对现有技术中存在的上述不足,本发明的目的是提供一种基于RISC-V架构的具有高可扩展性(可支持较多个TEE程序,可支持物联网设备场景)的TEE系统。
本发明的目的可以通过以下技术方案来实现:
一种基于RISC-V指令集架构的操作系统特权级物理内存隔离硬件技术(Supervisor-mode Physical Memory Protection)。sPMP主要依赖于只有Machine mode程序和Supervisor mode程序可以读写的几组sPMP寄存器。每一组sPMP寄存器可以用于表示某一块连续的物理内存的起始地址和大小,以及当前CPU对这块连续物理内存的访问权限(读/写/执行)。当CPU(运行在User mode权限时)对内存发起访问,且已经通过了PMP技术的检查时,硬件会按顺序查看各组sPMP寄存器,当发现某组sPMP寄存器所表示的物理内存区间包含了CPU将要访问的内存的物理地址时,中止对sPMP寄存器的遍历,并根据这组sPMP寄存器所表示的访问权限来决定当前内存访问操作是否合法,然后进行正常访存或抛出异常信息。
sPMP技术兼容SMAP内存保护策略,该策略用于限制Supervisor mode程序对Usermode程序的内存的访问。对于一组sPMP寄存器限定的物理内存,sPMP寄存器中的U bit(sPMP寄存器中表示权限的比特位中的一个特殊比特)被置为一表示该内存属于User mode程序。当mstatus寄存器(RISC-V处理器中的状态寄存器)中的SUM位(permit SupervisorUser Memory access bit)被置为零时,任何Supervisor mode程序对这块物理内存的访问均会被硬件检测为非法访问,并抛出异常。当mstatus寄存器中的SUM位被置为一时硬件才允许Supervisor mode程序对这块User mode程序内存的访问。
sPMP技术兼容SMEP内存保护策略,该策略用于限制Supervisor mode程序执行位于User mode程序内存中的代码。对于一块属于User mode程序(对应的sPMP寄存器中的Ubit被置为1)的内存,硬件会禁止任何Supervisor mode程序执行位于这块内存上的代码。
sPMP技术兼容RISC-V架构对Hypervisor mode的扩展。对于Hypervisor mode和Supervisor mode均支持页表翻译的情况(即同时支持guest page table和host pagetable),Hypervisor mode程序(即运行在RISC-V架构的Hypervisor mode的程序,通常是虚拟机监控器hypervisor)通过host page table来限制上层的Supervisor mode程序和Usermode程序对内存的访问,Supervisor mode程序通过guest page table或sPMP技术或同时使用两者来限制User mode程序对于内存的访问。对于只有Hypervisor mode支持页表翻译的情况,Hypervisor mode程序通过host page table来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisor mode程序通过sPMP技术限制User mode程序对内存的访问。对于Hypervisor mode和Supervisor mode均不支持页表翻译的情况,Hypervisor mode程序通过请求Machine mode配置PMP寄存器的方式限制Supervisor程序对内存的访问,Supervisor程序通过sPMP技术限制User mode程序对内存的访问。guestpage table指客户机页表,一台物理机上运行多台虚拟客户机时,用于将客户机虚拟地址翻译为客户机物理地址的页表。host page table是用于将客户机物理地址翻译为实际物理地址的页表。
一种以软硬件结合的方式提供可信执行环境的系统和方法。本发明包含硬件设计和软件设计两部分。硬件设计方面,本发明在RISC-V指令集架构现有的Machine mode可配置的物理内存隔离技术(PMP)的基础之上,增加了Supervisor mode可配置的物理内存隔离技术(sPMP)。PMP技术用于保护运行在Machine mode的安全监控器的代码和数据,以及提供主机操作系统与TEE程序及TEEOS之间的隔离;而sPMP技术用于增强运行在TEEOS之上的TEE程序与其他程序的隔离,同时给予主机操作系统和TEEOS在物联网设备场景下仍能限制用户程序的访存空间的能力。
软件设计方面,本发明的可信基包括运行在Machine mode的安全监控器,运行在Supervisor mode的TEEOS。安全监控器是一个轻量级、可验证的安全程序,在开机时由硬件固件负责启动并验证其哈希值,以保证其安全性和完整性。安全监控器负责接收和处理主机操作系统创建或销毁TEE程序的请求,并通过PMP技术隔离保护TEE程序,或者将请求转发给TEEOS,由TEEOS创建TEE程序,并通过sPMP技术对TEE进行隔离保护。TEEOS是一个轻量级、可验证的安全操作系统,在系统开机时由安全监控器启动并验证其状态(如内存哈希),以保证TEEOS的安全性和完整性。安全监控器在创建和启动TEEOS时会为其分配与主机操作系统和其他直接运行在安全监控器之上的TEE程序没有重叠的一块物理内存,并用PMP隔离保护这块内存。TEEOS在这块内存上创建和运行新的TEE程序,并通过sPMP技术进行隔离保护。
在本发明中,TEE程序可以直接运行在经过安全监控器验证的TEEOS之上。TEEOS无需将每一组sPMP寄存器与某一个TEE绑定,只需在执行TEE程序之前使用两组sPMP寄存器配置当前TEE程序可以访问和不能访问的物理内存区间,因此可以在调度TEE程序时像切换上下文一样切换sPMP寄存器中的值,从而不受sPMP寄存器组数量的限制,支持较多个TEE程序。
所述的基于RISC-V架构的以软硬件结合的方式提供可信执行环境的TEE系统的工作流程包括以下步骤:
(1)TEE开发人员完成TEE程序代码开发;
(2)用户发送创建TEE请求,要求主机操作系统加载和创建TEE;
(3)主机操作系统根据用户参数选择将TEE交给安全监控器还是TEEOS。前一种情况下,主机操作系统为TEE分配内存,配置页表,并将TEE创建请求、内存分配信息、页表信息发送给安全监控器;后一种情况下,主机操作系统仅仅将创建请求发送给TEEOS。
(4)安全监控器对内存分配信息、页表信息进行检查,然后真正创建和运行TEE;或者将TEE镜像与创建请求中转给TEEOS,TEEOS从自己的内存中为TEE分配内存,配置页表并运行;
(5)在TEE程序直接由安全监控器创建和运行的情况下,由硬件的PMP技术隔离保护TEE不受主机操作系统和其它TEE程序及用户程序的攻击;
(6)在TEE程序由TEEOS创建和运行的情况下,由硬件的sPMP技术隔离保护TEE不受运行在同一TEEOS之上的其它TEE程序或用户程序的攻击。硬件的PMP技术保护TEEOS以及在其上层运行的所有TEE程序不受主机操作系统的攻击;
(7)用户发送销毁TEE请求,安全监控器或TEEOS将TEE销毁,并擦除内存中遗留的敏感数据。
所述步骤(1)中,用户将TEE程序和相关参数信息(所需要的内存大小、哈希值等)打包进同一TEE镜像。
所述步骤(3)中,前一种情况下,主机操作系统根据TEE镜像以及TEE创建请求中的相关参数计算应该为TEE程序分配的连续物理内存区间的大小,分配完后同时从这块内存区间中抽取若干页用于为TEE创建页表(物联网设备场景下不需要配置页表);后一种情况下,主机操作系统会将TEE镜像和用户创建TEE的相关参数发送给TEEOS,由于TEEOS被PMP保护,主机操作系统发送的信息需要经过安全监控器中转。
所述步骤(4)中,安全监控器会检查内存是否与其它TEE程序重叠、页表是否映射到了其它TEE的内存等。
所述步骤(5)中,硬件PMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时安全监控器会保存被切换走的TEE程序的上下文,并相应更改PMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存。
所述步骤(6)中,硬件sPMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时TEEOS会保存被切换走的TEE程序的上下文,并相应更改sPMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存。
所述步骤(7)中,在TEE销毁阶段,TEE的内存信息以及寄存器信息会被擦除以防止信息泄漏。
一种以软硬件结合的方式提供可信执行环境的系统和方法,其特征在于,包括硬件sPMP技术,轻量级可验证的安全监控器和TEEOS,以及TEEOS通过调度sPMP寄存器获得高扩展性的设计。
所述sPMP技术负责在硬件层面提供TEE程序与其它程序之间的隔离,同时保证在物联网设备场景下操作系统仍然能限制用户态程序的访存区间。
所述安全监控器和TEEOS分别负责管理PMP寄存器和sPMP寄存器。安全监控器通过PMP技术隔离TEEOS与主机操作系统以及其它直接由安全监控器调度运行的TEE程序,TEEOS通过sPMP技术隔离运行在同一TEEOS之上的TEE程序。安全监控器在系统开机时由硬件固件验证安全性与完整性,TEEOS由安全监控器验证安全性与完整性。
所述TEEOS调度sPMP以获得高扩展性的设计是指,TEEOS在调度TEE程序时,为接下来要运行的TEE程序配置sPMP寄存器以限制其访存区间,使TEE只能访问分配给其的物理内存。例如,TEEOS在调度执行某一个TEE程序时,使用第一组sPMP寄存器表示被分配给该TEE程序的内存区间,并设置可读/写/执行权限;使用第二组sPMP寄存器表示整个物理内存区间,并设置权限为不可访问。这样,该TEE程序访存时,对于自身内存的访问均会落入第一组sPMP寄存器(硬件顺序检查sPMP寄存器组),并被允许访问,而对于其它内存的访问则会落入第二组sPMP寄存器,并被禁止访问。这样,TEEOS可以不受sPMP寄存器组数量的限制,通过调度sPMP寄存器的方式支持较多个TEE程序,同时还能适用于物联网设备没有页表翻译的场景。
优选例2:
基于RISC-V架构的具有高可扩展性的TEE系统提供可信执行环境的方法包括TEE开发人员根据需求开发TEE程序,提供TEE相关参数;安全监控器/TEEOS创建、运行和销毁TEE;PMP/sPMP硬件技术保护TEEOS/TEE程序不受主机操作系统、其他TEE程序或普通用户程序的干扰和攻击。以下将通过具体实施示例来详细描述本发明提供TEE的方法。
如图3所示,系统为用户提供物理内存隔离的进程级别的TEE的具体步骤如下:
在步骤(1)中,用户自行选择安全敏感程序并将其打包成镜像,并根据实际需求配置TEE的相关参数。
在步骤(2)中,主机操作系统根据用户的配置信息选择TEE由安全监控器创建(安全性高)还是由TEEOS创建(可扩展性高)。
在步骤(3)中,由主机操作系统/TEEOS为TEE程序分配内存、配置页表。(物联网设备场景下没有页表配置步骤)
在步骤(4)中,由安全监控器/TEEOS对TEE内存和页表进行检查,确保内存与其它TEE程序没有重叠,确保页表没有映射到其它TEE程序的内存,并验证TEE程序的完整性。(物联网设备场景下没有页表检查步骤)
在步骤(5)中,TEE开始运行,硬件中的PMP/sPMP技术隔离保护其不受其他程序的干扰和攻击。
在步骤(6)中,用户发送销毁TEE请求,安全监控器/TEEOS销毁TEE,擦除并释放其所用内存及普通寄存器,完成对TEE的使用。
综上所述,本发明在RISC-V架构的Supervisor mode中增加了物理内存隔离技术(sPMP),使操作系统内核在没有页表翻译的物联网设备中仍然能限制用户程序的访存区间,提高系统的安全性。此外,本发明通过将PMP和sPMP硬件技术与轻量级安全软件安全监控器和TEEOS结合起来,为TEE程序提供隔离保护,同时突破了PMP寄存器组的数量的限制,提高了系统所支持的TEE数量。本系统对于现有TEE设计在安全性和可扩展性上均有极大的提升。
优选例3:
1.一种基于RISC-V指令集架构的操作系统特权级物理内存隔离硬件技术(Supervisor-mode Physical Memory Protection,缩写为sPMP)。其特征在于,sPMP主要依赖于只有Machine mode程序(RISC-V指令集架构有四个执行权限级:User mode、Supervisor mode、Hypervisor mode和Machine mode,权限等级依次升高,Machine mode程序即运行在最高权限级Machine mode的程序)和Supervisor mode程序(运行在Supervisormode权限级的程序,如Linux kernel)可以读写的几组sPMP寄存器。每一组sPMP寄存器包括地址寄存器和配置寄存器,可以用于表示某一块连续的物理内存的起始地址和大小,以及当前CPU对这块连续物理内存的访问权限(读/写/执行)。当CPU(运行在User mode权限时)对内存发起访问,且已经通过了PMP技术的检查时,硬件会按顺序查看各组sPMP寄存器,当发现某组sPMP寄存器所表示的物理内存区间包含了CPU将要访问的内存的物理地址时,中止对sPMP寄存器的遍历,并根据这组sPMP寄存器所表示的访问权限来决定当前内存访问操作是否合法,然后进行正常访存或抛出异常信息。
2.所述的操作系统特权级物理内存隔离硬件技术,其特征在于,兼容SMAP内存保护策略,该策略用于限制Supervisor mode程序对User mode程序(运行在RISC-V架构的User mode权限级的程序)的内存的访问。对于一组sPMP寄存器限定的物理内存,sPMP寄存器中的U bit(sPMP寄存器中表示权限的比特位中的一个特殊比特)被置为一表示该内存属于User mode程序。当mstatus寄存器(RISC-V处理器中的特殊状态寄存器)中的SUM位(permit Supervisor User Memory access bit)被置为零时,任何Supervisor mode程序对这块物理内存的访问均会被硬件检测为非法访问,并抛出异常。当mstatus寄存器中的SUM位被置为一时硬件才允许Supervisor mode程序对这块User mode程序内存的访问。
3.所述的操作系统特权级物理内存隔离硬件技术,其特征在于,兼容SMEP内存保护策略,该策略用于限制Supervisor mode程序执行位于User mode程序内存中的代码。对于一块属于User mode程序(对应的sPMP寄存器中的U bit被置为1)的内存,硬件会禁止任何Supervisor mode程序执行位于这块内存上的代码。
4.根据权利要求1所述的操作系统特权级物理内存隔离硬件技术,其特征在于,兼容RISC-V架构对Hypervisor mode的扩展。对于Hypervisor mode和Supervisor mode均支持页表翻译,即同时支持guest page table(一台物理机上运行多台虚拟客户机时,用于将客户机虚拟地址翻译为客户机物理地址的页表)和host page table(用于将客户机物理地址翻译为实际物理地址的页表)的场景,Hypervisor mode程序(即运行在RISC-V架构的Hypervisor mode的程序,通常是虚拟机监控器hypervisor)通过host page table来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisor mode程序通过guest page table或sPMP技术或同时使用两者来限制User mode程序对于内存的访问。对于只有Hypervisor mode支持页表翻译的情况,Hypervisor mode程序通过host pagetable来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisormode程序通过sPMP技术限制User mode程序对内存的访问。对于Hypervisor mode和Supervisor mode均不支持页表翻译的情况,Hypervisor mode程序通过请求Machine mode配置PMP寄存器的方式限制Supervisor程序对内存的访问,Supervisor程序通过sPMP技术限制User mode程序对内存的访问。
5.一种以软硬件结合的方式提供可信执行环境的系统和方法。本发明包含硬件设计和软件设计两部分。硬件设计方面(即求1-4所述的“基于RISC-V指令集架构的操作系统特权级物理内存隔离硬件技术”),本发明在RISC-V指令集架构现有的Machine mode可配置的物理内存隔离技术(PMP)的基础之上,增加了Supervisor mode可配置的物理内存隔离技术(sPMP)。其特征在于,PMP技术用于保护运行在Machine mode的安全监控器的代码和数据,以及提供主机操作系统与TEE程序及TEEOS之间的隔离;而sPMP技术用于增强运行在TEEOS之上的TEE程序与其他程序的隔离,同时给予主机操作系统和TEEOS在物联网设备场景下仍能限制用户程序的访存空间的能力。
软件设计方面,本发明的可信计算集(即整个计算机系统,包括软硬件在内的所有部分中可被信任的部分)包括运行在Machine mode的安全监控器,运行在Supervisor mode的可信操作系统TEEOS,二者基于权利要求1-4所述的物理内存隔离技术,组成了一个可扩展高灵活的TEE系统,突破了现有基于PMP寄存器组的TEE系统的安全应用数量的限制,并且能够提供高效安全应用启动,高效安全应用间通信,细粒度安全应用内存资源分配等特性。其特征在于,安全监控器是一个轻量级、可验证的安全程序,在开机时由硬件固件负责启动并验证其哈希值,以保证其安全性和完整性。安全监控器负责接收和处理主机操作系统创建或销毁TEE程序的请求,并通过PMP技术隔离保护TEE程序,或者将请求转发给TEEOS,由TEEOS创建TEE程序,并通过sPMP技术对TEE进行隔离保护。TEEOS是一个轻量级、可验证的安全操作系统,在系统开机时由安全监控器启动并验证其状态(如内存哈希),以保证TEEOS的安全性和完整性。安全监控器在创建和启动TEEOS时会为其分配与主机操作系统和其他直接运行在安全监控器之上的TEE程序没有重叠的一块物理内存,并用PMP隔离保护这块内存。TEEOS在这块内存上创建和运行新的TEE程序,并通过sPMP技术进行隔离保护。
在本发明中,TEE程序可以直接运行在经过安全监控器验证的TEEOS之上。TEEOS无需将每一组sPMP寄存器与某一个TEE绑定,只需在执行TEE程序之前使用两组sPMP寄存器配置当前TEE程序可以访问和不能访问的物理内存区间,因此可以在调度TEE程序时像切换上下文一样切换sPMP寄存器中的值,从而不受sPMP寄存器组数量的限制,支持较多个TEE程序。
所述的可扩展高灵活的TEE系统的工作流程包括以下步骤:
(1)TEE开发人员完成TEE程序代码开发;
(2)用户发送创建TEE请求,要求主机操作系统加载和创建TEE;
(3)主机操作系统根据用户参数选择将TEE交给安全监控器还是TEEOS。前一种情况下,主机操作系统为TEE分配内存,配置页表,并将TEE创建请求、内存分配信息、页表信息发送给安全监控器;后一种情况下,主机操作系统仅仅将创建请求发送给TEEOS。
(4)安全监控器对内存分配信息、页表信息进行检查,然后真正创建和运行TEE;或者将TEE镜像与创建请求中转给TEEOS,TEEOS从自己的内存中为TEE分配内存,配置页表并运行;
(5)在TEE程序直接由安全监控器创建和运行的情况下,由硬件的PMP技术隔离保护TEE不受主机操作系统和其它TEE程序及用户程序的攻击;
(6)在TEE程序由TEEOS创建和运行的情况下,由硬件的sPMP技术隔离保护TEE不受运行在同一TEEOS之上的其它TEE程序或用户程序的攻击。硬件的PMP技术保护TEEOS以及在其上层运行的所有TEE程序不受主机操作系统的攻击;
(7)用户发送销毁TEE请求,安全监控器或TEEOS将TEE销毁,并擦除内存中遗留的敏感数据。
6.所述的一种以软硬件结合的方式提供可信执行环境的系统和方法,其特征在于,所述步骤(1)中,用户将TEE程序和相关参数信息(所需要的内存大小、哈希值等)打包进同一TEE镜像。
7.所述的一种以软硬件结合的方式提供可信执行环境的系统和方法,其特征在于,所述步骤(3)中,前一种情况下,主机操作系统根据TEE镜像以及TEE创建请求中的相关参数计算应该为TEE程序分配的连续物理内存区间的大小,分配完后同时从这块内存区间中抽取若干页用于为TEE创建页表(物联网设备场景下不需要配置页表);后一种情况下,主机操作系统会将TEE镜像和用户创建TEE的相关参数发送给TEEOS,由于TEEOS被PMP保护,主机操作系统发送的信息需要经过安全监控器中转。
8.所述的一种以软硬件结合的方式提供可信执行环境的系统和方法,其特征在于,所述步骤(4)中,安全监控器会检查内存是否与其它TEE程序重叠、页表是否映射到了其它TEE的内存等。
9.所述的一种以软硬件结合的方式提供可信执行环境的系统和方法,其特征在于,所述步骤(5)中,硬件PMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时安全监控器会保存被切换走的TEE程序的上下文,并相应更改PMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存。
10.所述的一种以软硬件结合的方式提供可信执行环境的系统和方法,其特征在于,所述步骤(6)中,硬件sPMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时TEEOS会保存被切换走的TEE程序的上下文,并相应更改sPMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存。
11.所述的一种以软硬件结合的方式提供可信执行环境的系统和方法,其特征在于,所述步骤(7)中,在TEE销毁阶段,TEE的内存信息以及寄存器信息会被擦除以防止信息泄漏。
12.一种以软硬件结合的方式提供可信执行环境的系统和方法,其特征在于,包括硬件sPMP技术,轻量级可验证的安全监控器和TEEOS,以及TEEOS通过调度sPMP寄存器获得高扩展性的设计。
所述sPMP技术负责在硬件层面提供TEE程序与其它程序之间的隔离,同时保证在物联网设备场景下操作系统仍然能限制用户态程序的访存区间。
所述安全监控器和TEEOS分别负责管理PMP寄存器和sPMP寄存器。安全监控器通过PMP技术隔离TEEOS与主机操作系统以及其它直接由安全监控器调度运行的TEE程序,TEEOS通过sPMP技术隔离运行在同一TEEOS之上的TEE程序。安全监控器在系统开机时由硬件固件验证安全性与完整性,TEEOS由安全监控器验证安全性与完整性。
所述TEEOS调度sPMP以获得高扩展性的设计是指,TEEOS在调度TEE程序时,为接下来要运行的TEE程序配置sPMP寄存器以限制其访存区间,使TEE只能访问分配给其的物理内存。例如,TEEOS在调度执行某一个TEE程序时,使用第一组sPMP寄存器表示被分配给该TEE程序的内存区间,并设置可读/写/执行权限;使用第二组sPMP寄存器表示整个物理内存区间,并设置权限为不可访问。这样,该TEE程序访存时,对于自身内存的访问均会落入第一组sPMP寄存器(硬件顺序检查sPMP寄存器组),并被允许访问,而对于其它内存的访问则会落入第二组sPMP寄存器,并被禁止访问。这样,TEEOS可以不受sPMP寄存器组数量的限制,通过调度sPMP寄存器的方式支持较多个TEE程序,同时还能适用于物联网设备没有页表翻译的场景。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (9)
1.一种基于RISC-V指令架构的物理内存隔离方法,其特征在于,是一种在RISC-V指令架构现有的Machine mode可配置的物理内存隔离技术PMP的基础之上,增加了Supervisormode可配置的物理内存隔离技术sPMP;
所述物理内存隔离技术sPMP:依赖于只有Machine mode程序和Supervisor mode程序可以读写的几组sPMP寄存器;
每一组sPMP寄存器包括地址寄存器和配置寄存器,用于表示某一块连续的物理内存的起始地址和大小,以及当前CPU对这块连续物理内存的访问权限,包括:读、写及执行;
当CPU运行在User mode权限时对内存发起访问,且已经通过了PMP技术的检查时,硬件会按顺序查看各组sPMP寄存器,当发现某组sPMP寄存器所表示的物理内存区间包含了CPU将要访问的内存的物理地址时,中止对sPMP寄存器的遍历,并根据这组sPMP寄存器所表示的访问权限来决定当前内存访问操作是否合法,然后进行正常访存或抛出异常信息;
所述RISC-V指令集架构有四个执行权限级:User mode、Supervisor mode、Hypervisormode和Machine mode,权限等级依次升高,Machine mode程序即运行在最高权限级Machinemode的程序;
Supervisor mode程序指运行在Supervisor mode权限级的程序,包括:Linux kernel。
2.根据权利要求1所述的基于RISC-V指令架构的物理内存隔离方法,其特征在于,还兼容SMAP内存保护策略,该SMAP内存保护策略用于限制Supervisor mode程序对User mode程序的内存的访问;
对于一组sPMP寄存器限定的物理内存,sPMP寄存器中表示权限的比特位中的一个特殊比特U bit被置为一表示该内存属于User mode程序;
当RISC-V处理器中的特殊状态寄存器mstatus寄存器中的SUM位被置为零时,任何Supervisor mode程序对这块物理内存的访问均会被硬件检测为非法访问,并抛出异常;
当mstatus寄存器中的SUM位被置为一时硬件才允许Supervisor mode程序对这块Usermode程序内存的访问。
3.根据权利要求1所述的基于RISC-V指令架构的物理内存隔离方法,其特征在于,还兼容SMEP内存保护策略,该SMEP内存保护策略用于限制Supervisor mode程序执行位于Usermode程序内存中的代码;
对于一块属于User mode程序的内存,硬件会禁止任何Supervisor mode程序执行位于这块内存上的代码。
4.根据权利要求1所述的基于RISC-V指令架构的物理内存隔离方法,其特征在于,还兼容RISC-V指令架构对Hypervisor mode的扩展;
对于Hypervisor mode和Supervisor mode均支持页表翻译,即同时支持guest pagetable和host page table的场景,Hypervisor mode程序通过host page table来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisor mode程序通过guestpage table或sPMP技术或同时使用两者来限制User mode程序对于内存的访问;
对于只有Hypervisor mode支持页表翻译的情况,Hypervisor mode程序通过hostpage table来限制上层的Supervisor mode程序和User mode程序对内存的访问,Supervisor mode程序通过sPMP技术限制User mode程序对内存的访问;
对于Hypervisor mode和Supervisor mode均不支持页表翻译的情况,Hypervisormode程序通过请求Machine mode配置PMP寄存器的方式限制Supervisor程序对内存的访问,Supervisor程序通过sPMP技术限制User mode程序对内存的访问;
guest page table指一台物理机上运行多台虚拟客户机时,用于将客户机虚拟地址翻译为客户机物理地址的页表;
host page table指用于将客户机物理地址翻译为实际物理地址的页表。
5.一种根据权利要求1至4中任一项所述的基于RISC-V指令架构的物理内存隔离方法的可信执行系统,其特征在于,可信计算集基于所述的基于RISC-V指令架构的物理内存隔离方法,组成一个可扩展高灵活的TEE系统;
可信计算集包括运行在Machine mode的安全监控器,运行在Supervisor mode的可信操作系统TEEOS;
安全监控器是一个轻量级、可验证的安全程序,在开机时由硬件固件负责启动并验证其哈希值,以保证其安全性和完整性,安全监控器负责接收和处理主机操作系统创建或销毁TEE程序的请求,并通过PMP技术隔离保护TEE程序,或者将请求转发给TEEOS,由TEEOS创建TEE程序,并通过sPMP技术对TEE进行隔离保护;
TEEOS是一个轻量级、可验证的安全操作系统,在系统开机时由安全监控器启动并验证其状态,以保证TEEOS的安全性和完整性;
安全监控器在创建和启动TEEOS时会为其分配与主机操作系统和其他直接运行在安全监控器之上的TEE程序没有重叠的一块物理内存,并用PMP隔离保护这块内存,TEEOS在这块内存上创建和运行新的TEE程序,并通过sPMP技术进行隔离保护;
TEE程序可以直接运行在经过安全监控器验证的TEEOS之上,TEEOS无需将每一组sPMP寄存器与某一个TEE绑定,只需在执行TEE程序之前使用两组sPMP寄存器配置当前TEE程序可以访问和不能访问的物理内存区间,因此能够在调度TEE程序时像切换上下文一样切换sPMP寄存器中的值,从而不受sPMP寄存器组数量的限制,支持多个TEE程序;
所述的可扩展高灵活的TEE系统的工作流程包括以下步骤:
步骤S1:TEE开发人员完成TEE程序代码开发;
步骤S2:用户发送创建TEE请求,要求主机操作系统加载和创建TEE;
步骤S3:主机操作系统根据用户参数选择将TEE交给安全监控器还是TEEOS,选择将TEE交给安全监控器的情况下,主机操作系统为TEE分配内存,配置页表,并将TEE创建请求、内存分配信息、页表信息发送给安全监控器;选择将TEE交给TEEOS的情况下,主机操作系统仅仅将创建请求发送给TEEOS;
步骤S4:安全监控器对内存分配信息、页表信息进行检查,然后真正创建和运行TEE;或者将TEE镜像与创建请求中转给TEEOS,TEEOS从自己的内存中为TEE分配内存,配置页表并运行;
步骤S5:在TEE程序直接由安全监控器创建和运行的情况下,由硬件的PMP技术隔离保护TEE不受主机操作系统和其它TEE程序及用户程序的攻击;
步骤S6:在TEE程序由TEEOS创建和运行的情况下,由硬件的sPMP技术隔离保护TEE不受运行在同一TEEOS之上的其它TEE程序或用户程序的攻击,硬件的PMP技术保护TEEOS以及在其上层运行的所有TEE程序不受主机操作系统的攻击;
步骤S7:用户发送销毁TEE请求,安全监控器或TEEOS将TEE销毁,并擦除内存中遗留的敏感数据。
6.根据权利要求5所述的一种基于RISC-V指令架构的物理内存隔离方法的可信执行系统,其特征在于,所述步骤S1中,用户将TEE程序和相关参数信息打包进同一TEE镜像;
相关参数信息包括:所需要的内存大小、哈希值。
7.根据权利要求5所述的一种基于RISC-V指令架构的物理内存隔离方法的可信执行系统,其特征在于,所述步骤S3中,选择将TEE交给安全监控器的情况下,主机操作系统根据TEE镜像以及TEE创建请求中的相关参数计算应该为TEE程序分配的连续物理内存区间的大小,分配完后同时从这块内存区间中抽取若干页用于为TEE创建页表,在物联网设备场景下不需要配置页表;
选择将TEE交给TEEOS的情况下,主机操作系统会将TEE镜像和用户创建TEE的相关参数发送给TEEOS,由于TEEOS被PMP保护,主机操作系统发送的信息需要经过安全监控器中转。
8.根据权利要求5所述的一种基于RISC-V指令架构的物理内存隔离方法的可信执行系统,其特征在于,所述步骤S4中,安全监控器会检查内存是否与其它TEE程序重叠、页表是否映射到了其它TEE的内存;
所述步骤S5中,硬件PMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时安全监控器会保存被切换走的TEE程序的上下文,并相应更改PMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存;
所述步骤S6中,硬件sPMP会在CPU访存时检查当前CPU的访存权限,在TEE进程切换时TEEOS会保存被切换走的TEE程序的上下文,并相应更改sPMP寄存器中的内容以确保即被执行的TEE程序只能访问属于它的内存;
所述步骤S7中,在TEE销毁阶段,TEE的内存信息以及寄存器信息会被擦除以防止信息泄漏。
9.根据权利要求5所述的一种基于RISC-V指令架构的物理内存隔离方法的可信执行系统,其特征在于,包括硬件sPMP技术,轻量级可验证的安全监控器和TEEOS,以及TEEOS通过调度sPMP寄存器获得高扩展性的设计;
所述sPMP技术负责在硬件层面提供TEE程序与其它程序之间的隔离,同时保证在物联网设备场景下操作系统仍然能限制用户态程序的访存区间;
所述安全监控器和TEEOS分别负责管理PMP寄存器和sPMP寄存器,安全监控器通过PMP技术隔离TEEOS与主机操作系统以及其它直接由安全监控器调度运行的TEE程序,TEEOS通过sPMP技术隔离运行在同一TEEOS之上的TEE程序,安全监控器在系统开机时由硬件固件验证安全性与完整性,TEEOS由安全监控器验证安全性与完整性;
所述TEEOS调度sPMP以获得高扩展性的设计是指,TEEOS在调度TEE程序时,为接下来要运行的TEE程序配置sPMP寄存器以限制其访存区间,使TEE只能访问分配给其的物理内存,包括:TEEOS在调度执行某一个TEE程序时,使用第一组sPMP寄存器表示被分配给该TEE程序的内存区间,并设置可读或可写或可执行权限;使用第二组sPMP寄存器表示整个物理内存区间,并设置权限为不可访问,该TEE程序访存时,对于自身内存的访问均会落入第一组sPMP寄存器,硬件顺序检查sPMP寄存器组,并被允许访问,而对于其它内存的访问则会落入第二组sPMP寄存器,并被禁止访问,TEEOS可以不受sPMP寄存器组数量的限制,通过调度sPMP寄存器的方式支持较多个TEE程序,同时还能够适用于物联网设备没有页表翻译的场景。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010456182.9A CN111651778B (zh) | 2020-05-26 | 2020-05-26 | 基于risc-v指令架构的物理内存隔离方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010456182.9A CN111651778B (zh) | 2020-05-26 | 2020-05-26 | 基于risc-v指令架构的物理内存隔离方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111651778A true CN111651778A (zh) | 2020-09-11 |
CN111651778B CN111651778B (zh) | 2023-05-05 |
Family
ID=72349673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010456182.9A Active CN111651778B (zh) | 2020-05-26 | 2020-05-26 | 基于risc-v指令架构的物理内存隔离方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651778B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256396A (zh) * | 2020-10-23 | 2021-01-22 | 海光信息技术股份有限公司 | 内存管理方法、系统及安全处理装置、数据处理装置 |
CN112817780A (zh) * | 2021-02-01 | 2021-05-18 | 上海交通大学 | 一种实现安全与高性能进程间通信的方法和系统 |
CN112988508A (zh) * | 2021-03-04 | 2021-06-18 | 浙江中控研究院有限公司 | 一种基于内存隔离的可信plc嵌入式系统 |
CN113220225A (zh) * | 2021-04-06 | 2021-08-06 | 浙江大学 | Risc-v处理器的内存数据读写方法及装置、处理器、存储介质 |
CN113486360A (zh) * | 2021-07-14 | 2021-10-08 | 上海瓶钵信息科技有限公司 | 基于risc-v的安全启动方法及系统 |
CN113609494A (zh) * | 2021-08-10 | 2021-11-05 | 上海交通大学 | 适用于高性能场景下可信计算的软硬件系统及架构方法 |
CN113722246A (zh) * | 2021-11-02 | 2021-11-30 | 超验信息科技(长沙)有限公司 | 处理器中物理内存保护机制的实现方法及装置 |
CN114329479A (zh) * | 2021-12-08 | 2022-04-12 | 浙江大学 | 一种面向risc-v架构的启动验证方法 |
WO2022077388A1 (zh) * | 2020-10-15 | 2022-04-21 | 华为技术有限公司 | 一种处理器的安全度量装置及方法 |
CN114416031A (zh) * | 2021-12-27 | 2022-04-29 | 中国科学院软件研究所 | 面向AIoT场景支持RISC-V处理器的操作系统 |
CN114691552A (zh) * | 2022-04-13 | 2022-07-01 | 山东浪潮科学研究院有限公司 | 一种应用于risc_v架构的低资源内存保护装置 |
CN114722404A (zh) * | 2022-06-09 | 2022-07-08 | 睿思芯科(深圳)技术有限公司 | 基于risc-v实现任意数量eapp的方法、系统 |
CN114741740A (zh) * | 2022-06-09 | 2022-07-12 | 睿思芯科(深圳)技术有限公司 | 基于risc-v的物理内存保护方法、系统和相关设备 |
CN117171764A (zh) * | 2023-11-01 | 2023-12-05 | 睿思芯科(深圳)技术有限公司 | Risc-v的可信执行环境实现方法、系统及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050183088A1 (en) * | 1999-11-12 | 2005-08-18 | National Instruments Corporation | Method for the direct call of a function by a software module by means of a processor with a memory-management unit (MMU) |
CN108733455A (zh) * | 2018-05-31 | 2018-11-02 | 上海交通大学 | 基于ARM TrustZone的容器隔离性增强系统 |
CN109446799A (zh) * | 2018-11-14 | 2019-03-08 | 深圳市腾讯网络信息技术有限公司 | 内存数据保护方法、安全组件和计算机设备及存储介质 |
CN110825492A (zh) * | 2019-10-31 | 2020-02-21 | 海光信息技术有限公司 | 安全数据内存隔离方法、装置、设备、存储介质 |
-
2020
- 2020-05-26 CN CN202010456182.9A patent/CN111651778B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050183088A1 (en) * | 1999-11-12 | 2005-08-18 | National Instruments Corporation | Method for the direct call of a function by a software module by means of a processor with a memory-management unit (MMU) |
CN108733455A (zh) * | 2018-05-31 | 2018-11-02 | 上海交通大学 | 基于ARM TrustZone的容器隔离性增强系统 |
CN109446799A (zh) * | 2018-11-14 | 2019-03-08 | 深圳市腾讯网络信息技术有限公司 | 内存数据保护方法、安全组件和计算机设备及存储介质 |
CN110825492A (zh) * | 2019-10-31 | 2020-02-21 | 海光信息技术有限公司 | 安全数据内存隔离方法、装置、设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
吴宇明等: "基于AMD硬件内存加密机制的关键数据保护方案", 信息安全学报 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022077388A1 (zh) * | 2020-10-15 | 2022-04-21 | 华为技术有限公司 | 一种处理器的安全度量装置及方法 |
CN112256396A (zh) * | 2020-10-23 | 2021-01-22 | 海光信息技术股份有限公司 | 内存管理方法、系统及安全处理装置、数据处理装置 |
CN112256396B (zh) * | 2020-10-23 | 2022-10-21 | 海光信息技术股份有限公司 | 内存管理方法、系统及安全处理装置、数据处理装置 |
CN112817780A (zh) * | 2021-02-01 | 2021-05-18 | 上海交通大学 | 一种实现安全与高性能进程间通信的方法和系统 |
CN112817780B (zh) * | 2021-02-01 | 2022-03-11 | 上海交通大学 | 一种实现安全与高性能进程间通信的方法和系统 |
CN112988508A (zh) * | 2021-03-04 | 2021-06-18 | 浙江中控研究院有限公司 | 一种基于内存隔离的可信plc嵌入式系统 |
CN113220225A (zh) * | 2021-04-06 | 2021-08-06 | 浙江大学 | Risc-v处理器的内存数据读写方法及装置、处理器、存储介质 |
CN113220225B (zh) * | 2021-04-06 | 2022-04-12 | 浙江大学 | Risc-v处理器的内存数据读写方法及装置、处理器、存储介质 |
CN113486360A (zh) * | 2021-07-14 | 2021-10-08 | 上海瓶钵信息科技有限公司 | 基于risc-v的安全启动方法及系统 |
CN113486360B (zh) * | 2021-07-14 | 2022-11-11 | 上海瓶钵信息科技有限公司 | 基于risc-v的安全启动方法及系统 |
CN113609494A (zh) * | 2021-08-10 | 2021-11-05 | 上海交通大学 | 适用于高性能场景下可信计算的软硬件系统及架构方法 |
CN113722246A (zh) * | 2021-11-02 | 2021-11-30 | 超验信息科技(长沙)有限公司 | 处理器中物理内存保护机制的实现方法及装置 |
CN114329479A (zh) * | 2021-12-08 | 2022-04-12 | 浙江大学 | 一种面向risc-v架构的启动验证方法 |
CN114329479B (zh) * | 2021-12-08 | 2024-05-28 | 浙江大学 | 一种面向risc-v架构的启动验证方法 |
CN114416031A (zh) * | 2021-12-27 | 2022-04-29 | 中国科学院软件研究所 | 面向AIoT场景支持RISC-V处理器的操作系统 |
CN114691552A (zh) * | 2022-04-13 | 2022-07-01 | 山东浪潮科学研究院有限公司 | 一种应用于risc_v架构的低资源内存保护装置 |
CN114722404A (zh) * | 2022-06-09 | 2022-07-08 | 睿思芯科(深圳)技术有限公司 | 基于risc-v实现任意数量eapp的方法、系统 |
CN114741740A (zh) * | 2022-06-09 | 2022-07-12 | 睿思芯科(深圳)技术有限公司 | 基于risc-v的物理内存保护方法、系统和相关设备 |
CN114741740B (zh) * | 2022-06-09 | 2022-09-02 | 睿思芯科(深圳)技术有限公司 | 基于risc-v的物理内存保护方法、系统和相关设备 |
CN114722404B (zh) * | 2022-06-09 | 2022-10-14 | 睿思芯科(深圳)技术有限公司 | 基于risc-v实现任意数量eapp的方法、系统 |
CN117171764A (zh) * | 2023-11-01 | 2023-12-05 | 睿思芯科(深圳)技术有限公司 | Risc-v的可信执行环境实现方法、系统及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111651778B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651778B (zh) | 基于risc-v指令架构的物理内存隔离方法 | |
US12052368B2 (en) | System and method for high performance secure access to a trusted platform module on a hardware virtualization platform | |
US20230128711A1 (en) | Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine | |
US7865683B2 (en) | Identifier associated with memory locations for managing memory accesses | |
US8839239B2 (en) | Protection of virtual machines executing on a host device | |
US20210124824A1 (en) | Securing secret data embedded in code against compromised interrupt and exception handlers | |
US7380049B2 (en) | Memory protection within a virtual partition | |
US8909898B2 (en) | Copy equivalent protection using secure page flipping for software components within an execution environment | |
CN113094700A (zh) | 执行安全操作的系统以及系统执行安全操作的方法 | |
US20210397700A1 (en) | Method and apparatus for isolating sensitive untrusted program code on mobile device | |
JP2009514104A (ja) | セキュアな仮想マシンモニタ | |
AU2020287873B2 (en) | Systems and methods for processor virtualization | |
EP3178032B1 (en) | Embedding secret data in code | |
EP3308274B1 (en) | Executing services in containers | |
US9398019B2 (en) | Verifying caller authorization using secret data embedded in code | |
Sahita et al. | Security analysis of confidential-compute instruction set architecture for virtualized workloads | |
US20230098991A1 (en) | Systems, methods, and media for protecting applications from untrusted operating systems | |
US11741021B2 (en) | Trust domains for peripheral devices | |
WO2019148447A1 (zh) | 数据保护方法和数据保护装置 | |
WO2022128142A1 (en) | Apparatus and method for managing access to data memory by executable codes based on execution context |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |