电子说
随着云的兴起,计算变得高度分布式。工作负载可以在许多计算节点上运行,并且通常跨越多个数据中心。工作负载由代码和数据的组合组成,两者通常都是有价值和敏感的。数据中心通常由第三方管理,如云服务提供商(CSP),并且可能位于与工作负载所有者不同的法律管辖区。在云中托管日益敏感的工作负载的需求推动了机密计算(https://developer.arm.com/documentation/den0125/0200/What-is-Confidential-Computing-)。这是一种可以在第三方基础设施上部署工作负载的模型,并且高度确信任何第三方都不会损害其机密性和完整性。
虽然今天这个模型最常用于描述公共云中所需的属性,但人们对其他几个市场的兴趣越来越大。现代汽车设计旨在将来自不同供应商的多个工作负载整合到一个车载服务器上。信息技术的消费化已经导致个人电脑上的个人和公司数据的混合。这两个应用程序都具有与公共云类似的安全要求,并且可以重用相同的底层安全技术。
要构建一个支持机密计算的平台,必须解决几个挑战,但主要的挑战是如何在处理数据和代码时保护数据和代码。相比之下,通过使用强大的加密、数字签名和细致的密钥管理,保护静态数据和动态数据相对容易。
随着最近发布的第一批支持Realm Management Extension(RME)的开源补丁,现在是了解Arm上机密计算的最新发展和功能的好时机。 在这个博客中,我简要概述了可以用来构建 支持机密计算的平台。其中包括Arm在Armv9-a架构中添加的最新功能的摘要,以及Arm支持的参考软件架构的详细信息。
设计师考虑的威胁是什么?
任何提供机密计算的平台的设计者都必须分析需要防御的威胁和风险,以及那些可以接受的、因此被认为超出范围的威胁和危险。本分析中通常考虑的威胁示例包括:
。平台软件中可能被利用的漏洞。
。在供应链中插入已知漏洞(有时称为后门)。
。针对操作服务器的物理攻击。
。通过辅助渠道(如完成操作所需的时间)跨越安全边界的信息泄露。
。第三方管理员访问和滥用敏感数据。
。对数据主权和外国访问的担忧。
。从私人数据中心转移到第三方云的风险使其更难证明符合监管标准。
缓解措施
缓解这些和其他威胁通常需要从根本上改变人们熟悉的计算机安全模型,该模型依赖于特权级别的层次结构,每个级别都隐含信任更具特权的基础设施层。
图 1: 传统特权机制的一个例子
通常具有最大权限并因此必须受到最终用户信任的组件的示例包括平台固件,以及相关的虚拟化管理程序。这种基础设施通常可以不受限制地访问工作负载,并且被信任不会滥用这一特权。如果特权代码被认为可能包含可利用的安全漏洞,这可能会引起关注。可以通过多种不同的方式来消除或减少对用户可能看不见的特权基础设施的信任,包括:
。重新配置平台以减少可访问工作负载的特权软件和硬件的数量。
。通过加密尽可能靠近处理点来保护与工作负载相关的所有内容。例如,加密工作负载的代码、状态和内存中的数据。
。在保留特权元素的情况下,确保这些元素是开放的、可供检查的,并使用安全引导和平台认证等技术锁定,以便在未经授权或检测的情况下无法更改。可以使用形式化方法来进一步保证这些元素是可信的。
在虚拟化环境中保护工作负载
Arm在Armv7-A体系结构中引入了对虚拟化的处理器支持,包括第二阶段的转换表。这些功能在共享平台的虚拟机之间提供了有效的硬件支持的地址空间隔离。可以使用A-ProfileArchitecture的这一功能和其他功能来构建一个支持机密计算的平台。 在使用虚拟化的情况下,系统管理程序通常有足够的权限访问用户工作负载,但可以进行控制,以确保系统管理程序不会滥用该权限。例如,可以通过使系统管理程序小型化、开放性和可验证性来降低系统管理程序出错的风险。可以使用正式的方法来正确地演示系统管理程序的功能,然后可以使用安全的信任根来防止对平台的未经授权的更改并支持证明。信任的根源通常是一个专用的安全微处理器,它通过在释放主系统CPU之前加载和验证系统固件来控制引导过程。
添加硬件支持的安全性的新维度
2021年,Arm宣布Realm Management Extension(RME)是Armv9-a架构的主要补充 Arm机密计算架构(Arm CCA)。Arm正在与几个合作伙伴合作,开发RME的第一个芯片实现。
RME是一种隔离体系结构,允许管理程序为称为Realms的工作负载创建和管理特殊的执行环境。Realm 是 一种受保护的环境,旨在为虚拟机等工作负载提供额外的安全性。当虚拟机在Realm中运行时,系统管理程序具有与传统虚拟机相同的创建、销毁、调度、添加或删除内存和设备等资源的能力。关键的区别在于,系统管理程序无法访问Realm的代码或内存。从这个意义上说,系统管理程序是被剥夺权限的,工作负载可以使用证明来验证这种剥夺权限在加载任何敏感代码或数据之前是否已经发生。我们预计RME将成为未来几代CPU的主流功能。RME提供了另一种工具,可以帮助安全架构师减少可访问工作负载的代码量,并可用于进一步强化支持虚拟化的平台。RME还标准化了对内存加密和认证的支持。
2022架构扩展
Arm每年都宣布对A-Profile架构进行年度更新 。2022年,我们宣布对RME进行增强,以支持更广泛的内存加密上下文(MEC)和设备分配(DA)用例。
。MEC为Realm物理地址空间引入了对多个内存加密上下文的支持。这可以用于为每个Realm实现具有唯一密钥的内存加密,这为Realm已经提供的安全性提供了额外的深度防御。
。DA增强了RME系统架构和SMMUv3,以实现设备到领域的安全分配。每个Realm都可以独立选择是否允许非处理器资源(如存储接口或加速器)访问其地址空间的一个区域。因此,使用DA,工作负载可以充分利用异构平台上可用的专业资源,如神经处理器,而不会影响安全性。
包含MEC的RME规范可在Arm结构参考手册的J.a版本(https://developer.arm.com/documentation/ddi0487/latest/)中找到,DA规范将很快发布。参考https://www.arm.com/armcca以获取更多信息。
参考软件体系结构
当Arm提供在硬件中实现的新体系结构功能时,我们也会考虑在一个完整的系统中使用这些功能需要什么。一些合作伙伴更喜欢采用Arm的硬件架构,创建自己的软件,以适应他们的特定市场和需求,而另一些合作伙伴则喜欢选择包括软件在内的更完整的解决方案。出于这个原因,我们创建了包含RME的Arm机密计算架构(Arm CCA)。
图 2:Arm CCA建立在RME之上,以提供一个参考软件安全架构。
Arm CCA以RME为基础,提供了可选的参考固件和软件安全架构,可用于实现支持机密计算的基于虚拟机监控程序的平台。除了RME之外,通过选择Arm CCA,Arm的合作伙伴可以从支持流行开源项目的既定软件架构中受益,包括 值得信赖的Firmware-A(https://www.trustedfirmware.org/news/first-open-source-release-of-the-trusted-firmware-realm-management-monitor-tf-rmm/%22%20/h%20HYPERLINK%20%22https:/www.trustedfirmware.org/blog/TF-A-v2-8-release/)、Linux和KVM。Arm CCA是一个开放的体系结构,正在使用正式方法进行积极评估,帮助合作伙伴证明其安全技术遵循既定的最佳实践。标准软件体系结构的使用提高了可移植性,并且 减少了长期维护的负担,以及 还可以提高执行的透明度。您可以在developer.arm.com(https://developer.arm.com/documentation/den0127/0100/Overview)上阅读更多关于Arm CCA的信息 。
我很高兴Arm刚刚为Linux堆栈发布了第一个Arm CCA“征求意见”补丁,为Linux内核和KVM做出了贡献。经过审查,我希望这些捐赠能被上游项目所接受。这有助于广泛的服务提供商在基于Arm的系统上提供安全的机密计算,而无需开发自己的定制解决方案的成本和复杂性。您可以在此处(https://lore.kernel.org/all/20230127112248.136810-1-suzuki.poulose@arm.com/)找到Arm CCA Linux堆栈的征求意见。第一批用于来宾固件的EDK2修补程序已可用(https://edk2.groups.io/g/devel/message/103581)。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !