第3章:TF-M 架构 + SPM 调度
摘要CRA Article 13(2) 要求安全隔离PSA Certified Level 2 强制硬件隔离。本文用 TrustZone-M 两个世界 三类硬件单元 DEN0063 三级隔离 SPM 调度与 IPC 全链路讲清楚 TF-M 如何满足 CRA 与 PSA 双重要求。开篇一个 400 万美元的教训2015 年一颗 Cortex-M4 的智能门锁固件被攻破。攻击者通过 BLE 协议栈的一个缓冲区溢出直接读到了同一内存空间里的设备私钥——因为加密代码、协议栈、应用逻辑全跑在同一个特权级没有任何硬件隔离。厂商召回 8 万台门锁损失400 万美元。2018 年Arm 发布 PSA 架构给出了解法把 CPU 拆成两个世界。安全世界跑 TF-M 固件掌管密钥非安全世界跑应用。两个世界通过 TrustZone-M 硬件隔离哪怕应用全盘被黑攻击者也读不到安全世界的密钥。2024 年TF-M 已成为 PSA Certified Level 2 的事实标准——Nordic、ST、NXP、Silicon Labs、TI 全部采用。自研隔离方案的厂商在 PSA 评估中要额外证明隔离有效性成本反而更高。没有硬件隔离的系统安全只是侥幸。一、为什么需要固件隔离CRA 与 PSA 的双重强制CRA Article 13(2) 要求CRA 要求安全隔离——敏感安全功能密钥、认证、加密必须与普通功能应用、协议栈、驱动隔离。这是 CRA 的 13 项核心要求之一Class I Important 及以上需第三方评定。PSA Certified 强制要求标准隔离要求等级CRA Article 13(2)安全功能与普通功能隔离Class IEN 18031-2 要求 4.2安全隔离机制全部PSA Certified L1软件隔离即可L1PSA Certified L2硬件隔离TZ-ML2PSA Certified L3分区间硬件隔离SAU/MPUL3没有隔离的代价应用漏洞buffer overflow读取同一地址空间的密钥伪造设备身份冒充合法设备接入云平台横向移动攻击其他设备真实案例某厂商的 BLE SoC 没有 TrustZone-MBLE 协议栈与应用代码同地址空间。攻击者通过 BLE L2CAP 的一个溢出漏洞读取了 2KB 外的设备私钥。修复方案升级到 Cortex-M33 TZ-M密钥移入安全世界。二、TrustZone-M 硬件隔离机制两个世界TrustZone-MArmv8-M 架构Cortex-M23/M33/M55/M85把 CPU 拆成两个执行域执行域简称运行内容访问权限Secure Processing EnvironmentSPETF-M 固件、密钥、安全服务可访问安全 非安全区域Non-Secure Processing EnvironmentNSPE应用、RTOS、协议栈、驱动只能访问非安全区域配图提示双世界隔离示意图硬件拦截不可直接访问NSC SG 指令受控调用NSPE应用 RTOS 协议栈SPETF-M 密钥 安全服务三类硬件单元单元全称作用配置者IDAUImplementation-Defined Attribution Unit定义物理地址的安全属性芯片厂商硬件固化SAUSecurity Attribution Unit软件可配置的安全属性TF-M运行时AUAttribution Unit总线层面的访问控制SoC 总线硬件关键点IDAU 是硬件固化的——芯片设计阶段就定死了哪些地址是安全的。这保证了即使 SAU 被篡改安全区域也不会被非安全侧访问。NSC 区域与 SG 指令最小入口原则非安全世界不能直接跳转到安全世界的任意地址——直接跳转会触发 HardFault。唯一的入口是NSCNon-Secure Callable区域应用代码 → NSC 跳板 → SG 指令 → SPM 调度 → 安全分区 → 返回结果 → NSC → 应用代码应用调用 PSA API如psa_hash_compute()函数指针指向 NSC 区域的 stub 代码NSC 区域位于安全 Flash 最前面只含SGSecure Gateway指令执行 SG 指令后 CPU 自动切到安全模式进入 TF-M 的 SPM 调度到对应安全分区⚠️工程教训某厂商的 NSC stub 写了 50 个函数其中 3 个参数校验不完整攻击者通过缓冲区溢出在安全侧执行了任意代码。SG 接口应控制在 20 个函数以内每个函数参数白名单校验。内存映射示例0x1000_0000 - 0x1FFF_FFFF: Secure Flash ← TF-M 固件 密钥 0x2000_0000 - 0x2FFF_FFFF: Non-Secure Flash ← 应用固件 0x3000_0000 - 0x3000_FFFF: NSC Region ← 安全入口跳板 0x4000_0000 - 0x40FF_FFFF: Secure SRAM ← TF-M 运行时数据 0x4100_0000 - 0x41FF_FFFF: Non-Secure SRAM ← 应用运行时数据链接阶段就把 Flash/SRAM 物理地址分配到安全/非安全区域。CPU 上电默认在安全模式运行 TF-M初始化完成后跳转到非安全世界执行应用。三、PSA 固件框架 DEN0063规范与实现的关系项目DEN0063TF-M性质Arm 规范文档参考实现代码内容定义隔离模型、SPM、RoT Service、IPCC 代码可直接编译运行关系PSA Certified 认证依据满足 DEN0063 的开源实现类比POSIX 标准Linux/glibc规范引用做 PSA Certified 认证必须遵守 DEN0063可以直接用 TF-M也可以自研——但自研方案在评估时要额外证明符合 DEN0063成本极高。三级隔离隔离级别机制硬件要求PSA LevelLevel 1软件隔离同一特权级无 TrustZoneL1Level 2世界隔离TZ-M 两世界TrustZone-ML2Level 3分区间硬件隔离SAU/MPUTZ-M MPUL3配图提示三级隔离演进图Level 1软件隔离所有安全服务同地址空间Level 2世界隔离安全/非安全两世界Level 3分区间隔离每个分区独立 MPU 区域Level 1所有安全服务在同一个安全世界靠软件边界隔离。一个服务的 bug 可能影响其他服务Level 2安全世界 vs 非安全世界硬件隔离。应用被黑不影响安全服务但安全服务之间仍同地址空间Level 3每个安全分区有独立 MPU 区域分区间硬件隔离。一个分区的漏洞不会泄露另一个分区的密钥工程视角Level 2 是性价比拐点——Cortex-M33 TZ-M 的 IP 成本约 10-30 万美元满足 PSA Level 2。Level 3 需要 MPU 精细化配置 分区独立栈内存开销增加 20-40%但安全性显著提升。Nordic nRF5340 用 Level 2ST STM32WBA6x 用 Level 3。Secure Partition——最小隔离单元每个 Secure Partition 是 SPE 内部的最小隔离单元有独立的内存区域代码 数据 栈有唯一的 Partition ID单线程模型不能直接访问其他分区内存通过 SPM 中转的 IPC 通信配图提示SPM 管理多分区架构图IPC via SPMSPMSecure Partition ManagerCrypto 分区AES/SHA/ECCITS 分区片上安全存储PS 分区外部加密存储Attestation 分区设备证明App-RoT 分区厂商自定义PSA-RoT vs App-RoT层提供者内容认证方式PSA-RoT芯片厂商SPM、生命周期、不可变 RoT、Crypto、启动更新平台级认证App-RoT设备厂商厂商自定义认证协议、特定安全存储、第三方组件产品级认证分开之后芯片厂商可以独立认证 PSA-RoT设备厂商只需认证自己的 App-RoT不用重新认证整个安全栈——这是 PSA Certified 分级认证的基础。四、SPM 调度与 IPC 通信SPM 是什么SPMSecure Partition Manager是 TF-M 的核心负责分区管理创建、销毁、调度安全分区IPC 中转分区间通信必须经过 SPM访问控制校验分区对资源的访问权限中断路由安全中断分发到对应分区事件驱动 协作式调度SPM 是事件驱动 协作式调度器——分区不能被抢占必须主动调用psa_wait()让出 CPU// 安全分区的主循环伪代码voidpartition_main(void){psa_signal_tsignals;while(1){signalspsa_wait(PSA_WAIT_ANY,PSA_BLOCK);// 等待消息if(signalsMAILBOX_SIGNAL){handle_request();// 处理 IPC 请求psa_reply(handle,PSA_SUCCESS);// 回复}}}⚠️重要提醒协作式调度意味着分区不能有死循环——一个分区如果一直不调用psa_wait()整个安全世界会卡死。某厂商的加密分区在 RSA-3072 签名时阻塞了 200ms导致其他分区的看门狗超时。修复方案RSA 改用 ECDSA P-25610ms或拆分为异步操作。IPC 通信全链路Crypto 分区SPMNSC 跳板NS 应用Crypto 分区SPMNSC 跳板NS 应用1. psa_hash_compute()2. SG 指令切安全模式3. 查找 Crypto 分区 handle4. 投递消息到分区 mailbox5. 执行 SHA-256硬件加速6. psa_reply() 返回结果7. 返回结果到 NSC8. 返回哈希值配图提示IPC 通信时序图IPC 开销不是免费的操作耗时说明NS→S 切换SG 指令~100 cycles硬件自动SPM 调度~500 cycles查找分区、投递消息分区切换Level 3~200 cyclesMPU 重配置单次 IPC 总开销~800 cycles约 5-10μs 64MHz工程教训某厂商的应用每次加密 16 字节都要一次 IPC加密 1KB 数据要 64 次 IPCIPC 开销占 70%。修复方案用psa_hash_compute()一次性接口替代psa_hash_setup/update/finish多次调用IPC 次数从 64 降到 1。本期小结CRA Article 13(2) 要求安全隔离PSA Level 2 强制硬件隔离TrustZone-M 把 CPU 拆成两个世界IDAU 硬件固化安全属性NSC SG 指令是最小入口原则SG 函数应 ≤20 个DEN0063 定义三级隔离Level 2 是性价比拐点SPM 是事件驱动 协作式调度分区不能有死循环IPC 不是免费的用一次性 API 替代多步调用下期预告第 4 期PSA Crypto API 实战下一期进入工程实战——TF-M 的四大核心服务如何使用Crypto 分区密钥不离开安全世界ITS/PS 存储分区片上 vs 外部Attestation 分区设备证明TF-M Zephyr/FreeRTOS 集成自研隔离 vs TF-M 成本对比关注本系列从架构走向代码。互动话题你的项目用 TrustZone-M 了吗选 Level 2 还是 Level 3留言区分享你的选型经验转发给固件/安全团队对照三级隔离评估收藏本文随时查阅 TF-M 架构关注本账号每周更新 CRA × PSA 合规实战内容。话题标签#TF-M#TrustZone#PSA#固件隔离#Cortex-M33#IoT安全#芯片安全#CRA

