ARM-V9 RME(Realm Management Extension)系统架构之系统能力的内存隔离和保护

安全之安全(security²)博客目录导读

目录

一、内存隔离和保护

1、颗粒PAS过滤Granular PAS filtering

2、Cache的一致性维护

2.1 物理别名点 Point of Physical Aliasing (PoPA)

2.2 加密点

3、内存(DRAM)保护

3.1 内存加密和完整性

3.2 DRAM scrubbing


本博客探讨 RME 所需的系统能力,以保证 Arm CCA 对于 Realms 的安全性和隔离特性。

一、内存隔离和保护

架构上独立的物理地址空间的概念使得形成强大的内存保护隔离边界成为可能。

本节定义了使用物理地址空间保证内存隔离的规则,以及通过这些空间将资源映射到安全状态的方法。

可以从每个安全状态访问的物理地址空间在下表中定义,即 PAS 访问表:

资源是一个可寻址物理实体。RME 系统中的资源仅在与资源物理地址空间 (Resource PAS) 关联时才可访问。

资源与资源 PAS 的关联由 SSD 或 MSD 控制。

资源与资源 PAS 的关联可以由隔离硬件静态设置,也可以在运行时由 MSD 固件更改

对资源的访问与以下内容相关联:

  • 根据 PAS 访问表,访问 PAS。
  • MECID。

对于通过第一级或第二级 MMU 访问资源的请求者,根据 PAS 访问表分配访问 PAS 由 MMU SSD 硬件强制执行。 对于不通过第一级或第二级 MMU 访问资源的请求者,例如通用中断控制器 (GIC) 或调试访问端口,分配访问 PAS 和 MECID 并符合上述要求由请求者端的 SSD 硬件强制执行。

SSD 硬件是不可变的或由 SSD 组件专门控制的硬件,例如受信任子系统。

附加到请求的 PAS 标签传达其相关的访问 PAS。

ARM架构参考手册和ARM SMMU架构规范定义了从每个安全状态设置访问 PAS 的编程模型。

通过非第一级或第二级 MMU/SMMU 访问内存映射资源的请求者必须支持一种方法,该方法由 SSD 硬件强制执行,以根据 PAS 访问表标记访问的访问 PAS。

例如:

  • 调试访问端口 (DAP) 可以向外部调试器暴露一个编程寄存器,允许为任何访问主内存或 APB 外设的操作设置一个访问 PAS 到一个允许的值,这取决于调试认证接口的状态。
  • 如果调试认证接口允许 RMSD 外部调试但不允许安全外部调试,则 DAP 硬件会拒绝将寄存器编程为访问 PAS == Secure 的尝试。
    • 此外,如果调试认证接口允许 RMSD 外部调试,则 DAP 硬件可以允许访问 PAS == Realm 的访问来指定编程的 MECID。

一旦分配,访问 PAS 的值不能更改。

系统不得暴露任何允许覆盖访问 PAS 值的寄存器或调试机制。

PAS 过滤器通过仅允许访问与该资源关联的资源 PAS 匹配的访问 PAS 来强制执行 PAS 保护检查。

系统中的每个请求者都必须接受 PAS 保护检查。

在此上下文中,请求者包括以下任何一种:

  • 处理单元(PEs),由主操作系统或管理程序用来执行用户应用程序或内核线程。
    • 本规范中还使用术语“应用 PEs”来区分主机软件可见的处理单元和嵌入系统设备中的处理单元。
  • 非 PE 请求者,可能是完全一致的、IO 一致的或非一致的(fully coherent, IO-coherent, or Non-coherent)。
    • 这包括任何支持发起内存访问的设备,如缓存预取器(cache prefetchers)、通用中断控制器 (GIC) 或调试访问端口(DAP)。
    • 其他示例包括外围设备,包括 PCIe 设备或可能包含非应用 PEs 的控制处理器。

某些受信任的请求者遵循 PAS 保护检查,而无需经过 PAS 过滤器。

  • PAS 过滤器可以直接访问根 PAS 中的资源,如存储在 DRAM 中的保护表。
  • 内存保护引擎 (MPE) 可以直接访问根 PAS 中的资源,如存储在 DRAM 中的完整性标签。
  • 受信任的子系统可以使用硬连线映射直接访问外围寄存器或 SMEM,将资源与根 PAS 关联。

术语“completer ”指包含资源并响应访问的组件。

对于某些资源,如外围设备或 SMEM,PAS 过滤器可以位于completer侧。对于其他资源,如 DRAM,PAS 过滤器必须附加到所有访问该资源的请求者上。RME 系统架构规则保证无论哪种结构,都能保持隔离。

MSD 资源位于根 PAS 中,由在 EL3 运行的软件管理。

对根 PAS 的访问仅允许受信任的请求者进行。

