MCU 通用软件架构
HSM核端包括HSM Bootloader以及HSM Application。HSM Bootloader 提供系统初始化、升级HSM Application以及校验HSM Application完整性等功能;HSM Application 主要为Host 核端提供信息安全服务,如加密算法,哈希算法以及随机数生成算法等,HSM Application还支持安全启动、安全升级等应用,同时具备密钥证书管理等功能。
Host核端执行Boot Firmware,包含Boot Manager(BM)模块,具备系统初始化以及根据MCU状态跳转到相应模块,如MCU处于升级过程,BM会跳转到Flash Bootloader(FBL), FBL用于对MCU软件升级;如MCU处于正常启动状态,BM则跳转到Classic AUTOSAR(CP)。
安全启动流程
安全启动主要用于MCU启动之后,用户程序执行之前,对用户定义的Flash中的关键程序和程序进行完整性和真实性进行校验。
1.MCU 上电复位;
2。执行Boot Firmware(SSW),根据Boot Mode Headers(使能HSM),初始化HSM;
3.HSM 初始化完成,包括HSM 用户软件启动完成,触发bootloader检测;
a) HSM根据用户指定的bootloader存储空间首地址和大小,将需要验证的代码指针告诉HSM加密引擎;
b) HSM根据存储的BOOT_MAC_KEY,计算Bootloader数据块的CMAC,将其放在HSM安全 RAM中;
c) HSM将计算出来的CMAC值和Memory Slot中存储的CMAC值比较,如若一致则 bootloader合法,
Bootloader运行,BOOT_OK 置位。用户密钥被解锁。
4.Bootloader触发 Application校验,校验过程类似bootloader过程
备注:考虑到MCU启动时间的要求,目前安全启动的校验算法普遍选用对称CMAC算法
HSM 安全启动内存区域设置
安全启动组由一个或多个段组成。如果安全引导组中引用了密钥,则该密钥将用于CMAC计算。
如果安全启动组的key用于验证所有包含的段,则段的key不需要配置Key Element ID=1的KeyElement。所有其它的KeyElement仍然需要在段的keys中存在,比如Cmac、Address、Mode、Sanction,以及Size:
分段原则需要根据实际要求:
1.FBL +CMAC , APP+CMAC
2.FBL细分,APP细分
此外,校验方式采用串行,并行,还是混合方式可根据实际需求
安全启动异常处理
如果安全启动期间的验证失败,可能会触发相关的响应。可配置的措施有:
系统重置
如果启动期间验证失败,Hsm将对所有核执行系统重置。
自定义
当使用自定义措施时,HSM可反馈校验状态,HOST端根据校验状态进行下一步执行动作,如产生日志,记录故障,HOST复位,HOST发送命令HSM锁定Key等措施
启动时间要求
对于所有 CAN 节点, 从通讯控制电源通电时刻起到发送第一帧应用报文的最大时间为: 200ms;
对于所有 CAN 节点, 从通信控制电源通电时刻起到准备好 ACK 置位的时间的最大时间为: 130ms;
对于所有 CAN 节点, 应尽可能快地发出真实值, 且从通信控制电源通电时刻起到发送报文的所有信号值为真实值的最大时间为: 1000ms
以上仅为参考时间
版权归原作者 Johnny 周 所有, 如有侵权,请联系我们删除。