修志龙_ZenonXiu · 2023年09月01日 · 上海市浦东新区

Confidential Compute Architecture - Arm构架的TEE新模式

本文翻译自:ARM Confidential Compute Architecture
A New Model of Trusted Execution Environment On The ARM Architecture https://sys.cs.fau.de/extern/..., 并稍作扩展

摘要

ARM机密计算架构通过一个新引入的“Realm”(领域)的受信任执行环境来扩展Arm架构。这个Realm由不受信任的软件动态管理,但通过硬件和软件机制组合来保护其内容的机密性和完整性。本文将概述这一新架构及其功能。

关键词

ARM CCA,可信执行,Realm

1 简介

如今,云计算在分布式计算资源按需使用方面起着重要的作用。许多公司,如亚马逊、谷歌或微软都提供云服务,但使用这些服务需要信任服务提供商。这意味着一方面依赖提供商对抗攻击者,但另一方面也要信任提供商本身。恶意的提供商可能最终滥用其客户的敏感数据。使用可信执行环境(TEE)可以帮助增加对提供商的信任。

在传输过程中,通常通过数据加密来进行保护,但在目标设备上,数据会被解密,因此暴露于通常被称为Rich执行环境(REE)的不可信环境中。在REE里运行的是设备的操作系统(OS)和应用程序。TEE允许在与不可信系统部分隔离的情况下执行代码,处理敏感数据。因此,保证敏感数据的完整性和机密性,这通常是通过硬件支持来实现的。通过使用TEE,可以确保数字版权管理(DRM)。例如,版权持有人有能力限制在不受信任的用户设备上使用其内容,防止未经授权的分发。只有TEE可以处理数据,并且不会暴露给周边系统。这些是TEE在像智能手机和平板电脑这样的移动设备上的常见使用案例。除此之外,可信执行用来将特别安全关键的任务如认证(包括指纹或面部ID认证、移动支付,但也包括像Android Keystore[2]这样的更通用的加密操作)与系统的其余部分隔离开来。这样,这些任务就免受可能被破坏,不会泄露他们的敏感数据,如密钥。

现今大多数智能手机都由ARM处理器驱动,而TEE通常利用ARM的TrustZone技术。TrustZone首次在2005年的ARMv6K架构[9]中引入,并从那时起被广泛使用。然而TrustZone应用相对固定(静态),ARM在2021年引入了一种更动态、灵活的创建TEE的方式,称为Realm(Realms),它是ARMv9-A中机密计算架构(CCA)的一部分。Realm可以在运行时从一个不安全的环境创建和管理,同时提供保持机密性和完整性的TEE。Realm技术的目标是绕过TrustZone TEE的静态行为,并使更多的应用程序开发者能够使用TEE。本文提供有关新的CCA技术的概述。

首先,第2部分总结了ARM的架构背景,还重述了现有的TrustZone技术。第3部分涵盖了架构和功能,以及各个软件和硬件组件。第4部分是关于CCA的新颖性和与TrustZone的区别。第5部分介绍了Realm的认证。

2 背景

2.1 异常级别(Exception Levels, EL)

ARM架构中提供了不同的权限级别,这些被称为异常级别(EL),只有产生异常或从异常返回可以改变当前的异常级别。这些异常级别控制对系统资源和内存的访问。ARM架构有四种不同的异常级别,它们按从0到3递增的权限级别。更高的权限级别可以访问较低权限级别的资源。在权限最低的EL0上运行用户级应用,而操作系统内核通常在EL1上运行。Hypervisors在EL2上执行,而最高的权限级别EL3运行最安全的系统功能和固件。

2.2 虚拟化

ARM的另一个安全机制是使用hypervisor和虚拟机的能力。hypervisor运行在异常级别EL2上并控制在EL1上的虚拟机。它负责将异常作为虚拟异常转发给相应的虚拟机或为虚拟机(VM)提供内存。ARM使用虚拟地址空间,EL0和EL1使用相同的地址转换结构。地址转换结构也被称为translation regimes。通过地址的第二级转换(stage 2)隔离VM的内存。这确保了一个VM的内存不被其他VM访问,反之亦然。
image.png
stage 2 转换意味着虚拟地址空间由OS转换为所谓的中间物理地址空间(IPAS)。对于操作系统,这个IPAS似乎是一个物理地址空间(PAS),但通过stage 2 转换,IPAS被转换为真正的PAS。操作系统只控制第一阶段的转换,而stage 2 转换只能由hypervisor控制。hypervisor使用了自己的虚拟地址空间。这种隔离需要信任hypervisor,而不需要TrustZone。

