【机密计算顶会解读】13:CAGE:通过 GPU 扩展补充 Arm CCA

发布于:2025-04-13 ⋅ 阅读:(25) ⋅ 点赞:(0)

导读:本文介绍GAGE,利用Arm CCA中的现有硬件安全特性来确保敏感数据的安全性,支持GPU加速的机密计算,在实际平台上的平均性能开销仅为 2.45%,在保持高性能的同时,提供了良好的数据安全保护,且其设计不依赖硬件修改,具有较好的兼容性。

原文链接:CAGE: Complementing Arm CCA with GPU Extensions - NDSS Symposium

CAGE: Complementing Arm CCA with GPU Extensions

一、背景介绍

随着云计算和人工智能应用的快速发展,机密计算成为保障敏感数据安全的重要技术之一。Arm 推出了 Confidential Compute Architecture (CCA),通过引入 realm 和 RMM(Realm Management Monitor)来确保数据的机密性与完整性,支持在隔离环境下执行敏感任务。GPU在现代高性能计算和人工智能领域应用广泛,但现有的 CCA 设计并未对统一内存架构下的GPU 提供可信支持。此外,现有解决方案需要对虚拟机管理程序进行重大修改,并且很多依赖于不适用于未来Arm设备的硬件安全原语。

为了支持 GPU 加速的机密计算,CAGE 提出了一种创新的方案,利用 Arm CCA 中的现有硬件安全特性来确保敏感数据的安全性,保护 GPU 计算环境。

二、现状分析

目前,Arm CCA 在GPU加速方面存在以下问题:

  • GPU 被视为不可信外设:在 Arm CCA 中,GPU 默认被认为是不可信的外设,无法对其进行保护,这意味着敏感数据在 GPU 上的计算过程中可能被泄露。
  • 缺乏硬件和固件支持:虽然 Arm 提出了 RME-DA(Device Assignment for Realm Management Extensions)来支持GPU,但其仍处于概念阶段,尚未完成硬件实现。
  • 现有方案不可移植或需要修改硬件:如 RME-DA 和 ACAI 依赖于修改硬件或大规模修改 hypervisor 软件,难以与现有 Arm 设备兼容。

现有的 TEE 方案(如 StrongBox 和 HIX)虽然能够为 GPU 提供支持,但由于它们依赖于与 CCA 不兼容的硬件安全原语或存在较大可信计算基础(TCB),因此不适合直接扩展到 Arm CCA中。

三、应对设计

为支持在下一代Arm设备上进行安全的机密GPU计算,CAGE 提出了以下设计目标:

  • 兼容性:CAGE 设计遵循 Arm CCA 的 realm 架构管理机密 GPU 计算任务。CAGE必须将复杂但与数据无关的功能委托给不可信的GPU软件栈,并确保数据安全。
  • 数据安全性:确保 GPU 计算过程中数据的机密性与完整性,防止来自特权软件和未授权外设的攻击。
  • 性能优化:在不显著增加性能开销的前提下,保证 GPU 计算任务的顺利执行。
  • 无需硬件修改:CAGE 利用 Arm CCA 和 GPU 中的现有硬件特性,不需要对硬件进行修改。

基于以上目标和 Arm CCA 的现有硬件安全特性,CAGE提出了关键观察和相应的解决方案。

首先,CAGE 利用 Arm CCA 中的 Granule Protection Check (GPC) 技术,保护 GPU 计算过程中的数据安全。GPC 允许灵活地隔离和保护 CPU 和外围设备上的计算,确保数据在传输和处理过程中的安全性。CAGE 的安全模块部署在 root world Monitor 中,通过硬件隔离确保 GPU 计算免受不可信软件(如操作系统、虚拟机管理程序、以及安全世界组件)和外设的影响。

其次,CAGE 通过 shadow task 机制,将 GPU 软件栈中的非敏感任务(如内存分配和任务调度)与敏感数据分离。GPU 软件负责任务调度,但不会直接访问敏感数据。任务调度的核心功能(如内存分配、任务排序等)由不可信的 GPU 软件处理,而真实的敏感数据在Realm中进行处理,确保数据的机密性。

四、技术解析

CAGE 通过 shadow task 机制和 GPC 技术有效解决了 GPU 数据安全问题。

4.1 Shadow Task 机制

CAGE 引入了 shadow task 机制,以减少性能开销和保护敏感数据。具体流程如下:

  1. 初始化与任务创建:用户提供 GPU 任务代码和数据缓冲区描述,GPU 软件在主机上创建 stub 任务,此时数据不包含敏感信息。
  2. 任务替换与执行:当任务被提交到 GPU 时,Monitor 会将 stub 任务替换为真实任务,并将敏感数据填充到GPU任务缓冲区。任务执行前,Monitor 会验证数据完整性和任务代码。
  3. 环境恢复:任务执行完成后,Monitor 会清理 GPU 环境,确保下次任务的安全执行。

4.2 GPU 环境保护与内存隔离

CAGE 使用 GPC 技术为 GPU 提供内存隔离,确保 GPU 计算环境的安全。GPU 使用 GPU GPT 来保护其内存访问,确保每个 realm 拥有独立的内存视图,防止其他 realm 或未授权外设访问其内存区域。通过为每个 realm 配置独立的 GPU GPT,GPU 只访问该 realm 授权的内存区域,确保了 GPU 执行环境不被未授权的软件访问。

4.3 GPT 维护与优化

CAGE 对 GPT 维护进行了优化,减少了多重 GPT 同步带来的性能开销。通过共享一个 子级 GPT,减少了 CPU 和外围设备 GPT 的同步开销。此外,CAGE 从 GPU GPT 模板 创建每个 realm 的 GPU GPT,减少初始化时的性能开销​。 

五、验证评估

CAGE 通过功能性原型和性能原型进行了验证,评估结果如下:

  • 安全性评估:CAGE 防护了来自未授权软件、恶意 GPU 任务和外设的攻击,确保 GPU 计算中的敏感数据不会泄露。
  • 性能评估:通过在 Arm FVP 模拟器 和 Juno R2 开发板 上进行实验,CAGE 展示了较低的性能损失​。得益于其优化的 GPT 维护机制和 GPU 环境保护机制,CAGE 在实际平台上的平均性能开销仅为 2.45%,在保持高性能的同时,提供了良好的数据安全保护,且其设计不依赖硬件修改,具有较好的兼容性。

六、结论总结

CAGE 通过创新的 shadow task 机制和 GPC 技术,成功为 Arm CCA 提供了 GPU 加速支持,同时保证了 GPU 计算过程中的数据安全性。其设计无需硬件修改,能够兼容未来的 Arm 设备,并且性能开销仅为 2.45%,实现了机密 GPU 计算的高效性。CAGE 与现有的 GPU TEE 方案相比,在硬件兼容性、性能和数据安全性上展现了明显优势。


本账号发布内容均为原创,欢迎转载,转载请注明出处。更多资讯请移步【机密计算前沿技术】服务号,欢迎交流!