- 博客(1713)
- 资源 (21)
- 问答 (1)
- 收藏
- 关注

原创 【置顶】TEE从入门到精通-[目录]
此专栏讲解包含不限于optee、商用TEE、常规的安全业务设计。但主要基于optee最新代码,深度讲解和剖析各项原理和机制...
2022-05-06 08:35:45
5746
2

原创 [目录]-博客笔记导读目录(全部)
编辑backup: 汇总-arm-optee-android-复制黏贴–(网址)============= (以下是正文) =============CA/TA开发(收费区)0-博客笔记导读目录(全部)-backup-202111210-博客笔记导读目录(全部)-backup-202108120-博客笔记导读目录(全部)-backup-202201180-博客笔记导读目录(全部)-20220506backup草稿-博客笔记导读目录(全部)(统计:本文共记录650篇博文)...............
2020-06-30 10:57:13
34603
24

原创 【置顶】ARMv8/ARMv9架构入门到精通-[目录]
周贺贺,baron,代码改变世界,coding_the_world,Arm精选,arm_2023,安全启动,加密启动optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、V
2020-06-30 10:32:07
22055
11
原创 10.1 PSCI规范概述
PSCI是ARM定义的电源管理标准接口,用于协调非安全与安全世界间的电源状态控制。该规范自2013年发布后不断演进,最新2.0版本支持多集群管理等特性。PSCI提供CPU电源管理(如启动/关闭核心)、系统电源操作(关机/重启)和辅助功能,通过SMC调用实现。在TF-A中,PSCI服务层位于BL31,需平台实现特定回调函数。其安全机制包括权限控制和状态验证,典型应用于多核启动、低功耗模式等场景。开发时需注意PSCI 2.0的电源域支持要求,并可通过统计接口和日志系统进行调试。
2025-07-13 07:00:00
53
原创 ARM汇编编程(AArch64架构) - 第14课:安全扩展(ARM TrustZone)
【代码】ARM汇编编程(AArch64架构) - 第14课:安全扩展(ARM TrustZone)
2025-07-13 00:36:49
214
原创 9.4 自定义SMC服务开发
本文介绍了TF-A中SMC(Secure Monitor Call)服务的开发方法。SMC作为安全与非安全世界通信的核心机制,支持快速调用和标准调用两种类型。开发流程包括定义服务ID、注册处理函数、实现具体逻辑等步骤,并提供了安全计数器服务作为示例。文章强调安全注意事项如参数验证、边界检查和权限控制,同时给出调试测试方法和用户空间集成方案。最佳实践建议遵循最小权限、原子操作原则,注重版本兼容性和性能优化。该指南包含代码示例和表格等要素,可直接用于实际开发。
2025-07-12 22:15:00
370
原创 9.3 快速调用与标准调用
本文详细分析了ARM Trusted Firmware中的两种安全监控调用(SMC)类型。快速调用适用于时间敏感操作(<1μs),仅保存关键寄存器;标准调用用于复杂服务,需完整上下文保存(延迟>1.2μs)。文章对比了两者的性能差异(标准调用延迟是快速调用的3倍),并提供了开发实践建议:时间敏感操作优先使用快速调用,复杂服务选择标准调用。同时给出了混合调用时的注意事项和典型问题排查方法,包括寄存器损坏检查和性能优化建议。最后指出平台适配需要实现两类调用的处理入口函数表,并建议在ARMv8.4+平
2025-07-12 20:30:00
476
原创 9.2 SMC处理流程
本文介绍了ARM Trusted Firmware-A (TF-A)中SMC调用的处理流程。主要内容包括:1) SMC触发条件与硬件自动行为,如异常触发和寄存器保存;2) TF-A处理流程,涵盖异常向量分发、上下文保存和分类处理(快速调用与标准调用路径);3) 安全状态管理机制和世界切换过程;4) 返回处理中的结果回传与错误处理;5) 性能优化要点,如热路径优化、延迟敏感型服务设计和并行处理支持。文章通过代码片段和流程图展示了SMC调用的核心处理逻辑,为理解ARM安全监控模式提供了技术参考。
2025-07-12 19:15:00
493
原创 9.1 SMC调用规范
ARM架构中的**安全监控调用(SMC)**是实现安全与非安全世界通信的关键机制,通过执行smc指令触发EL3异常并由TF-A处理。SMC调用分为快速调用、标准调用和厂商扩展三类,遵循严格的寄存器约定(X0-X6传递参数)和功能ID编码规范(包含服务类型、调用方式等信息)。典型流程包含非安全世界发起调用和BL31处理两个阶段,需遵循错误返回格式(X0存储错误码)。实现时需注意参数验证、时延防护、寄存器清理等安全要求,规范参考ARM《SMC Calling Convention v2.0》。
2025-07-12 16:45:00
540
原创 8.4 TEE启动与初始化
TEE启动流程是TF-A安全启动链的关键环节,主要包括BL2加载验证、BL31移交控制权、TEE自初始化和服务注册等步骤。启动过程涉及镜像格式规范、上下文切换准备、内存管理初始化以及安全服务注册等关键操作。平台相关初始化需配置TrustZone、加密加速器等硬件安全特性。运行时服务建立包括线程管理、安全存储和密码学服务实现。调试时需分析启动日志,排查镜像验证、内存配置等问题。安全方面要求启用ASLR、堆栈保护等机制,不同TEE实现的初始化流程可能存在差异。该流程确保了安全执行环境的正确建立和隔离运行。
2025-07-12 14:45:00
308
原创 8.3 安全世界切换机制
本文详细解析了TrustZone技术中的安全世界切换机制及其在TF-A中的实现。主要内容包括:1) 安全世界切换的触发条件与基本流程;2) 关键硬件支持如SCR_EL3寄存器配置和异常级别转换;3) TF-A中的上下文管理结构与核心切换函数;4) 双向切换流程的具体实现步骤;5) 安全考量与防护措施;6) 性能优化方法;7) 调试验证技术。文章还涉及平台定制化实现方案,强调必须遵循ARM安全规范,确保切换操作的原子性和一致性。该机制通过硬件隔离与软件协作,为安全敏感操作提供可靠的执行环境保护。
2025-07-12 13:30:00
811
原创 8.1 OP-TEE与TF-A的集成
本文介绍了OP-TEE与TF-A的集成架构设计。主要内容包括:OP-TEE的三层基本架构(OS、Client、Driver)及其与TF-A的交互流程;系统启动时序和内存映射配置;构建时的编译选项与镜像打包步骤;运行时通过SMC调用和共享内存实现的交互机制;安全世界切换的上下文保存/恢复实现及性能指标;调试方法及常见问题排查;以及平台适配所需的接口和设备树配置示例。该集成方案基于ARM TrustZone技术,通过BL31进行安全监控调度,为可信应用执行提供隔离环境。
2025-07-12 11:30:00
730
原创 7.4 安全服务调度器
安全服务调度器是BL31运行时固件的核心组件,负责在安全世界和非安全世界之间路由服务请求。文章详细介绍了其分层架构设计、关键数据结构和调度流程,包括SMC调用处理和服务注册机制。重点阐述了上下文管理、同步/异步调用支持以及安全隔离等关键实现机制,并提供了自定义服务开发示例。最后讨论了调试技巧、性能优化方法和安全注意事项。该调度器通过严格的调用权限检查和内存隔离机制,确保系统服务调用的安全性和可靠性。
2025-07-12 10:15:00
985
原创 7.3 电源状态管理接口(PSCI)
ARM PSCI规范是标准化的电源管理接口,通过SMC调用实现多核电源状态协调。主要内容包括:1)PSCI提供CPU空闲管理、热插拔和系统电源控制等核心功能;2)CPU电源状态机模型及关键API实现;3)系统级电源管理操作与平台集成要求;4)多集群拓扑同步机制;5)安全验证与防攻击措施。PSCI在TF-A的BL31中实现,需平台适配电源控制回调和状态保持机制,确保安全可靠的电源管理。
2025-07-12 09:45:00
447
原创 7.2 安全监控调用(SMC)处理
本文详细介绍了ARM架构中安全监控调用(SMC)的处理机制。主要内容包括:SMC的基本原理,通过执行SMC指令触发EL3异常;TF-A中的处理流程,涵盖异常入口、FID解析、服务执行和结果返回;SMC调用类型及异常上下文管理;安全服务的注册与调度机制;调试方法和常见错误处理;以及平台定制扩展和性能优化建议。SMC作为安全与非安全世界通信的核心机制,其高效处理对系统安全性和性能至关重要。开发人员可通过定制服务、优化关键路径等方式提升SMC处理效率。
2025-07-12 07:15:00
484
原创 7.1 EL3运行时服务的架构
ARM Trusted Firmware的BL31阶段作为EL3运行时固件,承担着安全监控、系统隔离和硬件抽象等核心职责。其架构包含基础框架层、服务分发层和核心服务模块(如PSCI、SPMD),通过标准化接口处理SMC调用和异常管理。关键数据结构包括CPU上下文和SMC请求描述符,初始化流程涵盖异常设置、平台配置和服务注册。设计需注重性能优化(快速调用路径<1000周期)、安全验证(参数检查、寄存器清零)和可扩展性(服务ID分层)。开发者应使用RT_SVC_DESC宏实现规范的ABI接口,时间敏感服务
2025-07-12 06:45:00
707
原创 ARM汇编编程(AArch64架构)第11课:系统寄存器操作
指令功能语法示例MRS读取系统寄存器到通用寄存器MSR将通用寄存器值写入系统寄存器。
2025-07-12 00:48:07
190
原创 6.3 安全配置管理
本文介绍了BL2阶段安全配置框架的核心内容。主要包括:安全配置的基本功能(策略加载、参数初始化、硬件配置等),关键配置项(信任根、引导策略、内存保护),以及配置加载流程(发现、验证、应用)。文章还提供了平台安全配置的实现示例,说明了调试模式的安全选项,并提出了最佳实践建议,如多层验证、最小权限原则和安全审计要求。最后强调TZC配置的重要性,建议使用调试工具验证配置效果。该框架是建立可信执行环境的基础,需严格遵循安全规范实施。
2025-07-11 21:15:00
357
原创 5.4 BL1到BL2的跳转过程
TF-A启动流程中BL1到BL2的关键跳转过程包括镜像加载、安全验证和环境配置三个主要阶段。BL1需完成BL2镜像的加载与安全验证(证书链、哈希校验等),配置CPU上下文(EL3切换至EL1),初始化MMU和寄存器状态,最后通过eret指令实现控制权转移。该过程需确保地址安全、权限降级正确和内存隔离,平台需实现bl1_plat_set_bl2_ep_info等定制化接口。调试时可检查ELR_EL3/SPSR_EL3寄存器值验证跳转状态。具体实现因平台而异,需参考TF-A源码相关模块。
2025-07-11 19:45:00
730
原创 5.3 BL1的安全机制
摘要:BL1是Trusted Firmware-A启动链中的首个可信固件,遵循最小化TCB、深度防御等安全原则。其核心功能包括硬件安全特性初始化、信任链验证(BL1/BL2镜像签名校验)、运行时防护(内存隔离、异常熔断)及安全状态管理。BL1采用恒定时间算法防御时序攻击,通过形式化验证和模糊测试确保安全性,需符合PSA Certified Level 3认证标准。关键实现涉及安全调试控制、故障注入检测及侧信道防护措施,为后续启动阶段建立硬件级信任锚。(149字)
2025-07-11 15:45:00
1391
原创 5.2 BL1的硬件初始化
详细介绍了ARM Trusted Firmware中BL1阶段的硬件初始化流程。主要内容包括:处理器核心初始化(异常级别配置、执行状态设置)、内存系统初始化(内存控制器、TrustZone配置)、时钟与电源管理、调试系统设置、安全硬件初始化(加密引擎、安全存储)等关键步骤。文章还涉及平台特定初始化、错误处理机制以及优化后的初始化顺序原则。通过代码片段展示了典型配置方法,强调不同平台需参考具体技术文档进行精确实现。该初始化流程遵循时序关键路径优先、安全组件优先等原则,为后续启动阶段奠定硬件基础。
2025-07-11 14:45:00
740
原创 5.1 BL1的功能与职责
BL1是ARM可信固件TF-A启动流程的第一个阶段,作为固化在ROM中的初始引导程序,它承担着硬件初始化、安全验证和信任链建立等核心功能。BL1需在有限资源(64-128KB)下完成CPU核心初始化、内存控制器配置、BL2镜像验证等关键任务,确保系统安全启动。其设计具有确定性执行、无动态内存分配等特点,必须严格实施平台安全策略。作为信任根,BL1的任何漏洞都可能导致整个系统安全机制失效,因此需要经过严格审查。该阶段还涉及异常级别切换、执行环境准备等底层操作,是后续启动阶段的基础保障。
2025-07-11 13:45:00
466
原创 4.4 多核启动与CPU热插拔支持
本文介绍了多核处理器启动机制与热插拔实现。主要内容包括:1)多核启动拓扑结构,区分主从核角色与集群概念;2)TF-A框架中的关键启动流程,涵盖硬件信号同步与软件同步机制;3)CPU热插拔实现技术,包含状态保存、电源管理和异常处理;4)平台适配指南与典型问题排查方法;5)安全注意事项,强调启动隔离和权限控制。文章提供了多核系统从启动到运行时管理的完整技术方案,特别针对ARM架构处理器给出了具体实现建议。
2025-07-11 12:45:00
389
原创 4.2 冷启动与热启动流程
本文档详细对比了ARM系统冷启动与热启动的核心差异。冷启动是从完全断电到全功能运行的完整初始化过程,需执行BL1-BL33全启动链,建立完整信任链;热启动则是保持供电状态下的部分恢复,通常从BL31开始,复用已有上下文。文中通过表格对比、代码示例和流程图,具体说明了两者的执行流程、安全验证机制和状态管理方法,并提供了调试技巧与平台适配要求。重点剖析了冷启动的逐级验证机制和热启动的上下文保存/恢复策略,是理解ARM系统启动过程的技术指南。
2025-07-11 09:45:00
565
原创 4.1 启动阶段划分(BL1/BL2/BL31/BL32/BL33)
启动阶段异常级别安全状态主要职责BL1EL3Secure初始硬件配置、BL2加载与验证BL2EL3/S-EL1Secure可信启动链扩展、运行时镜像加载BL31EL3Secure运行时安全监控、PSCI服务BL32S-EL1SecureTrusted OS执行环境(如OP-TEE)BL33NS-EL2/1Non-Secure正常世界OS(如Linux/UEFI)
2025-07-11 08:15:00
928
原创 6.2 镜像加载与验证
本文详细介绍了ARM可信固件BL2的镜像加载机制与安全验证体系。采用分层架构设计,支持多级加载流程和多种存储介质访问,包含内存映射管理策略。安全验证采用X.509证书链和多种签名算法,实现完整的哈希验证流程。关键API提供镜像加载接口和验证策略配置,平台适配需实现存储驱动接口并考虑性能优化。安全防护包含防篡改措施和抗回滚设计,调试方面给出常见问题排查方法和测试要求。建议保持BL2镜像不超过256KB以确保安全运行。
2025-07-11 08:15:00
756
原创 6.1 BL2的核心功能
BL2作为TF-A启动流程的第二阶段引导程序,承担着镜像加载、安全验证和执行环境准备等核心功能。其主要工作包括:从BL1接管控制权,加载并验证BL31/BL32/BL33等固件镜像;通过签名验证、哈希校验等方式建立信任链;完成硬件初始化和安全策略配置。BL2采用模块化设计,包含镜像加载子系统、安全验证引擎等组件,支持多种存储介质和加密算法,并通过平台适配层保持可移植性。该阶段严格遵循"先验证后执行"原则,初始化关键安全服务,为后续启动阶段奠定安全基础,同时遵循最小化可信计算基的设计理念。
2025-07-11 07:15:00
739
原创 3.4 调试方法与技巧(GDB, JTAG, 日志系统)
需在早期启动阶段介入调试依赖硬件调试接口受安全机制限制(如MMU未启用时)多阶段调试环境差异大。
2025-07-11 07:00:00
357
原创 ARM汇编编程(AArch64架构)课程 - 第9章:原子操作与同步
原子操作三大特性:;1. 不可分割性(Atomicity);2. 可见性(Visibility);3. 有序性(Ordering)多核共享资源访问计数器递增标志位修改。
2025-07-11 00:47:00
314
原创 20.4 量子安全加密算法
量子计算对传统加密体系构成严峻威胁,Shor算法可破解RSA/ECC,Grover算法削弱对称加密安全性。NIST推进的后量子密码(PQC)标准中,格密码(如Kyber)因兼容性优成为TF-A(ARM可信固件)首选方案。TF-A通过混合加密(ECDH+Kyber)、双重证书校验等实践增强安全启动链,并利用ARM向量指令优化性能。迁移路径分三阶段推进,面临硬件加速、兼容性等挑战。未来方向包括同态加密、量子随机数等,ARMv9.4或将提供专用指令提升PQC效率。(149字) 核心要点: 1️⃣ 量子算法
2025-07-10 17:56:25
421
原创 6.4 BL2到BL31/BL33的切换
本文详细解析了TF-A启动流程中BL2到BL31/BL33的切换过程。关键步骤包括镜像加载与安全验证、执行环境准备、控制权移交等。文章介绍了参数传递机制、内存布局配置、平台特定处理方式,并提供了调试技巧和安全考量。切换过程通过SMC调用实现,需确保镜像完整性和执行环境正确初始化。不同平台在加载地址、入口类型等方面存在差异,开发时需注意参数传递和状态切换的一致性。附录列出了相关代码路径,为开发者提供了实用的技术参考。
2025-07-10 16:34:53
695
原创 8.2 其他TEE OS支持
在TF-A环境中集成多种主流TEE OS的技术方案。主要内容包括:Trusty TEE的Android生态集成方法、seL4微内核的形式化验证特性及配置流程、厂商定制TEE解决方案的通用框架,以及多TEE OS动态切换机制。通过代码示例、性能对比表格和常见问题排查指南,详细说明了不同TEE方案与TF-A的交互方式,涵盖启动参数配置、安全服务注册、异常处理等关键技术点。文章还提供了测试验证框架的集成建议,强调需遵循GlobalPlatform标准并实现必要的加密加速功能。
2025-07-10 16:19:34
652
原创 ARM汇编编程(AArch64架构)课程 - 第7章:SIMD与浮点运算
AArch64架构提供32个128位NEON向量寄存器(V0-V31),支持SIMD并行计算。浮点比较指令(设置NZCV标志)浮点乘法运算(单/双精度)
2025-07-10 00:09:43
248
原创 3.3 常用开发板支持(FVP, Juno, Raspberry Pi等)
仿真平台:Fixed Virtual Platform (FVP) —— 无需物理硬件的纯软件仿真官方开发板:ARM Juno —— ARM官方参考开发板消费级硬件:Raspberry Pi 4/5 —— 低成本学习平台企业级开发板:NXP i.MX8/QorIQ等。
2025-07-09 19:52:51
262
原创 《ARM Trusted Firmware-A (TF-A) 权威指南:从安全启动到可信执行》目录
1.1 ARMv8/ARMv9安全扩展1.2 异常级别(EL0-EL3)与执行状态(AArch32/AArch64)1.3 TrustZone技术详解1.4 ARM安全参考架构(PSA Certified)2.1 TF-A发展历史与项目定位2.2 TF-A在ARM生态系统中的角色2.3 TF-A代码结构与仓库组织2.4 TF-A版本管理与发布周期。
2025-07-09 17:28:22
589
Trustzone/TEE标准版-48节课/19.5h
2025-02-13
Arm精选-铂金VIP课程-总课时1000节+、总时长360h+、总价值3w+
2025-02-13
《optee系统架构从入门到精通》
2025-02-10
深度学习armv8armv9 cache的原理
2025-01-19
optee返回REE的几种方式
2025-01-19
optee的RPC设计(模型)详解
2025-01-19
optee4.0.0 qemu-v8的环境搭建篇(ubuntu20.10)
2025-01-19
Linux Kernel中的系统调用分析
2025-01-19
向linux kernel中添加cmdline的四种方式
2025-01-19
Trusty qemu + android环境搭建详细步骤
2025-01-19
多核多cluster多系统之间缓存一致性概述
2025-01-19
SOC的多核启动流程详解
2025-01-19
SMMU学习这一篇就够了
2025-01-19
optee的共享内存的介绍
2025-01-19
openssl命令行:RSA的用法- 终极版
2025-01-19
mbedtls移植体验
2025-01-19
Linux内核驱动面试的100问
2025-01-19
Linux Kernel中断下半部分实现的三种方式
2025-01-19
Linux Kernel中的同步机制的介绍
2025-01-19
linux kernel中的cmdline的详细介绍
2025-01-19
《optee系统开发精讲》
2025-02-13
《Android KeymasterKeymint精讲》
2025-02-13
Secureboot从入门到精通 训练营
2025-02-13
《optee系统架构从入门到精通》
2025-02-13
《aarch64汇编从入门到精通》-204页PPT+实验
2025-02-13
学好ARM让领导刮目相看《Armv8Armv9架构从入门到精通(三期)》
2025-02-13
飞书知识库文档-Arm专栏
2025-02-13
《Android13安全架构详解》
2025-02-13
《CATA开发从入门到精通》
2025-02-13
《CoresightTraceDebug大合集》64节课16小时,6大主题, 685页PPT
2025-02-13
《Arm架构-功耗管理精讲与实战》
2025-02-13
《TrustzoneTEE安全从入门到精通-高配版》
2025-02-13
python英文批量翻译成中文?
2021-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人