ARM介绍其机密计算架构

2021-06-23 23:51:12

当ARM宣布今年早些时候宣布ARMv9架构时,他们透露了一个新的机密计算架构将被介绍。今天ARM正在推出新的架构。 ARM机密计算架构(CCA)是一种孤立技术,可根据ARM现有的TrustZone技术作为其基础。在新的CCA架构中,应用程序数据旨在在使用时受到保护。这包括预防私有数据的访问,即使是特权软件,如虚拟机管理程序或操作系统。今天介绍的是什么ARM是符合符合架构实现的行为架构规范的第一个发布。今天规范介绍旨在为软件社区进行种子和KickStart软件启用。武装预计大约2 - 3年,直到事情达到生产准备,我们可以期待在硅中看到它发货。

请注意,机密计算架构是新ARMv9架构的一部分。具体而言,它将是ARMv9.2的可选特征,最终可能成为未来规范中所需的扩展。软件开发人员将能够通过检查CPU上是否存在域管理扩展名(RME)功能来检查CCA支持(稍后更多)。

此前,硅供应商和OEM只能通过诸如TrustZones等事物访问的高信任环境。通过新的ARM CCA,高信任环境正在扩展到所有开发人员,希望它将被主流工作负载使用。虽然最初由OS相关的软件实现,但ARM希望领域将找到进入Masstphone的软件(如智能手机应用)(在本文后面的内容)。为此,新的机密计算架构旨在将云到移动,汽车和IOT的所有市场。

在机密计算架构的核心是“领域”。领域是有效的小,个人高信任环境或飞地。机密计算架构旨在防止从芯片右侧的整个堆栈中的私有数据访问。为此,CCA提供了对相互信任工作负载的强制保护,强制防止受损的丰富的操作系统(例如,Linux,Windows),强烈保护免受受损的虚拟机管理程序,以及在安全世界内运行的应用程序的新保护。换句话说,境界不需要信任任何人。 CCA还支持证明,以便域可以验证在设备或平台中的信任,然后向依赖方提供证明报告,然后可以独立验证信任。

下面的幻灯片中的图表显示了ARM的CCA如何设计的高级概述。您会注意到,现在通常的“正常”和“安全”状态之外的两个新州。它们被称为“王国”和“根”。新各国促进了新的领域功能。我们将更详细地稍后触摸这一点。领域显示在黄色框中。当它们是创建的 - 通过管理程序的帮助 - 它们将迁移到境界状态。虚拟机管理程序或任何TrustZone应用程序(以绿色)甚至其他领域中的任何一个都无法访问新的Realm Facdaves。

可以在按需创建和销毁领域。在对比对比的对比中,还可以根据需要调整到诸如存储器之类的领域的资源(即,内存大小可以根据需要增加或减少)。这里的想法是,通过将大型软件工作负载移动到自己的私人领域,应用程序可以更大的信心,以便在同一硬件上运行的其他软件和服务不能使用它们处理的数据和算法。 CCA的一大部分是保护潜在的管理程序的境界。因此,虽然它仍然负责分配资源并对诸如调度等事物负责,但它不再能够访问领域内的数据。值得注意的是,基于CCA硬件的保护几乎包括图中的一切,唯一的例外是非常最低的固件(图中标记的显示器)。

尽可能得到多少境界;系统能够支持任意数量的REATMS - 仅限于可用的系统资源(即,内存,计算电源)。例如,小型物联网设备可能只是少数职业,而大型服务器SOC可能正在运行100S的领域。创建和销毁领域的意味着可以根据需要使用任何应用程序使用的操作。

今天发布的架构规范包括硬件要求和启用固件和软件。正如我们之前提到的那样,ARM CCA功能正在作为ARMv9.2 ISA的可选功能引入。支持机密计算架构的硬件将具有可用的域管理扩展(RME)。在其核心,实现领域管理扩展的处理器具有两个新的硬件功能:创建领域和动态内存分配。

第一种新功能是创建和销毁称为领域的硬件强制围场的新功能。正如我们之前所描述的那样,RISEMS提供来自任何其他执行环境的数据和/或代码保护。这包括管理程序,内核,其他领域,甚至是TrustZone应用程序。

在具有TrustZone支持的典型ARM处理器时,系统将分为两个地区:一个是一个安全的世界,另一个是非安全的世界(或普通世界)。记忆映射将安全的世界划分为非安全的世界。从历史上看,可能影响柬ryZone的使用的限制之一是必须通过监视器在启动时分配给安全的世界。这通常是有限的粒度完成的。这对可以分配给安全世界的资源的种类/大小来施加了各种人为限制。通过新的境界管理扩展,页面现在可以从非安全世界转换到安全的世界并再次回来。这允许RentrZone用于更多内存密集型应用程序。作为侧面,当RME专门用于使用动态内存能力的柬ryzone(即,没有领域)的增强时,此特定功能现在被称为“ARM Dynamic TrustZone技术”。

在当前的架构(ARMv8.4-Secel2)下,有两个世界:安全和不安全(正常)。每个世界都与自己的安全状态(安全/非安全)和物理地址空间相关联。安全的世界受到正常世界的影响,在2级及以上。任何从普通世界访问安全内存地址空间的尝试将生成硬件异常,停止执行。安全世界内运行的软件能够访问安全和普通的世界内存。

在新的RME下,已添加两个新的安全状态:root和Realm。此外,还添加了两个新的物理地址空间(也称为root和Realm)。硬件堆栈的最低级别 - 监视器 - 现在获取其自己的私有地址空间和称为“root”的状态。即使是安全的世界,新的根地址空间受到所有其他地址空间的保护。

新的RealM管理扩展提供了能够在这些物理地址空间之间动态转换内存页面。胳膊叫这些页面颗粒。为了使处理器支持各种地址空间之间的内存页面的新动态转换,ARM添加了一个名为颗粒保护表或GPT的新表。 GPT是由EL3中的监视器控制的MMU页面表的扩展。新的GPT将每个表格映射到内存中的一个世界之一。在每个内存访问尝试中,允许仅允许允许的访问时进行新的颗粒保护检查。无效访问触发页面错误。请注意,任何分配给正常,安全,根和域球世界的内存都是由写入DRAM之前的硬件加密。

作为ARM CCA的一部分,还定义了一种新的固件/软件架构。定义了一个新的Realm Management Monitor(RMM),它为管理程序提供服务以及对域本身的服务。这是通过新的域管理界面(RMI)完成的。虚拟机管理程序的服务包括创建和销毁领域以及添加和删除内存。此外,领域还可以通过RMI请求证明报告,该RMI可以是平台或可以呈现给请求方的领域。