自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

baron-周贺贺-代码改变世界ctw

【介绍】: 某外企资深安全工程师、阅码场资深讲师、51CTO编辑、优快云博客专家... 【研究方向】:安全/虚拟化、Trustzone、TEE、SOC架构、ARM架构、终端安全/手机安全/设备安全/系统安全、Linux Kernel安全、Android

  • 博客(1761)
  • 资源 (21)
  • 问答 (1)
  • 收藏
  • 关注

原创 【置顶】TEE从入门到精通-[目录]

此专栏讲解包含不限于optee、商用TEE、常规的安全业务设计。但主要基于optee最新代码,深度讲解和剖析各项原理和机制...

2022-05-06 08:35:45 5752 2

原创 [目录]-博客笔记导读目录(全部)

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

2020-06-30 10:57:13 34627 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 22119 11

原创 Linux内核设计与实现 - 第2章 内核开发的准备

【代码】Linux内核设计与实现 - 第2章 内核开发的准备。

2025-07-16 21:27:16 288

原创 Linux内核设计与实现 第1章:内核简介

定义:Linux内核是操作系统的核心组件,负责管理系统资源、硬件抽象和进程调度特点开源(GPL协议)单内核设计(Monolithic Kernel)支持动态加载模块高度可配置。

2025-07-16 21:26:21 450

原创 附录C:常见问题与解决方案

本文总结了ARM Trusted Firmware-A(TF-A)开发中的常见问题及解决方案,涵盖编译构建、启动流程、安全功能、平台移植、调试测试和安全认证六大类问题。具体包括架构识别错误、BL2镜像超限、BL31跳转失败、多核启动异常、SMC调用错误、安全存储丢失、DDR初始化崩溃、MMU配置错误、GDB连接超时、性能数据异常以及PSA认证失败等典型故障的排查与修复方法。每个问题均提供针对性解决步骤,如环境变量检查、配置参数修改、调试工具使用和关键代码验证等,为TF-A开发者提供了实用的排错指南。

2025-07-16 18:00:00 694

原创 附录B:ARM指令集安全扩展速查表

本文总结了ARM架构中与系统安全相关的关键指令,涵盖安全监控调用、内存保护、加密扩展、TrustZone、指针认证等多个安全领域。主要内容包括:1)不同异常等级间的特权切换指令(SMC/HVC/ERET);2)内存安全防护指令(地址转换、缓存清理等);3)加密算法加速指令(AES/SHA/SM4);4)TrustZone安全状态控制指令;5)防范内存攻击的指针认证和内存标记指令;6)安全调试相关指令。该速查表基于ARMv8.7-A架构,为开发者提供了各类安全场景下的指令参考,使用时需结合具体芯片手册验证指令

2025-07-16 15:00:00 501

原创 20.3 RISC-V架构支持

本文探讨了RISC-V与ARM在安全生态系统的差异及TF-A向RISC-V移植的策略。对比分析了两者在指令集架构、硬件安全特性等方面的关键差异,重点阐述了通过架构抽象层设计、关键模块适配和启动流程改造实现TF-A移植的技术方案。文章还展示了OpenSBI与TF-A协同的典型实现案例,并提供了性能测试数据和安全增强方案。最后指出RISC-V安全生态建设的发展方向,包括标准化进程、混合架构安全和开源生态建设,预测其有望在未来几年内达到与ARM相当的安全水平。

2025-07-16 11:15:00 509

原创 20.2 机密计算扩展

ARM机密计算技术解析:从RME架构到TF-A实现 本文系统介绍了ARM架构下机密计算的技术实现。ARMv9通过Realm Management Extension(RME)构建了四世界隔离模型,包括Root、Secure、Realm和Normal World,使用颗粒保护表(GPT)实现硬件级内存隔离。TF-A框架对RME的支持涉及新增Realm Monitor(RMM)组件和修改启动流程,建立起完整的领域创建与数据认证机制。文章还分析了潜在攻击面并提出启用MTE、最小权限配置等防护建议,最后展望了跨平台

2025-07-16 10:15:00 314

原创 20.1 ARMv9新特性支持

ARMv9架构带来重大升级,TF-A面临多项适配挑战。摘要从三个方面概述关键内容:1)ARMv9引入CCA机密计算、MTE内存安全等新特性;2)TF-A需增强异常级别管理、支持RME领域扩展和MTE集成;3)开发验证建议使用FVP模型,重点测试Realm管理和MTE功能。文档以代码示例和表格形式,详细说明了TF-A在ARMv9适配中的技术实现要点,包括SVE2指令支持、BRBE性能监控等模块的具体处理方案,同时强调向前兼容的版本检测策略。

2025-07-16 09:15:00 474

原创 19.4 性能测试工具

TF-A固件性能测试是确保系统实时性和效率的关键环节,主要涵盖启动时间、SMC延迟、内存访问等核心指标。测试工具包括硬件计时器、ARM PMU性能计数器及Streamline等专业分析工具。文章详细介绍了启动时间测量、SMC延迟测试等具体方法,并提供了自动化测试框架的实施方案。通过优化案例展示了缓存策略改进和异常级别切换优化等实践方法,最后提出建立性能基准、纳入CI/CD流程等建议。未来发展方向包括ARMv9 PMU扩展和AI自动优化等前沿技术应用。

2025-07-16 08:00:00 491

原创 19.3 安全测试技术

TF-A固件安全测试方法全面解析:涵盖静态分析(Coverity/Clang)、动态测试(模糊测试/运行时检测)、侧信道分析(时序/功耗)和硬件测试(JTAG/故障注入)。通过自动化框架集成安全审计、威胁建模和持续测试流程,确保固件符合PSA Certified等安全标准。关键步骤包括代码漏洞检测、攻击模拟、硬件防护验证及漏洞修复闭环管理,为安全关键系统提供多维度防护验证方案。(149字)