受信任的请求者包括:

  • 在根安全状态 (EL3) 下执行的 PE。
  • 受信任的子系统。例如,受信任的 SCP 或托管 HES 的子系统。
  • 内存保护引擎。
  • PAS 过滤器。

RMSD 资源位于 Realm PAS 中(RMSD Resources are in the Realm PAS),由在 Realm 安全状态下 EL2 运行的软件管理。

术语“资源 X 位于 PAS Y”表示资源 X 仅在 PAS Y 中可访问,除非明确允许资源在多个 PAS 中可访问。

1、颗粒PAS过滤Granular PAS filtering

颗粒 PAS 过滤是以页面(物理粒度)的粒度将资源与 PAS 进行可编程关联。

颗粒 PAS 过滤器根据颗粒保护表(GPT)指定的物理粒度资源 PAS 检查访问 PAS。如果检查失败,则访问将被中止,并报告粒度保护错误(GPF)。

在满足以下条件时,可以使用颗粒保护表将资源与 PAS 关联:

  • 每个 PAS 中只有一个物理地址(PA)可以访问资源,并且该 PA 的值在所有物理地址空间中相同。
  • 资源可以以页面粒度分配给 PAS。

术语粒度保护检查(GPC)指代请求者侧的颗粒 PAS 过滤器,此类过滤器可以附加到 MMU 或 SMMU 上。

GPC 是请求者侧的 PAS 过滤器。在系统构建中,来自应用 PE 或附加到 SMMU 的请求者的任何访问首先经过请求者侧的 PAS 过滤器,然后才能到达完成者侧的 PAS 过滤器。因此,GPT 的编程必须考虑特定资源的完成者侧 PAS 过滤器的潜在存在。

对于由完成者侧 PAS 过滤器保护的资源,可以省略粒度保护检查,在这种情况下,资源在 GPT 中标记为“允许所有访问”。

MSD 保证所有受粒度保护检查约束的请求者看到的一致的粒度保护表视图。

内存加密规则意味着当粒度的 PAS 关联更改时,粒度内容不会被保留。然而,软件不能依赖粒度过渡到新 PAS 作为隐式清除事件,必须在将粒度过渡到非安全 PAS 之前显式清除粒度内容。

片上资源的粒度保护检查只能依赖于存储在片上或存储在具有同等级别的完整性和重放保护的片外粒度保护表。

适用于非幂等位置的粒度保护检查不允许在访问的粒度保护检查完成之前对非幂等位置进行任何推测性访问。

一个非幂等位置的例子是读取敏感的内存映射外围寄存器。对非幂等内存的推测性读取访问可能导致不可预测的行为。因此,使用 GPC 将非幂等位置分配给 Realm、安全或根 PAS 的系统必须在允许访问非幂等位置之前完成对其的 GPC。

如果请求者侧的颗粒 PAS 过滤器处于复位状态,则与其关联的任何请求者都处于复位状态或被阻止访问内存。

这允许在初始化系统时实现可预测的访问控制行为。

2、Cache的一致性维护

2.1 物理别名点 Point of Physical Aliasing (PoPA)

物理别名点(PoPA)是cache维护操作的参考位置。

以可以缓存的内存为目标的PA与PAS相关联,直到到达PoPA。(A PA that targets memory that can be cached is associated with a PAS until reaching the PoPA. )

当 PA 与 PAS 关联时,任何 PA 比较操作都包括 PAS。这适用于系统的任何层次结构级别(包括L1数据和指令缓存)上位于PoPA之前(在请求者和PoPA之间)的任何缓存或snoop filter。这是维护将分离的物理地址空间作为系统全局安全属性的原则所必需的。

RME系统支持按照ARM架构参考手册对PoPA进行缓存维护操作。对PoPA (PoPA CMO)的缓存维护操作的范围是Outer Shareable可共享域。

PoPA CMO 影响系统中具有指定 {PAS, PA} 的任何缓存副本,无论以下条件如何:

  • 缓存时的共享域。
  • 系统支持单个还是多个外部共享性域。
  • 在具有 MEC 的系统中缓存时的 MECID。

例如,实现必须保证从一个PE发送的PoPA CMO会影响被其他PE分配为不可共享的缓存行。这种保证通常需要snoop过滤器注册任何分配到位于颗粒保护检查之后的完全一致缓存的分配,而不管导致分配的访问的可共享性属性。

实现可以通过让应用 PE 人为地将非共享可缓存访问转换为内部共享可缓存或外部共享可缓存来支持这一点,但必须保证当其他请求者继续使用非共享属性访问相同位置时,内存一致性和连贯性语义得以保留。

非 PE 请求者在分配到粒度保护检查之前的缓存时,可以继续使用非共享可缓存属性,因为这种缓存的后续回写总是通过 PAS 保护检查。