2.3 TrustZone

ARM TrustZone首次在ARMv6K中引入,它提供了两个执行环境的硬件级隔离。之前的不受信任的环境现在被称为Normal world,并由一个受信任的环境扩展成Trusted world。Trusted world应该只运行安全关键的应用程序,以减少代码并因此减少复杂性,从而达到最小的攻击面,实现一个最小的受信任计算基础(TCB)。由于更大的代码量的常规用户应用程序更容易受到攻击,不受信任的VM和hypervisor运行在Normal world中。除了提供权限级别垂直方向的异常级别外,现在在水平方向上形成了第二个安全机制。因此,处理器可以处于两个不同的安全状态,非安全状态指的是Normal world,安全状态指的是Trusted world。这些安全状态控制对物理地址空间的访问。World这个术语基本上描述了处理器的安全状态和一个PAS的组合。

当前的处理器状态只由SCR_EL3.NS控制,设置EL0、EL1或EL2运行时的安全状态。EL3一定是安全状态,不能为非安全状态执行。安全状态的切换必须始终经过EL3,在那里可信固件的安全监视器(secure monitor)完成切换。此外,该架构具有两个独立的PAS,一个安全的和一个非安全的。这些PAS是不交集的,它们之间的区别不仅仅是通过一个标签来进行的。此外,还使用自定义translation regimes 来进行虚拟地址转换,这里再次对安全和非安全之间进行划分。处于非安全状态的处理器永远只能访问非安全的PAS,因为地址转换始终将虚拟地址固定映射到非安全的PAS。处于安全状态的处理器可以访问安全的和非安全的PAS,地址空间的选择由页表中的NS位进行设置。NS位只在地址转换的stage 1被检查。如果设置了NS位,该地址属于非安全的PAS。
image.png

从ARMv8.4-A开始,TrustZone也支持虚拟化。hypervisor在安全状态的EL2上运行,它通常是一个安全分区管理器(SPM)。SPM就像一个轻量级的hypervisor,并可以创建隔离的分区。这些分区彼此隔离,不能看到彼此的资源。通常,一个在TrustZone中运行保护的服务应该被一个普通的非安全用户应用程序使用。用户应用程序不感知TrustZone,而是使用一个服务库,此库使用一个内核驱动程序来调用受信任的服务。服务库和受信任的服务使用位于不安全内存中的mailbox进行通信。这个内存也被称为World Shared Memory (WSM),因为安全和非安全的world都可以访问它.

驱动程序使用Secure Monitor Call(SMC)来进入EL3的Monitor,从而启动安全状态的切换。SCR_EL.NS位被切换并保护寄存器。只有很少的绝对必要的寄存器硬件上在安全和非安全状态有不同的copy,例如大多数寄存器,如通用寄存器是安全和非安全状态使用同一copy。随着从SMC的返回,程序控制流在相反的安全状态中运行。这里是到安全状态并执行受信任的服务并再次返回到用户应用程序。受信任的应用程序或服务的调度是由非安全状态的OS调度器完成的,这意味着TrustZone不保护TEE的可用性,而是它的机密性。此外,需要注意TrustZone的安全内存可以被加密,但默认情况下不是加密的。

3 ARM CCA架构

在2021年的ARMv9-A中引入的新CCA,ARM在其生态系统中引入了一种被称为Realm的新型TEE。一个Realm是一个动态的TEE,也提供了认证的可能性。一个Realm的内存可以按每页的粒度加密,以防止物理攻击。当然,支持Realm会导致架构上的变化。

image.png
(译者:原文中此图中的RMI标注有错误,RMI应为Non secure EL2 hypervisor 到EL3 secure mointor,参照文章后面的图片)

CCA扩展了现有的TrustZone Normal world和Trusted World,引入两个新的world,一个Realm world和一个Root world。在图1中提供了概况。新的world带入了新的关联PAS和安全状态。旧的Secure world实际上被分割成一个新的Secure world和Root world。在Root world中,运行的是在EL3的底层固件的Monitor。现在,Root world有与Secure world不同的密钥,以便包括启动代码的固件可以被完全加密,以防止冷启动攻击。这在之前的架构上是不可能的,因为Monitor是TrustZoneSecure world的一部分,这不适合防止冷启动攻击。Secure world基本上的行为与TrustZone的Secure world相同,以保持现有软件的向后兼容性。Realm world与Secure world非常相似,可以在EL0、EL1和EL2上操作。它可以被视为Normal world的一个TEE扩展,因为它是由一个Normal world主机控制的。

