目录

  • 1. 学习目标:
  • 2 What is Confidential Computing?
    • 2.1 Arm CCA requirements
  • 3 Arm CCA extensions
    • 3.1 Realms
    • 3.2 Realm world and Root world
    • 3.3 What is the difference between Arm TrustZone extensions and Arm RME?
  • 4 Arm CCA hardware architecture
    • 4.1 Realm world requirements

1. 学习目标:

• 机密计算的定义
• 描述一个复杂的系统信任链
• 了解 Realm 是 Arm CCA 引入的受保护执行环境
• 解释如何在 Arm CCA 的实施中创建、管理和执行领域
• 定义可信执行环境 (TEE) 和领域之间的区别
• 解释 Realm 所有者如何在 Realm 中建立信任

相关文档:
<Introducing-Arm-Confidential-Compute-Architecture.pdf>
AArch64 Exception model
AArch64 Memory management
AArch64 virtualization
Introduction to security

2 What is Confidential Computing?

机密计算是通过在可信赖的硬件支持的安全环境中执行计算来保护使用中的数据。
这种保护保护代码和数据免受特权软件和硬件代理的观察或修改。

在机密计算环境中执行的任何应用程序或操作系统都可以与系统的其余部分隔离地执行。 未经明确许可,在该平台上执行的任何其他参与者都无法观察到隔离执行生成或消耗的任何数据

2.1 Arm CCA requirements

在 Arm CCA 系统中执行的代码不必信任在环境或任何可能影响环境的外围设备上执行的大型复杂软件堆栈,例如支持 DMA 的设备。 Arm CCA 消除了与软件堆栈或硬件开发人员的许多关系的需要

如果安全架构师在云服务器系统上部署负载,他们可能不知道该系统的虚拟机管理程序的开发人员是谁,他们可能会考虑 Arm CCA。 由于虚拟机管理程序未知,这可能导致在没有 Arm CCA 的平台上执行缺乏信任

Arm CCA 允许应用程序开发人员安全地部署工作负载,而无需信任底层软件基础设施,例如安全世界中的虚拟机管理程序、内核或核心。

为了允许 Arm CCA,平台必须提供以下内容:
• 提供与所有不受信任的代理隔离的执行环境
• 建立执行环境已初始化为可信赖状态的机制。 初始化将要求执行环境拥有自己的信任链,独立于平台中并行不可信环境使用的信任链

3 Arm CCA extensions

Arm CCA 允许您部署应用程序或虚拟机 (VM),同时防止更有特权的软件实体(例如管理程序)进行访问。但是,通常管理内存等资源的正是这些特权软件实体。在这种情况下,特权软件实体(例如管理程序)确实可以访问应用程序或 VM 的内存。
Arm CCA 允许您控制 VM,但删除了访问该 VM 使用的代码、寄存器状态或数据的权利。
通过创建名为 Realms 的受保护 VM 执行空间来实现分离。 Realm 在代码执行和数据访问方面与正常世界完全隔离。 Arm CCA 通过结合架构硬件扩展和固件来实现这种分离。
在 Arm CCA 中,Arm 应用程序 PE 上的硬件扩展称为领域管理扩展 (RME)。 RME 与领域控制的专业固件交互,称为领域管理监视器 (RMM),以及异常级别 3 中的监视器代码。
我们在 Arm CCA 硬件架构和 Arm CCA 软件架构中描述了这些元素。

3.1 Realms

Realm 是一个 Arm CCA 环境,可以由 Normal world Host 动态分配。主机是管理应用程序或虚拟机 (VM) 的监控软件。 Realm 及其执行平台的初始状态可以被证明。证明允许 Realm 所有者在向 Realm 提供任何机密之前建立对 Realm 的信任。 Realm 不必从控制它的非安全虚拟机管理程序继承信任。主机可以分配和管理资源分配。 Host 可以管理 Realm VM 操作的调度。但是,Host 无法观察或修改 Realm 执行的指令。领域可以在主机控制下创建和销毁。可以通过主机请求以类似于管理任何其他非机密 VM 的管理程序的方式添加或删除页面。