2025-07-16 07:30:00 415

原创 19.2 集成测试方法

本文介绍了ARM Trusted Firmware-A(TF-A)的集成测试方法与框架。主要内容包括:1)集成测试概述,重点验证启动流程、运行时服务和安全交互;2)测试环境搭建,推荐使用ARM FVP、Juno开发板等硬件平台及配套工具链;3)核心测试方法,涵盖启动流程、SMC服务、多核协同等场景;4)自动化测试方案,如Jenkins持续集成和LAVA框架;5)安全专项测试,包括信任链验证和侧信道分析;6)测试结果分析与常见问题排查;7)测试覆盖率提升策略。文章提供了具体的测试用例、代码示例和最佳实践,帮助

2025-07-16 06:45:00 542

原创 附录A:TF-A常用API参考

本文档概述了Trusted Firmware-A (TF-A)的核心API接口,涵盖启动阶段(BL1/BL2)、运行时服务(BL31)、平台抽象层、内存管理、设备树操作、调试日志、安全服务、电源管理和多核通信等功能模块。主要内容包括:启动阶段的镜像加载与安全验证接口,BL31阶段的SMC处理和PSCI电源管理接口,平台初始化与加密服务API,MMU配置与内存分配接口,设备树解析方法,以及日志输出、断言检查等调试工具。这些API为安全固件开发提供了基础框架,实际实现可能因平台和版本而异,建议参考官方文档使用。

2025-07-16 01:30:00 260

原创 19.1 单元测试框架

TF-A单元测试体系采用分层测试策略,基于CppUTest框架实现。测试环境需安装CppUTest依赖,通过特定Make命令编译执行。测试用例包含初始化/清理代码,使用CHECK系列断言验证逻辑。典型测试场景包括SMC处理、MMU配置、电源管理等,通过Mock框架模拟硬件行为。可生成覆盖率报告指导测试完善,建议重点关注边界条件、错误路径和状态转换测试。最佳实践强调测试隔离、可重复性和明确失败信息,测试代码位于/tests/unit目录。该体系与Jenkins CI集成,确保代码质量。

2025-07-15 21:15:00 300

原创 18.4 安全更新机制

本文介绍了可信固件(TF-A)的安全更新机制架构与实现。主要内容包括:1)安全更新流程设计,涵盖签名验证、版本控制和原子性写入;2)防回滚机制实现方案,如eFuse计数器和TPM存储;3)故障恢复策略,包括双Bank机制和恢复流程;4)平台集成要点与安全实践,如密钥管理和攻击防护措施。文章还提供了测试验证方法,并展望了量子安全签名等未来发展方向。该机制通过多组件协同工作,确保固件更新过程的安全性和可靠性。

2025-07-15 20:00:00 408

原创 18.3 防回滚机制

本文系统介绍了防回滚机制在安全启动中的实现。防回滚通过版本控制、安全计数器和硬件熔断等技术,防止系统被降级到存在漏洞的旧版本。重点分析了TF-A框架中的实现方案,包括版本元数据结构、关键组件和工作流程,并提供了eFUSE配置和安全计数器存储的具体示例。文章还详细阐述了安全增强措施、测试验证方法和典型问题排查,最后给出设计部署的最佳实践建议。防回滚作为硬件级安全防护的关键技术,需要与镜像签名等机制协同工作,构建完整的安全启动链保护。

2025-07-15 19:00:00 328

原创 18.2 镜像签名与验证

TF-A安全启动机制通过非对称加密技术实现固件镜像的签名验证,确保系统仅执行授权代码。其核心包括分层PKI体系、多算法支持及抗重放保护。签名流程涉及镜像哈希计算、证书链生成和FIP打包,验证时BL1/BL2逐级检查签名与证书有效性。系统提供密钥管理方案,支持默认密钥配置与安全更新流程,并具备抗量子签名等高级特性。开发中需注意平台适配接口实现,未来将增强ARMv9-CCA支持与后量子密码集成。生产环境建议定期轮换密钥以提升安全性。

2025-07-15 18:30:00 537

原创 18.1 信任链建立

TF-A信任链实现是通过硬件信任根逐级验证启动代码的安全机制。其核心是从ROM代码开始,按BL1→BL2→BL31/BL32→BL33的顺序进行数字签名和哈希验证,形成不可绕过的信任传递链条。关键实现包括:固化硬件信任根(ROM/eFUSE)、多级镜像验证(RSA/ECDSA签名校验)、防御回滚/重放攻击(版本控制+安全计数器)。开发时需配置可信启动选项(TRUSTED_BOARD_BOOT=1),平台需实现验证接口如plat_verify_image。未来将引入后量子密码、动态验证策略等增强机制。该设计遵

2025-07-15 17:30:00 747

原创 17.4 与TEE OS的协同

本文详细介绍了ARM平台上可信执行环境(TEE)与TF-A固件的协同工作机制。主要内容包括:1) TEE OS与TF-A的启动时序控制和安全服务调度等关键协同点;2) 启动流程中的镜像加载验证和上下文初始化实现细节;3) 运行时通过SMC调用和共享内存管理的交互机制;4) 典型应用场景下的安全服务调用流程与性能优化方法;5) 调试工具链和常见问题排查方法;6) 平台适配的具体检查清单和配置示例;7) 地址空间随机化、控制流完整性等安全增强实践。文章为开发者提供了TEE与TF-A集成的完整技术参考,涵盖从基础

2025-07-15 16:45:00 642

原创 17.2 UEFI支持

