支持Arm CCA的TF-A威胁模型

目录

一、简介

二、评估目标

2.1 假定

2.2 数据流图

三、威胁分析

3.1 威胁评估

3.1.1 针对所有固件镜像的一般威胁

3.1.2 引导固件可以缓解的威胁

3.1.3 运行时EL3固件可缓解的威胁


一、简介

        本文针对支持Arm Realm Management Extension (RME)、实现Arm Confidential Compute Architecture (Arm CCA)的平台,给出了TF-A固件的威胁模型。

        虽然它是一个单独的文档,但它在许多地方引用了通用威胁模型,因为其中一些内容通常适用于具有或不具有Arm CCA支持的TF-A。

二、评估目标

        在此威胁模型中,评估的目标是具有RME支持和Arm CCA支持的ARM A系列处理器可信固件(TF-A)。这包括引导ROM (BL1)、可信引导固件(BL2)和运行时EL3固件(BL31)。

2.1 假定

        我们做了以下假设:

        1)平台上启用了领域管理扩展(RME)。

        2)平台支持Arm CCA硬件强制安全(HES),根据Arm CCA安全模型推荐:

        [R0004] Arm强烈建议所有CCA实现都使用硬件强制安全(CCA HES)。

        3)所有TF-A镜像都是从片上存储器运行的。这些镜像使用的数据也存储在片上存储器中。这意味着TF-A不容易受到可以探测或篡改片外存储器的攻击者的攻击。

        以下是Arm CCA安全模型的要求:

        [R0147]监视器代码完全从片上存储器执行。

        [R0149]除GPT外,任何可能影响CCA安全保证的监视器数据,要么保存在片上存储器中,要么保存在具有额外完整性保护的外部存储器中。

        请注意,该威胁模型通过禁止在外部内存中保存数据来强化[R0149]要求,即使数据是完整性保护的——除了GPT数据。

        4)TF-A BL1镜像是不可变的,因此隐含可信。它从只读内存或写保护内存运行。例如,这可以是片上ROM、片上OTP、锁定片上闪存或写保护片上RAM。

        这是Arm CCA安全模型的要求:

        [R0158] Arm建议所有初始引导代码在安全系统上是不可变的。

        [R0050]如果所有或部分初始引导代码在片上内存中实例化,则其他可信子系统或应用程序PE无法在执行之前修改该代码。

        5)启用可信引导和度量引导。这意味着攻击者无法引导未经平台提供商批准的任意镜像。

        以下是Arm CCA安全模型的要求:

        [R0048]安全系统只能加载授权的CCA固件。

        [R0079]所有通过PE初始引导加载的Monitor固件都按照已验证引导中的概述进行测量和验证。

        6)未启用任何实验特性。这些通常是不完整的特性,需要更多的时间来稳定。因此,我们不考虑可能来自他们的威胁。不建议在生产构建中使用这些特性。

2.2 数据流图

        图1显示了TF-A的高级数据流程图。该图显示了基于TF-A的系统的不同组件的模型以及它们与TF-A的相互作用。表1给出了每个图元素的描述。在图中,红色虚线表示信任边界。虚线之外的组件被TF-A认为是不可信的。 

7336005b07e245c28f944522f46d083d.png

图元素

描述

DF1

请参考通用威胁模型中的DF1描述。此外,TF-A加载领域镜像(realm images)。

DF2-DF6

参考通用威胁模型中关于DF2-DF6的描述。

DF7

引导镜像与Arm CCA HES交互,以记录引导测量并检索用于AP镜像身份验证的数据。

运行时固件与Arm CCA HES交互,以获取领域世界的敏感认证数据。

DF8

Realm世界软件(例如TF-RMM)通过SMC调用接口和/或共享内存与TF-A交互。

三、威胁分析

        在这个威胁模型中,我们使用与通用威胁模型相同的方法来分析威胁。本节仅指出适用的差异。

        还有一个额外的威胁代理:RealmCode。它以恶意代码或错误代码的形式运行在realm世界中,包括R-EL2、R-EL1和R-EL0级别。        

        此时,我们只考虑服务器目标环境。在此威胁模型中识别的新威胁将仅给出此环境的风险等级。其他环境可能会在将来的修订中添加。

