ARM可用的可信固件项目简介

news2024/11/14 5:50:29

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

目录

一、TrustedFirmware-A (TF-A)

二、MCUboot

三、TrustedFirmware-M (TF-M)

四、TF-RMM

五、OP-TEE

六、Mbed TLS

七、Hafnium

八、Trusted Services

九、Open CI


        可信固件为Armv8-A、Armv9-A和Armv8-M提供了安全软件的参考实现。它为SoC开发人员和OEM提供了符合相关Arm规范的参考可信代码库。可信固件的代码是Arm规范的首选实现,允许快速轻松地移植到现代芯片和平台。这构成了应用程序处理器上的可信执行环境(TEE)或微控制器的安全处理环境(SPE)的基础。

        首先,ARM可用的可信固件项目如下图9宫格所示,下面对每一个项目进行简单介绍。

一、TrustedFirmware-A (TF-A)

        TrustedFirmware-A项目为Armv7-A和Armv8-A、Armv9-A类处理器提供了安全世界软件的参考实现。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。每两周举行一次会议/技术论坛,讨论技术问题。

文档:Trusted Firmware-A Documentation — Trusted Firmware-A 2.9.0 documentation

代码:trusted-firmware-a.git - Trusted Firmware for A profile Arm CPUs

二、MCUboot

        MCUboot是32位微控制器的安全引导加载程序。MCUboot为微控制器系统上的引导加载程序和系统闪存布局定义了一个通用的基础结构,并提供了一个安全的引导加载程序,使软件易于升级。MCUboot不依赖于任何特定的操作系统和硬件,而是依赖于它所使用的操作系统的硬件移植层。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。

文档:MCUboot | mcuboot

代码:GitHub - mcu-tools/mcuboot: Secure boot for 32-bit Microcontrollers!

三、TrustedFirmware-M (TF-M)

        TrustedFirmware-M(TF-M)为Armv8-M、Armv8.1-M架构(例如Cortex-M33、Cortex-M23、Cortex-M55、Cortex-M85处理器)或双核平台实现安全处理环境(SPE)。它是与PSA认证指南一致的平台安全架构参考实现,使芯片、实时操作系统和设备成为PSA认证。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。每两周举行一次会议/技术论坛,讨论技术问题。

文档:Trusted Firmware-M Documentation — Trusted Firmware-M v1.8.1 documentation

代码:trusted-firmware-m.git - Trusted Firmware for M profile Arm CPUs

四、TF-RMM

        TF-RMM是Realm Management Monitor领域管理监视器(RMM)规范的可信固件实现,是Arm机密计算体系结构(Arm CCA)的一部分。Arm CCA是一种提供受保护执行环境(称为Realms)的体系结构。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。

文档:Realm Management Monitor Documentation — Realm Management Monitor documentation

代码:tf-rmm.git - RMM Reference implementation

五、OP-TEE

        OP-TEE是一个Trusted Execution Environment可信执行环境(TEE),被设计为运行在Arm上的非安全Linux内核的伙伴;使用TrustZone技术的Cortex-A内核。OP-TEE实现TEE Internal Core API v1.1.x(是公开给可信应用程序的API),和TEE Client API v1.0(是描述如何与TEE通信的API)。这些API在GlobalPlatform API规范中定义。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。

文档:OP-TEE Documentation — OP-TEE documentation documentation

代码:GitHub - OP-TEE/optee_os: Trusted side of the TEE

六、Mbed TLS

        Mbed TLS项目实现了加密原语、X.509证书操作以及SSL/TLS和DTLS协议。该项目提供了https://developer.arm.com/documentation/ihi0086/b参考实现通过PSA加密api支持加密操作。该项目还支持https://github.com/Mbed-TLS/mbedtls/blob/development/docs/proposed/psa-driver-interface.md,它为加密处理器驱动程序定义了一个接口。小的代码占用使得该项目适合嵌入式系统。 它有许多用户,包括TF-A, TF-M和OP-TEE。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。

文档:Mbed TLS documentation hub — Mbed TLS documentation

代码:https://github.com/Mbed-TLS/mbedtls

七、Hafnium

        用于实现Armv8.4-A Secure-EL2扩展的系统的参考安全分区管理器(SPM)。它允许多个隔离的安全分区(sp)在Secure-EL1上运行。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。Hafnium和Secure-EL2也是TF-A技术论坛讨论的主题。

