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

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

3天内不再提示

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

星星科技指导员 来源:嵌入式计算设计 作者:Zhi Feng 2022-10-24 15:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

安全启动是构建安全电子系统的基础。随着微控制器的工艺几何形状不断缩小,板载嵌入式闪存正逐渐被取代。

电子系统在我们的生活中起着至关重要的作用。无论是通过智能手机进行通信,还是驾驶配备高级驾驶辅助系统(ADAS)的汽车,我们都依靠电子设备来简化甚至执行我们的日常任务。这些系统容易被黑客入侵,并且它们连接的事实放大了威胁。随着可信情报采取关键活动(例如,个人医疗监控),网络攻击和破坏的后果增长到包括身体伤害甚至死亡。在这种新的现实中,建立能够抵御此类攻击的电子系统势在必行。

安全启动是构建安全电子系统的基础。随着微控制器的工艺几何形状不断缩小,板载嵌入式闪存正逐渐被外部NOR闪存所取代。这种体系结构演变通过公开的总线接口、克隆可能性等创建了更大的攻击面。解决这一日益严重的漏洞的一种方法是使用安全NOR闪存进行设计,以保护存储,并帮助MCU在启动时建立安全的信任链。

安全启动 – 安全系统的基础

每个电子系统在通电时都会启动。对于嵌入式系统,这通常通过运行存储在非易失性存储器中的引导代码来实现。要启用安全引导,系统需要建立信任根,从原始硬件存储引导,并使用原始受信任的引导代码引导(请参阅图 1)。

建立信任根

当MCU开始启动时,它必须从受信任位置运行。这通常是通过小型内部ROM或受信任的嵌入式闪存实现的。此代码必须是不可变的,以便系统可以从本质上信任它。它是信任根层次结构的基础。从这里,系统可以通过对硬件进行身份验证并验证存储内容来将信任扩展到外部存储。

非对称密钥算法

为了建立信任根,ROM代码通常依赖于预先存储的密钥。如果使用非对称密钥算法,则此密钥通常是公钥。MCU 使用此公钥来验证第二阶段引导加载程序的签名,该签名位于外部闪存设备上。与实际引导加载程序一起存储的签名是引导加载程序的摘要值,并使用与公钥以加密方式配对的私钥进行签名。如果MCU使用公钥成功验证引导加载程序签名,并从当前引导加载程序计算相同的摘要值,则可以确定引导加载程序代码未被更改。通过这种方式,建立了信任根。这个经过验证的第二阶段引导加载程序现在可以安全地执行。

对称密钥算法

通常,对称密钥算法的执行速度比对称算法慢。因此,在启动时间至关重要的应用程序中,用户通常选择对称密钥算法。使用对称密钥,主机MCU和外部闪存共享相同的密钥。在现场部署之前(即在制造过程中),可以在安全环境中提前建立此共享密钥。随后,共享密钥可用于通过在软件上使用基于密钥的哈希值来快速验证第二阶段引导加载程序。

poYBAGNWOmSAVWDyAAGtsbin1pU094.png

图 1:建立信任根

从原始硬件存储启动

如果整个引导代码存储在 MCU 内的嵌入式闪存上,则从原始硬件存储引导可能不是主要问题。这是因为在不损坏MCU主机的情况下更换嵌入式闪存是不可能的。然而,随着行业向22 nm MCU迈进,在MCU中嵌入闪存变得越来越困难。超过28nm的技术可能被迫将引导代码存储在外部闪存中。因此,要安全引导,主机必须考虑是否已更换外部闪存。

为了防止黑客克隆具有原始内存内容的硬件,主机MCU可以在制造过程中执行与引导存储设备的配对过程。之后,只有此配对的存储设备才能提供用于引导的引导代码。因此,必须在设备上使用安全的硬件标识符来提供此类配对功能。标识符可以是不能篡改或克隆的非常强的设备 ID。因此,配对后的认证过程可以基于这样的标识符。

使用受信任的原始启动代码启动

识别原始硬件存储后,下一步是验证引导代码,以确保其未被篡改或修改。有多种方法可以做到这一点,每种方法都需要不同的处理能力并提供相应的安全级别。

简单保护

与大多数传统的NOR闪存一样,用户可以在引导代码所在的内存范围内启用块或基于扇区的保护。这种保护还可以防止意外写入并从受保护区域擦除。简单保护中没有安全元素,因此这种保护对于更改代码的故意攻击很弱。黑客可以轻松发出命令来取消对区域的保护并修改启动代码。即使保护方案包含密码,也可能被复杂的攻击所破解,因为密码本质上是静态的。

校验和验证