ARM平台UEFI实现与TF-A的协作架构包含硬件抽象层、运行时服务层和UEFI固件层三个关键层次。TF-A通过BL2加载验证UEFI镜像,BL31提供PSCI等运行时服务支持。集成要点包括安全启动扩展、设备树传递和内存映射协商,常见问题涉及内存冲突和SMC调用异常。最新发展涵盖VHE模式、RME扩展和Measured Boot增强等功能,为ARMv8.4+平台提供更完善的安全启动支持。

2025-07-15 15:15:00 1119

原创 17.3 与Hypervisor的集成

本文介绍了ARM架构中Hypervisor与TF-A的交互机制,重点分析了虚拟化扩展支持、PSCI实现、安全资源配置等关键技术。内容包括:1)Hypervisor与TF-A通过异常级别划分和SMC指令实现交互;2)虚拟化硬件特性集成方法;3)虚拟环境下的PSCI电源管理流程;4)虚拟机安全隔离实现方案;5)性能优化技术及常见问题解决方案。文章还探讨了测试验证方法及ARMv9虚拟化扩展等未来发展方向,为ARM虚拟化系统的设计和优化提供了技术参考。

2025-07-15 15:15:00 727

原创 17.1 与Linux内核的交互

本文介绍了TF-A(ARM可信固件)与Linux内核的启动和交互机制。主要内容包括:1)启动流程通过BL31将控制权转交给U-Boot并引导Linux内核;2)PSCI电源管理服务接口,如CPU启停和系统复位;3)设备树信息共享与内存保留区域配置;4)安全与非安全世界间的共享内存通信;5)中断处理的路由机制;6)常见问题排查方法和调试工具;7)版本兼容性、安全建议和性能优化实践。文章为ARM架构下TF-A与Linux内核的协同工作提供了技术参考。

2025-07-15 14:00:00 884

原创 16.4 硬件安全特性集成

本文介绍了ARM平台的硬件安全特性集成方法,主要包括加密协处理器、内存保护、安全调试等模块的配置实现。内容涵盖加密引擎初始化、TZC-400内存区域控制、ECC保护、防篡改检测等关键技术,并提供树莓派4和i.MX8QM的具体集成示例。文章还详细说明了硬件安全测试流程和最佳实践,强调最小权限、深度防御等原则。最后指出部分配置需与SoC厂商合作,获取完整文档才能实现最优安全方案。

2025-07-15 12:45:00 401

原创 16.2 平台初始化定制

本文详细介绍了ARM Trusted Firmware-A(ATF)平台初始化的移植要点。主要内容包括:硬件抽象层实现、启动时序控制、安全资源初始化等核心环节;内存控制器、时钟系统、电源管理等关键组件配置;TrustZone安全分区与安全启动等安全机制实现;平台拓扑结构、电源操作等特定数据定义;调试支持和验证测试方法。文章还提供了常见问题解决方案和模块化设计、版本控制等最佳实践建议,强调遵循最小权限原则进行分阶段初始化。通过代码示例和配置表格,为ATF移植提供了实用指导。

2025-07-15 11:45:00 715

原创 16.3 设备树支持

本文介绍了设备树(Device Tree)在ARM可信固件(TF-A)中的作用与处理流程。设备树在TF-A中提供硬件抽象、启动配置和运行时服务,支持多平台硬件。处理流程涵盖BL1到BL33各阶段,包括验证、修改和传递设备树。文章详细说明了平台移植中的设备树配置方法、安全相关处理、调试验证技术以及高级主题如动态修改和多级处理。最后提供了平台移植检查清单,确保设备树正确配置和安全合规。设备树机制使TF-A能灵活支持不同硬件,同时维护系统安全性。

2025-07-15 11:45:00 546

原创 16.1 新SoC支持

摘要: 本文介绍了ARM Trusted Firmware(TF-A)移植的关键步骤。主要内容包括:1)硬件文档分析与开发环境配置;2)平台最小化实现,涵盖初始化函数、内存映射等核心组件;3)启动流程适配,涉及BL1异常向量表配置和BL2到BL31的跳转;4)TrustZone安全配置与加密加速器集成;5)验证调试方法及常见问题排查;6)代码提交规范要求。移植需重点关注SoC时钟、内存控制器等硬件特性,确保符合TF-A架构标准,最终需提供完整代码、文档和测试报告。

2025-07-15 10:15:00 591

原创 15.4 安全审计与漏洞管理

本文系统阐述了TF-A(Trusted Firmware-A)的安全审计要点与方法论。主要内容包括:(1)安全审计的重要性与多维度方法(静态/动态分析、形式化验证);(2)漏洞分级管理流程与响应机制;(3)关键安全机制(启动过程、内存保护、SMC处理)的审计技术;(4)常见漏洞案例与防御性编程实践;(5)自动化安全工具链集成方案。文章提供了从代码审计到供应链安全的完整防护体系,结合ARM架构特点给出了具体实施指南,为构建军事级安全的信任链基础提供系统化解决方案。

2025-07-15 07:45:00 718

原创 15.3 FIPS 140-3要求

FIPS 140-3是美国NIST发布的加密模块安全标准,为TF-A安全认证提供核心依据。该标准包含4个安全等级和11个评估领域,要求加密模块实现算法合规(如AES/SHA)、密钥生命周期管理及自测试机制。TF-A需明确定义加密模块边界,隔离加密服务,并通过安全审计等功能满足要求。认证需提交技术文档,通过CMVP实验室测试,处理不同安全等级的物理保护差异。建议使用FIPS模式编译的mbedtls库,集成验证过的硬件加速器,并预留6-12个月认证周期。安全启动链所有镜像需包含合规声明。

2025-07-15 06:15:00 566