文档:Hafnium Documentation — Hafnium 2.9.0 documentation

代码:hafnium.git - Hafnium GIT Repository

八、Trusted Services

       Trusted Services可信服务项目提供了一个框架,用于跨一系列安全处理环境(如OP-TEE和Hafnium提供的环境)开发和部署设备信任根服务。

文档:Trusted Services Documentation — Trusted Services 1.0.0-beta documentation

代码:trusted-services.git - Trusted Services for A profile Arm CPUs

九、Open CI

        可信固件Open CI(持续集成,Continuous Integration)是一个基于云的CI基础设施,它利用包括Gerrit、Jenkins和https://lavasoftware.org/在内的多个组件来创建一个全面的端到端集成和测试基础设施。它目前由TF-M、TF-A和Hafnium使用,未来可能会有其他托管固件支持的项目。Open CI支持静态分析工具来提高代码质量。它也是批准合并请求的机制(通过维护者批准)以及创建源代码发布标记(release tags)的能力。最后,随着开放CI的后端连接到利用LAVA的物理开放CI硬件实验室,它验证了在https://tf.validation.linaro.org/scheduler/device_types上实际运行的源代码树中所做的代码更改Arm https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms软件模拟器也可以由TrustedFirmwa使用和利用。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。

文档:TrustedFirmware OpenCI User Guide

代码:Trusted Firmware Code Review

参考: Trusted Firmware - Open Source Secure Software

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

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

相关文章

MT8195/MTK8195安卓核心板-安卓智能模块

MT8195安卓核心板是一款先进的处理器,采用了台积电的6纳米制程技术。它由4个Cortex-A78大核和4个Cortex-A55小核组成,搭配Mali-G57MC5 GPU和APU 3.0,算力高达4 TOPs。该核心板支持四通道LPDDR4X 2133MHz内存,具备出色的性能。此外…

java并发编程之基础与原理1

java多线程基础 下面说一下线程的7种状态 下面我重点来说一下阻塞状态 阻塞状态是可以分很多种的: 下面用另外一张图来说明这种状态 简单说一下线程的启动原理 下面说一下java中的线程 java线程的异步请求方式 上面就会先把main执行出来,等阻塞结束之后…

变化检测数据集制作详细版

本文记录在进行变化检测数据集制作过程中所使用的代码 首先需要准备相同地区不同时间的两幅影像,裁减成合适大小,如256*256。相同区域命名相同放在两个文件夹下。 接着使用labelme对变化区域进行标注,这里不再进行labelme安装及标注的赘述。…

MAC如何在根目录创建文件

在这之前先明确一下啥是根目录。 打开终端,输入cd /,然后输入 ls 查看根目录下有哪些文件 可以看到 usr、etc、opt 这些文件的地方才叫根目录,而不是以用户命名,可以看到音乐、应用程序、影片、桌面的地方哈 介绍一种叫做软连接…

C++算法:数据流的中位数

题目 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化 MedianFin…

数据预处理—滑动窗口采样数据

一个简单的例子: # data: 这是要应用滑动窗口采样的输入数据,通常是一个序列,例如列表或NumPy数组。 # window_size: 这是滑动窗口的大小,表示每个窗口中包含的元素数量。 # step_size: 这是滑动窗口移动的步长,表示每…

(※)力扣刷题-栈和队列-用队列实现栈

255.用队列实现栈 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 所以后面实现的时候会留下一个元素 top() – 获取栈顶元素 empty() – 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, …

2023年中国粘度指数改进剂行业需求现状及前景分析[图]

润滑油添加剂指用于提高润滑油使用性能、耐久性及功效,从而增强机械和发动机使用性能的产品,分为单剂和复合剂两大类产品。单剂产品主要是清净剂、分散剂、抗氧抗腐剂、极压抗磨剂、抗氧剂、增粘剂、防锈剂、降凝剂等具有单一特性的添加剂产品&#xff1…

存储数据保护技术——HyperClone克隆与HyperMirror卷镜像技术介绍

目录 HyperClone克隆 基本概念 克隆的特点 工作原理 注意事项 HyperMirror卷镜像 HyperClone克隆 基本概念 克隆是快照技术的一种;在不中断主机业务的情况下,对源数据在某个时间点的一致性数据副本,数据同完成后成为完整的数据副本 …