要运行 CCA 系统,需要修改 Host。主机继续控制非机密虚拟机,但需要与 Arm CCA 固件通信,特别是领域管理监视器 (RMM)。 RMM 的操作在 Arm CCA 软件扩展中讨论。

3.2 Realm world and Root world

Armv8-A TrustZone 扩展允许安全执行代码和隔离数据,通过两个独立的世界,安全世界和正常世界。世界是 PE 的安全状态和物理地址空间的组合。 PE 正在执行的安全状态决定了 PE 可以访问哪些物理地址空间。在安全状态下,PE 可以访问安全和非安全物理地址空间,而在非安全状态下,它只能访问非安全物理地址空间。正常世界通常用于指代非安全状态和非安全物理地址空间的组合。作为 Armv9-A 的一部分提供的 Arm CCA 引入了领域管理扩展或 RME。这个扩展引入了两个额外的世界,Realm 世界和 Root 世界:
• Root world 引入了Root 安全状态和Root 物理地址空间。 PE 在异常级别 3 中运行时处于根安全状态。根 PA 与安全 PA 是分开的。这是与 Armv8-A TrustZone 的主要区别,其中异常级别 3 代码没有私有地址空间,而是使用安全 PA。后者仍然被 S_EL2/1/0 使用。 Monitor 在 Root 世界中运行。

• Realm 世界类似于 TrustZone Secure 世界。 Realm 世界由 Realm 安全状态和 Realm PA 组成。 Realm 状态代码可以在 R_EL2、R_EL1 和 R_EL0 执行,并且在 Realm 世界中运行的控制固件可以访问 Normal 世界中的内存以允许共享缓冲区。

下图显示了四个基于 RME 的世界,以及它们与 SCR_EL3 NS 和 NSE 位的关系:

Root world允许可信启动执行和不同世界之间的切换。 PE 重置为 Root 世界。 Realm 世界为 VM 提供了一个与正常和安全世界隔离的执行环境。在正常世界中,VM 需要来自主机的控制。为了完全控制 Realm 创建和执行,Arm CCA 系统提供:
• 领域管理扩展,这是架构所需的硬件扩展,以允许隔离的领域虚拟机执行
• 领域管理监视器,它是固件的一部分,用于根据普通世界主机的请求管理领域的创建和执行

我们在 Arm CCA 硬件架构和 Arm CCA 软件架构中更详细地描述了这些组件。非 RME PE 中的世界切换由 SCR_EL3.NS 位控制。异常级别 3 软件在切换到安全世界时设置 NS = 0,在切换到正常世界时设置 NS = 1。 RME 实现的 PE 中的世界切换通过添加到 SCR_EL3 寄存器的新 SCR_EL3.NSE 位进行扩展。下表显示了这些位如何控制四个世界之间的执行和访问:

3.3 What is the difference between Arm TrustZone extensions and Arm RME?

所有 Arm A-Profile 处理器都可以选择实现 Arm TrustZone 架构扩展。这些扩展允许开发独立的执行和数据环境。像可信操作系统 (TOS) 这样的元素可以为可信应用程序提供服务,这些应用程序独立执行,以服务来自正常世界中运行的富操作系统的安全请求。

Armv8.4-A 在安全世界中添加虚拟化,让您可以在安全世界中管理多个安全分区。此功能可以允许将多个 TOS 应用于一个系统。在 S_EL2 执行的安全分区管理器 (SPM) 是安全分区的管理器。 SPM 具有与普通世界中的虚拟机管理程序类似的功能。

在操作中,Trusted OS 通常是信任链的一部分,它由更高权限的固件验证,在某些系统中这可能是 SPM。这意味着 TOS 依赖于与更高权限固件开发人员的关系。

有两种方法可以启动 TOS 的执行:
• Rich OS yielding,Rich OS进入空闲循环,执行SMC指令通过Monitor调用TOS
• 以可信操作系统为目标的中断。安全类型 1 中断用于执行 TOS。在正常世界执行期间断言的安全类型 1 中断通过监视器调用 TOS。

