(一) 基础安全启动模式 – BSB
如图 3所示,BSB是一种简化的启动方式,与ASB不同,不基于SMR;
① 在使能安全启动功能之前,进行相应的配置;
② 使用AES-GMAC、密钥为ADK/P,计算GMAC;
③ 把计算出来的MAC码存储在flash中,作为初始值;
④ 使能安全启动功能,并执行复位;
⑤ 复位后,进入安全启动流程,同样执行②,把计算结果和初始值对比验证;
⑥ 验证结果一致则执行APP代码,否则进入recovery模式。
图 3 基础安全启动模式(二) 高级安全启动模式 - ASB如图 4所示,ASB是通过SMR和CR表实现,并支持多种认证方案(MAC、Sign)来验证App映像:
① 在使能安全启动功能之前,进行相应的配置;
② 格式化NVM和RAM的密钥,并导入需要用到的对称/非对称的密钥;
③ 安装SMR和CR表:④ 根据SMR配置,执行相应计算方式(MAC/Sign),把计算结果存储在对应得位置;
⑤ 使能安全启动功能,并执行复位;
⑥ 复位后,进入安全启动流程,启动流程中把计算结果和初始值对比验证;
⑦ 验证结果一致则执行APP代码,否则执行CR定义的制裁。
图 4 高级安全启动
(三) 基于SHE安全启动模式 – SSB(ASB)
如图 5所示,SSB和ASB的启动流程是很相似的,异同点如下:
① HSE固件同样通过使用SMR和CR表来进行执行SSB的启动;
② SSB是ASB的一种特殊用法,与ASB的区别:
SSB只是用SMR#0;
密钥使用的是SHE BOOT_MAC_KEY;
- 校验方式是CMAC。
图 5 基于SHE安全启动模式
以上内容讲解了S32K3 SecureBoot的全部内容,主要介绍了什么是Secure Boot以及三种模式,也便于后续大家需要用到S32K3的安全启动,奠定一定的基础。