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