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

[armv9]-Introducing-Arm-Confidential-Compute-Architecture相关推荐

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

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

  2. ARM 之十四 ARMv9 架构前瞻

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

  3. ARMv9刷屏 —— 号称十年最大变革,Realm机密计算技术有什么亮点?

    简介: 让我们看下ARMv9机密计算相关的新特性Realm. ARMv9的新闻刷屏了.ARMv9号称十年以来最重大变革,因此让我们看下ARMv9中机密计算相关的新特性Realm.(注:本文是对Intr ...

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

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

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

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

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

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

  7. 可供货华为!ARM 十年来首次发布最新架构 Armv9

    整理 | Carol 出品 | CSDN(ID:CSDNnews) 3月31日,ARM发布了全新CPU架构ARMv9,这是ARM自2011年10月推出Armv8架构后,10年来首次对CPU架构的进行重 ...

  8. opengl arm linux,开源头条 | ARM v9架构发布

    ARM v9架构发布 Arm昨日发布ARMv9架构,专注于高性能计算.机器学习.数字信号处理和安全 性. ARMv9引入了Arm的Confidential Compute Architecture(C ...

  9. 尝试梳理下ARM处理器的发展历史

    大家好,这篇文章是我的朋友Michael Yao写的,我觉得非常不错,分享给大家. 1. 前言 本文尝试简单梳理下ARM处理器的发展历史.架构的演进,包括不同处理器的应用方向,但我们重点还是围绕Cor ...

  10. Arm 为智能摄像头提供安全的计算机视觉

    ​中国有句古话,眼观六路,耳听八方,敏锐的观察和感知能力是人类智慧的基础.传统的摄像头只有感知功能,并不能理解图像所描述的人和事物.计算机视觉利用人工智能(AI)让智能摄像头等设备变得聪明,可以解释和 ...

最新文章

  1. selenium常用命令之操作页面元素及获取元素内容的事件整理
  2. 内容创业时代,粉丝已死
  3. Android开发技术周报 Issue#72
  4. 《Linus Torvalds自传》摘录
  5. Win7系统还原声音图标的方法
  6. Bootstrap pc pad phone 响应式布局
  7. 您第一次上网的速度是多少?
  8. 【Canvas】字体图标一、 Unicode 字体符号绘制 / 兼容IE
  9. 翻转课堂融入计算机课,【计算机基础论文】大学计算机基础翻转课堂的构建思路(共3745字)...
  10. 中国物流市场趋势报告、技术动态创新及市场预测
  11. 采用汇编语言对c语言函数调用的方法求平均数 汇编实验报告,汇编措辞调用C措辞求平均数.doc...
  12. 使用conda从requirements.txt中安装依赖包
  13. scrapy 远程登录控制台
  14. 编译ros21讲中的服务端Server时报错
  15. 怎么还原计算机字体库,如何在XP系统中恢复字库文件?WinXp系统恢复字库文件图文教程...
  16. 爬取网易云音乐评论《安河桥》,进行分析
  17. Leetcode TOP Questions
  18. Socket编程之地址之间转换、字节序转换
  19. win10网络和internet设置没有wlan选项
  20. 计算机和游戏建立不了连接,两台未联网的Win7电脑如何建立局域网游戏

热门文章

  1. html判断表单是否为空,layui判断表单是否为空
  2. 数据中心冷却塔结冰应急演练
  3. 新基建重点,5G时代基石,数据中心加速发展
  4. vue在js上处理后台返回的数组_vuejs 根据后台返回数组,渲染图片路径
  5. 成功解决VirtualBox is not installed. Please re-run the Toolbox Installer and try again.
  6. 成功解决FileNotFoundError: [Errno 2] No such file or directory: '/home/bai/Myprojects/Tfexamples/data/kn
  7. Py之textgenrnn:textgenrnn库的简介、安装、使用方法详细攻略
  8. Matlab:利用Matlab实现布朗运动模拟
  9. DayDayUp:2018年06月07日高考必胜:程序猿的方式祝福莘莘学子高考必胜!
  10. 封装汉语自然语言处理中的常用方法(附代码:生成中文词云)