谷动谷力

标题: S32K3亮点介绍-secure boot功能 [打印本页]

作者: 鸣涧    时间: 2022-6-27 14:08
标题: S32K3亮点介绍-secure boot功能
S32K3亮点介绍-secure boot功能

本文导读
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的安全启动,奠定一定的基础。











欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2