英飞凌 TC3XX单片机HSM内核开发-Secure Boot(五)

ROM固件和启动过程

AURIX 芯片,带有硬件安全模块 (HSM) 的芯片,包含两个 ROM 固件:TriCore(CPU0) 的启动软件 (SSW) 和 HSM 的启动系统 (BOS)。这些固件不共享相同的指令集架构 (ISA)。

1. 芯片启动

AURIX芯片冷启动和热启动时的启动顺序受专用引脚值影响,这些引脚控制硬件设置以及特定的用户配置位 (UCB)。CPU0 从其 Boot ROM 执行 SSW 代码, CPU0 从 Boot ROM 运行,在CPU0启动的过程中启动其他核。如果启用了 HSM 的 UCB 控制,则 BOS 在 HSM 上执行。SSW 继续执行,直到到达等待 HSM 启动并通知TRICORE(SSWWAIT 位设置为TRUE)。

2. 硬件配置 (HWCFG) 引脚

设备启动由 HWCFG 引脚和 UCB 设置控制,决定设备是从闪存启动、进入备用启动模式 (ABM) 还是引导模式,以及 HSM 的配置。
在这里插入图片描述

3. 非易失性用户配置位 (UCB)

启动软件 (SSW) 根据以下内容初始化设备:

  • 存储在专用闪存位置(UCB)中的信息
  • 特定寄存器/内存位置中特殊位/字段的当前状态
  • 触发 SSW 执行的事件类型(上次重置事件)
  • 外部配置引脚上应用的值(可由软件覆盖)

具体细节参考对应的手册。

4. 时钟源和频率

在上电和系统重置后:

  • 系统运行在备用时钟 (100MHz, ± 2%)
  • 外部晶振 (OSC) 通过软件或 BMI 设置启用
  • 快速时钟 (SRI-Bus 和 CPU) 以备用时钟频率运行
  • 外设和系统外设总线 (SPB) 以备用时钟频率的一半运行
  • 默认的 HSM 核心频率由 SPB 频率直接派生,以其最大工作频率的一半运行

默认情况下,HSM 核心频率直接来源于系统外设总线(SPB)频率,这导致其以最大工作频率的一半运行,这实际上将其性能降低到最大性能的一半。用户软件可以配置系统的工作频率,使其运行在最大性能上。内部备用时钟是 PLL 的时钟源,选择内部时钟作为系统 PLL 的源是为了防止时钟干扰攻击。由于内部时钟的准确度为 ±2%,将时钟配置如下:CPU0 时钟(SRI 频率)为 290MHz,SPB 频率为 97.6MHz。

为了确保系统在最高频率下稳定运行,HSM代码会基于这一假设来配置闪存的等待状态。

5. HSM (ROM) 固件概述

HSM 的启动系统 (BOS) 存储在启动 ROM 中,包含用于内部测试、生产和启动行为的所有必要功能。某些配置信息,例如模块特定配置、AES 的安全密钥等,存储在位于闪存存储器 HSM 专属 1 KB 扇区中的 HSM 配置区域中。这些配置信息使用存储在 BOS-ROM 中的掩码专用密钥进行加密。此外,配置数据受到加密校验和的保护。
注意:仅当 HSM 通过其相应的 UCB 设置启用时,HSM BOS 才运行。
对于每种类型的 HSM 重置,HSM 硬件执行以下步骤以正确启动 BOS:

  • 重置所有寄存器(根据适用的冷重置或热重置条件)
  • 读取位于 BOS-ROM 偏移量 0 的 BOS 向量表。根据这些信息,HSM 硬件初始化堆栈指针并跳转到重置向量位置。
    在这里插入图片描述
    在启动初始化期间,基本准备工作由 BOS 完成。首先,配置中断和异常处理。然后,BOS 检查 HSM 配置区域的加密校验和的正确性。为此,使用 AES 模块为加密的 HSM 配置数据计算一个 16 字节的哈希值。AES 在 CBC 模式下使用,密钥和初始向量取自 BOS-ROM。
    HSM 配置区域的数据字节使用 AES 模块在 ECB 模式下使用存储在 BOS-ROM 中的掩码专用密钥解密。然后加载 TRNG 配置并启动 TRNG。
    之后,前两个 AES 密钥(AesKey0 和 AesKey1)从明文 HSM 配置区域复制到 AES 硬件模块,并锁定 AES(前两个密钥)。实施方式确保 AES 密钥不必临时存储在本地 RAM 中。此时,本地 RAM 中的所有安全相关数据都会被覆盖,BOS 转移到加载在 HSM 闪存存储器空间中的用户操作系统。
