RISC-V处理器安全技术研究

(整期优先)网络出版时间:2021-08-03
/ 3

RISC-V 处理器安全技术 研究

李沐 李宗辉 刘晓菲 郭雅宁 张晓鹏

航天恒星科技有限公司,北京市海淀区, 10 0 086

摘要:RISC-V(第五代精简指令集)安全处理器在现有的指令集架构的基础上增加了一个基于核心RISC-V技术构建的安全附加组,安全技术同架构一起开始设计,相比ARMIntel等主流处理器架构有着得天独厚的技术优势,本文将从指令扩展、安全域、权限层级等多个方面研究RISC-V处理器安全技术。

关键词-RISC-V、安全技术

1.引言

国产处理器虽能够做到自主可控,但同Intel和ARM一样,其指令代码都是不公开的,其安全性、可靠性存在未知风险。本文基于新一代开源RISC-V指令集架构,研究安全处理器内核、片上安全总线架构、TEE(Trusted execution environment)可信执行环境等内容。虽然使用RISC-V指令集并不能保证没有任何安全漏洞和风险,但工程师可以通过深入探究分析内部细节,主动快速防御风险,而不是盲目被动升级。

在硅以外的任何层次建立现代计算的信任基础都极具挑战性,如果基本信任构建模块没有集成到处理器核心内,则无法建立可信计算,这导致了处理器架构的能力发生重大且必然的转变。RISC-V在核心指令集架构(Instruction Set Architecture,ISA)和特权模型的定义中引入了信任的基本构建块,通过将设计中的安全性集成到核心规范中,RISC-V能够构建符合经济高效、实用且具有时间弹性的可信计算技术。如图 1所示为RISC-V安全处理器基本架构。

610905c3e4598_html_95217a823aa0d37e.gif

1 RISC-V安全处理器基本架构


2 RISC-V的安全技术

为了构建安全技术,底层芯片的处理器内核需做到三个核心安全设计理念:

  1. 安全存储重要信息;

  2. 保证可执行代码的真实性;

  3. 为可信应用程序的执行提供安全的环境。

存储重要信息不仅是防篡改芯片的基本功能,也是现代处理器设计的要求。虽然物理安全对于可信计算的目标必不可少,但是防篡改芯片中模块的逻辑设计也是至关重要,它要求必须安全地处理重要信息,并防止计算机设备上可变或不可靠的攻击来访问或篡改重要信息。

如果重要信息的可靠性能够保证,那么这些重要信息可以用于建立可信赖的操作环境,可以通过将处理器启动到特权执行状态来实现,该特权执行状态可以使用系统重要信息来保证下一执行阶段的完整性和真实性,同时使用关键信息来验证下一阶段。

虽然可信应用程序的执行很重要,但是执行环境对于功能强大的安全生态系统必不可少,一个完全安全的生态系统,在物理和逻辑上必须与非安全生态系统隔离,且要求必须构建和部署各种能够正确利用处理器底层核心功能的关键应用程序。以先前的核心安全功能为基础,该生态系统能够提供功能齐全的操作系统环境,而不是简单的嵌入式应用程序。

2.1 RISC-V的安全区域构建

TrustZone提供非安全和安全两个区域,而RISC-V处理器用户可以拥有尽可能多的安全区域,以适应端点的可用内存,允许定制安全生态系统,其中每个关键应用程序都包含在自己的安全区域中,我们可以利用此体系结构的功能,将特定的安全性令牌和应用程序功能绑定到特定的安全区域。如果任何一个区域受到损害,另一个区域以及他们的应用程序将不会受到影响。这是对任何现有安全产品的巨大技术改进。

RISC-V的内存保护功能广泛且易于使用,除了RISC-V之外,目前没有任何架构可以保护内存区域。RISC-V处理器允许以某种方式配置物理内存,即使执行最高权限也无法访问受限制的内存区域,可以使用关键安全令牌来引导系统,这些令牌只能由核心中最可信的执行者来访问。因此,即使攻击者找到了利用核心中最高权限层的方法,他们也无法从受保护的内存中提取安全密钥。

