ARM CCA机密计算架构软件栈(下)

三、Realm管理

本节描述软件组件中引入的软件组件如何在Realm的创建和执行期间进行交互。

3.1 资源管理

领域资源管理的基本原则是主机保持控制。这意味着主机决定使用哪个物理内存来支持给定的领域中间物理地址(IPA),或者存储RMM使用的Realm元数据的给定片段。

主机始终可以重新获取此物理内存,而无需得到领域的同意。同样,主机仍然控制CPU资源:它决定何时运行领域VCPU,并且可以导致该VCPU停止运行。

物理内存以Granule的单位进行管理,这是最小实现的翻译Granule的大小。在CCA系统中,Granule大小必须为4KB。将内存分配给领域分为两个步骤。首先,主机执行RMI命令以执行称为委派的操作,这导致主机选择的Granule从非安全PAS过渡到领域PAS。然后,主机执行另一个RMI命令以请求RMM将该Granule用作“RMM对象”,其中每个对象都具有特定的关联目的:

  • 领域数据 - 映射到领域地址空间的内存。
  • 领域翻译表(RTT) - 描述领域IPA空间的属性。
  • 领域描述符(RD) - 存储领域的属性。
  • 领域执行上下文(REC) - 存储领域VCPU状态。

为了收回Granule,主机执行相反的步骤。首先,主机请求RMM释放当前使用的Granule。然后,主机请求RMM取消委派Granule,导致其内容被擦除并且Granule过渡回非安全PAS。

在每种情况下,RMM都会检查请求是否有效,并且仅在满足一组指定的前提条件时修改系统状态。例如,对非安全PAS中不存在的Granule进行委派的请求,或对RMM正在使用的Gra

你可能感兴趣的:(ARM安全,ARM安全架构,CCA,机密计算,软件栈,Realm管理)