原创 ARM汇编编程(AArch64架构)第15课:性能优化案例

【代码】ARM汇编编程(AArch64架构)第15课:性能优化案例。

2025-07-15 02:36:13 207

原创 15.2 Common Criteria合规

Common Criteria(CC)是国际通用的IT安全评估标准,对TF-A(Trusted Firmware-A)等安全固件的合规认证至关重要。文章解析了CC评估要素(如保护轮廓、安全目标)与TF-A的关系,详细列出了TF-A需满足的安全功能需求(身份鉴别、访问控制等)和开发流程要求(威胁建模、形式化验证等)。通过可信启动链、运行时保护和安全审计等关键机制实现CC合规,并提供了认证实践指南(选择实验室、文档准备)和持续合规建议(变更分析、自动化检查)。已认证案例(如STM32MP1)表明,最小化

2025-07-14 22:30:00 1271

原创 15.1 PSA Certified认证

摘要: PSA Certified是由ARM主导的物联网安全认证体系,分为三个层级,涵盖文档审查、渗透测试及硬件抗攻击评估。TF-A(Trusted Firmware-A)作为ARM核心组件,严格遵循PSA要求,在安全启动、可信执行环境等关键领域实现合规。其设计包括安全生命周期管理(如固件更新验证)和标准化安全服务接口(加密、存储等)。认证需准备安全目标文档、威胁分析报告等材料,并通过实验室测试(如侧信道防护、故障注入)。常见问题涉及密钥保护、日志安全等,需针对性优化。通过认证后需年度复审并遵循漏洞响应流程

2025-07-14 21:15:00 892

原创 14.4 电源管理优化

本文系统介绍了TF-A中的电源管理优化技术,主要包括PSCI实现优化(快速唤醒路径、状态转换延迟分析)、平台特定优化(时钟门控、电源域划分)以及多核协同管理策略。通过DVFS调频优化、实时性保障和调试验证工具,实现了性能与功耗的平衡。典型案例显示移动平台待机功耗降低23%,服务器能效提升18%。未来方向包括机器学习预测管理、异构资源统一框架等,为系统级电源管理提供全面优化方案。(150字)

2025-07-14 17:00:00 578

原创 14.3 内存访问优化

本文系统分析了ARM架构下内存访问性能瓶颈及优化方法。主要内容包括:1) 通过PMU工具识别DDR访问延迟、缓存未命中等问题;2) 提出缓存预加载、一致性管理和数据结构优化技术;3) 详解MAIR_ELx寄存器配置与页表属性优化原则;4) 介绍DMA零拷贝、缓冲区对齐及多核NUMA感知优化方案;5) 提供TF-A实际优化案例和"测量-优化-验证"的方法论。文章强调避免过早优化,并给出了过度优化、内存属性冲突等常见问题的解决方案。

2025-07-14 13:30:00 854

原创 14.2 SMC调用性能分析

本文探讨了ARM安全监控调用(SMC)的性能优化方法。SMC作为非安全世界与安全世界的通信机制,其性能直接影响TEE响应延迟、电源管理效率和系统吞吐量。文章详细分解了SMC调用开销的四个主要阶段(世界切换、异常处理、服务路由和实际处理),并介绍了硬件性能计数器、TF-A追踪等分析工具。关键优化技术包括:精简世界切换路径、哈希表加速服务路由、共享内存数据传递等。通过OP-TEE和PSCI的实际案例展示了29%-64%的性能提升。最后提出动态频率调整、缓存预热等调优建议,以及ARMv8.4-SEL2扩展等未来优

2025-07-14 12:45:00 371

原创 14.1 启动时间优化

【代码】14.1 启动时间优化。

2025-07-14 11:15:00 1541

原创 13.4 核间通信(IPC)

本文系统介绍了ARM多核系统中基于TF-A的核间通信(IPC)实现。主要内容包括:1) IPC基础架构与安全机制;2)共享内存与处理器中断(IPI)实现方法;3)典型通信模式与性能优化技巧;4)安全增强措施与调试方法;5)平台移植指南与未来发展方向。文章详细阐述了TF-A如何通过硬件加速通道、消息传递接口等技术实现安全可靠的核间通信,并提供了代码示例、时序图等具体实现细节,为开发者构建高效多核系统提供了实用参考。

2025-07-14 10:30:00 609

原创 13.3 多集群电源管理

本文介绍了ARM多集群系统架构在TF-A中的电源管理实现。主要内容包括多集群设计背景(异构计算、电源域隔离等),TF-A通过PSCI扩展支持集群级电源管理(如CLUSTER_SUSPEND状态),电源状态协调机制(RUN/STANDBY/RETENTION/OFF),以及负载均衡、唤醒顺序等关键策略。详细说明了平台需实现的硬件抽象接口和典型挑战(缓存一致性、中断路由等),并提供了调试方法和安全注意事项。最后建议实时系统保持至少一个集群在线以确保低延迟响应。全文从架构设计到具体实现,系统性地阐述了多集群电源管

2025-07-14 09:00:00 1448

原创 13.2 CPU热插拔实现

本文介绍了TF-A(Trusted Firmware-A)中CPU热插拔机制的实现原理与关键技术。主要内容包括:1)热插拔概述,说明其通过PSCI接口、状态机管理和电源域协同实现动态CPU核心管理;2)实现架构,包含状态转换流程和关键组件(平台抽象层、通用服务层、硬件操作);3) 详细的上电/下电流程解析;4) 常见问题解决方案,如缓存一致性维护和状态同步;5) 平台移植要点和测试验证方法。该技术广泛应用于数据中心节能和移动设备功耗优化,实现中需特别注意安全状态维护和电源时序控制。

2025-07-14 08:15:00 707