如果校验和是根据原始引导代码计算得出的,则可以在后续引导中使用它来验证代码是否未被修改。此过程必须由主机完成;因此,它要求主机从引导设备读取整个引导代码并计算校验和,然后才能开始使用它运行。请注意,主机不能依赖内存设备来提供校验和值,因为在攻击期间可能会修改校验和值。

使用加密存储引导代码

加密的引导代码可以使用密钥存储在 NOR 闪存上。MCU内部可能有硬件,可以在启动时透明地解密数据。由于引导代码纯文本未在总线上公开,因此无法进行窃听。只要用于加密的密钥未被泄露,此方法就是安全的。但是,如果加密密钥泄露,则必须重新刷新外部闪存上的启动代码内容。这个过程可能很繁琐,甚至不可能在现场已有的设备上实施。

闪存设备辅助验证

如果器件提供此类功能,则无需MCU将整个引导加载程序读入RAM进行验证,而是将验证任务卸载到NOR闪存。在引导时间敏感型系统中,卸载验证任务可以帮助MCU更快地开始执行引导加载程序。看门狗定时器可用于在验证失败的情况下重置系统。使用这种方法,MCU可以在闪存设备验证代码时开始处理一些紧急任务。当然,在验证完成之前,只能运行不安全的函数。这意味着主机必须实现一个安全的中断处理程序,该处理程序可以通过中断事件从 NOR 闪存获取验证结果。

安全非闪存

传统的NOR闪存能够提供简单的数据保护,无论是否使用密码。这使得使用传统的NOR闪存实现安全启动功能变得困难。赛普拉斯等公司提供的下一代安全NOR闪存集成了安全功能,可实现更强级别的安全启动。

设备识别复合引擎

DICE 由可信计算组 (TCG) 指定,它提供了一种方法,用于根据每个设备的唯一设备密钥派生强大且安全的设备 ID。在存储引导代码的设备上使用 DICE,系统可以在引导时建立信任根基础。

DICE 建立在唯一设备机密 (UDS) 的基础上。UDS 是每个设备上的真正随机数,没有任何关联。UDS 在客户的设施中生成,并存储在设备上的机密位置,一旦写入,就无法读取 UDS。由证书提供的设备标识派生自 UDS。因此,一旦MCU与特定的闪存设备配对,就不可能克隆包含相同UDS的设备。

安全存储区域

安全 NOR 闪存可以配置为在设备内具有多个独立的安全区域。具有不同访问级别的区域可用于存储可能需要不同安全级别的固件或软件。还可以将单个区域配置为常规数据的不安全存储。随着安全级别的提高,由于加密措施,来自设备的读取吞吐量会降低。通过提供各种访问级别,用户可以决定系统每个部分的性能和安全性之间的权衡。

如果固件引导加载程序存储在配置为需要身份验证的区域中,则用户可以确保固件未被任何未经授权的各方修改。如果固件包含用户不希望在SPI总线上公开的敏感数据,则可以将其存储在需要加密的区域,以便仅将加密数据传输到总线上。

快速安全启动

某些应用(如汽车系统)需要及时安全启动。在现代复杂系统中,引导代码或应用软件可能非常大,以至于MCU需要大量时间来读取和验证整个软件。在这种情况下,安全NOR闪存可以在启动期间卸载MCU,以验证存储在设备上的软件。这是通过在MCU和设备之间提前存储共享的秘密信息来实现的。在启动过程中,可以快速验证此共享密钥,以确保设备和存储软件的原创性。该器件还可以在MCU开始处理一些基本任务时对软件应用代码进行身份验证。因此,可以缩短整个启动时间,以满足汽车应用的严格要求。

汽车、工业和通信领域的现代电子系统需要高度安全的闪存存储。设计人员面临着构建能够抵御网络攻击的安全可靠的系统的挑战。安全存储器,如赛普拉斯串行和并行NOR闪存,实现安全功能,使外部存储能够支持快速安全的启动。

