0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

安全引导的作用和原理是什么

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-11-07 15:21 次阅读

安全引导可用于保证系统的完整性,防止系统中重要镜像文件被破坏或替换。

一般情况下,安全引导需要保护

• 系统的BootLoader镜像文件、

TEE镜像文件、

Linux内核镜像文件、

• Recover镜像文件

• 以及在ARMv8中使用的ATF镜像文件。

将TEE镜像文件的加载操作加入安全引导功能中可阻止黑客通过替换TEE镜像文件的方式来窃取被TEE保护的重要资料

当前使用ARM芯片的系统中大部分使能了安全引导功能,该功能对于用户的最直接感受就是,当用户非法刷入其他厂商ROM手机无法正常启动,这是因为非法刷机将导致系统中的重要镜像文件被替换,系统在启动过程中对镜像文件的电子验签失败,如果BootLoader验证失败,则系统在进入BootLoader阶段之前就会挂死。

(信任根这个词语此时有没有在你的脑子里包含)

安全引导的原理

安全引导功能的原理就是采用链式验签的方式启动系统,也就是在系统启动过程中,在加载下一个阶段的镜像之前都会对需要被加载的镜像文件进行电子验签,只有验签操作通过后,该镜像才能被加载到内存中,然后系统才会跳转到下一个阶段继续执行,整个验签链中的任何一环验签失败都会导致系统挂死,系统启动过程中的第一级验签操作是由ChipRom来完成的。

只要芯片一出厂,用户就无法修改固化在芯片中的这部分代码,因此无法通过修改第一级验签结果来关闭安全引导功能。

而且验签操作使用的RSA公钥或者哈希值将会被保存在OTP/efuse中,该区域中的数据一般只有ChipRom和TEE能够读取且无法被修改。RSA公钥或者哈希值将会在产品出厂之前被写入到OTP/efuse中,而且不同厂商使用的密钥会不一样。

本质上也就是说Rom拿来校验后级第一部分的内容所用到的密钥是来自OTP里面,而这种是在出厂就确认好了的,无法修改的。ChipRom和OTP的配合让这个安全启动的最开始具备了灵活性和安全性兼顾。

在谷歌的安全引导功能白皮书中提出了安全引导功能实现方案的设计建议。

谷歌建议将镜像文件的电子签名信息和验签使用的RSA公钥保存在电子证书中,系统在启动的过程中首先会验证电子证书的合法性,如果验证通过则需从电子证书中获取签名信息和RSA公钥,然后再利用它们对镜像文件进行验证。整个验证过程就是先验证证书,验证证书通过后再去验证镜像文件的合法性。

但是在实际实现过程中,大多数芯片厂商是将签名信息与需要被验签的镜像文件打包在一起,而RSA公钥则会被打包到执行验证操作的镜像文件中。

(但是动态TA的事情)

不同厂商可能会对镜像文件进行加密操作,使保存在设备中的镜像文件都是以密文的形式存在。

在启动过程中,首先会验证密文镜像文件的合法性然后再进行解密镜像文件的操作,这些都完成后才会将明文的镜像文件加载到内存中然后再执行跳转操作。

先验证,再解密,签名的是加密的文件哦。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ROM
    ROM
    +关注

    关注

    4

    文章

    525

    浏览量

    84832
  • 镜像
    +关注

    关注

    0

    文章

    153

    浏览量

    10590
  • 系统
    +关注

    关注

    1

    文章

    981

    浏览量

    21038
