会员产品 | 立功科技S32K3亮点介绍-secure boot功能

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  安全启动的区别

1656664844387046934.jpg

在介绍安全启动模式之前,给大家介绍APPBL、SMR、CR是什么?如图1所示,APPBL主要提供APP起始地址、APP内容大小、认证标签。


1656664875911009116.png

图1  APPBL介绍

如图 2所示,SMR是一段安全内存区域的描述符,描述需要验证内容的起始地址、大小、验证内容的方式(MAC/SIGN)等。

1656664914214052336.png

图2  SMR介绍

CR表指的是内核复位表,该表关联对应的Core与最多8个SMR关联起来,关联的SMR验证成功,HSE将释放对应的Core,使其正常运行App程序;验证失败则进行相应的制裁:禁用密钥、复位内核等。

(一) 基础安全启动模式 – BSB

如图 3所示,BSB是一种简化的启动方式,与ASB不同,不基于SMR; 
① 在使能安全启动功能之前,进行相应的配置;
② 使用AES-GMAC、密钥为ADK/P,计算GMAC;
③ 把计算出来的MAC码存储在flash中,作为初始值;
④ 使能安全启动功能,并执行复位;
⑤ 复位后,进入安全启动流程,同样执行②,把计算结果和初始值对比验证;
⑥ 验证结果一致则执行APP代码,否则进入recovery模式。



640.png

图 3  基础安全启动模式

(二) 高级安全启动模式 - ASB

如图 4所示,ASB是通过SMR和CR表实现,并支持多种认证方案(MAC、Sign)来验证App映像:
① 在使能安全启动功能之前,进行相应的配置;
② 格式化NVM和RAM的密钥,并导入需要用到的对称/非对称的密钥;
③ 安装SMR和CR表:

  • SMR:验证内容的起始地址,大小、验证方式、验证密钥、验证tag存储位置等;

  • CR:关联需要验证的SMR、复位地址、制裁方式等。

④ 根据SMR配置,执行相应计算方式(MAC/Sign),把计算结果存储在对应得位置;
⑤ 使能安全启动功能,并执行复位;
⑥ 复位后,进入安全启动流程,启动流程中把计算结果和初始值对比验证;
⑦ 验证结果一致则执行APP代码,否则执行CR定义的制裁。

640.png

图 4  高级安全启动

(三) 基于SHE安全启动模式 – SSB(ASB)

如图 5所示,SSB和ASB的启动流程是很相似的,异同点如下:
① HSE固件同样通过使用SMR和CR表来进行执行SSB的启动;
② SSB是ASB的一种特殊用法,与ASB的区别:

SSB只是用SMR#0;

密钥使用的是SHE BOOT_MAC_KEY;

校验方式是CMAC。

640.png

图 5  基于SHE安全启动模式

以上内容讲解了S32K3 SecureBoot的全部内容,主要介绍了什么是Secure Boot以及三种模式,也便于后续大家需要用到S32K3的安全启动,奠定一定的基础。

注:文章来源立功科技