1. AURIX密码服务接口总览
AURIX TC3xx 是英飞凌面向汽车电子与工业控制的高性能多核微控制器系列,其安全能力并不是单一模块提供的,而是由一组相互配合的硬件与固件组件共同构成。理解这些组件的定位与分工,是后续进行密钥管理、加解密调用和安全启动设计的基础。本章围绕四个核心概念展开:CSRM、HSM、CSM 与密钥存储及访问控制。
一、四个核心组件的定位
HSM(Hardware Security Module,硬件安全模块)在 AURIX TC3xx 中是一个独立的安全子系统,通常包含独立的处理器核、专用 RAM、加密加速器、真随机数发生器以及独立的密钥存储区。它运行在隔离的安全域中,主核(如 TriCore CPU)无法直接读写 HSM 内部资源,只能通过消息接口与其通信。HSM 承担的是“安全执行环境”的角色:密钥生成、签名验签、安全启动度量、安全日志等敏感操作都在其中完成。
CSRM(Crypto Services Resource Manager,密码服务资源管理器)是面向应用层的资源调度与抽象层。TC3xx 中可用的密码资源包括 HSM 内部的加密引擎、主核侧的软件实现以及可能的专用加速器。CSRM 的职责是把这些异构资源统一管理起来,按优先级、并发能力和资源占用情况进行分配,避免多个任务同时抢占同一加密引擎导致阻塞或冲突。可以把它理解为密码服务的“调度中枢”。
CSM(Crypto Service Manager,密码服务管理器)提供标准化的密码服务接口,向上层应用暴露统一的 API,例如加密、解密、MAC 计算、随机数获取等。CSM 屏蔽了底层具体使用哪个硬件引擎的差异,使应用代码不必关心密钥存放在 HSM 还是软件密钥容器中。CSM 与 CSRM 配合工作:CSM 负责“提供什么服务”,CSRM 负责“用哪个资源来执行”。
密钥存储与访问控制解决的是“密钥放在哪里、谁能用、怎么用”的问题。TC3xx 的密钥可以存放在 HSM 内部受保护的密钥槽中,也可以存放在主核可访问的 NVM 或 RAM 中(安全性较低)。访问控制通过权限位、密钥句柄和访问策略实现:每个密钥有唯一的标识符,调用者必须持有合法句柄并满足权限要求才能使用该密钥,且通常限制密钥只能用于特定算法或特定操作。
二、典型应用场景与调用关系
在安全启动场景中,主核首先通过 CSM 请求 HSM 对启动镜像进行哈希与签名验证。CSM 将请求转交 CSRM,CSRM 判断当前 HSM 的哈希引擎是否空闲,若空闲则分配资源并建立会话。HSM 完成度量后返回结果,CSM 将结果封装为应用可读的状态码。整个过程中,主核始终无法接触 HSM 内部的根密钥,只能获得“验证通过/失败”的结论。
在诊断通信场景中,UDS 服务 0x27(Security Access)需要生成随机种子并验证客户端返回的密钥。随机种子由 HSM 的 TRNG 产生,通过 CSM 的随机数服务接口获取;密钥验证则调用 HSM 内部的 AES 或 CMAC 引擎完成。CSRM 在此负责协调多个诊断会话对加密引擎的并发访问,避免会话冲突。
在数据加密存储场景中,应用需要将敏感数据写入外部 Flash。此时密钥可能存放在 HSM 密钥槽中,应用通过 CSM 发起加密请求,CSRM 分配 HSM 的 AES 引擎执行加密,密文返回后由应用写入 NVM。密钥本身始终不出 HSM 边界,访问控制策略确保只有持有合法句柄的任务才能触发该密钥的使用。
三、组件间的协作关系
四个组件构成一个分层协作体系。最上层是应用软件,它只与 CSM 交互;CSM 是服务门面,定义“能做什么”;CSRM 是调度核心,决定“用谁做、何时做”;HSM 是执行实体,完成“实际做”;密钥存储与访问控制则是贯穿始终的安全基础,约束“谁能做、能用哪把钥匙”。
需要特别注意的是,CSM 与 CSRM 在 TC3xx 中通常以软件库形式提供(如英飞凌的 Crypto Stack),而 HSM 是硬件模块。密钥存储既涉及 HSM 内部硬件密钥槽,也涉及主核侧的密钥容器,两者的安全等级和访问路径完全不同。工程实践中,高价值密钥(如安全启动根密钥、诊断认证主密钥)应存放在 HSM 密钥槽中,仅通过 CSM 接口间接使用;低价值或临时密钥可存放在主核侧,但需接受其可被调试接口读取的风险。
四、关键概念对照
| 组件 | 角色 | 典型输入 | 典型输出 |
|---|---|---|---|
| CSM | 服务接口层 | 应用加密请求、算法标识、密钥句柄 | 密文/明文、MAC 值、随机数、状态码 |
| CSRM | 资源调度层 | 服务请求、优先级、资源占用需求 | 引擎分配结果、排队/拒绝决策 |
| HSM | 安全执行域 | 加密命令、密钥槽索引、待处理数据 | 运算结果、安全状态、度量值 |
| 密钥存储与访问控制 | 安全基础 | 密钥材料、权限策略、句柄请求 | 合法句柄、访问允许/拒绝 |
理解这四个组件的分工与协作,是掌握 AURIX TC3xx 密码服务体系的起点。在实际工程中,开发者通常不需要直接操作 HSM 寄存器,而是通过 CSM 提供的 API 完成密码操作,由 CSRM 在后台完成资源仲裁。这种分层设计既保证了安全性,也降低了应用开发的复杂度。