I.MX RT1170加密启动详解(2):HAB认证原理

news2024/12/23 23:21:40

文章目录

  • 1 基础
  • 2 使能过程
  • 3 Boot flow

1 基础

HAB认证是基于RSA或ECDSA算法的公钥密码学,它用一系列的私钥对image进行加密,然后BootROM在上电后用对应的公钥验证加密的镜像是否被修改。这个密钥结构就是PKI(Public Key Infrastructure)树

(1)normal boot mode

它可以生成最多四个SRKs(Super Root Keys)、相应的CSF和IMG密钥,其中CSF密钥用来给CSF字段签名,IMG密钥用来给APP和数据进行签名。
在这里插入图片描述
(2)fast boot mode

它可以使用SRK直接验证CSF和镜像数据,而不需要使用CSF和IMG密钥。这种方式提高了系统的启动时间,但是签名的鲁棒性降低,如果对启动时间要求不高,则建议使用normal boot模式。
在这里插入图片描述
支持HAB的设备可以撤回SRKs,只有一个SRK可以通过安装的SRK CSF命令在启动时被选择。当一个或多个SRK泄露时,需要撤销SRK。RT1176中最多4个SRK revoke fuse位映射到SRK表索引,可以通过将eFuse中的SRK_REVOKE[3:0]对应的bit置1来撤销SRK。

芯片中HAB有以下安全特性:

  • HAB初始化SNVS安全监控状态机,HAB必须安全启动才有权限访问SNVS选择的CAAM主密钥
  • HAB从OCOTP_CTRL读取根公钥指纹、撤销掩码和安全配置
  • HAB将使用CAAM来加速下面的加密操作:
    • ECC和AES被CAAM加速
    • RSA由HAB软件管理
    • SHA被HAB软件管理或CAAM加速(取决于CSF字段)

2 使能过程

下图显示了证书生成流程以及HAB启用过程,HAB在一个签名的image中最多支持4个SRKs。

  • 基于PKI树的公钥、私钥和证书可以通过NXP提供的工具生成

为了使能信任根,公钥被SHA-256哈希算法提炼成SRK表和SRKH(SRK Hash)。其中SRKH需要写入eFuse对应的位中(见下表)。SRK表保存在image中的CSF字段,可以用CST提供的工具SRKTool生成SRK表,它需要生成的X.509公钥证书作为给SRKs的输入,然后就可以生产SRK表和SRKH。要完成HAB使能过程,需要将eFuse中的SEC_CONFIG[1]位置1来将security模式设置为CLOSED模式。

当设备进入CLOSED模式后,只有由私钥之一签名的授权软件才能运行,包括Flashloader。镜像将使用SHA-256生成一个hash,然后交给RSA或ECDSA数字签名算法处理;CSF将使用Elftosb、CST和BD文件进行签名。
在这里插入图片描述在这里插入图片描述

3 Boot flow

当设备处于CLOSED模式后,在每次复位的时候BootROM都会执行认证过程。

(1)从eFuse中获取SRKH,然后对CSF字段的SRK table做sha256得到SRKH,二者比较,如果匹配,则信任根建立

(2)CSF和IMG公用证书通过SRK table中的SRK验证,HAB库使用对应的公钥解密签名,然后将解密后的hash与通过实际镜像采用sha256计算出的hash进行比较

(3)如果所有的步骤都通过,则main应用程序将启动,否则将进入Secured Serial Downlaoder(SDP)模式

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DTU助力气象行业数字化转型,让数据更智能

近年来,随着社会的不断发展,气象行业在现代社会中扮演着极为重要的角色。天气对于人们的日常生活、农业、交通运输等方方面面都有着深远的影响。然而,在数据采集与监测过程中,气象行业也面临着一些问题。不准确的数据、不稳定的传…

基于simulink仿真无人机比赛场景

一、前言 展示了如何使用虚拟碰撞传感器以交互方式控制仿真,以及如何使用 Simulink3D 动画更改虚拟世界对象的外观。该示例表示一个简单的无人机 (UAV) 挑战。无人机比赛场景基于2013年在法国图卢兹举行的IMAV飞行比赛。 穿越窗口 降落直升机…

java基于springboot+vue的在线教育课程作业网站n5138

本基于springboot的在线教育网站的设计与实现有管理员,教师和学生三个角色。管理员功能有个人中心,教师管理,科目管理,学生管理,课程信息管理,课程作业管理,学生作业管理,学生成绩管…

Ubuntu下让matplotlib显示中文字体

文章目录 安装中文字体显示matplotlib库的字体文件夹删除matplotlib 的缓存文件(可选) matplotlib中设置字体,显示! 参考文章: https://zodiac911.github.io/blog/matplotlib-chinese.html Ubuntu下python的matplotli…

七篇深入理解机器学习和深度学习的读物推荐

在这篇文章中将介绍7篇机器学习和深度学习的论文或者图书出版物,这些内容都论文极大地影响了我对该领域的理解,如果你想深入了解机器学习的内容,哪么推荐阅读。 Attention Is All You Need 在自然语言处理和序列建模领域,Vaswani…

华为OD机试真题 Java 实现【水仙花数】【2022Q4 100分】