尽管对Realm的控制位于Normal world,但Realm不会向Normal world泄露任何关于它的信息。Realm的内容与除Root world之外的其他所有world以及任何其他Realm都是隔离的。Normal world的主机通常运行不受信任的hypervisor,但通常软件负责管理应用程序或VM。

对隔离的PAS的访问还是取决于安全状态,如表1所示。非安全状态具有最有限的访问,因为它只能访问非安全的地址空间。Realm状态和Secure状态都可以访问它们关联的地址空间,另外它们还可以访问非安全的地址空间。Root状态可以访问所有的物理地址空间。
image.png

image.png
为了控制当前的安全状态,现在需要2-bit来支持新引入的状态。因此,状态控制取决于从TrustZone已用的SCR_EL3.NS位和一个新的SCR_EL3.NSE位。Root状态不依赖于这些安全状态位,因为EL3的安全状态始终是Root状态。通过称为Realm管理扩展(Realm Management Extension-RME)的硬件扩展和固件,特别是Realm管理监视器(Realm Management Monitor-RMM)和Root Monitor的组合来实现隔离。
image.png

3.1 硬件:Realm管理扩展

ARM CCA的硬件部分指的是内存管理和保护。因此,硬件中有几种不同的translation regime来将虚拟地址转换为物理地址。当前的安全状态、当前的异常级别、页表和系统寄存器的组合决定了转换的结果PAS。系统寄存器允许例如在EL2的hypervisor控制安全状态下的EL0或EL1转换的输出PAS。页表的分页系统用于地址转换。ARM称一个页面为转换或内存粒度(translation or memory granule),在RME系统中必须是4KB。ARM在一个转换阶段(stage)支持最多四个页表级别。translation regime的选择取决于异常级别和安全状态,图2中显示了基本概况。EL3的translation regime是固定的,因为EL3始终处于Root安全状态。尽管它可以访问所有四个PAS,但它不能执行位于Root PAS之外的代码,以防止在Root安全状态中执行不受信任的代码。而其他安全状态的每个异常级别或异常级别的组合都有自己的translation regime。例如,Realm安全状态有三种不同的translation regime:

  • 一个适用于EL0和EL1(EL0 & 1)的translation regime(因此应用程序和OS位于一个Realm中);
  • 一个适用于EL0和EL2(EL0 & 2)的translation regime,应用程序直接由RMM控制;
  • 还有一个适用于EL2。

Realm EL0 & 1translation regime使用Stage 2 地址转换,这与非安全或安全状态和EL0和EL1的转换是相似的。虚拟地址首先映射到IPAS,然后通过stage 2 映射到实际的PAS。Stage 1 通常由EL1的OS控制,而Stage 2 由EL2的hypervising软件管理。EL2的地址转换只需要一个转换阶段。为了清晰起见,这在图2中没有显示。
image.png
除了Root,每个Secure状态都有自己的IPAS,Secure状态甚至有两个。Secure状态可以访问安全和非安全PAS,对它的访问已经在Stage 1 转换中分开,页表项中的NS位决定是哪一IPAS。在Realm状态中,这种区分是在stage 2 完成的,因此对Realm和非安全PAS的访问都在终止于一个IPAS。Realm的IPAS的一半是不受保护的,保留为非安全内存,另一半受到保护,保留为Realm内存。这也在图2中说明。从Root状态选择所需的地址空间访问的方法与第二bit相似。
image.png
内存管理单元(MMU)负责执行Stage 1和 stage 2 阶段的转换,并实施隔离。请注意,MMU还包括一个Translation Lookaside
Buffer(TLB),用于缓存以前的地址转换以进行性能优化。整个地址转换结构需要TLB额外保存TLB条目所属的translation regime和安全状态,以防止一个安全状态不使用它们自己的TLB条目。cache缓存面临类似的问题,需要用关联的PAS进行标记。

image.png

