TrustZone之安全虚拟化

        在Armv7-A首次引入虚拟化时,它仅在非安全状态中添加。在Armv8.3之前,Armv8也是如此,如下图所示:

TrustZone之安全虚拟化_第1张图片

        如前所述在切换安全状态时,EL3用于托管固件和安全监视器。安全EL0/1托管受信任的执行环境(TEE),由受信任的服务和内核组成。

        在安全状态下,没有对多个虚拟机的需求。这意味着不需要支持虚拟化。随着TrustZone应用的增加,出现了一些要求:

  • 一些受信任的服务与特定的受信任内核绑定。为了设备支持多个服务,可能需要运行多个受信任内核。
  • 遵循以最小权限运行的原则,需要将一些固件功能移出EL3。

        解决方案是在安全状态引入对EL2的支持,这是在Armv8.4-A中引入的,如下图所示:

TrustZone之安全虚拟化_第2张图片

        与完整的Hypervisor不同,S.EL2通常托管一个安全分区管理器(SPM)。SPM允许创建与其他分区的资源无法看到的隔离分区。系统可以包含多个包含受信任内核及其受信任服务的分区。

        还可以创建一个分区来存储平台固件,从而无需在EL3运行该代码。

  • 启用Secure EL2

        当支持S.EL2时,可以启用或禁用它。是否启用S.EL2由SCR_EL3.EEL2位控制:

你可能感兴趣的:(ARM安全架构,ARM,ARM架构,虚拟化,安全,S-EL2)