一、题目描述 所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。 例如153是水仙花数,153是一个3位数,并且153 1^3 5^3 3^3。 二、输入描述 第一行输入一个整数n,表示一个n位的正整数。n在3到…

chatgpt赋能python:Python教程:如何创建一个Rectangle类

Python教程:如何创建一个Rectangle类 Python是一种简单易学的编程语言,适用于各种应用场景。在本教程中,我们将探讨如何使用Python创建一个Rectangle类。Rectangle类是一个简单的图形类,用于描述长方形的特征,如宽度和…

双域多尺度融合深度神经网络的PPG生物特征识别研究

目录 前言概述研究背景PPG存在的问题本文的创新点数据处理数据预处理数据分割特征提取 模型结构LSTM网络多尺度特征提取模块双域注意模块识别与验证 实验部分数据集识别指标 前言 本文是根据一篇论文总结写的。 论文英文名为:Dual-domain and Multiscale Fusion D…

Redis底层学习(三)—存储类型-List篇

文章目录 特点具体服务器操作命令具体操作应用场景 特点 适⽤场景:消息队列。 它的特点就是内部元素有序、重复,并且插⼊和删除很快 O(1) ,但是查找却很慢 O(n) 。功能⽀持队列和栈操作。 具体服务器操作命令 左侧插⼊元素: LP…

基于同步矩阵的多通道脑电功能连接分析_kaic

摘 要 本文研究了基于同步矩阵的多通道脑电功能连接分析方法,旨在揭示脑区之间的功能联系。首先,介绍了脑电信号的产生和特点,以及功能连接分析的概念和方法。其次,详细讨论了多通道脑电数据的采集和预处理流程,包括…

JAVA并发学习

1 基础准备 1.1 并发与并行 并发是不同的代码块交替执行,也就是交替可以做不同的事情。 并行是不同的代码块同时执行,也就是同时可以做不同的事情。 根据CPU 核数,线程运行是不同的 单核CPU(微观串行,宏观并行&…

YOLOV5 + PYQT5双目测距(一)

YOLOV5 PYQT5双目测距 1. 测距源码2. 测距原理3. PYQT环境配置4. 实验结果4.1 界面1(简洁版)4.2 界面2(改进版) 1. 测距源码 详见文章 YOLOV5 双目测距(python) 2. 测距原理 如果想了解双目测距原理&a…

Stable Diffusion 指定模型人物,Lora 训练全流程

简介 在使用 Stable Diffusion 的时候,可以选择别人训练好的 Lora,那么如何训练自己的 Lora,本篇文章介绍了介绍了如何训练Lora,如何从训练的模型中选择好的模型,如何在 Stable Diffusion 中使用。 闲话不多说&#…

CUDA编程接口详解

CUDA编程接口详解 本文将详细介绍NVIDIA CUDA编程指南第3章(编程接口)中的核心概念,例如NVCC编译器、CUDA运行时、版本管理和兼容性、计算模式、模式切换以及Windows下的Tesla计算集群模式。以下是本文的大纲: 文章目录 CUDA编程…

《斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 11 Dimensionality Reduction

来源:《斯坦福数据挖掘教程第三版》对应的公开英文书和PPT Chapter 11 Dimensionality Reduction Let M be a square matrix. Let λ be a constant and e a nonzero column vector with the same number of rows as M. Then λ is an eigenvalue of M and e is t…

快手三面全过了,却因为背调时leader手机号造假,导致offer作废了!

这是一个悲伤的故事: 快手本地三面全过了,但因为背调时leader手机号造假,导致offer作废了。 楼主感叹:大家背调填写信息时,一定要慎重再慎重,不要重复他的悲剧! 网友愤慨,照这么说&a…

【Nginx 优化与防盗链】

目录 一、Nginx 服务优化1、配置Nginx 隐藏版本号2、修改用户与组3、缓存时间4、日志切割小知识 二、Nginx 深入优化1、连接超时2、更改进程数3、配置网页压缩4、配置防盗链 一、Nginx 服务优化 1、配置Nginx 隐藏版本号 可以使用 Fiddler 工具抓取数据包,查看 Ng…

UniApp全局弹窗

一、设计思路 1、创建一个弹窗页面组件 2、配置page.json,使页面跳转是在当前界面展示 3、定义uni全局全局属性 4、解决多个弹窗同时使用的冲突问题 注意:此方案不支持多个弹窗并存,有且仅有一个会展示,当前弹窗展示并关闭上一个弹…

连锁药店系统:如何提高效率和客户满意度?

连锁药店系统是一种用于提高效率和客户满意度的软件系统,它能够管理多个药店的日常营运。通过这种系统,药店可以更好地管理库存、员工、销售和客户信息等方面,从而提高整体的经营效率。 首先,连锁药店系统能够帮助药店管理库存。系…

黑马Redis视频教程实战篇(六)

目录 一、附近商户 1.1、GEO数据结构的基本用法 1.2、导入店铺数据到GEO 1.3、实现附近商户功能 二、用户签到 2.1、BitMap功能演示 2.2、实现签到功能 2.3、签到统计 2.4、关于使用bitmap来解决缓存穿透的方案 三、UV统计 3.1、HyperLogLog 3.2、测试百万数据的统…