MMU的另一个任务是在PAS上执行粒度保护检查(Granule Protection Checks-GPCs),以确保表1的限定的访问权限。GPCs总是跟在地址转换后面,并在访问实际内存之前检查所有物理地址。这是必要的,因为ARM CCA作为新特性,允许在不同的world之间动态分配和更改物理内存PAS的安全状态。与现有的安全机制相比,这是主要的新特性之一。TrustZone也受益于动态分配,作为TrustZone扩展,动态TrustZone也可以让内存页在非安全和Secure world转换。因此,需要在粒度保护表(Granule Protection
Tables-GPTs)中跟踪每个内存粒度的当前PAS。GPC就像一个后接的页表阶段,但他不执行实际的地址转换,而是对地址进行权限检查。GPTs位于Root内存中,以保护它免受其他world的影响,只能由在Root状态下运行的Monitor修改。Monitor可以动态更新GPTs,从而在world之间移动内存。如果GPC识别到一个访问违规,会生成一个粒度保护错误(GPF)并传送到触发异常的EL。更新GPTs需要使受影响的TLB条目和cache line无效。RME提供了新的TLB条目无效指令,但实际的TLB结构取决于实现,而在软件方面,实际的实现并不重要。通常靠近处理器的cache需要记录cache line对应的PAS。RME必须对具有内存访问的设备加上GPCs的检查,例如图形处理单元或其他DMA设备。为此可使用SMMUs。SMMUs连接在设备和内存之间。此外,正如第5节所讨论的,硬件方面必须提供认证功能。硬件需要一个身份,并有能力认证初始固件。
image.png

3.2 软件:Monitor与Realm管理监控Realm Management Monitor)

image.png
ARM CCA的第二部分是软件,特别是在EL2上实现的Monitor和RMM。Monitor的代码是EL3上最高特权的固件,所有其他组件都必须信任它。Monitor负责切换当前的安全状态和分配内存粒度到不同的PAS。切换安全状态基本上与TrustZone相似,如2.3所述,但扩展了多于两个的状态。Monitor软件是唯一可以访问GPT的软件。通过更新GPT的条目来分配或更改内存粒度的PAS。通过SMC进行较低权限的软件之间的通信。SMCs在EL0上是未定义的,仅适用于EL1和EL2。因此,如果较低权限的软件(如hypervisor)希望将内存从一个world移动到另一个world,它必须执行一个SMC,随后Monitor将处理该切换。Monitor的开源实现的一个例子是Arm Trusted Firmware https://github.com/ARM-softwa...

RMM在EL2上运行,并管理Realm的执行环境。它是Realm world中的hypervisor对等组件,但比一般的hypervisor简单得多。RMM和Normal world主机之间进行对Realm world的任务分隔。因此,可以简化RMM的实现,从而产生更小的TCB。例如,[17]中验证的RMM实现只有大约3500行代码[17],这比普通的hypervisor要少得多。Normal world的主机通常是Normal world的hypervisor。但是,如果Normal world中没有使用虚拟化,则OS将接管此角色。

所有的决策操作,如Realm创建、Realm调度或动态资源管理,都由主机完成。RMM负责将Realm与彼此隔离,完成Realm执行之间的上下文切换,并为主机提供Realm管理接口(RMI)。尽管主机可以动态地为一个Realm分配和回收内存页,但Realm的内容对主机不可见。RMM确保使用内存内容清除确保没有数据泄露到其他world。通过Realm stage 2 地址转换,利用虚拟机标识符(VMID)标识Realm VM,从而保证了Realm之间的隔离。主机选择的VMID和RMM确保每个Realm的VMID都是唯一的。Realm描述符(RD)包含Realm的属性,这些属性包括关于页表和IPAS的信息、Realm的实际状态、VMID、Realm的认证测试所需的信息,以及让主机可以识别Realm所需的其他属性。因为多个Realm可以在一个Realm VM中运行,因此具有相同的VMID,所以一个VMID不足以标识一个Realm。另外,如果例如两个Realm最初是相等的,因此具有相同的初始认证测试值,那么认证测试也不一定是唯一的。因此,主机提供了一个额外的Realm个性化值(RPV)。内存页所属Realm由RD的地址标识。但是,主机可以阻止Realm的执行,因为它控制调度,所以不能保证Realm的可用性。主机还为地址转换或其他Realm元数据提供内存页。RMI有23种不同的命令,用于创建和销毁Realm、分配和回收内存页、从非安全PAS复制数据、控制Realm页表(RTTs)、管理Realm执行上下文(REC)等。每个RMI命令都通过SMC调用切换到Realm world的实现请求的服务。然后使用第二个SMC返回到主机。RMM包括Realm服务接口(RSI),为Realm提供服务。这允许Realm向RMM请求认证报告的操作,与主机共享内存的管理或通过主机调用返回。由于定义了接口,所以RMM的实现是独立于Monitor的。实现的示例是TF-RMM https://www.trustedfirmware.o...

