ARM-V9 RME(Realm Management Extension)系统架构之系统能力的设备隔离和保护

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

目录

三、设备隔离和保护

1、外设隔离

2、非pe请求者(设备)

[3、可编程完成端过滤器Programmable completer-side filters](#3、可编程完成端过滤器Programmable completer-side filters)

4、RME设备分配

[4.1 设备权限表](#4.1 设备权限表)


本博客探讨 RME 所需系统能力的设备隔离和保护,以保证 Arm CCA 对于 Realms 的安全性和隔离特性。

三、设备隔离和保护

MMU连接的颗粒保护检查适用于普通内存和设备内存。这个系统能力可以通过在completer side添加PAS过滤器来增强,以隔离特定资源。

例如,在需要在寄存器粒度上进行保护或者在需要在SSD资源重置后立即进行保护的情况下,completer side的PAS过滤器可能会有用。

对于未受completer side PAS过滤器保护的内存映射外设,PAS标记可以在一个实现定义的位置被剥离。例如,对于访问PCIe内存映射外设的访问,PAS标记可以在根端口处被剥离。

1、外设隔离

一个外设可以包括一个私有的completer-side PAS过滤器,用于自主控制对其内存映射寄存器的访问。

私有PAS过滤器只有在访问PAS与寄存器关联的资源PAS匹配时才允许对寄存器的访问。

一个外设可能会将内存映射寄存器与多个物理地址空间关联起来,例如,为了在不同的安全状态下向软件公开不同的值。在这种情况下,PAS过滤器允许从多个物理地址空间访问寄存器。

一个互连可以包括一个PAS过滤器,用于控制对不支持PAS的completer nodes的访问。

例如,可以将互连配置为将附加的设备分配给特定的PAS,并阻止对该设备的任何访问,除非他们使用正确的PAS。

2、非pe请求者(设备)

非PE请求者是一个泛指,用于描述具有DMA功能的系统组件,例如PCIe设备、中断控制器和控制处理器。

在RME系统中,非PE请求者的安全状态可以是以下之一:

  • 非安全状态。
  • 安全状态。
  • 领域状态,如果系统支持RME设备分配(RME-DA)并且请求者是运行TDI设备接口(TDI)处于RUN TDISP [4]状态。
  • 根状态,如果请求者是受信任的子系统。

非PE请求者的安全状态定义了它被允许访问的PA空间,符合PAS访问表的规定。

RME系统可以包括完全一致的非PE请求者,因此能够发出Snoop响应。

一个完全一致的非PE请求者,如果不属于系统安全域(SSD),将不会观察到Secure、Realm或Root PAS中地址的一致性流量。

例如,连接到RME系统上的一个具有完全一致性的外部设备,通过一条一致性链路连接,不能通过观察Secure、Realm或Root PAS中的Snoop请求来跟踪访问模式。作为系统安全域的一部分的具有一致性的非PE请求者的缓存可以观察到任何PAS中的Snoop请求,但不会将这些请求可见于所托管的上下文。

3、可编程完成端过滤器Programmable completer-side filters

一个完成器端的PAS过滤器可以由软件编程。示例如下:

  • 一个完成器端的PAS过滤器可以被编程为将资源的内存映射部分或资源的粒度分配给特定的PAS。
  • 一个用于SMEM的完成器端PAS过滤器可以被编程为将一个SMEM地址范围分配给特定的PAS。
  • 一个在互连端口上的完成器端PAS过滤器可以被编程为将连接到该端口的完成器分配给特定的PAS。

如果一个可编程的完成器端PAS过滤器可以将资源分配给所有物理地址空间,则:

  • 控制该过滤器的寄存器在Root PAS中。
  • 在RME系统复位时,由该过滤器控制的资源要么分配给Root PAS,要么复位为已知值。

如果一个可编程的完成器端PAS过滤器只将资源分配给Secure PAS和Non-secure PAS,则:

  • 控制该过滤器的寄存器在Secure PAS或Root PAS中。
  • 在RME系统复位时,由该过滤器控制的资源要么分配给Secure PAS或Root PAS,要么复位为已知值。

适合通过完成器端PAS过滤器保护的资源包括memory-mapped外设和片上SRAM(SMEM)。

4、RME设备分配

可分配设备接口(Assignable Device Interface)指的是设备中可以独立分配给在某一安全状态下执行的软件的一部分。可分配设备接口可以作为一个独立的请求者,并拥有自己的私有内存映射资源。

RME设备分配(RME-DA)是RME系统的一项功能,能够将可分配设备接口安全地分配给领域安全状态(Realm Security state)。

相关术语如下:

  • PCIe指的是符合TEE设备接口安全协议(TDISP [4])作为TEE-I/O设备的设备。该规范将它们称为TDISP合规设备。
  • PCIe使用TEE设备接口(TDI)来指代TDISP合规设备的可分配设备接口。
  • TDISP定义了两个实体:
    • TEE安全管理器(TSM),这是一个在主机上执行安全策略的逻辑实体。
    • 设备安全管理器(DSM),这是设备中执行安全策略的逻辑实体。

在RME-DA中,TSM功能在RMSD中实现。

RME-DA的SMMU定义了支持将TDIs分配给在领域安全状态下执行的软件的SMMU要求。

RME系统架构定义了支持将PCIe TDIs分配给领域安全状态的内存系统和PCIe根端口的要求。

4.1 设备权限表

RME-DA的SMMU引入了设备权限表(Device Permission Table, DPT),其中包含与物理地址相关的权限属性,并指定了一组适用于来自设备的翻译访问的DPT检查。

来自被分配到Realm状态的TDI的翻译访问受DPT检查的约束,除非另有规定。

RME系统可以包含由HES或MSD测量和证明的片上TDISP兼容设备。对于这样的设备:

  • 可以跳过DPT检查。
  • 不可以跳过GPC检查。
相关推荐
安全二次方security²10 小时前
SMMU软件指南SMMU编程之事件队列
smmu·arm安全架构·事件队列·系统mmu·event queue·smmu编程·smmu软件指南
七灵微1 天前
进程与线程以及如何查看
linux·系统架构
oioihoii1 天前
桌面图形界面生成原理:从流水灯到电脑屏幕
系统架构
颯沓如流星2 天前
软件架构设计方法之The Clean Architecture 整洁架构
架构·系统架构
柔弱女子爱java2 天前
spring专题笔记(五):依赖注入--p命名空间注入、c命名空间注入、util命名空间
java·笔记·后端·spring·架构·系统架构
云空2 天前
《 QT 5.14.1 类库模块列表详述》
开发语言·qt·系统架构
星原飞火3 天前
2-2-18-16 QNX系统架构之自适应分区
车载系统·系统架构·qnx·blackberry
重生之我是数学王子4 天前
ARM原理
arm开发·系统架构
silver6874 天前
中间件介绍
系统架构
亭墨4 天前
linux0.11源码分析第二弹——setup.s内容
linux·驱动开发·学习·系统架构