3.1 威胁评估

3.1.1 针对所有固件镜像的一般威胁

        下表分析了此威胁模型上下文中针对所有固件镜像的一般威胁。只指出了差异部分。

ID

Applicable?

Comments

05

Yes

 

06

Yes

 

08

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

11

Yes

内存管理单元(MMU)的错误配置可能允许普通/安全/领域世界软件访问敏感数据,执行任意代码或访问其他受限的硬件接口。

注意,在RME系统上,MMU配置还包括颗粒保护表(GPT)设置。

附加图表元素:DF4, DF7, DF8。
其他威胁代理:SecCode, RealmCode。

13

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

15

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

3.1.2 引导固件可以缓解的威胁

        下表在此威胁模型的上下文中分析了引导固件需要减轻的威胁。只指出了差异部分。

ID

Applicable?

Comments

01

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

02

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

03

Yes

 

04

Yes

3.1.3 运行时EL3固件可缓解的威胁

        下表分析了运行时EL3固件在此威胁模型上下文中需要缓解的威胁。只指出了差异部分。

ID

Applicable?

Comments

07

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

09

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

10

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

12

Yes

附加的图表元素:DF8。
附加威胁代理:RealmCode。

14

Yes

 

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

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

相关文章

Spark SQL 时间格式处理

初始化Spark Sql package pbcp_2023.clear_dataimport org.apache.spark.SparkConf import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions.{current_date, current_timestamp}object twe_2 {def main(args: Array[String]): Unit {val con new …

认识Linux操作系统

什么是操作系统? 操作系统是一款软硬件资源管理的软件Linux是一款具体的操作系统的品类(Linux内核是用C语言写的)centos7是一款具体的Linux操作系统 为什么要有操作系统? Linux操作系统 Linux是一种自由和开放源代码的类UNIX操…

Linux时间命令—— 显示时间,日历等

目录 1.date显示时间 1.1 常用的标记列表: 1.2 设定时间: 2.cal显示日历 3.时间戳 1.date显示时间 date 用法:date [OPTION] ... [FORMAT] 1.1 常用的标记列表: %H : 小时 (00..23) %M : 分钟 (00..59) %S : 秒 (00..61…

基于Python的面向对象分类实例Ⅱ

接上一部分继续介绍~ 一、地类矢量转栅格 这一步是为了能让地类值和影像的对象落在同一区域,从而将影像中的分割对象同化为实际地物类别。 train_fn r".\train_data1.shp" train_ds ogr.Open(train_fn) lyr train_ds.GetLayer() driver gdal.GetDrive…

python之pyqt专栏3-QT Designer

从前面两篇文章python之pyqt专栏1-环境搭建与python之pyqt专栏2-项目文件解析,我们对QT Designer有基础的认识。 QT Designer用来创建UI界面,保存的文件是"xxx.ui"文件,"xxx.ui"可以被pyuic转换为"xxx.py",而&…

Spring AOP:什么是AOP? 为什么要用AOP?如何学习AOP?

文章目录 🎆前言1.为什么要用 AOP3.如何学习去 AOP?3.1 AOP 的组成切面(Aspect)连接点(Join Point)切点(Pointcut)通知(Advice) 3. Spring AOP 实现3.1 普通的方式实现 …

Ubuntu20.04安装搜狗输入法

1、安装包下载 搜狗输入法linux-首页搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输https://shurufa.sogou.com/linux点击立即下载,根据自己的硬件选择deb安装包。 2、输入法安装 当第一步完成以后,页面会自动跳转至搜狗的安装…

【opencv】计算机视觉:实时目标追踪

目录 前言 解析 深入探究 前言 目标追踪技术对于民生、社会的发展以及国家军事能力的壮大都具有重要的意义。它不仅仅可以应用到体育赛事当中目标的捕捉,还可以应用到交通上,比如实时监测车辆是否超速等!对于国家的军事也具有一定的意义&a…

25 Linux I2C 驱动

一、I2C简介 I2C老朋友了,在单片机里面也学过,现在再复习一下。I2C使用两条线在主控制器和从机之间进行数据通信。一条是 SCL(串行时钟线),另外一条是 SDA(串行数据线),这两条数据线需要接上拉电阻,总线空闲的时候 SCL…

docker部署phpIPAM

0说明 IPAM:IP地址管理系统 IP地址管理(IPAM)是指的一种方法IP扫描,IP地址跟踪和管理与网络相关的信息的互联网协议地址空间和IPAM系统。 IPAM软件和IP的工具,管理员可以确保分配IP地址仍然是当前和足够的库存先进的IP工具和IPAM服务。 IPAM简化并自动化…

管理类联考——数学——汇总篇——知识点突破——代数——函数——记忆

文章目录 整体文字提炼图像绘画 考点记忆/考点汇总——按大纲 本篇思路:根据各方的资料,比如名师的资料,按大纲或者其他方式,收集/汇总考点,即需记忆点,在通过整体的记忆法,比如整体信息很多&am…

电源控制系统架构(PCSA)之系统控制处理器组件

目录 6.4 系统控制处理器 6.4.1 SCP组件 SCP处理器Core SCP处理器Core选择 SCP处理器核内存 系统计数器和通用计时器 看门狗 电压调节器控制 时钟控制 系统控制 信息接口 电源策略单元 传感器控制 外设访问 系统访问 6.4 系统控制处理器 系统控制处理器(SCP)是…

基于Python 中创建 Sentinel-2 RGB 合成图像

一、前言 下面的python代码将带您了解如何从原始 Sentinel-2 图像创建 RGB 合成图像的过程。 免费注册后,可以从 Open Access Hub 下载原始图像。 请注意,激活您的帐户可能需要 24 小时! 二、准备工作 (1)导入必要的库…

selenium的基础语法

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️山水速疾来去易,襄樊镇固永难开 ☁️定位页面的元素 参数:抽象类By里…

【从删库到跑路 | MySQL总结篇】数据库基础(增删改查的基本操作)

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 重点放前面&am…

网络数据结构skb_buff原理

skb_buff基本原理 内核中sk_buff结构体在各层协议之间传输不是用拷贝sk_buff结构体,而是通过增加协议头和移动指针来操作的。如果是从L4传输到L2,则是通过往sk_buff结构体中增加该层协议头来操作;如果是从L4到L2,则是通过移动sk_…

【Linux】fork()

文章目录 一、fork()是什么?二、fork()干了什么?三、fork()怎么用? 一、fork()是什么? fork()函数其实是在Linux系统中用于创建一个新的进程。让我们看看Linux中是怎么描述的?运行man fork。 RETURN VALUE On success…

英特尔和 ARM 将合作开发移动芯片技术,如何看待双方合作?

英特尔和 ARM 将合作开发移动芯片技术,如何看待双方合作? 最近市场传出Arm要自产芯片,供智能手机与笔电等使用后,外媒指Arm自产芯片将由英特尔晶圆代工部门打造,变成英特尔晶圆代工客户。将采用英特尔18A工艺&#xff…

利用Nginx与php处理方式不同绕过Nginx_host实现SQL注入

目录 首先需要搭建环境 nginxphpmysql环境: 搭建网站 FILTER_VALIDATE_EMAIL 绕过 方法1:冒号号分割host字段 方法2:冒号号分割host字段 方法3:SNI扩展绕过 首先需要搭建环境 nginxphpmysql环境: php安装包&a…

vue一个页面左边是el-table表格 当点击每条数据时可以在右边界面编辑表格参数,右边保存更新左边表格数据

实现思路: 1.点击当前行通过row拿到当前行数据。 2.将当前行数据传给子组件。 3.子组件监听父组件传过来的数据并映射在界面。 4.点击保存将修改的值传给父组件更新表格。 5.父组件收到修改过后的值,可以通过字段判断比如id,通过 findIn…