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 中(安全性较低)。访问控制通过权限位、密钥句柄和访问策略实现:每个密钥有唯一的标识符,调用者必须持有合法句柄并满足权限要求才能使用该密钥,且通常限制密钥只能用于特定算法或特定操作。

应用层 / 主核软件(TriCore CPU) 安全启动 · 诊断通信 · OTA 升级 · 数据加密存储 CSM — 密码服务管理器 统一 API:加密 / 解密 / MAC / 随机数 / 密钥操作 屏蔽底层引擎差异,提供标准服务接口 CSRM — 密码服务资源管理器 资源调度 · 优先级仲裁 · 并发控制 · 引擎分配 管理 HSM 引擎 / 软件实现 / 专用加速器 HSM 硬件安全模块 独立安全核 · 加密加速器 · TRNG 隔离执行域 · 安全启动度量 主核不可直接访问内部资源 密钥存储与访问控制 HSM 密钥槽(高安全) NVM / RAM 密钥容器(低安全) 句柄 + 权限位 + 算法绑定 服务 接口 层 资源 调度 层 安全 执行 域 API 调用 资源 分配 硬件 隔离 边界

二、典型应用场景与调用关系

在安全启动场景中,主核首先通过 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 API 调用、CSRM 资源分配策略、HSM 固件交互协议以及密钥生命周期管理。建议先建立“应用→CSM→CSRM→HSM/密钥存储”这条主线,再逐层展开细节。

四、关键概念对照

组件 角色 典型输入 典型输出
CSM 服务接口层 应用加密请求、算法标识、密钥句柄 密文/明文、MAC 值、随机数、状态码
CSRM 资源调度层 服务请求、优先级、资源占用需求 引擎分配结果、排队/拒绝决策
HSM 安全执行域 加密命令、密钥槽索引、待处理数据 运算结果、安全状态、度量值
密钥存储与访问控制 安全基础 密钥材料、权限策略、句柄请求 合法句柄、访问允许/拒绝

理解这四个组件的分工与协作,是掌握 AURIX TC3xx 密码服务体系的起点。在实际工程中,开发者通常不需要直接操作 HSM 寄存器,而是通过 CSM 提供的 API 完成密码操作,由 CSRM 在后台完成资源仲裁。这种分层设计既保证了安全性,也降低了应用开发的复杂度。