早期计算的最大挑战之一是计算资源的管理,以最大限度地提高计算效率,同时提供分配给不同程序或用户的资源分离。这产生了我们今天主要使用的分时模型,其中程序在诸如内核、虚拟机管理程序或两者兼有的监督软件的控制下运行。
今天,在大多数架构中,主管可以完全访问程序的内容——例如它的代码或它正在处理的数据。也就是说,主管既有权管理资源,也有权访问这些资源。这带来了安全挑战,因为程序开发人员需要相信主管不会泄露他们的秘密或篡改他们的程序。它在提供应用程序或业务解决方案的软件供应商、提供计算平台的软件供应商以及这些平台的管理员之间建立了信任依赖关系。
机密计算是一场席卷整个行业的范式转变,改变了我们对计算环境信任模型的看法。从本质上讲,它改变了传统的信任关系,取消了主管访问资源的权利,同时关键地保留了管理资源的权利。
Arm 架构提供了一系列技术,可用于防止主管访问权限较低的软件的资源,例如 TrustZone® 和安全和非安全虚拟化。2021 年 3 月,我们发布了 Arm 机密计算架构 (Arm CCA),它是 Armv9-A 架构的关键组件。Arm CCA 包含 Arm 在 Armv9-A 中对机密计算的支持的最新增强功能。我们对 Arm CCA 的愿景是保护所有发生计算的数据和代码——释放数据和 AI 的力量和潜力,同时让开发人员能够实施强大的隐私控制。
取消访问权很重要。我们今天使用的设备,无论是个人设备还是云端设备,都可以处理大量机密数据。在云中,给定的机器可以运行来自许多不同客户的有效负载。手机可能包含个人信息,例如医疗数据,或企业信息,例如公司电子邮件。Arm CCA 显着降低了在任何计算环境中信任未知技术的需求。例如,典型基础设施即服务 (IaaS) 产品的租户了解他们的提供商不会访问他们的数据。但是,他们必须接受他们无法轻松审核的系统和流程可能会访问他们的数据。Arm 的机密计算架构扩展了工作负载隔离,使提供商能够进一步从他们不会访问客户数据的位置转移到他们无法访问客户数据的位置。从而减少必须信任的软件数量、黑客的攻击面以及客户数据泄露的可能性。
今天,我们将在Linaro 和 Arm CCA 技术活动中提供有关我们在此架构方面取得的进展的更多详细信息,并发布 CCA 的 Arm 架构补充。
那么 CCA 是如何改变 Arm 架构的呢?
在 Armv8-A 架构中,TrustZone 和虚拟化是安全计算的主要支柱。TrustZone 将计算分为安全世界(用于运行受信任的应用程序和受信任的操作系统)和正常世界(用于运行标准应用程序和操作系统)。安全世界软件可以访问正常世界无法访问的安全物理地址空间。这种隔离保护受信任的应用程序和受信任的操作系统。通常,安全物理地址空间的内存是在引导时静态分配的。TrustZone 适用于数量有限的平台安全用例。但是,机密计算旨在允许任何第三方开发人员保护他们的 VM 或应用程序。所以,必须能够在运行时保护与 VM 或应用程序相关的任何内存,而不受限制或限制。此外,支持 TrustZone 对平台安全性也很重要。
Arm CCA 引入了一种新的机密计算环境,我们称之为领域。属于领域的任何代码或数据,无论是在内存中还是在寄存器中,都不能通过以下方式访问或修改:
- 创建领域的监控软件——即普通世界中的内核或管理程序
- 信任区
- 其他领域
- 不受领域信任的设备
这些实体访问领域的代码、数据或寄存器状态的尝试被阻止并导致错误异常。
领域在新引入的领域世界中运行,运行时内存可以在普通世界和领域世界之间移动,甚至在普通世界和安全世界之间移动。这是通过添加到架构中的新数据结构来实现的 - 颗粒保护表 (GPT)。此结构跟踪页面是用于领域世界、安全世界还是普通世界。硬件在每次访问时检查此表并强制世界之间的隔离,阻止非法访问,例如从管理程序到领域世界页面的访问。在一个世界中,转换表提供了进一步的隔离,这就是领域相互隔离的方式。管理程序或内核可以间接更新 GPT,允许页面在正常世界使用和领域使用之间迁移,甚至在正常世界使用和 TrustZone 使用之间迁移。内存经过加密和清理,以确保后续用户无法访问其内容。这种在不同安全环境之间动态移动内存资源的能力是架构中的一个关键变化。
虚拟机管理程序和内核管理资源,主要是处理器周期和内存,其方式与现在管理虚拟机和进程的方式非常相似。监控软件仍然需要能够创建和销毁领域、向领域添加内存或从中删除内存以及安排领域执行。旨在决定何时对 VM 和进程执行这些操作的策略代码可以直接重用于领域管理。但是,机制有所不同,因为监管者无法访问领域内容。这些操作需要与管理颗粒保护表以及领域转换表和上下文的安全固件组件进行交互。Arm CCA 旨在标准化基本固件接口,并使该固件简单、小巧且易于审核和验证。
在实践中部署 CCA
领域部署需要提供一种机制,通过该机制,领域代码可以验证它是否在真正的 Arm CCA 平台上运行,并且其代码和数据是有效的。Arm CCA 支持生成平台和领域证明报告。Arm 正在与包括机密计算联盟成员在内的主要行业合作伙伴合作,以定义这种证明机制的属性。行业协作至关重要,因此平台真实性和出处的通用方法可用于不同的外形尺寸和设备。确保认证过程本身不会侵犯用户隐私非常重要。
竞赛正在看是否 Realms 的第一个生产部署将发生在云数据中心,供应商在同一服务器中管理来自不同客户的工作负载。或者,在工作负载也需要更强保护的其他领域。
数据中心的机密计算趋势明显,这正迅速成为云处理器架构的必备功能。特别是关于从“不会”访问模型到“无法访问”模型的转变。云提供商可以使用 Arm CCA 消除信任其基础架构的需要,这反过来又允许他们的客户将更敏感的工作负载从他们的本地系统中迁移出去。
然而,正如其他云计算正在向边缘移动一样,机密计算也将如此。我们的移动和可穿戴设备现在跨越了我们的个人生活和工作生活,工作和个人数据通常共存于同一设备上。环境计算等趋势正在寻求使与设备的交互更加无缝,并为我们个人量身定制。此外,通过技术改善我们健康的机会已经变得清晰起来。然而,这些进步中的每一项都对这些设备保护我们数据的能力施加了新的压力。例如,为了推进健康服务和科学,我们需要安全的方式来匿名聚合数据。智能城市和自动驾驶汽车需要更高水平的相互信任,企业需要知道他们的数据在我们的个人设备上是安全的。
释放数据和人工智能的全部力量和潜力
今年 3 月,我们宣布了 Amv9-A,以及 Arm 对未来十年的愿景。目前有超过 1800 亿个基于 Arm 的设备,以及生态系统的下一个 3000 亿个芯片。我们预测,在这个世界中,几乎所有共享数据都将在其生命周期的某个时刻由 Arm 驱动的设备进行处理。通过我们在架构开发方面的努力,我们正在推动标准化的“恰到好处”的平衡,允许有效利用所有软件投资,同时使我们的合作伙伴能够创新下一代设备。至关重要的是,我们的 Armv9-A 架构和技术为未来十年的真正挑战提供了基础,继续在整个网络中建立信任,并抵御不断增加的安全挑战。
原作者:查尔斯·加西亚-托宾