I.MX RT1170加密启动详解(1):加密Boot镜像组成

使用RT1170芯片构建的所有平台一般都是高端场合,我们需要考虑软件的安全需求。该芯片集成了一系列安全功能。这些特性中的大多数提供针对特定类型攻击的保护,并且可以根据所需的保护程度配置为不同的级别。这些特性可以协同工作,也可以独立工作。它们还可以与适当的软件集成以创建防御层。此外,该芯片还包括一个通用加速器,可增强选定的工业标准加密算法的性能。

从本篇文章开始,我将介绍RT1170的三种加密方式:Authenticated HABHAB encrypted bootOTFAD XIP的原理。


对于I.MX系列单片机来说,它的芯片内没有内置Flash,这种情况下需要我们外挂Flash。那么在这种情况下,NXP就为I.MX系列单片机设计了一个镜像头,这个镜像头中包含了程序的绝对地址、程序的大小、DCD初始化参数、程序入口地址等信息。

NXP设计了一个ROM Bootloader程序,在每次上电时它将根据镜像头中我们配置的信息完成一些存储外设的初始化、代码的转移和运行等工作,然后跳转执行。在这个镜像头中,有一部分的信息是用来给程序加密启动的。

所以本篇文章以FlexSPI NOR Flash为例,介绍在加密启动时,这个镜像头中的一些加密字段的含义。如下图所示,就是整个加密镜像头的组成:
在这里插入图片描述
其中OTFAD/IEE Key blobs,PUF Key Store,CSFDEK Blob为在安全启动时需要填入的字段。

(1)OTFAD/IEE Key blobs

该字段用来给OTFAD/IEE模块对NOR Flash上的代码进行边解密边执行,包含用于OTFAD/IEE的加密密钥和上下文结构,它仅适用于FlexSPI NOR XIP情形,且该blob必须放置在NOR的0地址处

(2)Firmware Configuration Block(FCB)

包含FlexSPI控制器配置的参数,BootROM中将用低频的时钟和可靠的参数对Flash进行初始化,用户可以将适合自己Flash的FlexSPI配置(主要是LUT表格)按照指定格式放在此字段,BootROM会根据这个字段的配置重新初始化Flash。

(3)Physical Unclonable Function(PUB) key store

包含用于OTFAD key blob解密的KEK(Key Encryption Key) 。

(4)IVTboot data

确定程序的加载地址、运行地址、DCD位置等信息

(5)Device Configuration Data(DCD)

主要用来配置SEMC接口的SDRAM,也可以用来配置FlexSPI接口的HyperRAM。

(6)Command Sequence File(CSF)

由HAB处理的用于代码认证的指令,包括公钥、签名、证书和Auth。

(7)Data Encryption Key blob(DEK)

DEK通过SNVS(Secure Non-Volatile Storage) master key(OTP Master Key)加密后形成的blob

  • DEK为AES128密钥,由HAB加密工具CST随机生成,Flashloader会使用OTPMK加密DEK生成key blob

本文对加密镜像头中的加密部分做了一个简单的介绍,但没有深入进行介绍,不过没关系,我们只要知道在镜像头中有一些有关加密的字段,每个字段的具体含义在后续介绍了各个不同加密方式后再回来看就会恍然大悟。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tilblackout

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值