此外,RISC-V允许保护任意大小的内存区域。使用此功能,工程师可以更充分地保护所有物理内存。在诸如ARM之类的其他架构,存储器保护子系统可能存在被黑客突破的空隙,这一功能最近被引入ARM的ARMv8-M规范,但在实现中并未广泛使用。更重要的是,这种功能在任何ARMv8-A核心中都不存在,使得传统终端上的物理内存得不到充分保护。由RISC-V实现的所有种类的RISC-V处理器都具有这种级别的物理内存保护。

RISC-V处理器可以混合和匹配功能,允许任何种类的处理器内核集成与安全相关的功能集,而嵌入式环境的传统处理器内核仅可以集成通常限于传统计算环境的安全相关功能。

2.2 三个权限层级

RISC-V的一个关键特性是它能够提供三个不同的特权层[1]。这一功能近期被引入到ARMv8标准中,使用四层权限来保护内核和用户域免受全知监控模式的影响。在RISC-V中,通过利用机器,管理员和用户等模式实现这一点。

ARM实现中的一个缺陷是监视模式环境可以访问系统中的任何资源,因为它具有高权限层。RISC-V不是这种做法,RISC-V架构允许工程师配置机器模式以拒绝访问自己的资源,增加对关键系统安全保护,并减少受到对监视模式攻击的影响。

RISC-V还通过降低S-Mode模式的特权来防范操作系统内核。与ARM处理器内核不同,ARM内核允许安全内核访问不受监视模式权限级别管理的所有系统资源,RISC-V内核可以减少S-Mode模式权限,拒绝关键资源和一些用户空间资源两者对S-Mode模式的访问。

RISC-V是安全技术开发的关键资源,为开发自定义安全元件环境提供了基础架构工具,而且还通过设计实现了这一点。在RISC-V中设计安全体系结构的逻辑属性不需要额外的技术。

2.3 RISC-V安全技术的实现

TrustZone和类似的技术通过引入虚拟化和内存保护机制在现有处理器体系结构上创建了抽象层。但是,在RISC-V内核中,这些增强功能是不必要的。

RISC-V架构内置了如下三个功能:

  1. 物理内存保护。

  2. 紧密集成的内存。

  3. 多层权限。

保护内存。为了确保操作系统内核和用户空间应用程序无法访问重要信息所在的内存区域,RISC-V的处理器内核包括RISC-V的物理内存保护(Physical Memory Protection,PMP)技术,物理内存保护模块在片上系统(SoC)框图里面的位置在CPU内核与SoC总线矩阵(Bus matrix)中间。这一技术适用于所有种类的处理器内核,能够确保只有处理器的最高权限层才能访问关键安全令牌。启用后,即使具有使用MMU管理内存的操作系统内核,也无法访问受保护的物理内存区域。

RISC-V的技术更进一步引入锁定内存区域的能力。PMP锁定允许最有特权的处理器层从自身限制内存区域。当通过配置PMP锁定存储器区域时,该存储区域在重置之前变为不可访问。这允许在最高特权层运行的执行程序甚至可以保护自己的密钥,从而禁止攻击者滥用任何权限层的漏洞。

由于RISC-V体系结构具有三个独立的权限层,因此即使是正在运行的处理器内核,也可以使用最高权限层的机器模式(M-Mode模式)来保护重要信息。S-Mode模式内核无法访问受M-Mode模式保护的内存,允许在M-Mode模式下运行的高度信任执行程序管理关键安全资源并将操作应用于这些资源,而无需担心其他权限级别的对抗行为。与ARM TrustZone架构不同,安全区域可以访问系统中的所有关键资源,M-Mode特权在安全或非安全内核与用户域之间创建了另一层分离。S-Mode模式(安全内核所在的位置)的处理并不等同于对存储在M-Mode模式中关键令牌的处理[2]。这三种技术一起使用,可以通过几个简单的步骤成功构建安全元件,硬件平台采用芯来科技推出的RV-STAR开发板,GD32VF103VBT6,如图 2所示:

  1. 默认在机器模式下启动RISC-V处理器;

  2. 在没有缓存支持的情况下将关键安全性令牌存储在数据紧密集成存储子系统中;

  3. 将操作系统加载到S-Mode模式;

  4. 开始对关键安全令牌进行操作的请求。

