安全之安全(security²)博客目录导读
目录
一、安全分区管理器
1、术语
2、对旧平台的支持
二、示例参考软件栈
一、安全分区管理器
安全分区管理器的三种实现在TF-A代码库并存:
1.基于FF-A规范的S-EL2 SPMC(SPM Core),使能安全世界的虚拟化,管理多个S-EL1或S-EL0分区(partitions)。
2.基于FF-A规范的EL3 SPMC,在安全世界中管理单个S-EL1分区而不进行虚拟化。
3.基于MM规范的EL3 SPM,旧的实现管理单个S-EL0分区。
这些实现在各自的软件体系结构中是不同的,并且在构建时只能选择一个。这里重点描述1的实现,即当SPMC位于S-EL2时。这不是体系结构规范,它可能对规范中规定的实现定义的部分提供假设。这介绍TF-A作为引导加载程序bootloader的含义,以及在实现了FEAT_SEL2架构扩展的平台上作为S-EL2/SPMC安全固件参考代码库的Hafnium。
1、术语
Hypervisor这个术语通常指的是非安全世界的管理虚拟机(或分区)的NS-EL2组件。
SPMC指的是在实现了FEAT_SEL2体系结构扩展后,在安全世界中管理安全分区的S-EL2组件。
或者,SPMC可以引用S-EL1组件,它本身是一个安全分区,并在不实现FEAT_SEL2架构扩展的平台上实现FF-A ABI。
VM指的是由Hypervisor管理的非安全世界虚拟机。
SP指的是由SPMC管理的安全世界“虚拟机”。
2、对旧平台的支持
SPM被分为驻留在不同异常级别的调度程序(dispatcher)和核心组件(分别为SPMD和SPMC)。为了允许采用FF-A规范并顺利迁移,SPMD支持驻留在S-EL1或S-EL2的SPMC:
- SPMD位于EL3,主要将FF-A协议从NWd (Hypervisor或OS内核)中继到SPMC。
- S-EL1和S-EL2的SPMC配置使用相同的SPMD组件。
- SPMC异常级别在构建时选择。
TF-A支持这两种情况:
- S-EL1 SPMC用于不支持FEAT_SEL2架构扩展的平台。SPMD将FF-A协议从EL3中继到S-EL1。
- S-EL2 SPMC用于实现FEAT_SEL2架构扩展的平台。SPMD将FF-A协议从EL3中继到S-EL2。
二、示例参考软件栈
下图说明了实现FEAT_SEL2架构扩展的可能配置,显示了SPMD和SPMC,一个或多个安全分区,以及一个可选的Hypervisor: