安全之安全(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项目为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是32位微控制器的安全引导加载程序。MCUboot为微控制器系统上的引导加载程序和系统闪存布局定义了一个通用的基础结构,并提供了一个安全的引导加载程序,使软件易于升级。MCUboot不依赖于任何特定的操作系统和硬件,而是依赖于它所使用的操作系统的硬件移植层。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。
文档:MCUboot | mcuboot
代码:GitHub - mcu-tools/mcuboot: Secure boot for 32-bit Microcontrollers!
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是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是一个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项目实现了加密原语、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
用于实现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可信服务项目提供了一个框架,用于跨一系列安全处理环境(如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(持续集成,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