ARM-V9 RME(Realm Management Extension)系统架构

发布于:2024-05-17 ⋅ 阅读:(166) ⋅ 点赞:(0)

安全之安全(security²)博客目录导读

目录

一、系统架构概览

二、标识符

1、物理地址空间标签

2、内存加密上下文标识符


一、系统架构概览

本博客介绍了领域管理扩展(RME)系统架构。用于A-profile架构的Arm架构参考手册包含了处理单元(PE)RME架构的规范,该规范定义了PE符合Arm机密计算架构(CCA)所需的一系列硬件功能和属性。

Arm CCA使得构建称为“领域”的受保护执行环境成为可能。领域允许低权限的软件(如应用程序或虚拟机)保护其内容和执行不受高权限软件(如操作系统或虚拟机监控程序)的攻击。

高权限软件仍然负责分配和管理领域所使用的资源,但无法访问其内容或影响其执行流程。

本文档描述了实现RME功能所需的系统属性。这包括对以下内容的定义:

  • RME系统架构的概念和术语。
  • 该架构所需的系统资源、能力和组件。
  • 系统流程和标识符。
  • RME系统的安全属性。

支持RME的IP符合本规范定义的系统架构。

RME系统架构适用于多种拓扑结构和平台使用场景,例如云计算、移动设备和物联网。

下图提供了一个示例,说明了RME对具有代表性single-socket拓扑的影响。

09c2ec4aa349493ca05c7078d96fba5e.png

二、标识符

本章指定在跨系统结构的事务中发送的特定于RME的标识符。

1、物理地址空间标签

RME内存系统支持多个物理地址空间。 系统中任何内存映射资源的物理地址(Hardware Physical Address)与架构物理地址空间(architectural Physical Address Space)相关联。 RME定义了以下架构物理地址空间:

  • 非安全PAS。
  • 安全PAS。
  • Realm PAS。
  • Root PAS。

下图说明了架构物理地址空间的概念。

8e72486a9080404f84d8df61ed2734fd.png

将内存映射资源与架构物理地址空间关联的方法有多种:

  • 一个物理地址空间内的资源与PA(物理地址)的关联会使其在其他物理地址空间中无法访问。
    • 例如,在启用RME的系统中,主内存就是通过粒度保护表(Granule Protection Table)以这种方式关联的。
  • 两个不同的资源可以分别分配到不同的PAS(物理地址空间),但每个资源在其所属的PAS中通过相同的PA进行访问。
    • 这种分配方法可能用于外设寄存器。
  • 在特定情况下,单个资源可以通过相同的PA同时在多个物理地址空间中访问。
    • 例如,安全PAS中的外设寄存器也可以在根PAS中访问。
    • Arm强烈建议这种方法仅用于外设,而且仅用于支持PAS标签感知的外设。

物理地址空间标签(PAS标签)是一个地址空间标识符,允许在系统中形成多个物理地址空间。通过给物理地址(PA)添加PAS标签,可以将其与一个物理地址空间关联。

所有访问都与PAS相关联,并由分配给保护内存资源的PAS过滤器检查。根据系统实现、请求者类型和内存类型,这可能是实现于处理单元(PEs)和系统MMU(内存管理单元)中的请求者侧PAS过滤器(称为粒度保护检查),或者是响应者侧PAS过滤器,或者两者的结合。

对可以标记为可缓存的内存区域的访问,在到达物理别名点(PoPA)之前,会保留其关联的PAS。 对不能标记为可缓存的内存区域(例如内存映射的外设寄存器)的访问,至少在到达分配给保护该区域的PAS过滤器之前,会保留其关联的PAS。

如果一个组件(例如外设或互连)能够观察完整的PAS标签,并能够区分由RME定义的所有物理地址空间,则称该组件为PAS标签感知组件。

2、内存加密上下文标识符

内存加密上下文 (Memory Encryption Contexts, MEC) 是 RME 系统的一项可选功能,用于使用特定于该领域的加密上下文来加密某一领域(Realm)的所有内存位置。在带有 MEC 的 RME 系统中,每次访问物理地址时都会分配一个内存加密上下文标识符 (MECID),该标识符将访问与内存加密上下文相关联。

常见 MECID 宽度是一个参数,表示 RME 系统支持的 MECID 位数。它被解析为系统中所有支持 MEC 功能的组件能够支持的最小 MECID 宽度。

每个物理地址空间都有一个独立的 MECID namespace。在领域物理地址空间中,可用的 MECID namespace从零到 2^MECID 宽度-1。根、安全和非安全物理地址空间各有一个 MECID,即默认的 MECID 为零。

对于具有大量并发执行领域的系统,例如在云和数据中心部署中,Arm 建议常用 MECID 宽度至少为 12 位。

 


网站公告

今日签到

点亮在社区的每一天
去签到