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

news/2024/5/19 6:47:17 标签: ATF, TF-A, 威胁, 威胁模型, ARM, CCA, Realm

目录

一、简介

二、评估目标

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.niftyadmin.cn/n/5215850.html

相关文章

深入探索Linux文件系统:属性、路径与隐藏之谜

🎥 屿小夏 : 个人主页 🔥个人专栏 : Linux系统理论 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️文件的组成☁️文件属性☁️文件内容☁️注意事项 🌤️路…

2311skia,04绘制路径

分析Skia绘画路径代码 绘画路径尽管使用频率相对绘画图像,绘画文本低,但却是非常重要的一个基本特性.所有不规则图形(椭圆,圆角矩形,三角形,简单的文字),最后都要绘画路径. 而且,若自己实现一个2D引擎,这块内容是很有参考意义的,用OpenGL,都很少关注采样图像了,对对坐标就好. …

【数字图像处理】均值滤波与中值滤波

在数字图像处理中,均值滤波和中值滤波是常见的空间域处理方法,可以用于过滤图像中的噪声。本文主要介绍数字图像均值滤波与中值滤波的基本原理,并记录在紫光同创 PGL22G FPGA 平台的布署与实现过程。 目录 1. 均值滤波与中值滤波 2. FPGA 布署与实现 2.1 功能与指标定义

C++——vector基本概念,构造函数,赋值操作与容量和大小

一.vector基本概念 功能:vector数据结构和数组非常类似,也称为单端数组 vector与普通数组的区别:不同之处在于数组是静态空间,而vectors可以动态扩展 动态扩展:并不是在原空间之后继续接新空间,而是找更大的内存空间,然后将原有数据拷贝新空间,释放原有空间 vector容器内部结…

06_正则与异常处理

正则表达式 基础演示 public class Test {public static void main(String[] args) {System.out.println(check("7029622989")); // true}public static boolean check(String userId) {return userId ! null && userId.matches("[1-9]\\d{5,19}&quo…

为什么程序员最应该学习的是运营与销售,而不是技术?

大概几个月前,我加入了某副业交流群。这里人才很多,不光是传统意义上的程序员,也有公司老板、偏门大佬、产品经理等。 群里的聊天主题就是搞钱俩字,大家讨论着如何搞钱,分享每日收益情况,以及自己做的产品等…

seccomp学习 (3)

文章目录 0x06. 其他B. execveat (nr322)C. sendto recvfrom (nr44, 45)D. sendmsg recvmsg (nr46, 47)E. io_uring系列 (nr425,426,427) 本文继续上一篇文章继续介绍seccomp与系统调用的那些事~~~ 0x06. 其他 B. execveat (nr322) long sys_execveat(int dfd, const char…

JVM的小知识总结

加载时jvm做了这三件事: 1)通过一个类的全限定名来获取该类的二进制字节流 什么是全限定类名? 就是类名全称,带包路径的用点隔开,例如: java.lang.String。 即全限定名 包名类型 非限定类名也叫短名,就…