原创 13.1 启动顺序与同步机制

ARM多核启动分为冷启动(主核初始化,从核等待唤醒)和热启动(低功耗恢复)两种模式。TF-A启动流程分为主核初始化、从核唤醒和运行时同步三个阶段,采用spin_table或PSCI协议进行核间通信。核心机制包括内存屏障、bakery锁算法,并需配置设备树参数。常见问题包括从核启动失败、死锁和缓存一致性,可通过日志调试。优化建议涉及并行初始化、延迟唤醒和缓存预热,需严格遵循ARM内存模型确保多核同步。(150字)

2025-07-14 07:00:00 520

Trustzone/TEE标准版-48节课/19.5h

【课程大纲】 (课程目标) 1、最快速地了解,SOC安全架构、Arm安全架构、Trustzone/TEE分别是什么?应用场景是怎样的? 1、知道我学习什么,我要怎么去学习,从此之后有了一个明确的学习路线。 2、认识一些共同目标的人,相互讨论问题,共同进步。勤学、共学、助学。 3、ARM不再神秘,SOC不在神秘,安全架构不再神秘,Trustzone不在什么,TEE不在神秘,让您短期内就能cover住全局 4、助你技术能力大大提升,质地飞跃,跨级飞跃。 5、有了这些基础知识后,市面上出现的任何SOC、任何软件架构,你都不在害怕,都能在短时间内快速上手。

2025-02-13

Arm精选-铂金VIP课程-总课时1000节+、总时长360h+、总价值3w+

讲师介绍 拥有 12 年手机安全、汽车安全、芯片安全开发经验,擅长 Trustzone/TEE/ 安全的设计与开发,对 ARM 架构的安全领域有着深入的研究和丰富的实践经验,能够将复杂的安全知识和处理器架构知识进行系统整理并清晰讲解,透过事务看本质,帮助学员快速入门和理解。

2025-02-13

《optee系统架构从入门到精通》

课程大纲 01-Trustzone简介 什么是TEE?TEE基础科普 TEE的生态介绍?有哪些TEE厂商?各有什么特点? 02-TEE技术简介 什么是TEE?TEE基础科普 TEE的生态介绍?有哪些TEE厂商?各有什么特点? 03-TEE的生态和应用 这么些年过来,TEE为什么一直不温不火? TEE在手机生态中表现如何?发展趋势如何? TEE在汽车电子领域又是怎样的?是否大有前途? TEE在服务器领域是否有应用? TEE在物联网IOT中是否有需求? TEE还在哪些领域中有需求?(电视机/机顶盒…) 04-TrustzoneTEE的学习方法 什么是trustzone?什么是TEE?什么是架构? Trustzone是硬件吗?是软件吗? 当前主流的软件和硬件是怎么样子的?有什么标准规范吗? 如何学习Trustzone/TEE? 学习Trustzone/TEE的最佳路径是怎样的? 什么是软硬件交互?软硬件是怎样交互的?如何学习软硬件交互的主流框架?

2025-02-10

深度学习armv8armv9 cache的原理

ARM 架构刚开始开发时,处理器的时钟速度和内存的访问速度大致相似。今天的处理器内核要复杂得 多,并且时钟频率可以快几个数量级。然而,外部总线和存储设备的频率并没有达到同样的程度。可以 实现可以与内核以相同速度运行的小片上 SRAM块,但与标准 DRAM 块相比,这种 RAM 非常昂贵, 标准 DRAM 块的容量可能高出数千倍。在许多基于 ARM 处理器的系统中,访问外部存储器需要数十甚 至数百个内核周期。 缓存是位于核心和主内存之间的小而快速的内存块。它在主内存中保存项目的副本。对高速缓冲存储器 的访问比对主存储器的访问快得多。每当内核读取或写入特定地址时,它首先会在缓存中查找。如果它 在高速缓存中找到地址,它就使用高速缓存中的数据,而不是执行对主存储器的访问。通过减少缓慢的 外部存储器访问时间的影响,这显着提高了系统的潜在性能。通过避免驱动外部信号的需要,它还降低 了系统的功耗

2025-01-19

optee返回REE的几种方式

TEE(optee)切换到REE(linux)几种方式 1、开机时,ATF跳转到optee初始化,初始化完成后再回到normal world 2、在uboot或linux driver中,调用fast call切到optee获取信息,然后再回到normal world 3、标准的std调用到optee,此时又分三种情况: 当cpu在执行std任务tee_entry_std(…)时,任务处理完成了,需要切换REE; 当cpu在执行std任务tee_entry_std(…)时,如有REE服务, 这时候会RPC调用切换REE 当cpu在执行std任务tee_entry_std(…)时,来了一个foreign interrupt, 这时候cpu也会切回REE

2025-01-19

optee的RPC设计(模型)详解

1、REE和TEE正向调用/反向调用的流程图 开机之后,启动tee-supplicant后,执行: a b 一次完整的TEE调用流程: 1 2 3 4 5 一次完整的RPC流程 : 6 7 b 8 c 2 一次完整的TEE调用流程(在TEE中又调用了RPC): 1 2 3 4 5 6 7 b 8 c 2 3 4 5 2、REE到TEE的正向调用 ① APP调用CA,CA调用libteec.so,libteec.so调用/dev/tee0节点,进入驱动的ioctl函数 ② ioctl函数中调用optee_do_call_with_arg(),该函数调用smc将CPU通过ATF切换到了optee ③④ optee处理完任务后,调用smc通过ATF返回到驱动中的ioctl(返回到②中刚才切出去的地方) ⑤ ioctl返回到应用程序

2025-01-19

optee4.0.0 qemu-v8的环境搭建篇(ubuntu20.10)