3.3 Realm使用

如3.2节中所述,Realm管理的责任在主机。因此,从创建、资源分配到Realm的执行都必须通过RMI调用RMM由它来启动。此章节描述了创建、执行和销毁一个Realm以及将内存移回Normal world以返回结果等所需的步骤。更详细的描述或其他特定用例请参见[14]。

为了创建一个Realm,主机需要分配三个内存页并通过RMI_GRANULE_DELEGATE将它们指派给Realm world。首先需要一个来存储RD,另一个作为RTT表结构的起始级别,还有一个用于提供Realm创建的参数。随后的RMI_Realm_CREATE调用创建了Realm。额外的RTTs必须添加到Realm VM的页表结构中。创建Realm后,主机可以为Realm分配由主机填充的内容的内存页。这再次需要首先进行内存指派,然后通过RMI_DATA_CREATE将数据从非安全页复制到目标页。这样,数据被哈希,哈希被包括在Realm的认证测量中。Realm的执行至少需要一个REC,但在一个Realm中可以有更多REC。与操作系统和应用程序例比,其中Realm相当于是操作系统,单个RECs相当于应用程序。REC是RMM在虚拟CPU core上存储Realm执行的上下文所需的内部数据结构。主机提供Realm的初始状态,例如程序计数器、通用寄存器或其他值。通过RMI_Realm_ACTIVATE调用,然后Realm被激活,可以由主机调度。激活后,主机失去了修改Realm任何内容的能力,初始测量(用于认证所需)被固定。此时,对Realm初始状态的认证将是有用的,以建立对Realm的信任。Realm可以通过RSI从RMM请求关于Realm的初始状态,其中包括RMM、Monitor和硬件平台身份的测量认证报告。如果认证成功,通过将非安全内存页映射到Realm IPAS的未受保护部分,可以将机密内存页移动到Realm。如果要进一步防止修改,应在继续实际工作之前将数据复制到Realm的内存中。在[14]中提出了一个共享内存协议,但它不是默认包括在RMM规范中的。

为了销毁一个Realm,主机首先销毁或回收所有属于该Realm的资源,如内存页、REC和RTT,最后销毁Realm本身。资源的销毁顺序并不重要。

3.4 Realm中断

Realm只能接收虚拟中断,这些中断由RMI调用通过模拟(虚拟的)的通用中断控制器 (GIC) 触发,由Normal world主机提供。GIC通过未受保护的IPAS映射到Realm。Realm不能依赖于不受信任的主机提供的中断,并且必须在其自己的中断处理程序中考虑恶意中断。

4 ARM CCA的优势

在Realm中的数据和代码完全受到ARM CCA架构的保护。Realm保留了它们的完整性和保密性,即便面对其他world中更高权限的软件。Realm在ARM架构上具有很高的可移植性,因为它们可以部署在VM级别并受到标准化的RMM控制。它们还使应用开发者能够更广泛使用TEE。在非Secure world中运行的现有代码也可以在Realm world中执行。Realm独立于在TrustZone中运行的已经存在的TEEs应用。这意味着,它们与现有的可信应用程序兼容,这些应用程序可以在其执行环境中与Realm一起运行。使用Realm作为TEE的唯一限制是可用的内存,因此可用于大多数应用程序。此外,可以使用认证令牌验证Realm状态及其基础平台的完整性。