收藏 人收藏

    评论

    相关推荐

    PSOC 5安全引导程序怎么实现

    我想在PSoC 5上实现一个安全引导加载程序。我的意思是,应用程序接收新的二进制文件,将其存储在MCU的闪存中,并且只有在上传完成后,才将控制转移到替换现有应用程序并重新启动MCU的加载器。这有
    发表于 11-13 15:15

    请问NORflash的烧写和引导启动作用是什么?

    TL提供了NAND FLASH的基于仿真器的使用AIS文件的烧写方法。可是对于烧写和引导启动在这些步骤中所处的位置和作用完全不明白,TMS320C6748 C6746 C6742
    发表于 05-28 10:33

    安全广播的原理及应用是什么?有什么作用

    安全广播的原理及应用是什么?安全广播的作用是什么?安全广播在CMMB终端的实现方法
    发表于 06-02 06:25

    怎样使用基于安全引导加载程序构建的应用程序运行调试会话

    我正在尝试使用基于安全引导加载程序构建的构建应用程序运行调试会话。注意:出于调试目的,所有安全机制都被禁用。问题似乎是组合的 elf 文件。使用调试器加载它,目标启动进入引导加载程序。
    发表于 12-06 08:10

    STM32MP1部件号具有像STM32MP157C/F这样的安全引导选项吗?

    是否可以使用 OTP WORD 24 到 31 而不启用安全引导,STM32MP1 部件号没有像 STM32MP157A/D 这样的安全引导选项?与上述相同,但 STM32MP1 部件
    发表于 12-27 08:56

    LS1046AFRWY需要做什么才能使用安全引导架构进行引导

    我正处于我的应用程序的开发阶段,并希望利用安全启动过程至少启动到 U-Boot。我将启用 RCW 中的 SB_EN 位并重建 bl2_emmc.pbl 但在我完成之后,我还需要做什么才能使用安全引导
    发表于 03-31 08:06

    iMXRT MCU是否能够支持安全引导加载程序实施?

    大家好,我们正在使用 MIMXRT1062xxx5A 和 NOR 闪存,我们计划实施安全引导加载程序。 基本上,从 POR 开始,在执行 ROM 引导加载程序后,接下来将执行安全
    发表于 04-03 08:12

    Arm CryptoCell-312生成和验证安全引导安全调试证书链指南

    安全引导安全调试是CryptoCell(CC)引导服务的基本功能。 安全引导
    发表于 08-24 06:09

    通过安全引导安全下载认证保护IoT设备

    讨论恶意攻击如何感染当今许多IoT设备或基于微控制器的设备中普遍存在的嵌入式固件。您将会了解到攻击者利用设备内部漏洞的途径,以及通过安全引导和下载验证产品固件真实性和完整性的重要性。关于安全认证背后的技术,请观看本系列视频的下一
    的头像 发表于 10-10 03:06 3149次阅读

    怎样引导区块链应用走上正轨

    引导区块链在金融领域稳妥探索和应用,引导其在解决实体经济发展的难点、痛点方面发挥更有益的作用
    发表于 11-23 09:13 472次阅读

    wolfBoot安全引导加载程序

      wolfBoot 安全引导加载程序 1.7.1 版在开源 GPLv2 许可下可用,可从www.wolfssl.com/download下载。wolfSSL 还在Github 上提供了许多 wolfBoot 示例。
    发表于 06-27 11:30 992次阅读

    引导代码存储在安全的NOR闪存中

      某些应用程序(例如汽车系统)需要及时安全地启动。在现代复杂系统中,引导代码或应用软件可能非常庞大,以至于 MCU 需要大量时间来读取和验证整个软件。
    的头像 发表于 06-30 11:14 706次阅读
    将<b class='flag-5'>引导</b>代码存储在<b class='flag-5'>安全</b>的NOR闪存中

    安全光栅中的投光器的作用是什么?

    安全光栅中的投光器的作用是什么?
    的头像 发表于 06-25 13:46 297次阅读
    <b class='flag-5'>安全</b>光栅中的投光器的<b class='flag-5'>作用</b>是什么?

    ATECC608A安全引导入门用例

    电子发烧友网站提供《ATECC608A安全引导入门用例.pdf》资料免费下载
    发表于 09-21 10:38 2次下载
    ATECC608A<b class='flag-5'>安全</b><b class='flag-5'>引导</b>入门用例

    ARMv7安全引导的过程

    对于安全引导功能的实现和验证过程各家芯片公司的方案都不一样,这是由该芯片的启动流程以及启动所需镜像文件来决定的,但都会遵循链式验签启动的原则。 ARMv7架构并没有使用ATF,系统的启动流程与以前
    的头像 发表于 11-07 15:25 338次阅读
    ARMv7<b class='flag-5'>安全</b><b class='flag-5'>引导</b>的过程