审核编辑:郭婷

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

    关注

    49

    文章

    8830

    浏览量

    165580
  • 代码
    +关注

    关注

    30

    文章

    4975

    浏览量

    74349
  • adas
    +关注

    关注

    311

    文章

    2337

    浏览量

    212100
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    华邦电子NOR闪存与NAND闪存产品概述

    华邦电子的 NOR 闪存符合工业及车规级标准,满足各类应用的严苛需求,容量覆盖 2Mb 至 2Gb,支持 3V、1.8V 和 1.2V 电压规格,以及单通道、双通道/四通道接口。多数产品提供
    的头像 发表于 04-20 11:15 300次阅读

    如何进一步从SPI NOR闪存启动电路板?

    我正在努力提出一个基于恩智浦 T2080 处理器的定制板我希望启动过程获得帮助。 处理器: T2080 引导源SPI NOR 系统时钟:100 MHz 内存:DDR3L
    发表于 04-16 08:51

    RW612 ROM 引导加载程序卡在 ISP 模式测试

    从 FRDM-RW612 到第三方模块存储器的迁移指南,其中提供了配置 IRIS-W106-30B 特定闪存的指南和示例。 注意:您提到尝试 RD-RW612-BGA 二进制文件加
    发表于 04-15 10:13

    SPI NOR闪存中加载文件的偏移地址是多少?

    我们 QorIQ SDKv2.0 中加载了使用自定义 RCW 字修改 RCW 字生成的u-boot-with-spl-pbl.bin,错误为“无法重置目标(T2080 内核无响应)”并且没有 UART 控制台消息 SPI NOR
    发表于 04-08 06:38

    通用SPI接口的NOR Flash存储器特性

    嵌入式系统设计NOR Flash存储器凭借其快速读取和可靠的数据存储能力,成为代码
    的头像 发表于 04-07 15:15 118次阅读

    如何在 i.MX RT1050 上实现两个镜像(引导加载程序应用程序)的双 HAB 身份验证?

    我正在为i.MX RT1050MCU 和我想实现双镜像认证— 一个用于第二阶段引导加载程序另一个用于应用图片,均位于外部闪存。 我目前的设置思路如下: 我计划使用MCU 安全配置工
    发表于 04-07 06:14

    稳定电压对于SPI NOR闪存意味着什么

    职场人的底气来自“稳中求进”;而对于支撑设备运转的 SPI NOR 闪存来说,“稳”更是“生存法则”,必须以完整、准确的数据,承载汽车、工业、嵌入式系统的每一次运行。
    的头像 发表于 03-13 15:00 372次阅读

    NOR Flash GT25D20E-U串行NOR闪存

    、基站设备、WIFI模块等关键组成部分不可或缺的存储解决方案。英尚微电子推出的GT25D20E-U串行NOR闪存,正是针对通信设备的高性能需求而设计的代表产品之一。
    的头像 发表于 02-02 16:52 536次阅读

    SPI NOR Flash和SPI NAND Flash存储芯片的区别

    SPI NOR Flash与SPI NAND Flash并非相互替代,而是互补关系。SPI NOR胜在读取速度快、使用简单、可靠性高,是代码存储的理想选择。SPI NAND则以其大容量
    的头像 发表于 01-29 16:58 833次阅读
    SPI <b class='flag-5'>NOR</b> Flash和SPI NAND Flash<b class='flag-5'>存储</b>芯片的区别

    国产SPI NOR Flash接口闪存介绍

    在当今各类电子设备对存储性能要求日益提升的背景下,SPI NOR Flash凭借其高速读取、低功耗及灵活接口等优势,成为嵌入式系统代码存储的关键元件。GT25Q系列SPI
    的头像 发表于 12-26 11:51 619次阅读

    Infineon SEMPER NOR Flash与HYPERRAM™ 2.0 Gen2 Flash+RAM MCP产品解析

    启动代码,用RAM进行暂存扩展内存。英飞凌(Infineon)推出的Flash+RAM多芯片封装(MCP)Gen 2产品,SEMPER™ NOR Flash和HYPERRAM™ 2.0集成
    的头像 发表于 12-20 16:20 1353次阅读

    高性能SPI NOR FLASH芯片ZB25VQ系列推荐

    嵌入式系统、物联网设备及各类存储应用,SPI NOR FLASH芯片因其接口简单、功耗低、读写速度快等特点,成为代码
    的头像 发表于 12-01 14:52 843次阅读

    如何触摸校准存储到 SPI 闪存

    触摸校准存储到 SPI 闪存
    发表于 09-04 07:06

    什么是Flash闪存以及STM32使用NAND Flash

    处理三个方面来比较NOR和NAND的可靠性。 耐用性 NAND闪存每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND
    发表于 07-03 14:33

    昂科烧录器支持Macronix旺宏电子的串行NOR闪存存储器MX25U51245G

    近期,芯片烧录领域的领导者昂科技术推出其烧录软件的重大版本更新。新版本发布之际,公司同步宣布新增多款兼容芯片型号,其中包括旺宏电子开发的MX25U51245G串行NOR闪存存储器。该
    的头像 发表于 05-20 16:27 906次阅读
    昂科烧录器支持Macronix旺宏电子的串行<b class='flag-5'>NOR</b><b class='flag-5'>闪存</b><b class='flag-5'>存储</b>器MX25U51245G