尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

第4章:PSA Crypto API 实战

第4章:PSA Crypto API 实战 摘要TF-M 提供四大核心服务Crypto密钥不离开安全世界、ITS/PS安全存储、Attestation设备证明。本文用代码示例 Zephyr/FreeRTOS 集成 自研 vs TF-M 成本对比给出芯片厂商可执行的选型决策。开篇密钥不离开安全世界上一期我们讲了 TF-M 的架构——TrustZone-M 两个世界、DEN0063 三级隔离、SPM 调度与 IPC。这一期进入工程实战——TF-M 的四大核心服务怎么用代码怎么写PSA Crypto API 的核心价值是一句话密钥不离开安全世界。应用调用psa_generate_key()生成密钥拿到的是key_id一个整数句柄而非密钥本身。所有加密操作在安全世界执行应用只拿到结果。即使应用被完全攻破攻击者也拿不到私钥。一、Crypto 分区密钥不离开安全世界支持的算法算法类支持硬件加速对称加密AES-128/256CBC/CTR/GCM✅哈希SHA-1/256/384/512✅HMACHMAC-SHA256/384✅非对称RSA-2048/3072、ECDSA P-256/P-384✅密钥派生HKDF、PBKDF2软件随机数TRNG DRBGNIST 800-90A✅PSA Crypto API 代码示例#includepsa/crypto.h// 1. 初始化psa_crypto_init();// 2. 生成 ECDSA P-256 密钥对私钥留在安全世界应用拿不到psa_key_id_tkey_id;psa_key_attributes_tattrsPSA_KEY_ATTRIBUTES_INIT;psa_set_key_type(attrs,PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1));psa_set_key_bits(attrs,256);psa_set_key_usage_flags(attrs,PSA_KEY_USAGE_SIGN_HASH|PSA_KEY_USAGE_VERIFY_HASH);psa_set_key_algorithm(attrs,PSA_ALG_ECDSA(PSA_ALG_SHA_256));psa_generate_key(attrs,key_id);// 3. 签名私钥操作在安全世界执行返回签名给应用uint8_thash[32],sig[64];size_tsig_len;psa_sign_hash(key_id,PSA_ALG_ECDSA(PSA_ALG_SHA_256),hash,sizeof(hash),sig,sizeof(sig),sig_len);// 4. 应用永远无法导出私钥——psa_export_key() 对不可导出密钥返回错误工程视角PSA Crypto API 的核心价值是密钥不离开安全世界。应用调用psa_generate_key()生成密钥拿到的是key_id一个整数句柄而非密钥本身。所有加密操作在安全世界执行应用只拿到结果。即使应用被完全攻破攻击者也拿不到私钥。配图提示PSA Crypto API 密钥流示意图应用 → key_id → 安全世界 → 结果返回二、ITS 分区片上安全存储存储位置片上 Secure Flash容量典型 4-32 KB用途高价值小数据——设备私钥、证书、计数器安全机制加密 完整性校验 访问控制#includepsa/protected_storage.h// 写入设备证书只有安全世界可读psa_ps_set(uid0x0001,data_len1024,p_datacert,create_flagsPSA_STORAGE_FLAG_NO_ROLLBACK);// 安全世界内读取psa_ps_get(uid0x0001,offset0,data_len1024,p_datacert,p_data_len);三、PS 分区外部加密存储存储位置外部 Flash非安全区域容量典型 64 KB - 1 MB用途较大数据——配置文件、日志、OTA 备份安全机制加密 完整性校验 反回滚密钥存在安全世界数据加密后存外部对比ITSPS存储位置片上 Secure Flash外部 Flash容量小KB 级大MB 级性能快直接访问慢加解密开销抗物理攻击强中密钥不在外存选型建议高价值小数据私钥、证书用 ITS大文件配置、日志、OTA 备份用 PS。四、Initial Attestation 分区设备证明设备证明服务——向第三方证明我是这台设备运行这个固件版本。#includepsa/initial_attestation.h;// 生成设备证明 tokenCOSE/CWT 格式uint8_tchallenge[32]{...};// 验证方下发的随机挑战uint8_ttoken[512];size_ttoken_len;psa_initial_attest_get_token(challenge,sizeof(challenge),token,sizeof(token),token_len);Token 包含设备唯一 ID由 OTP 中的设备密钥派生固件版本 哈希生命周期状态LCSPSA-RoT 测量值对 challenge 的签名工程视角设备证明是CRA Article 13(4)“设备身份”的关键实现。云平台通过验证 token 签名确认设备身份 固件完整性决定是否允许接入。某厂商的云平台要求所有设备首次接入时提交 attestation token未通过验证的设备直接拒绝——这把伪造设备攻击的成本从复制一台设备提高到破解 ECDSA P-256。五、TF-M Zephyr/FreeRTOS 集成双系统架构TF-M 是安全世界的固件非安全世界需要一个 RTOS 跑应用。主流组合组合安全世界非安全世界适用场景TF-M ZephyrTF-MZephyr RTOSMatter/Thread 设备TF-M FreeRTOSTF-MFreeRTOS工业/消费电子TF-M 裸机TF-M裸机 main 循环极简设备Zephyr TF-M 集成最简单Zephyr 原生支持 TF-M配置最简单# West 构建命令nRF5340 示例west build-bnrf5340dk_nrf5340_cpuapp --\-DCONFIG_TFMy-DCONFIG_TFM_PROFILE_TYPEm# 关键配置CONFIG_TFMy# 启用 TF-MCONFIG_TFM_PROFILE_TYPEm# Medium profileCrypto ITS PS AttestationCONFIG_TFM_BL2y# 启用 MCUBoot BL2CONFIG_TFM_PARTITION_CRYPTOy# Crypto 分区CONFIG_TFM_PARTITION_INITIAL_ATTESTATIONy# Attestation 分区Zephyr 应用通过 PSA API 调用 TF-M 服务无需额外封装。FreeRTOS TF-M 集成FreeRTOS 集成 TF-M 需要更多手工配置TF-M 构建为静态库链接到安全世界镜像FreeRTOS 跑在非安全世界通过 NSC 接口调用 TF-M 服务双核架构nRF5340nRF5340 采用双核设计——核 0应用核跑 Zephyr/FreeRTOS BLE 协议栈核 1网络核跑 TF-M 无线协议。两核通过 RPMsg共享内存 中断通信。对比单核 TZ-M双核隔离隔离强度硬件属性TZ-M物理隔离独立核通信开销SG 指令μs 级RPMsg10-100μs成本低单核高双核PSA LevelL2L2-L3配图提示单核 TZ-M vs 双核隔离对比图六、自研隔离 vs TF-M 成本对比成本对比表维度TF-M开源自研隔离初始开发0直接用6-12 个月3-5 人PSA 认证适配低已预适配高需证明符合 DEN0063长期维护社区维护自维护漏洞响应社区快速响应自行排查定制灵活性中需遵循 TF-M 架构高自由设计生态支持Nordic/ST/NXP/Zephyr无工程视角除非有极强定制需求否则用 TF-M。某厂商自研隔离方案花了 8 个月、4 人PSA Level 2 评估时被要求额外提供 DEN0063 符合性证明又花了 3 个月。总成本 11 个月而用 TF-M 的厂商 1 个月就集成了。TF-M 的不够灵活远比自研的从零证明便宜。何时考虑自研仅在以下场景考虑自研非 Arm 架构RISC-V 需要用 PMP OpenSBI 等效方案极端资源约束Flash 64KBTF-M 最小配置也要 ~40KB已有成熟方案公司已有通过认证的隔离框架特殊安全需求需要 TF-M 不支持的自定义隔离策略配图提示自研 vs TF-M 决策树七、CRA/PSA 钩子速查本章技术要点对应的 CRA 条款与 PSA Level 要求技术要点CRA Article 13 对应PSA Level 要求TrustZone-M 硬件隔离Art. 13(2) 安全隔离L2NSC SG 指令受控入口Art. 13(2) 攻击面最小化L2DEN0063 分区化框架Art. 13(2) 安全架构L1Level 3 分区间 MPU 隔离Art. 13(2) 故障隔离L3PSA Crypto API 密钥不离开安全世界Art. 13(3) 密钥保护L2ITS 片上安全存储Art. 13(3) 加密存储L2PS 外部加密存储 反回滚Art. 13(3)(5) 加密存储 防降级L2Initial Attestation 设备证明Art. 13(4) 设备身份L2合规映射提示撰写PSA → EN 18031 映射文档时本章内容直接对应 EN 18031-2 的要求 4.2安全隔离、4.3密钥管理、4.6设备身份。八、Checklist硬件选型Cortex-M23/M33/M55/M85带 TZ-MTF-M 集成选用 TF-M 而非自研隔离级别L2 用世界隔离L3 用分区间隔离NSC 接口SG 函数 ≤20 个参数白名单校验PSA Crypto API密钥不可导出PSA_KEY_USAGE_EXPORT不设ITS/PS 分区高价值数据用 ITS大文件用 PSAttestation云平台首接入验证 tokenIPC 优化用一次性 API 替代多步 APIRTOS 适配TF-M IPC 期间禁任务切换SAU/MPU 配置安全区域最小化九、给芯片厂商的行动建议P02026-09-11 前选型 Cortex-M33 TZ-M——PSA Level 2 的硬件基础集成 TF-M——从 trustedfirmware.org 获取按官方 quickstart 集成P12027-Q1 前完成 TF-M Zephyr/FreeRTOS 双系统验证PSA Crypto API 替换应用层加密调用——密钥移入安全世界配置 Attestation 服务——对接云平台设备认证P22027-Q3 前隔离级别升 Level 3——分区间 MPU 隔离冲刺 PSA Level 3App-RoT 分区开发——厂商自定义安全服务IPC 性能优化——减少 IPC 次数一次性 API给管理者的一句话TF-M 是 PSA Certified Level 2 的事实标准——Nordic/ST/NXP/Silicon Labs 全在用。自研隔离方案在 PSA 评估中要额外证明符合 DEN0063成本远高于直接用 TF-M。对国产芯片厂商2027-Q1 前必须完成 TF-M 集成与 PSA Crypto API 适配。本期小结PSA Crypto API 核心价值密钥不离开安全世界应用只拿到 key_idTF-M 四大服务Crypto ITS片上 PS外部 Attestation设备证明Zephyr TF-M 集成最简单原生支持CONFIG_TFMy 即可自研 vs TF-M11 个月 vs 1 个月除非非 Arm 架构否则用 TF-MP0 项2026-09-11 前选型 Cortex-M33 TZ-M 并集成 TF-M下期预告第 5 期PSA Level 1-4 申请材料从工程实现进入认证流程。PSA Certified 四级认证需要什么材料加密算法选型有哪些坑EN 18031 符合性评估怎么做下一期我们将讲清楚PSA Certified Level 1-4 申请材料清单CRA 与 PSA 对加密算法的强制要求推荐算法清单与禁用清单PSA → EN 18031-2 映射文档关注本系列从代码走向认证。互动话题你的项目用 TF-M 还是自研PSA Crypto API 替换过程中遇到什么坑留言区分享你的集成经验转发给固件团队对照 Checklist 检查收藏本文随时查阅 PSA Crypto API 示例关注本账号每周更新 CRA × PSA 合规实战内容。话题标签#PSA#CryptoAPI#TF-M#Zephyr#FreeRTOS#IoT安全#芯片安全#密钥保护
返回列表