1、拉取代码 repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml --repourl=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b 4.0.0 2、下载工具链 make -f toolchain.mk toolchains 3、编译 make -f qemu_v8.mk all -j8

2025-01-19

Linux Kernel中的系统调用分析

例如: SYSCALL(NR_flock, sys_flock),其实就是定义__arm64_sys_flock函数 SC_COMP(NR_ioctl, sys_ioctl, compat_sys_ioctl),其实就是定义__arm64_compat_sys_ioctl函数 在sys.c中定义并初始化了系统调用的tab表 (kernel-4.19/arch/arm64/kernel/sys.c) #undef __SYSCALL #define __SYSCALL(nr, sym) [nr] = __arm64_##sym, const syscall_fn_t sys_call_table[__NR_syscalls] = { [0 ... __NR_syscalls - 1] = __arm64_sys_ni_syscall, #include <asm/unistd.h> };

2025-01-19

向linux kernel中添加cmdline的四种方式

在android的Makefile中添加 vim build/core/Makefile INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE) buildvariant=$(TARGET_BUILD_VARIANT) $(VERITY_KEYID)) ifdef INTERNAL_KERNEL_CMDLINE INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)" endif

2025-01-19

Trusty qemu + android环境搭建详细步骤

下载源码 mkdir trusty cd trusty repo init -u https://android.googlesource.com/trusty/manifest -b master repo sync -j32 编译 ./trusty/vendor/google/aosp/scripts/build.py generic-arm64 查看编译结果 ls build-root/build-generic-arm64/lk.bin 安装运行依赖 sudo apt install libpixman-1-dev libstdc++-8-dev pkg-config libglib2.0-dev libusb-1.0-0-dev

2025-01-19

多核多cluster多系统之间缓存一致性概述

然后请思考: (1)、core0中的L1和L2 cache有一致性的要求吗?缓存和替换策略是怎样的? (2)、core0 cache 和 core1 cache的一致性是谁来维护? 遵从MESI协议吗? (3)、core0 cache 和 core4 cache的是怎么维护一致性的呢? (4)、custer0 L3 cache 和 cluster1 L3 cache的一致性是谁来维护?遵从什么协议吗? (5)、custer0 L3 cache 和 GPU的L2一致性呢?遵从什么协议? (6)、custer0 L3 cache 和 其它的 I/O device Master 一致性呢?遵从什么协议? (7)、DSU、ACE、CHI、CCI、CMN的概念?

2025-01-19

SOC的多核启动流程详解

1、基础概念 请先自行理解以下4个概念: cold boot warm boot Primary boot Secondary boot 另外还两种配置: 你的reset地址是可编程的,则会配置 PROGRAMMABLE_RESET_ADDRESS=1 ,与之对立的则是你的 reset地址是不可编程的。 你在SOC启动的时候,首先只启动一个core,则会配置 COLD_BOOT_SINGLE_CPU=1 ,与之对立的则 是你的SOC启动的时候,所有core都上电了。

2025-01-19

SMMU学习这一篇就够了

访问非连续的地址 现在系统中很少再预留连续的memory,如果Master需要很多memory,可以通过SMMU把一些非 连续的PA映射到连续的VA,例如给DMA,VPU,DPU使用。 32位转换成64位 现在很多系统是64位的,但是有些Master还是32位的,只能访问低4GB空间,如果访问更大的地址 空间需要软硬件参与交换memory,实现起来比较复杂,也可以通过SMMU来解决,Master发出来 的32位的地址,通过SMMU转换成64位,就很容易访问高地址空间。 限制Master的访问空间 Master理论上可以访问所有的地址空间,可以通过SMMU来对Master的访问进行过滤,只让 Master访问受限的区域,那这个区域也可以通过CPU对SMMU建立页表时动态控制。 用户态驱动 现在我们也看到很多系统把设备驱动做在用户态,调用驱动时不需要在切换到内核态,但是存在一 些安全隐患,就是用户态直接控制驱动,有可能访问到内核空间,这种情况下也可以用SMMU来实 现限制设备的访问空间 设备虚拟化 例如设备虚拟化有多种方式,Emulate,Para-virtualized,以及Pass-t

2025-01-19

optee的共享内存的介绍

1、共享内存的介绍 share memory是一块内存区域, 用于non-secure world和secure world的通信. optee支持两种share memory: 连续的buffer,非连续的buffer optee是按照buffer来管理共享内存的,而不是按照pool来管理的. 每一个buf需要配置如下属性: buffer的起始地址和size 该buffer的cache属性 如果是被map到非连续的buf,则列出它所有的块(chunk) 配置成连续的share buffer CFG_CORE_RESERVED_SHM=y CFG_SHMEM_START and CFG_SHMEM_SIZE 定义起始地址和size 该memory的type是MEM_AREA_NSEC_SHM 在non-secure world需要调用OPTEE_SMC_GET_SHM_CONFIG来获取: share memory的物理地址和size share memory的cached属性

2025-01-19

openssl命令行:RSA的用法- 终极版

1、生成密钥 openssl genrsa -out test2048_priv.pem 2048 openssl rsa -pubout -in test2048_priv.pem -out test2048_pub.pem openssl genrsa -out test3072_priv.pem 3072 openssl rsa -pubout -in test3072_priv.pem -out test3072_pub.pem openssl genrsa -out test4096_priv.pem 4096 openssl rsa -pubout -in test4096_priv.pem -out test4096_pub.pem 2、查看密钥 openssl rsa -in test2048_priv.pem -text -out openssl rsa -in test3072_priv.pem -text -out openssl rsa -in test4096_priv.pem -text -out

2025-01-19

mbedtls移植体验