Realm 虚拟机不同于 Trusted OS 或 Trusted 应用程序,因为 Realm VM 是由 Normal world Host 控制的。在创建和内存分配等方面,Realm VM 的行为与任何其他受主机控制的 VM 一样。 Realm VM 执行和 Trusted OS 执行之间的区别在于 Realm 没有启用任何物理中断。 Realm 的所有中断都由管理程序虚拟化,然后通过传递给 RMM 的命令发送给 Realm。这意味着受损的管理程序可能会阻止 Realm VM 的执行,因此无法保证 Realm 的执行

Realm 执行和内存访问由控制主机软件(例如管理程序)初始化。 Realm 不必由主机验证。 Realm 可以绕过任何信任链,因为它可以使用 RME 初始化证明。有关更多信息,请参阅证明。 Realm 也与控制软件完全隔离。如果 Realm 由 Host 初始化,则 Host 无法查看 Realm 的数据或数据存储器。

Realms 和 TOS 的使用之间的主要区别在于安全执行和 Realm 执行之间的设计意图。

可信应用程序用于接近系统开发的参与者所拥有的平台特定服务,例如有机硅供应商 (SiP) 和原始设备制造商 (OEM)。

Realm 执行的目的是允许一般开发人员在系统上执行代码,而无需与计算系统中的开发人员建立复杂的业务关系。

Arm CCA 允许在普通世界主机的控制下按需创建和销毁领域。可以从 Realms 动态添加或检索资源。这为更多应用程序和用户带来了与设备相关的服务可用的隔离优势。

信任通常根据机密性、完整性和真实性进行定义,并在以下列表中进行了解释:
• 由于机密性,Arm CCA 环境的代码数据或状态无法被同一设备上运行的其他软件观察到,即使该软件具有更高的特权
• 由于完整性,Arm CCA 环境的代码数据或状态无法被同一设备上运行的其他软件修改,即使该软件具有更高的特权
• 具有真实性,同一设备上运行的其他软件可以修改代码或数据,但可以识别任何更改

可信应用程序和 TOS 可以为系统提供机密性、完整性和真实性。 Realm 执行可以为系统提供机密性和完整性

Arm CCA系统提供的四世界环境,让Secure世界和Realm世界完全分离。这意味着可信应用程序不必关心任何领域虚拟机的执行,领域虚拟机也不关心任何可信应用程序的执行

4 Arm CCA hardware architecture

4.1 Realm world requirements


和其它的security state一样,Realm world也有3个exception levels: R_EL0、 R_EL1、 and R_EL2. 其中:
Realm VMs 运行在R_EL1和R_EL0.
Realm Management Monior (RMM)运行在R_EL2

