2. AURIX硬件安全架构总览
AURIX TC3xx 系列把安全能力做进了芯片内部,而不是靠软件“打补丁”。理解这套硬件安全架构,关键是先分清两个世界:一边是运行 AUTOSAR、应用逻辑和通信协议栈的主核(CPU0~CPU5,TriCore 架构);另一边是独立于主核、拥有自己 CPU、RAM、Flash 和时钟的 HSM(Hardware Security Module,硬件安全模块)。两者通过共享内存和中断协作,但权限、时钟域、复位域彼此隔离。本节围绕 HSM、安全启动、存储保护、访问权限和调试保护五个硬件模块,梳理它们各自管什么、边界在哪里。
HSM:芯片内的独立安全子系统
HSM 是 AURIX 安全架构的核心。它内部包含一颗独立的 32 位 CPU(常见为 ARM Cortex-M3 或英飞凌自研安全核)、专用 SRAM、独立 Flash 区(存放安全固件与密钥)、真随机数发生器 TRNG、AES-128/256 加速器、SHA-256 哈希引擎,以及公钥加速单元(如 ECC/RSA)。HSM 有自己的时钟和复位控制,主核复位时 HSM 可以保持运行,反之亦然。
HSM 与主核的协作边界非常明确:主核不能直接读写 HSM 内部 RAM 和密钥区,只能通过共享内存(Shared RAM)投递请求,再用中断通知 HSM。典型交互是“主核写请求 → 触发 HSM 中断 → HSM 处理 → 写回结果 → 中断通知主核”。例如安全通信中,主核把待加密的 CAN 报文放入共享缓冲区,HSM 用内部密钥完成 AES-CMAC 计算,把 MAC 值写回,主核再组帧发送。密钥全程不离开 HSM,这是硬件隔离带来的根本安全收益。
安全启动:从 SSW 到应用的可信链
AURIX 上电后首先执行芯片固化的 SSW(Startup Software),它完成基本时钟与内存初始化,然后进入用户 Bootloader。安全启动的核心是“逐级校验、逐级放行”:Bootloader 在跳转到应用前,先计算应用镜像的哈希(如 SHA-256),再用 HSM 中存储的公钥验证镜像签名(常见 ECDSA P-256 或 RSA-2048)。只有签名匹配,才允许跳转;否则停在安全状态或触发复位。
实际配置中,镜像通常按“头部 + 代码段 + 签名段”组织。头部包含长度、版本、哈希算法标识;签名段存放对代码段哈希的签名值。Bootloader 读取头部 → 计算代码段哈希 → 调用 HSM 验签接口 → 根据返回值决定跳转或拒绝。这里的关键参数是哈希算法、签名算法和公钥索引,三者必须与镜像生成端一致,否则校验必然失败。安全启动不是一次性动作,OTA 升级后必须重新校验新镜像,否则升级通道本身会成为攻击入口。
存储保护与访问权限:MPU 划出的硬边界
AURIX 的 MPU(Memory Protection Unit)把地址空间划分为多个区域,每个区域可独立设置读、写、执行权限,并区分用户模式与超级visor模式。典型做法是:应用代码区设为“可执行、不可写”,防止运行时被篡改;密钥与标定数据区设为“仅 HSM 可读”,主核访问直接触发保护异常;共享内存区设为“主核可读写、HSM 可读写”,但两侧都只能访问约定偏移。
访问权限还体现在外设层面。例如 CAN 控制器、DMA 通道可以配置为仅特定主核访问,避免低权限任务通过 DMA 绕过 MPU。调试保护则通过 OCDS(On-Chip Debug Support)锁定实现:量产阶段写入调试密码并锁定 DAP/JTAG 接口,未解锁时无法读取 Flash 或挂起 CPU。解锁需要密码,而密码本身由 HSM 管理,形成“调试保护依赖 HSM”的闭环。
协作边界与工程落地要点
把五个模块串起来看,边界可以归纳为三条:第一,密钥与安全固件只存在于 HSM 域,主核只能“请求服务”,不能“接触密钥”;第二,启动链的每一级校验由 HSM 提供密码学能力,主核负责搬运镜像和判断返回值;第三,MPU 与调试保护是静态防线,HSM 是动态服务方,两者互补。
工程落地时,建议按以下顺序推进:先确认 HSM 固件版本与密钥槽规划(例如槽 0 放安全启动公钥、槽 1 放通信密钥),再配置 MPU 区域表并逐条验证越权访问是否触发异常,然后实现 Bootloader 的验签流程并用“篡改一个字节”的镜像做否定测试,最后在产线流程中加入调试锁定与回读。每一步都应有可观察的判据:越权访问触发 Trap、篡改镜像校验失败并停在安全状态、调试接口锁定后无法连接。只有这些判据都成立,硬件安全架构才算真正落地,而不是停留在配置项清单上。