1、下载mbedtls源码 git clone https://github.com/ARMmbed/mbedtls.git 2、下载编写程序的模板 (我自己的/通用的) git clone https://gitee.com/baron_zz/code_template.git 3、拷贝native_c_template命名为mbedtls_test cp native_c_template mbedtls_test -r 4、将mbedtls 中的libary、include目录拷贝到mbedtls_test 中

2025-01-19

Linux内核驱动面试的100问

什么是Linux内核?与用户空间有何区别? Linux内核的主要功能有哪些? 内核模块是什么?它们是如何工作的? 描述内核空间和用户空间之间的通信机制。 什么是系统调用?请给出几个例子。 如何查看当前系统的内核版本? 解释Linux内核的模块化是如何实现的。 什么是设备树?它在Linux内核中扮演什么角色?

2025-01-19

Linux Kernel中断下半部分实现的三种方式

1、软中断 软中断是一组静态定义的下半部接口,有 32 个,可以在所有处理器上同时执行,类型相同也可以;在编 译时静态注册。 软中断的相关函数: 注册软中断 open_softirq 触发软中断 raise_softirq 执行软中断 do_softirq

2025-01-19

Linux Kernel中的同步机制的介绍

既然是3条指令,那么就有可能并发,也就意味着返回的结果可能不说预期的。 然后在linux kernel的操作系统中,提供访问原子变量的函数,用来解决上述问题。其中部分原子操作的 API如下: atomic_read atomic_add_return(i,v) atomic_add(i,v) atomic_inc(v) atomic_add_unless(v,a,u) ldr x0, &a add x0,x0,#1 str x0,&a atomic_inc_not_zero(v) atomic_sub_return(i,v) atomic_sub_and_test(i,v) atomic_sub(i,v) atomic_dec(v) atomic_cmpxchg(v,old,new)

2025-01-19

linux kernel中的cmdline的详细介绍

1、向linux kernel添加cmdline的四种方式 在linux启动时候,串口log中会打印cmdline 在linux启动完成后,通过 cat /proc/cmdline也是可以看到cmdline. 那么cmdline是如何添加的呢? (1)、 在dts中的bootargs中添加 (2)、在BoardConfig中添加 vim device/xxx/xxx_evb/BoardConfigCommon.mk (3)、在uboot中添加 vim u-boot/common/cmd_bootm.c [ 0.000000] c0 0 (swapper) Kernel command line: earlycon androidboot.selinux=permissive uart_dma keep_dbgclk_on clk_ignore_unused initrd=0xd0000000,38711808 rw crash_page=0x8f040000 initrd=/recoveryrc boot_reason=0x2000 ota_status=0x1001

2025-01-19

《ATFopteehafniuminuxxen代码精读》

《ATFopteehafniuminuxxen代码精读》

2025-02-14

《optee系统开发精讲》

【学员收益】 1、全体系的掌握optee的核心知识点(多核多线程、启动流程、各类API、TA/PTA/STA、driver、service、各类设计思想、内存管理、中断管理…); 2、掌握TEE OS的设计核心思想(不限与optee,对其它TEE也是如此),能够进入软件架构层次的各项设计; 3、快速熟悉大系统软件的各项组件,能够进行大系统软件之间的设计或排查问题 4、学习和理解理解Armv8/Armv9架构、Trustzone架构 5、技术水平提升N个level, 掌握快速的学习方法;

2025-02-13

《飞书专栏-TEE文档》

《飞书专栏-TEE文档》

2025-02-13

《8天入门ARM架构》

《8天入门ARM架构》

2025-02-13

cache直播训练营回放+cacha专题-单售

cache直播训练营回放+cacha专题-单售

2025-02-13

《Android KeymasterKeymint精讲》

课程大纲: Keystore/Keystore2/keymaster/keymint的概念 keymaster/keymint的版本演进 keymint接口示例 Keystore/keymaster/keymint/Strongbox 软件框架 Keystore软件框架 Keystore算法使用示例 要求进行用户身份验证才能使用密钥 Keystore-strongbox 算法使用示例 AuthToken的使用示例 A/B System AVB 2.0 AVB需求和设计 RootOfTrust 定义 Root of trust binding ROT的介绍 版本绑定 Trusty CA和TA通信的定义 Trusty CA和TA的代码 Keymaster和keymint HAL接口定义 Android attestation Key Android RKP Keystore异常示例 strongbox........

2025-02-13

ATF系统安全从入门到精通

ATF系统安全从入门到精通

2025-02-13

Secureboot从入门到精通 训练营

【适用人群】 安全启动做为大系统启动中的重要环节,各类人群、各个方向的同学前来学习。 [行业]:汽车电子、手机、服务器、云计算、物联网、人工智能 行业的同学; [人群]:本科/研究生/博士、初级工程师、中级工程师、资深工程师、行业大佬,即适合小白入门,也适合大佬查缺补漏; 方向]:电子/计算机专业、芯片架构设计、芯片底层软件、芯片验证、BSP软件开发、内核驱动开发、固件开发、bootrom/bootloader开发、安全、虚拟化、大系统开发等; [行业链]:主机厂、OEM、OEM、tier1、SOC厂家、各级供应商;

2025-02-13

《optee系统架构从入门到精通》

optee的打印log是如何实现的? 在optee_os中的打印log函数是啥?有几种log输出级别控制?能否动态控制? 在TA中的打印log函数是啥?有几种log输出级别控制?能否动态控制? 那如何控制optee os的log输出呢?如何控制TA的log输出呢? 除了uart打印log方案,还有别的方案吗? uart打印log方案中,串口终端会不会出现乱码,如何解决呢? 在optee启动很早期的,uart driver还没初始化呢,这个时候如果需要看log有什么办法实现? 在TA中关闭log后,TA调用到optee_os后,optee_os的log级别是否受TA的trace_level控制? 在TA中控制log的输出,到底是怎样控制的?是靠宏比较?还是靠底层C语言代码检查flag? 如何自己实现一套TA log的输出机制?尽量不依赖平台、不依赖os。