一天吃透Java集合面试八股文

内容摘自我的学习网站:topjavaer.cn 常见的集合有哪些? Java集合类主要由两个接口Collection和Map派生出来的,Collection有三个子接口:List、Set、Queue。 Java集合框架图如下: List代表了有序可重复集合&#xff0c…

【C++笔记】模板进阶

【C笔记】模板进阶 一、非类型模板参数二、类模板的特化三、模板的分离编译 一、非类型模板参数 我们之前学过的模板虽然能很好地帮我们实现泛型编程&#xff0c;比如我们可以让一个栈存储int类型的数据&#xff0c;一个栈存储double类型的数据&#xff1a; template <cla…

Git 为文件添加执行权限

背景 当你是一台Linux&#xff0c;想要给文件加权限很简单&#xff0c;只需要执行以下命令 chmod x filename就可以给文件添加执行权限&#xff0c;但是如果你是Windows那就很麻烦了 解决方案 假设这里有一个名为 file.sh 的文件&#xff0c;内容如下&#xff1a; #!/bin/…

视频剪辑SDK,实现高效的移动端视频编辑

为了满足企业对视频编辑的需求&#xff0c;美摄提供了iOS/Android端视频编辑SDK技术开发服务&#xff0c;帮助企业快速高效地制作高质量视频。本文将详细介绍美摄的视频编辑SDK的优势和特点&#xff0c;以及如何为企业提供技术解决方案。 随着智能手机的普及和移动互联网的发展…

Java_Jdbc

目录 一.JDBC概述 二.JDBC API 三.ResultSet[结果集] 四.Statement 五.PreparedStatement 六. JDBC API 总结 一.JDBC概述 JDBC 为访问不同的数据库提供了同一的接口&#xff0c;为使用着屏蔽了细节问题Java程序员使用JDBC 可以连接任何提供了 JDBC驱动的数据库系统&am…

(缺省参数)(函数重载)(引用)(内敛)(C++中的nullptr)

&#xff08;缺省参数&#xff09;&&#xff08;函数重载&#xff09;&&#xff08;引用&#xff09;&&#xff08;内敛&#xff09;&&#xff08;atuo用法&#xff09;&&#xff08;C中的NULL&#xff09; 1.缺省参数1.1缺省参数的概念1.2缺省参数的分类1…

谈谈电商App的压测

背景 最近恰逢双十一&#xff0c;大大小小的电商app在双十一之前都会做一次压测&#xff0c;曾经在小公司工作的时候很想知道大公司是如何压测的&#xff0c;有什么高深的压测工具没&#xff0c;本文就来揭露一下 压测真相 在确认使用什么压测工具进行压测之前&#xff0c;我…

(※)力扣刷题-栈和队列-用栈实现队列

使用栈实现队列的下列操作&#xff1a; push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。 说明: 你只能使用标准的栈操作 – 也就是只有 push to top, peek/pop from top, size, 和 is empt…

R6G alkyne, 6-isomer可在反应中作为底物或催化剂发挥作用

试剂 | 基础知识概述&#xff08;部分&#xff09;: 英文名&#xff1a;R6G alkyne, 6-isomer 分子式&#xff1a;C30H29N3O4 分子量&#xff1a;495.57 Ex &#xff1a;518nm Em&#xff1a;542nm 规格标准&#xff1a;10mg、25mg、50mg&#xff0c;可提供mg级以及kg级的…

系统架构师备考倒计时16天(每日知识点)

1.信息化战略与实施 2.UML图&#xff08;12个&#xff09; 3.结构化设计&#xff08;耦合&#xff09; 4.SMP与AMP的区别&#xff08;多核处理器的工作方式&#xff09; 多核处理器一般有SMP和AMP两种不同的工作方式: SMP(对称多处理技术)&#xff1a;将2颗完全一样的处理器封…

24---WPF缓存

一、什么是缓存&#xff1a; 1.缓存指的是将需要频繁访问的网络内容存放在离用户较近、访问速度更快的系统中&#xff0c;以提高内容访问速度的一种技术。缓存服务器就是存放频繁访问内容的服务器。 2.缓存就是一个临时存放区域--离用户比较近 二、作用--意义---如果系统出现故…