15-Arm-Confidential-Compute-Software-Stack相关推荐

  1. 适合arm的linux系统下载,深度操作系统提供有ARM版:Deepin 15 ARM介绍

    本文为你介绍深度操作系统15 ARM版(2016年产品,只有专业版有支持).深度操作系统15 ARM在NanoPi2上使用方法.Deepin 15 ARM版本系统更新说明. 前言 有深度用户提问:是否 ...

  2. 1.15.ARM汇编指令3之逻辑指令

    ARM汇编指令之逻辑指令:and & orr & eor & bic * and 逻辑与操作指令,将operand2的值与寄存器Rn的值按位逻辑与操作,结果保存到Rd中. 指令 ...

  3. arm模拟器手机版_再也不用花钱买开发板了,自己搭建arm模拟器!

    很多时候,做嵌入式往往需要大量的金钱来购买设备,并且带着这些电路板非常的不方便,那么有没有一种办法可以解决这个问题呢?这时就可以利用QEMU来模拟一个设备进行实验了. 1. 介绍 QEMU是一套由法布 ...

  4. Arm十年最大更新:V9架构正式发布

    来源:由半导体行业观察(ID:icbank) 编译:「anandtech」 自Arm在2011年10月首次发布Armv8架构以来,已经过去了近十年的时间.这对Arm来说是一个相当可观的十年,因为在这段 ...

  5. ARM 之十四 ARMv9 架构前瞻

      在 2021 年的 Arm Vision Day 上(2021年 3 月 30,对应的北京时间应该是 2021 年 3 月 31 日),ARM 展示了其最新的架构:ARMv9.ARMv9 被 AR ...

  6. Arm v9“机密计算架构(CCA)” 能实现什么?

    ARM V9机密计算 机密计算:下一个安全处理的时代 Arm CCA:随时随地保护数据与代码 赋能所有开发者访问的安全功能 放眼未来:广泛适用于所有工作负载 在过去的几年里,我们已经看到安全性和硬件安 ...

  7. [armv9]-ARMV8/ARMV9安全架构介绍(ARMv9 CCA)

    文章目录 1.术语 2.Architecture overview 2.1.ARMV7的软件模型 2.2.ARMV8-arch32的软件模型 2.3.ARMV8-arch32的软件模型 2.4.ARM ...

  8. 了解Stack Overflow,这是您获得编程和调试知识的途径

    无休止的知识? (Endless knowledge?) Can you imagine a platform where you could access the advice and wisdom ...

  9. ARM全新Armv9架构:10年最大更新、增强AI和security能力

    ARM 公司正式宣布推出全新的 Armv9 架构,这是自 2011 年 10 月推出 Armv8 架构近十年之后,该公司对其 CPU 架构的首次重大调整变革.多年来,ARM 公司一直对指令集架构进行各 ...

  10. ARM Cortex-M处理器详解

    ARM Cortex-M处理器家族现在有8款处理器成员.在本文中,我们会比较Cortex-M系列处理器之间的产品特性,重点讲述如何根据产品应用选择正确的Cortex-M处理器.本文中会详细的对照Cor ...

最新文章

  1. C++随笔(2007-07-09)
  2. javascript的ES6学习总结(第三部分)
  3. Jetty实战之 嵌入式Jetty运行web app
  4. 已知三角形三边长怎么求面积_解三角形问题中的常见错解分析
  5. 每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列
  6. NLP-基础知识-004(生成模型)
  7. python 获取文件后缀名的方法
  8. 十问十答 GPL 许可证
  9. 同时寻找最大数和最小数的最优算法 第二大数
  10. 海南大学植物代谢组学技术开发与创新应用课题组博士后招聘
  11. 分布式系统认证方案_分布式系统认证需求_Spring Security OAuth2.0认证授权---springcloud工作笔记135
  12. 聊聊零基础的我是如何学python的_零基础学python-4.3 对象的比较
  13. 《深入浅出Python机器学习》读书笔记 第一章 概述
  14. Python可视化 | 风玫瑰图可视化示例
  15. Revit安装错误1308?Revit软件安装时出现安装错误1308怎么办?
  16. 小程序源码:独家修复登录接口社区论坛-多玩法安装简单
  17. 团支部工作计划小学体育工作总结
  18. WebP_支持:超乎你想象
  19. 若依前端分离框架-修改关于若依文字的网页标题
  20. 金蝶云星空与旺店通集成解决方案(金蝶主管库存)

热门文章

  1. 运维工程师仪表免费换新活动开始了…任何品牌万用表、钳表、测温仪都可以换福禄克万用表、钳表、测温仪...
  2. 云计算,大数据,5G和人工智能
  3. 2018年超大规模数据中心总数达到430个
  4. 成功解决AttributeError : ‘GridSearchCV‘ object has no attribute ‘grid_scores_‘
  5. DL之CNN:卷积神经网络算法简介之卷积矩阵、转置卷积(反卷积Transpose)、膨胀卷积(扩张卷积Dilated/带孔卷积atrous)之详细攻略
  6. NLP之NBGBT:基于朴素贝叶斯(count/tfidf+网格搜索+4fCrva)、梯度提升树(w2c+网格搜索+4fCrva)算法对IMDB影评数据集进行文本情感分析(情感二分类预测)
  7. Py之skflow:skflow的简介、安装、使用方法、代码实现之详细攻略
  8. 成功解决TypeError: tuple indices must be integers or slices, not str
  9. Hacker:编写高级语言脚本可破解各个云盘的下载速度限制
  10. python中的with