6. 主机 SSW 与 HSM 用户代码之间的信息交换

如果设备启用了安全启动(设置了 DMU_SP_PROCONHSMCFG.SSWWAIT)且没有在复位后请求暂停,SSW 将延迟执行主机用户代码,等待 HSM 的确认。在启动阶段,SSW 流程由 HSM 用户代码处理。

  • 后台安全启动:HSM 用户代码立即设置 HSM2HTF.0,SSW 跳转到主机用户代码,同时进行安全启动检查。
  • 前台安全启动:HSM 用户代码在安全检查完成且无安全违规后设置 HSM2HTF.0,SSW 直到检查完成才执行主机用户代码。如果存在安全违规,主机用户代码不会启动。

在前台安全启动的情况下,HSM 用户代码可以选择性地向 HSM2HTS 写入种子值。SSW 使用此种子值生成一些噪声,以掩盖功率曲线。一旦设置了 HSM2HTF.0,噪声生成就会结束。

在这里插入图片描述

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

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

相关文章

线程池和进程池,输出有区别吗?

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor def fn(name):for i in range(1000):print(name,i)if __name__ __main__:with ThreadPoolExecutor(10) as t:for i in range(100):t.submit(fn,namef"线程{i}")with ProcessPoolExecutor(10…

Linux第七节课gcc与g++

一、补充权限 普通用户无法执行sudo: 通过sudo执行后显示不在sudoers file中!(张三不被信任!) 需要修改配置文件(白名单!) 配置文件位于以下目录: ls /etc/sudoers -…

如何在 Odoo 16 网站中创建高级选择字段

Odoo 在后端用户界面中包含各种小部件,用于执行各种活动,例如 one2many、many2many、many2many_tags 等,这简化并简化了 Odoo 中选择字段的操作。因此,当我们创建包含 one2many 或 many2many 字段的表单时,很难在没有外…

如何在linux中安装搜狗输入法

参考网址:搜狗输入法linux-安装指导 sudo apt-get install fcitx 1.更新源:在终端输入 sudo apt update 2.安装fcitx输入法框架: sudo apt install fcitx 3.设置fcitx开机自启动 sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/aut…

航空航天混合动力(1)全权限数字发动机控制器(FADEC)

航空航天混合动力(1)全权限数字发动机控制器(FADEC) 1.概况2.什么是全权限数字发动机控制器(FADEC)?2.1核心技术2.2应用场景2.3国内FADEC供应商2.4近期进展2.5数字发动机控制和全权数字发动机控…

开放式耳机什么牌子的好?看这6大品牌就够了

移动互联网时代,听歌、追剧、网课、短视频……这几年全球青年人对于耳机和耳朵的依赖程度,可谓前所未有的提升。但选择一款好的耳机,也不是一件容易的事,入耳式耳机戴久了耳道会疼,还可能引起一系列不必要的炎症&#…

彻底搞清楚SSR同构渲染的首屏

作为.NET技术栈的全干工程师,Blazor、Vue/Nuxt.js和React/Next.js都会接触到。它们(准确的说是Blazor、Nuxt和Next),都实现了SSR同构渲染。要了解同构渲染,需要从服务端渲染开始。 传统的服务端渲染 如下图所示&…

孟德尔随机化、R语言,报错,如何解决?

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

喜讯|华院计算Uni-law法律大模型成功入选《2024中国数据智能产业AI大模型先锋企业》

7月24日,“2024企业数智化转型升级发展论坛——暨AI大模型趋势论坛”在北京圆满落幕。此次论坛由数据猿主办,IDC协办,新华社中国经济信息社、上海大数据联盟、上海市数商协会及上海超级计算中心作为支持单位。大会以“数智新质力拓未来”为主…

世界上速度最快的超级计算机推导出超级BC8钻石配方

BC8 超级钻石比任何已知材料都要坚硬,但它们很可能只存在于巨型系外行星的内核中。现在,世界上最强的超级计算机"前沿"已经揭开了它们形成的秘密,这一发现可能会导致在地球上生产它们。 钻石不仅是夺人眼球的珠宝,而且在…

【日记】9 个发箍只有 2 个能压住头发……(513 字)

正文 今天下午实在有些受不了,从正大门外走了出去。抬头望着天空,望着那些悠然自在纯白无暇的云,竟然有些眼睛疼,刺激到想要流泪。 我在室内待得太久太久了。似乎很久没有在这种时间段出来过了。 下午快下班的时候,有个…

使用docker在CentOS 7上安装php+mysql+nginx环境教程并运行WordPress

文章目录 一、安装docker1、切换yum源并更新系统2、卸载旧版docker3、配置Docker的yum库4、安装Docker5、启动和校验Docker6、配置镜像加速6.1、注册阿里云账号6.2、开通镜像服务6.3、配置镜像加速二、部署php+mysql+nginx环境1、准备目录结构2、拉取镜像3、运行容器并从中拷贝…

LLaMA-Factory私有化部署--云服务器版

LLaMA-Factory是一款比较流行的大语言模型微调框架。本文主要记录在阿里云人工智能平台PAI的DSW实例中部署LLaMA-Factory的过程,主要参考的教程是B站视频LLaMA-Factory私有化部署。 LLaMA-Factory的私有化部署与部署大模型的过程大体相同,都包括创建Pyt…

AI画笔,你的创意伙伴:6款最佳AI绘画工具推荐

在这个无限可能的时代,一个优秀的人工智能绘画软件不仅可以打破传统绘画方法的束缚,而且可以让每个热爱艺术的人都体验到创作的乐趣。那么,什么样的人工智能绘画软件才是优秀的呢?什么样的人工智能绘画软件才能生成超逼真的AI绘画…

Java面试八股之Spring如何解决循环依赖

Spring如何解决循环依赖 在Spring框架中,循环依赖问题通常发生在两个或多个Bean相互依赖的情况下。Spring为了解决循环依赖问题,采用了不同的策略,这些策略主要取决于Bean的作用域以及依赖注入的方式。下面是一些关键点: 单例Be…

项目实战_表白墙(简易版)

你能学到什么 一个比较简单的项目:表白墙(简易版),浏览器:谷歌升级版将在下个博客发布 效果如下 正文 说明 我们是从0开始一步一步做这个项目的,里面的各种问题,我也会以第一人称视角来解…

android13 第三方桌面不能使用后台历史任务问题 任务键功能失效问题

总纲 android13 rom 开发总纲说明 目录 1.前言 2.复现现象 3.问题分析 4.解决方法 5.编译运行 6.彩蛋 1.前言 随着Android 13操作系统的发布,用户现在可以更加自由地选择和使用第三方Launcher来定制自己的设备。本文将介绍在Android 13上安装和使用第三方Launcher导致…

KubeSphere部署:(三)MySQL安装

MySQL没有什么特殊的,这里记录一下部署过程(本文示例中安装的版本为5.7.29)。步骤大致如下: 拉取docker镜像 -> 标记并推送至私有harbor -> 创建有状态负载 -> 创建服务 一、拉取镜像,并推送至私有harbor # 拉取镜像 docker pull …

ant-design-vue 中 table行 点击事件

在使用 AntDesign 过程中&#xff0c;需求单击表格选中。设置table的customRow属性 设置之后&#xff0c;虽说官方文档也有详细介绍如何实现该功能。但是没看太懂&#xff0c;百度后解决 <a-table:columnscolumns:data-sourcetableDatachangehandleTableChange:customRowrow…