2025-02-13

《optee入门实战版》

说明:trustzone/tee高配版、标准版、实践版,相互独立,互不包含、互不冲突。

2025-02-13

《aarch64汇编从入门到精通》-204页PPT+实验

【适用人群】 1、电子信息大类专业、计算机大类专业; 2、任何从事或想从事底层开发的; 3、嵌入式软件工程师 4、Linux内核驱动工程师 5、系统工程师、BSP工程师、驱动工程师 6、SOC/芯片底层软件开发者 7、汽车电子工程师 8、学生 … 9、既适合资深/高级工程师来查缺补漏,又适合初级工程师入门,也适合ASIC同事跨界学习,软硬件融合

2025-02-13

《8天入门TrustzoneTEE安全架构》

《8天入门TrustzoneTEE安全架构》

2025-02-13

学好ARM让领导刮目相看《Armv8Armv9架构从入门到精通(三期)》

5 课程大纲 ARM基础:Arm基础简介、ARM和SOC架构基本原理、ARM的4个异常等级4个安全状态2个执行状态、aarch64的重要寄存器、A64指令集 异常中断&gic:学ARM架构最重要的就是学习异常中断,异常中断是ARM架构的灵魂,学好异常中断再去学习其它模块,就像开挂。多系统、大系统之间的调用/切换靠着就是异常中断。 Trustzone:Trustzone安全架构是Armv8/Armv9架构中的重要一环,ARM架构中的每一个知识点都和安全有着密不可分割的关系,没有安全的学习是不完整的学习。 虚拟化:虚拟化也是ARM架构中的重要组成部分,虚拟化不仅仅是hypervisor,虚拟化不仅仅是normal world侧才有,在安全侧也有虚拟化。 Cache:在工程实践中,我们所遇到的最难的问题、超低概率性的问题,80%以上都是和cache相关的。cache做为ARM架构中最难的一个模块,我们有必要花时间将这部分学透学精,学通后你将信息满满、自信爆棚。 MMU:MMU做为ARM架构中最简单的一个模块,对于软件工程师几乎是透明的,MMU模块的学习是最具有性价比的一个知识点,花

2025-02-13

飞书知识库文档-Arm专栏

我们有短域名,http://armdoc.hehezhou.cn,好记,在公司摸鱼学习更方便。 我们有讨论群、课程群等,交流/沟通/学习更方面。 我们开通权限更方便。不用要求您加入组织,也不用互加飞书好友。仅仅要求您扫码入飞书群,就可以自动获取权限。

2025-02-13

《Android13安全架构详解》

课程介绍 讲解最新最全的Android安全架构,本课程包含但不限于以下课程: 密码锁/locksetting/gatekeeper 生物认证/指纹/人脸 keystore/keystore2/keymaster/keymint googlekey/attestationKey cts/vts/CDD解读 代码导读、流程分析 安全业务的设计 TEE简介

2025-02-13

《CATA开发从入门到精通》

【课程大纲】 从无到有编写代码,已完成的大纲如下: 2秒钟快速编写(clone)一组CA/TA程序 安全存储详解以及代码示例 CA到TA双向传参数的四种方式(value、temref、memref),区别?优缺点? 对称密码学算法aes的使用,CBC/ECB/CTR/XTS分组密码的使用,加密解密,pending等 aeskey的操作,如何随机生成aeskey(TEE_GenerateKey),objectHandle和aesbuf有什么区别?如何将handle 认证加密算法,如aes-GCM的使用 非对称密码学算法RSA的使用,包括加密、解密、签名、验签 RSA key的处理,包含如何生成RSA KEY,rsakey object如何转换成可见的数组,如何转换der,如何转换pem,反向又如何转换 ECC/ECDSA的使用 国密sm2 sm3 sm4的使用. 其中sm4包含加密、解密、签名、验签等 encode和decode的实现 TA属性的定制以及API的使用

2025-02-13

《CoresightTraceDebug大合集》64节课16小时,6大主题, 685页PPT

《CoresightTraceDebug大合集》64节课16小时,6大主题, 685页PPT

2025-02-13

《Arm架构-功耗管理精讲与实战》

目录 1、功耗管理背景及挑战 2、功耗管理架构演进及变迁 3、系统分区-电压域和电源域 4、功耗状态及功耗模式 5、功耗管理框架-SCP&PPU&LPI 6、功耗管理软件 7、功耗管理标准接口 8、多核处理器启动 9、睡眠锁与唤醒源 10、功耗管理实战 11、功耗数据与功耗收益评估 12、功耗管理与安全

2025-02-13

《Android15安全架构课程》

2025-02-13

《TrustzoneTEE安全从入门到精通-高配版》

【课程大纲】 (课程目标) 最快速地了解,SOC安全架构、Arm安全架构、Trustzone/TEE分别是什么?应用场景是怎样的? 1、知道我学习什么,我要怎么去学习,从此之后有了一个明确的学习路线。 2、认识一些共同目标的人,相互讨论问题,共同进步。勤学、共学、助学。 3、ARM不再神秘,SOC不在神秘,安全架构不再神秘,Trustzone不在什么,TEE不在神秘,让您短期内就能cover住全局 4、助你技术能力大大提升,质地飞跃,跨级飞跃。 5、有了这些基础知识后,市面上出现的任何SOC、任何软件架构,你都不在害怕,都能在短时间内快速上手。

2025-02-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除