2.2 加密点

加密点(PoE)是缓存维护操作的参考位置。带有 MEC 的 RME 系统支持PoE 缓存维护操作。

对可缓存内存位置的访问与 MECID 关联,直到达到 PoE。

当一个位置的副本分配到缓存中时,它将存储分配访问的 MECID。

缓存清理操作(由于缓存维护操作和自然清除)导致的内存访问使用缓存条目的MECID。

3、内存(DRAM)保护

3.1 内存加密和完整性

有几种内存加密和完整性方案适用于RME系统。

基本的加密要求是支持对外部内存进行加密,对于每个PAS使用单独的加密密钥或tweak,并使用地址tweak提供空间隔离。RME防止运行时软件访问外部内存中的密文。

加密内存的完整性和新鲜度是额外的、依赖于威胁模型的能力,用于ARM机密计算安全模型中规定的Arm CCA安全保证。

使用术语Memory Protection Engine(MPE)来描述提供外部内存加密和完整性服务的组件。 在ARM机密计算安全模型中定义了一种可用于Arm CCA系统的内存保护方案分类方法。

分配给安全PAS、领域PAS或根PAS的外部内存必须使用提供至少以下全部内容的方法进行加密

  • 对于每个PAS的唯一加密上下文。
  • 对于每个加密数据块(如128位内存块)的唯一地址tweak调整。
  • 如果不支持加密内存完整性,则使用确保加密数据块上的比特扩散的加密模式。
  • 在具有MEC的系统中,在领域PAS中为每个MECID使用不同的加密上下文。

在写入外部内存或位于PoPA之后的任何共享缓存之前对数据进行加密。

在具有MEC的系统中,在写入外部内存或位于PoE之后的任何共享缓存之前对数据进行加密。

在具有MEC的系统中,MECID用于标识加密上下文,例如加密密钥或调整值,这些可能存储在MECID索引表或MECID标记的缓存中。

存储加密上下文的内存映射数据结构必须位于根PAS中的SMEM中,例如MSD SMEM。

3.2 DRAM scrubbing

使用术语“scrubbing”来描述一种操作,保证了先前的内存位置的内容不再可读。

术语“ECC-scrubbing”用于描述刷新DRAM ECC状态的操作。

在系统启动时,可能已经被分配给安全PAS、领域PAS或根PAS的内存必须在非受信任的请求者被授予对该内存的访问权限之前进行擦除。因为RME系统支持内存加密,所以在RME系统重置时,通过重置所有存储的内存加密密钥来隐式执行擦除。

位于PoPA之后的ECC-scrubbing引擎不能通过错误记录寄存器等途径泄露机密信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/19066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络编程 —— Http使用httpClient实现页面爬虫

先去找类型的a标签 取出图片所在网址 取出https://desk.3gbizhi.com/deskMV/438.html 搭建Form界面 Http类 public static HttpClient Client { get; } static Http() {HttpClientHandler handler new HttpClientHandler();//处理消息对象//ServerCertificateCustomValidat…

万亿应急国债项目之通信指挥类应急装备多链路聚合通信设备在应急行业中的重要作用

万亿应急国债项目的推出,无疑是我国在应急领域的一次重大举措。在这一宏大蓝图中,通信指挥类应急装备的多链路聚合通信设备显得尤为重要,其在应急行业中所发挥的作用,堪称不可或缺的关键一环。 通信指挥是应急响应中的核心环节&a…

QT C++ 读写mySQL数据库 图片 例子

在上篇文章中描述了怎样搭建读写数据库的环境。 本文更进一步,描述了读写mySQL数据库,字符、整型数字、图片。读写图片相对难点。 数据库的图片字段用BLOB,如果图片较大要用longblob,否则会报错。 另外,读写数据库都使用了短连…

图形学初识--空间变换

文章目录 前言正文矩阵和向量相乘二维变换1、缩放2、旋转3、平移4、齐次坐标下总结 三维变换1、缩放2、平移3、旋转绕X轴旋转:绕Z轴旋转:绕Y轴旋转: 结尾:喜欢的小伙伴可以点点关注赞哦 前言 前面章节补充了一下基本的线性代数中…

前端Vue小兔鲜儿电商项目实战Day02

一、Pinia快速入门 此处见:Vue从入门到实战Day12-CSDN博客 二、创建项目并精细化配置 1. 创建项目 2. src目录调整 ①删除一些初始化的默认文件 清空assets、components、store、views文件夹下的内容; ②修改剩余代码内容 router/index.js import …

华为昇腾310 ATC模型转换工具安装

参考: https://bbs.huaweicloud.com/blogs/393282?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content https://www.hiascend.com/document/detail/zh/canncommercial/601/inferapplicationdev/atctool/atctool_0004.html 1、基本工具…

