ARMv9 刷屏——号称十年最大变革,Realm 机密计算技术有什么亮点?
作者 / 乾越
编辑 / 芹菜
出品 / 云巅论剑
ARMv9 的新闻刷屏了。ARMv9 号称十年以来最重大变革,因此让我们看下 ARMv9 中机密计算相关的新特性 Realm。(注:本文是对 Introducing the Confidential Compute Architecture 的部分翻译和个人注解,本文图均来自 anandtech.com 网站。)
背景
在过去的几年里,我们看到安全问题和硬件安全漏洞已经成为了新闻热点。许多处理器侧信道漏洞,如幽灵、熔毁以及与它们有关的侧通道攻击,都表明有必要重新思考如何在处理器架构层面解决安全问题。
Arm 想要解决这个问题的方法是:通过引入 Arm 机密计算体系结构(Arm CCA),重新设计敏感应用程序的工作方式。
一句话亮点总结
Arm CCA 基于 Armv9 Realm Mangement Extension(RME,简称 Realm),将敏感应用和 OS 隔离在 Realm 中;Realm 比机密虚拟机更加通用,既支持机密虚拟机形态,也支持机密 OS 形态。
High Level 设计
Arm CCA 基于 Armv9 Realm Mangement Extension,将敏感应用和 OS 隔离在 Realm 中:
从这张图可以总结出以下几个要点:
1. Non-Secure World、Secure World 和 Realm 之间是相互隔离的。
现有材料中没有详细解释这种隔离是如何实现的,大概率还是基于硬件的地址空间隔离技术。
对 Realm 的隔离要看两个方面:运行在 Realm 中的敏感应用也可能是租户部署的恶意应用,因此对 Realm 的隔离也是必要的,即双向隔离。
2. Realm 可以运行 OS(简称 Realm OS),也就是说 Realm 提供了高特权级的支持,可以运行 EL1 特权软件。
Realm OS 的形态可以有多种:
不一定非要是经过裁剪和安全加固过的 Linux 内核,也可以为 Realm 设计的 TEE OS,或者由支持其他机密计算的 OS 技术实现演进过来额外支持 Realm 的 LibOS(如 Enarx、Occlum、Graphene 等);但这种 TEE OS 不能是支持 TrustZone 的 TEE OS,后面会讨论这个话题。
TEE OS 目前的一种发展趋势是缩小 TCB、减少 Rich OS 潜在的攻击面进而提升整体的安全性;但在是否需要提供良好的业务逻辑兼容性上存在分歧:
1) 一种方案是不考虑对业务的兼容性,以安全为先,可以适度牺牲性能和兼容性。
2)另一种方案还是重视对存量业务的兼容性,以兼容性为先,可以适度牺牲性能和安全性。
PS:Unikernel 又有机会了!
3. EL2 运行 Realm Manager,负责管理 Realm 的调度和资源分配。可以预见这部分会由 Arm CCA firmware 架构来支持(类似 ATF,或直接在 ATF 中进行扩展来支持)。
从目前的资料来看:Realm Manager 是 Arm 新写的,其代码量大概是 Hypervisor 大小的十分之一。
Realm Manager 和 TDX 中的 SEAM Module 很像:在处理器架构级为该功能模块提供了一个新的运行模式;同时该功能模块承担了 Realm 生命周期和资源管理的功能,系统中其他不可信的组件不能替代其功能和角色。
4. TrustZone 对 Realm 也是不可信的。也就是说 Realm 不是像 TrustZone 那样只解决计算资源隔离的问题,而是解决更进一步的敏感数据隔离的问题。
安全威胁模型
这张图说明了 Realm 的安全威胁模型,可以看出它具备典型的机密计算技术的特点:
从这张图可以总结出以下几个要点:
1. 这里的 hardware manufacturer 指的是外设的硬件设备提供商,而不是处理器本身的硬件提供商(比如 Arm 或 SoC 厂商)。
2. Realm Manager 不属于 Realm 的一部分,但它是用户 TCB 的一部分。
用法
由于 Realm 具备运行完整 OS 的能力,所以看上去可类比 TDX 的 trust domain 以及 SEV/CSV 的机密虚拟机,但下面的用法中则揭示了 Realm 相比机密虚拟机形态更为通用的一面:
从这张图可以总结出以下几个要点:
1. 由于 TrustZone 中的 TEE OS 不是通用 OS,而是结合 TrustZone 深度定制过的,因此无法将 TEE OS 直接加载到 Realm 中并运行,这也打破了原先认为 Realm 会基于 TrustZone 架构进行迭代的假设;但适配了 OP-TEE 的 TA 是可以运行在 Realm 中的,只要 Realm OS 能够支持 OP-TEE 的 TA API。换句话说,这张图可能也暗示了 Arm 接下来会在 Realm OS 中提供对 TA 的支持,当然也可能这张图只是展示 Realm 的兼容性能力;此外,在 Realm 中运行 Android 应用也存在上述的可能性。
2. Realm Manager 本质上充当了类似 Hypervisor 管理 VM 的角色,只不过 Realm Manager 管理的对象是 Realm。
当 Realm 运行 VM 的时候,可以认为把 Hypervisor 中涉及到 Realm 安全性的逻辑挪到了 Realm Manager 中,而把不涉及其安全性的部分保留在传统 Hypervisor 中。
3. Realm 仅仅是专门为运行敏感应用而提供的硬件 TEE,它的使用者可以将自己环境内的工作负载通过 Realm Manager 将敏感应用+OS 一起加载到 Realm 中,甚至是将一个完整的虚拟机加载到 Realm 中,因此 ealm 不是机密虚拟机,而是泛用性更高的通用型机密计算运行环境底座。
综上所述,Realm 技术不仅大幅度降低了敏感应用对信任的需求以及用户在适配 Realm 的成本,而且 OS 自身的安全性问题对 Realm 应用来说将变得非常透明(但 Realm 应用对外提供的服务以及 Realm OS 对外暴露的接口的安全性依旧需要重视)。此外,因为关键性应用能够安全地在任何支持 CCA 的系统中运行,而当今公司或企业往往需要使用具有各种安全合规的授权软件栈的专用设备才能实现这种安全性,因此这种技术也能降低用户在安全上所投入的成本。
slide 中没有体现出来的要点
Realm 中的应用能够 attest Realm Manager 以确保它是可信的。
内存加密。这个是机密计算的必备能力。
目前的资料没有显示出 Realm 提供的这种通用运行能力是如何支持 Realm 与 IO 设备间的交互的。据说 Confidential IO 问题还没有在 Realm 1.0 中得到解决,也许会在下一代技术中解决。
后续
目前 Arm 仅仅提供了关于 CCA 如何运作的 high level 解释,有关该机制究竟如何运作的更多细节将在今年夏天晚些时候公布。(完)
附翻译原文:Introducing the Confidential Compute Architecture
https://www.anandtech.com/show/16584/arm-announces-armv9-architecture/2
关于 Inclavare Containers
Inclavare 是 Enclave 一词的拉丁语词源,读音是 [ˈinklɑveə]。
Enclave 指的是一种受保护的执行环境,能为其中的敏感和机密数据提供基于密钥学算法的强安全隔离,阻止不可信的实体访问用户的数字资产。
Inclavare Containers 是由阿里云与 Intel 联合共建共同研发的面向机密计算场景的开源容器运行时技术栈,同时支持异构节点的 Enclave 远程证明基础实施、Enclave 池化以及多类型 Enclave Runtime 等特性,服务于机密 Kubernetes 集群和机密容器。
github:https://github.com/alibaba/inclavare-containers
主页:https://inclavare-containers.io/
欢迎关注(Watch)!点赞(Star)!收藏(Fork)!
有兴趣交流的童鞋,可以打开钉钉,扫码加入 Inclavare Containers 技术讨论群 (钉钉群)
版权声明: 本文为 InfoQ 作者【阿里云基础软件团队】的原创文章。
原文链接:【http://xie.infoq.cn/article/759d432f5f6846dd41484567d】。文章转载请联系作者。
评论