CCA建立在TrustZone之上,但也试图避免Trustzone的限制、改进或扩展它。TrustZone的一个问题是它相对静态(固定),例如它需要预先分配的内存区域。因此,在启动时固化了安全和非Secure world,而不重新启动就无法更改。CCA提出了一个动态方法来解决这个问题,并提供具有动态资源分配和管理的动态创建的TEEs。TrustZone的第二个大问题是,代码必须信任在底层更高异常级别上运行的更高权限软件。例如,在EL1的可信操作系统上运行的EL0的可信应用程序。这个可信操作系统在EL2的SPM上运行。安全虚拟化这样的方法只有助于在同一异常级别上隔离多个安全VM,但不能保护可信应用程序免受其操作系统或hypervisor的影响。可信应用程序由更高权限的可信操作系统验证,该操作系统由其hypervisor验证,因此在应用程序中的信任取决于信任链。这也适用于Realm,但它的hypervising是与之分开的,因此如第3节所述,TCB大大减少。此外,CCA的引入解决了旧架构的弱点,例如可能的冷启动攻击[15]。尽管如此,Realm不是替代TrustZone,而是对它的补充。TrustZone对于依赖硬件的芯片厂或原始设备制造商(OEMs)的安全关键任务有其用途。这些任务相对固定,其数量可以由TrustZone资源管理。Realm为开发者提供了在TEE中执行自己的代码的可能性,并可以自己管理这个环境。

5 Realm认证

认证使Realm的所有者(依赖方)能够建立对Realm的信任,这既包括本地认证也包括远程认证。ARM CCA采用了一个基于令牌的认证模型,其中Realm可以通过RSI从RMM启动认证。将令牌写入内存目标,并给RMM一个验证请求(challenge)。该验证请求用于证明生成的令牌的新鲜度(freshness)并防止重放(replay)攻击。RMM将创建一个认证令牌,该令牌由一个Realm令牌和一个CCA平台令牌组成。两个令牌都包括关于状态的声明,一个关于Realm状态,另一个关于平台状态。详细内容如图3所示。Realm令牌包括Realm的初始测量值,该测量值是通过Realm激活RSI调用创建的,以及Realm的可扩展测量值。Realm可扩展测量是在Realm生命周期中可以更新的测量。Realm可以再次通过RSI扩展这些测量,测量的初始状态为零。哈希算法id用于标识使用的哈希算法。Realm认证密钥(RAK)用于签署Realm令牌。
image.png
CCA平台令牌的生成是由RMM从Monitor和硬件请求的。它包含关于CCA平台的属性,如软件组件RMM和Monitor的测量值、平台身份和状态,但也包括RMM提供的验证请求。通过公共RAK的哈希值将Realm绑定到平台。CCA平台令牌由CCA平台认证密钥(CPAK)签署,该密钥通常由硬件提供。ARM CCA只提供CCA平台令牌,但不指定认证协议。CCA平台令牌生成的图示如图4。

image.png

Realm需要实现它们自己的认证协议,因为认证不在CCA的范围内。对于开发者,这意味着既有自由选择,又需要更多的努力和认证协议的知识。CCA平台令牌与依赖方交换以验证它。为了验证,需要分别验证CCA平台认证令牌和Realm认证令牌。通过CPAK和平台测量验证CCA平台。

因此,需要对硬件和固件开发者的验证数据进行对比。最后,可以通过提供的验证数据验证Realm认证令牌。验证数据通常由一个受信任的实例签名,因此在Realm中建立了信任。验证旨在被用作受信任方的验证服务,该服务需要关于整个CCA供应链的信息,例如平台本身进行验证。Veraison是一个旨在提供一种方便的方式来构建认证验证服务的开源项目。从而为任意用户可能的复杂任务提供便利。

6 相关工作

ARM CCA规范于2021年发布,TEE是一个重要的话题,ARM CCA只是其中一个架构。其他处理器架构也在努力支持硬件机制来提供TEE。例如,Intel Software Guard Extension (SGX) [18] 使用被称为飞地的孤立、加密的机制,AMD Secure Encrypted Virtualization (SEV) [1] 使用加密在VM级别进行隔离,或基于RISC-V的Keystone [16],它使用硬件和软件的组合,像CCA那样运行独立允许。

7 结论

通过Realm,ARM为其架构添加了一种动态创建TEE的方式。在从非安全主机创建和控制的同时,Realm保留了其数据的机密性和完整性。通过硬件和软件扩展的组合来保证隔离。因为Realm是由不安全的主机管理的。RMM和Monitor只关心隔离,因此与完整的hypervisor相比,TCB可以大大减少。Realm与Normal world、Secure world和其他Realm隔离。Realm内存是加密的,甚至支持按页面为基础的细粒度加密。CCA旨在通过在Realm中执行现有软件并进行最小的更改,为更广泛的开发者提供TEE。ARM CCA正处于起始阶段,随着支持CCA的硬件平台的出现(译者:Arm Poseidon 处理器开始支持CCA),对这一架构的兴趣将会增加。

推荐阅读
关注数
8646
内容数
60
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息