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

本文主要是介绍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引擎不能通过错误记录寄存器等途径泄露机密信息。

这篇关于ARM-V9 RME(Realm Management Extension)系统架构之系统能力的内存隔离和保护的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015663

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同