安全之安全(security²)博客目录导读
目录
一、执行隔离
1、安全状态
2、安全模型
本博客探讨 RME 所需的系统能力,以保证 Arm CCA 对于 Realms 的安全性和隔离特性。
一、执行隔离
1、安全状态
RME 系统支持以下安全状态:
- 非安全 (Non-secure)
- 安全 (Secure)
- Realm
- Root
术语“requester 请求者”指能够发起访问的硬件代理。请求者可以是处理单元(PE)或非处理单元(非 PE)代理。
在 RME 系统中,任何请求者的访问和任何 PE 执行的指令都与单一的安全状态相关联。
ARM架构参考手册中定义的 Realm 管理扩展功能指定了 PE 执行上下文如何映射到安全状态。
RME 提供基于硬件的隔离,允许执行上下文在不同的安全状态下运行并共享系统资源,同时确保:
- 在以下安全状态下的执行:
- Realm 安全状态下的执行无法被与非安全安全状态或安全安全状态相关联的代理观察或修改。
- 安全安全状态下的执行无法被与非安全安全状态或 Realm 安全状态相关联的代理观察或修改。
- Root 安全状态下的执行无法被与任何其他安全状态相关联的代理观察或修改。
- 分配给以下安全状态的内存:
- Realm 安全状态下的内存无法被与非安全安全状态或安全安全状态相关联的代理读取或修改。
- 安全安全状态下的内存无法被与非安全安全状态或 Realm 安全状态相关联的代理读取或修改。
- Root 安全状态下的内存无法被与任何其他安全状态相关联的代理读取或修改。
- 分配给 Realm 安全状态的可分配设备接口无法被与非安全安全状态或安全安全状态相关联的代理读取或修改。
- 与 Realm 安全状态中的 VMID 相关联的可分配设备接口只能访问与该 VMID 相关联的内存,或与非安全安全状态相关联的内存。
本规范使用术语 RME 安全保证来描述上述属性。
RME 安全保证适用于安全生命周期状态的系统。
2、安全模型
Arm CCA 系统安全域 (System Security Domain,SSD) 包括所有能够影响 Arm CCA 和 RME 安全保证的硬件代理。例如,隔离硬件和受信任的子系统。
受信任子系统是具有私有资源、配置和可验证固件的系统功能,例如受信任的系统控制处理器 (SCP)。
监控安全域 (Monitor Security Domain,MSD) 是在根安全状态 (EL3) 下执行的可更新 PE 固件,负责强制执行 Arm CCA 和 RME 安全保证。
领域管理安全域 (Realm Management Security Domain,RMSD) 是在领域安全状态 (EL2) 下执行的可更新 PE 固件,负责强制执行领域的 Arm CCA 安全保证。
下图提供了安全模型的示意图。