相关新闻

【Bug已解决】Different results for PPDocLayoutV3 on CPU and CUDA 解决方案

【Bug已解决】Different results for PPDocLayoutV3 on CPU and CUDA 解决方案

【Bug已解决】Different results for PPDocLayoutV3 on CPU and CUDA 解决方案 一、现象长什么样 用 PPDocLayoutV3(PaddlePaddle 文档版面分析模型,常经 transformers 桥接或在 GPU 机器上推理)做文档版面检测,发现同一张图&…

2026/8/4 14:00:09 阅读更多 →
AI情侣头像如何通过平台审核?2024微信/小红书/抖音最新审核规则实测解读

AI情侣头像如何通过平台审核?2024微信/小红书/抖音最新审核规则实测解读

更多请点击: https://codechina.net 第一章:AI情侣头像如何通过平台审核?2024微信/小红书/抖音最新审核规则实测解读 三平台核心审核维度对比 2024年实测表明,微信、小红书与抖音对AI生成情侣头像的审核逻辑已从“一刀切”转向“…

2026/8/4 13:59:08 阅读更多 →
用AI写电子书到底靠不靠谱?——资深数字出版人实测12款工具,准确率/版权风险/平台拒收率全曝光(2024Q2权威报告)

用AI写电子书到底靠不靠谱?——资深数字出版人实测12款工具,准确率/版权风险/平台拒收率全曝光(2024Q2权威报告)

