1. PSA Firmware Framework中的RoT服务架构解析
在嵌入式安全领域,Arm的PSA Firmware Framework(简称FF-M)为安全服务开发提供了标准化框架。作为安全处理环境(SPE)的核心组件,它定义了两种Root of Trust(RoT)服务类型,每种类型针对不同的应用场景进行了优化设计。
1.1 基于连接的服务(Connection-based)
基于连接的RoT服务通过psa_connect()建立持久会话,其典型生命周期包含以下阶段:
-
连接建立:客户端调用psa_connect()并传入服务标识符(SID),框架返回连接句柄。这个句柄在后续所有交互中作为会话凭证。
-
请求处理:通过psa_call()发送请求消息,服务端通过psa_msg_t结构接收以下关键信息:
- 消息类型(请求/控制)
- 输入/输出向量信息
- rhandle(可选的客户端上下文指针)
-
资源管理:服务可通过psa_set_rhandle()设置rhandle值,该值会随后续消息传递,典型应用场景包括:
c复制typedef struct { crypto_key_id_t key; uint8_t temp_iv[16]; } session_ctx_t; void service_main() { psa_msg_t msg; if (psa_get(&msg) == PSA_SUCCESS) { session_ctx_t *ctx = msg.rhandle; if (!ctx && msg.type == PSA_IPC_CONNECT) { ctx = psa_allocate(sizeof(session_ctx_t)); psa_set_rhandle(&msg, ctx); } // ...处理逻辑 } } -
连接终止:可通过三种方式断开:
- 客户端显式调用