610905c3e4598_html_3d11b68085a4927a.png

图 2 RISC-V安全处理器开发

2.4 安全的应用环境

某些用户需要的不仅仅是存储加密令牌,还要保证任何给定端点上可执行代码的沿袭。这些用户需要一个完全成熟的应用程序环境,称为安全应用程序环境(Secure Application Environment,SAE),也称为可信执行环境(Trusted Execution Environment,TEE)网。该生态系统包含操作系统和应用程序环境的完整功能集,也包括安全元件的信任,其根植于可信引导加载程序的保证。在安全区域的用户空间权限级别内运行的所有应用程序都被视为可信任,并且应由安全区域的操作系统内核进行加密签名和验证[3]。

由于安全应用程序环境显著降低了威胁面,并且增加了保护关键对象安全的可能性,因此它是许多应用程序的理想环境。其中包括部分如下应用:

  1. 使用自定义或不断发展的算法处理安全令牌。

  2. 为专有的闭源应用程序提供安全容器。

  3. 消费者数据处理应用程序,其中自定义应用程序可以在不离开端点的情况下对消费者数据起作用。

2.5 RISC-V的安全技术优势

RISC-V不需要虚拟化技术来支持安全应用程序环境。本文中已经描述如物理内存保护、多层权限模型、内存管理单元等技术都支持安全应用程序环境功能,而无需改变现有的指令集架构。这意味着RISC-V的可信方案可以开箱即用地支持安全应用程序环境技术。RISC-V的处理器核内必须支持其他安全规范才能创建完全可用的安全应用程序环境。

实际上,RISC-V安全技术有两种超出TrustZone功能的属性:PMP和M-Mode模式。PMP技术可以在任何RISC-V处理器内核中保护任意大小的物理内存区域。由于PMP功能适用于RISC-V所有的RISC-V内核,因此可用于将多个S-Mode模式环境相互分离。第二种功能是M-Mode模式作为特权的安全监视层。M-Mode模式可用于管理多个S-Mode模式环境的执行,并促使来自任何S-Mode模式环境的安全请求。可见S-Mode模式环境可以相互封锁,以及S-Mode模式环境可以通过更高层的特权来管理。

TrustZone仅支持两个“区域”,RISC-V内核可以支持许多区域,使用PMP和M-Mode模式作为管理接口,用于在每个S-Mode模式执行程序之间切换,这提供了目前最高的能力水平,价格却远比TrustZone或其他竞争对手更低廉。

3.结束语

RISC-V物理内存保护技术可确保只有处理器的最高权限层才能访问关键安全令牌。启用后即使具有使用MMU管理内存的操作系统内核,也无法访问受保护的物理内存区域。物理内存保护锁定允许最有特权的处理器层甚至从自身限制内存区域。当通过配置物理内存保护锁定存储器区域时,该存储区域在重置之前变为不可访问。这允许在最高特权层运行的执行程序甚至可以保护自己的密钥,从而禁止攻击者滥用任何权限层的漏洞。

4.参考文献

[1] RISC-V Foundation, Volume 1, Unprivileged Spec v.20191213

[2] RISC-V Foundation, Volume 2, Privileged Spec v.20190608

[3] 陈宏铭,胡进,徐滔,刚至坚,“利用RISC-V构建信任方案解决安全性落差”,中国集成电路,2019.11,总第246期