更多请点击: https://codechina.net 第一章:AI写电子书的可行性边界与行业真相 AI生成电子书已从概念验证进入商业化落地阶段,但其能力边界远非“一键成书”所能概括。当前主流大语言模型(如GPT-4、Claude 3、Qwen2.5&#xff09…

2026/8/4 13:59:08 阅读更多 →

最新新闻

SRWE终极指南:如何突破Windows窗口限制,轻松实现游戏截图和窗口控制

SRWE终极指南:如何突破Windows窗口限制,轻松实现游戏截图和窗口控制

SRWE终极指南:如何突破Windows窗口限制,轻松实现游戏截图和窗口控制 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 想要在普通显示器上体验50005000分辨率的游戏截图吗?想摆…

2026/8/4 17:00:42 阅读更多 →
StreamCap:如何轻松实现跨平台直播自动录制,再也不错过精彩内容

StreamCap:如何轻松实现跨平台直播自动录制,再也不错过精彩内容

StreamCap:如何轻松实现跨平台直播自动录制,再也不错过精彩内容 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_…

2026/8/4 17:00:42 阅读更多 →
SolidWorks_标准零件库7_标准件装配规范

SolidWorks_标准零件库7_标准件装配规范

标准件装配规范:正确配合定位标准件(同心、重合配合与智能配合)在机械设计与三维建模中,标准件(如螺栓、轴承、销钉)的装配质量直接决定装配体的精度与可维护性。本文从实战出发,系统讲解同心配…

2026/8/4 17:00:42 阅读更多 →
Windows热键冲突检测:Hotkey Detective技术深度解析与实战指南

Windows热键冲突检测:Hotkey Detective技术深度解析与实战指南

Windows热键冲突检测:Hotkey Detective技术深度解析与实战指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …

2026/8/4 17:00:42 阅读更多 →
NHSE:3步掌握《动物森友会》存档编辑的完整方案

NHSE:3步掌握《动物森友会》存档编辑的完整方案

NHSE:3步掌握《动物森友会》存档编辑的完整方案 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE 还在为《集合啦!动物森友会》中漫长的收集过程而烦恼吗?想要快速…

2026/8/4 17:00:42 阅读更多 →
笔记本进水黑屏故障维修:从CPU Vcore短路诊断到主板更换全流程

笔记本进水黑屏故障维修:从CPU Vcore短路诊断到主板更换全流程

这次我们来看一台微星 GP78HX 高端游戏本的维修案例。这台笔记本的故障现象非常典型:进水后不开机,按下电源键指示灯亮,但屏幕黑屏无显示。对于很多用户和维修新手来说,这种“有电无显”的问题往往让人无从下手,不知道…

2026/8/4 16:59:42 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →