S32K3的安全启动用于确保设备仅使用受原始设备制造商(OEM)信任的软件进行启动。当设备复位后启动,HSE安全子系统将会检查软件片段的有效性,若检查有效,则设备将启动,否则将执行相应制裁。
Secure boot简介
Secure Boot是验证应用域内的一个/多个应用CPU子系统执行的一个/多个应用程序映像的完整性和真实性(多应用核和多内存段),验证策略由用户定义,包括:被验证的内容、验证方式、验证结果分析处理。
三种Secure boot模式
共有三种安全启动,如表1:
基本安全启动(BSB):通过解析APPBL头,确定APPBL代码的起始地址和大小。
高级安全启动方式(ASB):使用SMR(Secure Memory Region)和CR(Core Reset)实现的。
基于SHE的安全启动(SSB):同样是使用SMR以及CR实现,其与ASB不同的是这种安全启动模式只使用SMR#0和CR#0,是ASB的一种特殊用法。
表1 安全启动的区别
在介绍安全启动模式之前,给大家介绍APPBL、SMR、CR是什么?如图1所示,APPBL主要提供APP起始地址、APP内容大小、认证标签。
图1 APPBL介绍
如图 2所示,SMR是一段安全内存区域的描述符,描述需要验证内容的起始地址、大小、验证内容的方式(MAC/SIGN)等。
图2 SMR介绍CR表指的是内核复位表,该表关联对应的Core与最多8个SMR关联起来,关联的SMR验证成功,HSE将释放对应的Core,使其正常运行App程序;验证失败则进行相应的制裁:禁用密钥、复位内核等。
(一) 基础安全启动模式 – 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:验证内容的起始地址,大小、验证方式、验证密钥、验证tag存储位置等;
CR:关联需要验证的SMR、复位地址、制裁方式等。
④ 根据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的安全启动,奠定一定的基础。
-
cpu
+关注
关注
68文章
10862浏览量
211727 -
软件
+关注
关注
69文章
4940浏览量
87466 -
APP
+关注
关注
33文章
1573浏览量
72480 -
应用程序
+关注
关注
37文章
3268浏览量
57700
发布评论请先 登录
相关推荐
评论