js知识点之闭包

闭包 什么是闭包 闭包,是 JavaScript 中一个非常重要的知识点,也是我们前端面试中较高几率被问到的知识点之一。 打开《JavaScript 高级程序设计》和《 JavaScript 权威指南》,会发现里面针对闭包的解释各执一词,在网络上搜索关…

23种设计模式之一— — — —装饰模式详细介绍与讲解

装饰模式详细讲解 一、定义二、装饰模式结构核心思想模式角色模式的UML类图应用场景模式优点模式缺点 实例演示图示代码演示运行结果 一、定义 装饰模式(别名:包装器) 装饰模式(Decorator Pattern)是结构型的设计模式…

学业辅导导师:文心一言智能体详细介绍和开发

一、前言 本期题目 开发方向:学习成长类 解读: AI技术在学习成长方向的应用正日益增多,本期赛题需围绕该方向开发智能体包括但不限于:作文辅导助手、个性化学习助手、考试助手、各垂类教育内容专家等 二、我的智能体:学业辅导…

2.10 mysql设置远程访问权限

2.10 mysql设置远程访问权限 目录1. 管理员运行mysql命令窗口2. 使用 root 用户重新登录 MySQL3. 修改用户权限4. 修改mysql安装目录下的my.ini 目录 说明: Mysql8.0 设置远程访问权限 一、Mysql8.0 设置远程访问权限 1. 管理员运行mysql命令窗口 2. 使用 root 用…

matlab安装及破解

一、如何下载 软件下载链接,密码:98ai 本来我想自己生成一个永久百度网盘链接的,但是: 等不住了,所以大家就用上面的链接吧。 二、下载花絮 百度网盘下载速度比上载速度还慢,我给充了个会员&#xff0c…

OpenAI 文生图模型演进:DDPM、IDDPM、ADM、GLIDE、DALL-E 2、DALL-E 3

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

WPF使用Prism实现简单订餐系统

新建wpf项目,nuget引入Prism.DryIoc,MaterialDesignThemes 引入后,修改App.xaml 前台引入 xmlns:prism"http://prismlibrary.com/"和prism:PrismApplication App.xaml.cs App.xaml.cs继承PrismApplication,重写CreateS…

在线等!3damx渲染爆内存怎么办?

在使用V-Ray进行CPU渲染时,复杂场景和高渲染设置可能会导致内存消耗过高,进而影响渲染速度,导致处理异常、机器停滞、应用程序崩溃等情况。 为机器配置更大的 RAM 始终是解决问题的最有效办法,但如果出于预算等原因无法实现&…

Lua的几个特殊用法

:/.的区别 详细可以参考https://zhuanlan.zhihu.com/p/651619116。最重要的不同就是传递默认参数self。 通过.调用函数,传递self实例 通过 : 调用函数,传递self (不需要显示的传递self参数,默认就会传递,但…

Leecode热题100--二分查找---33:搜索旋转排序矩阵

题目: 整数数组 nums 按升序排列,数组中的值 互不相同 。 给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。 思路: 此处采用容易理解的两次…

端口扫描利器--nmap

目录 普通扫描 几种指定目标的方法 TCP/UDP扫描 端口服务扫描 综合扫描 普通扫描 基于端口连接并响应(真实) ​ nmap -sn 网段(0/24)-sn 几种指定目标的方法 单个IP扫描 IP范围扫描 扫描文件里的IP 扫描网段,(排除某IP) 扫描网段(排除某清单IP) TCP/UDP扫描 -sS …

linux中逻辑卷管理与扩展

逻辑卷管理与扩展 逻辑卷 作用: 1.整合分散的空间2.空间支持扩大 逻辑卷制作过程:将众多的物理卷(PV)组建成卷组(VG),再从卷组中划分出逻辑卷(LV) 逻辑卷的逻辑思路 …

哪些公司防泄密软件最受欢迎?2024年防泄密软件排行榜 |

在数字化时代,数据的安全性和保密性已成为企业运营和发展的关键要素。随着技术的不断进步,防泄密软件逐渐成为了企业保护核心数据和知识产权的重要工具。在2024年,市场上涌现出了众多防泄密软件,它们各具特色,为企业的…

杨校老师课题之基于Idea的SSM实训项目案例开发之在线手机商城开发(一)【非常适合初学者】

1.前期配置 2.开发涉及技术栈和工具 2.1 技术栈 后端: SSM前端:Html、CSS、BootStrap(官方定义好的CSS样式)数据库: MySQL 2.2 开发环境(工具) 进行本次开发,需要具备如下环境: JDK a. JDK8.0/1.8 b. 注意: 没有JDK是无法运行IdeaIDEA a. …