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

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

3天内不再提示

如何保护嵌入式设备中的固件和数据

星星科技指导员 来源:ADI 作者:ADI 2023-01-04 14:46 次阅读

为了确保目标嵌入式设备仅运行授权固件或仅使用授权配置数据,我们需要提供一种方法来验证信息的真实性和完整性。这意味着确保数据是可信的,并且随后不会被修改。利用加密数字签名(例如在信件底部盖章或手动签名)可以实现这种完整性。

随着物联网设备在我们的生活中激增,恶意控制它们的不断尝试也扩大了,因此采用嵌入式系统安全性来保护设备势在必行。例如,当黑客试图修改物联网设备固件或操作配置数据时构成的威胁。在制造过程中,这些设备使用的固件和数据的真实性和完整性通常可以被认为是安全可靠的。但是,一旦安装在现场,设备可能会暴露给黑客访问,或者可能需要定期更新固件或配置数据。访问或更新为入侵者提供了修改行为的可能性,甚至更糟的是,完全控制这些设备,并可能带来灾难性的后果。一种这样的攻击称为恶意软件注入。这涉及将恶意代码插入固件更新源。一旦攻击者成功安装欺诈性固件,此未经授权的配置可以:

输出机密和敏感数据。例如,如果在医疗行业使用,恶意软件注入可能会导致便携式健康监视器等设备无意中传输私人医疗信息。在更广泛的努力中,恶意固件可以使公众可以访问加密密钥。

强制设备运行不正确。最新的事件是Oldsmar水处理设施攻击,黑客访问了软件系统并将氢氧化钠含量从100 ppm增加到11,100 ppm,这可能会对消化系统造成严重损害。

引发不可预测的设备行为。这包括可能威胁人类生命的行为。

固件的身份验证和完整性

为了确保目标嵌入式设备仅运行授权固件或仅使用授权配置数据,我们需要提供一种方法来验证信息的真实性和完整性。这意味着确保数据是可信的,并且随后不会被修改。利用加密数字签名,例如在信件底部盖章或手动签名,可以实现这一点。

使用此方法,对在制造阶段加载的固件或配置数据以及所有后续更新进行数字签名。这样,数字签名就可以在设备的整个生命周期内实现信任。强数字签名必须由加密算法计算。为了带来最高级别的安全性,算法必须是公开的并且经过充分验证。在这里,我们研究非对称加密算法,特别是FIPS 186椭圆曲线数字签名算法(ECDSA)。

应用于安全启动和安全下载的非对称加密

在非对称(公钥)密码学中,数学相关的密钥对(公钥和私钥)用于算法计算。顾名思义,任何实体都可以知道公钥,而不会带来安全风险。然而,私钥是绝对机密的信息,永远不会被释放或知道。基于非对称加密的安全下载的基本原则是,固件开发人员使用私钥进行签名,而嵌入式设备存储并使用公钥进行验证。与对称密钥加密相比,非对称加密的主要优点是机密元素(即用于签名的私钥)永远不会存储在嵌入式设备中。因此,在使用ECDSA时,尽管使用了复杂的侵入性攻击,但攻击者无法检索用于对固件和数据进行签名的私钥。攻击者可以从设备获得的只是公钥,而使用 ECDSA,从公钥中获取私钥在数学上是不可行的。这是非对称加密的一个基本好处。

图 1 显示了基于非对称 ECDSA 的安全启动和安全下载的使用,如果密钥长度足够(通常至少为 256 位),则提供高级别的信任。如图所示,该解决方案有两个方面。在开发或生成固件或配置数据的研发设施中,创建ECDSA密钥对 - 系统私钥和公钥。要保护的固件或数据在受控开发环境中使用系统私钥进行签名。如图 2 所示,FIPS 180 SHA-256 算法包含在加密数据路径中,导致在固件映像或数据文件的 SHA-256 哈希值上计算 ECDSA 签名。在实践中,该签名结果被计算并附加到研发设施的固件或数据文件中,如图1所示。正是 SHA-256 哈希的这种签名使最终应用程序中的资源能够验证固件或数据文件的真实性和完整性。对于现场使用,最终应用处理器将具有可用的内部或外部资源,以首先执行固件或数据文件的 SHA-256 哈希,然后使用此计算值和可访问的系统公钥验证附加的 ECDSA 签名是否有效,请参见图 3。如果此验证检查成功,则保证固件或数据文件既真实又未经修改。

poYBAGO1INiACbOQAAEQ7Yv_P6E758.png?imgver=1

图1.使用 ECDSA 进行安全启动和安全下载。

不使用过孔的GAIN_SLOT引脚。

pYYBAGO1INqAYecwAABYaGDfjZI430.png?imgver=1

图2.固件/数据文件的 ECDSA 签名。

poYBAGO1INyAUmxwAABcZXPvnas504.png?imgver=1

图3.ECDSA 验证固件/数据文件签名。

挑战

显然,适当安全的启动或下载过程将只允许授权/真实的固件在嵌入式设备上运行;因此,即使在固件更新期间也能防止恶意软件注入。与该过程相关的挑战包括:

SHA-256 哈希 — 在大型固件上计算 SHA-256 哈希可能非常耗时 软件。

ECDSA 签名验证 — ECDSA 签名验证是计算密集型的,在嵌入式应用程序中,通常使用合适的数学加速器资源执行。

实施 - 正确实施加密对于避免可能被发现和利用的漏洞至关重要。

保护公共验证密钥不被修改 - 公钥必须与用于对固件或配置数据进行签名的合法私钥匹配。生成自己的私钥并将相应的公钥注入嵌入式系统的攻击者将能够生成自己的任意固件或配置数据,并由嵌入式系统成功验证它们

使用 DS28C36 进行安全启动和安全下载

对于没有具有计算能力的安全微控制器来验证下载软件的真实性和完整性所需的计算的嵌入式系统,ADI公司的DS28C36 DeepCover安全认证器是一种经济高效的基于硬件IC解决方案。图4给出了DS28C36如何与主机处理器接口,下图的步骤说明了该操作的概要版本。®

poYBAGO1IN2ACxGLAAD8fcXfm18929.png?imgver=1

图4.将主机处理器与DS28C36接口。

如前所述,在研发设施中建立了用于安全启动或安全下载功能的系统公钥-私钥对。该对的私钥用于对固件或数据文件进行签名,最终由嵌入终端系统的DS28C36进行验证。此系统私钥永远不会离开受控开发环境。该对的系统公钥安装在DS28C36的密钥寄存器位置并锁定,该位置具有“权威密钥”属性;这是DS28C36中的可配置设置。

系统私钥用于计算固件或数据文件的数字签名。如前所述 前面如图 2 所示,此签名是在数据文件的 SHA-256 哈希上计算的。

带有预编程系统公钥(配置有权限属性)的Maxim DS28C36位于 系统主板并与主机处理器接口。

当固件需要由处理器运行,或者系统使用需要配置数据文件时,它会 首先由处理器启动管理器检索,并以顺序64字节块的形式传送到DS28C36 计算 SHA-256 哈希。

DS28C36完成SHA-256哈希计算后,处理器提供ECDSA签名。 在开发环境中计算并追加到文件的固件或数据。

DS28C36收到ECDSA签名后,处理器发送命令使用预装系统 用于执行签名验证的公钥。

如果DS28C36验证签名,则GPIO引脚设置为逻辑0,并将传递结果参数字节传送给处理器。此引脚和参数字节结果的状态充当处理器运行固件或使用配置文件的通过/不通过结果。

上述序列的附加说明如图4所示。这包括额外的增强 安全步骤,使主机处理器能够通过单独的 ECDSA 序列验证安全启动结果。

主机微 数据流 DS28C36
1 固件或数据文件 SHA-256 使用计算多块哈希函数对文件进行哈希处理
2 固件或数据文件 ECDSA 签名 验证固件的 ECDSA 签名和多块哈希结果,成功时更改 PIO
3 - - PIO结果可以由处理器电检测,也可以通过参数字节进行逻辑检查。

用于提高安全级别并解决 GPIO 状态更改和/或参数结果的问题 字节可以被欺骗,DS28C36可以选择对内部状态结果进行ECDSA签名,指示安全启动或安全下载序列的通过或失败。这个结果是无可辩驳的。

主机微 数据流 DS28C36
4 随机挑战 计算存储安全引导逻辑通过/失败结果的寄存器数据的 ECDSA 签名
5 - 幼儿发展局结果
6 验证质疑的 ECDSA 结果。
验证DS28C36
设置的逻辑PIO状态是否与物理输出反馈值匹配
- -
7 成功安全启动操作后
,固件继续运行
- -

使用DS28C40安全启动和安全下载,适用于汽车

Maxim的DS28C40是一款符合汽车AEC-Q100 1级标准的安全认证器。它提供了一种经济高效的基于硬件的IC解决方案,采用ECDSA加密技术,以执行验证联网汽车下载软件的真实性和完整性所需的计算。图5给出了DS28C40如何与主机ECU接口。

pYYBAGO1IN6AHxF-AACYomvspU0063.png?imgver=1

图5.将ECU主机MCU连接至DS28C40。

工艺流程与前面描述的DS28C36相同。

使用MAXQ1061进行安全启动和安全下载

MAXQ1061为安全协处理器,提供加密工具箱,支持:

安全启动和安全下载

通过 TLS 协议实现安全通信

安全密钥存储

加密和数字签名

MAXQ1061设计用于作为嵌入式连接系统的信任根。它回答了上面列出的挑战。其硬件加速器可实现快速 SHA 和 ECDSA 计算,并将主处理器从这些计算密集型活动中卸载出来。MAXQ1061还支持可靠的离线公钥基础设施,使得公钥证书可以不可变或只能由正式授权方升级。通过确保公钥不能被伪造的公钥替换,MAXQ1061使最终产品能够抵御攻击,包括注入黑客的公钥,从而成功验证不受信任的固件。图6给出了如何与主机处理器连接MAXQ1061,下图的步骤说明了该操作的摘要版本。

poYBAGO1IOCAfpvxAACtIK3xRJw634.png?imgver=1

图6.主机处理器与MAXQ1061接口。

如前所述,在研发设施中建立了用于安全启动或下载功能的系统公钥-私钥对。使用MAX1061时,ECDSA密钥对可以有256位、384位或521位密钥长度。该对的私钥用于对固件或数据文件进行签名,最终由嵌入终端系统的MAXQ1061进行验证。此系统私钥永远不会离开受控开发环境。该对的系统公钥安装在MAXQ1061中。

如图2所示,系统私钥用于计算签名。它是在数据文件的 SHA-x 哈希上计算的,并附加到固件或数据文件中。

主处理器向MAXQ1061发送“VERIFY BOOT”命令,同时发送待验证固件及其预期的数字签名。

MAXQ1061返回操作结果,带有“成功”或错误代码。(可选)置位RESET_OUT引脚。RESET_OUT引脚可用于触发主处理器的中断或将其设置为复位状态。

如果签名验证成功,则满足常规安全条件“安全启动”。得益于安全的文件系统,MAXQ1061用户可以配置对某些对象的访问,以成功进行固件验证。当满足安全启动条件时,将授予对此类对象的访问权限,否则将被锁定。此功能的典型用途是将固件加密密钥存储在MAXQ1061中,只有在验证其签名后,加密密钥才能用于解密固件。(可选)将固件发送到 AES-SPI 硬件引擎进行解密。

主机微 数据流 最大Q1061
1 固件或数据文件以及 ECDSA 签名 执行固件散列和 ECDSA 签名验证
2 固件或数据文件 ECDSA 签名 返回“验证启动”命令状态:正常或失败
3 - 授予对具有“安全启动”条件的对象的访问权限。例如,可以访问加密密钥
4 可选固件发送至MAXQ1061进行解密 -
5 - MAXQ1061解密固件,并将解密后的固件发送回主微控制器
6 成功安全启动操作后,固件继续运行 - -

使用MAXQ1065进行安全启动和安全下载

MAXQ1065为低功耗固定功能安全协处理器,为嵌入式连接系统提供边缘到云的交钥匙安全解决方案。它使用 TLS/DTLS 1.2 为物联网设备启用安全通信。它具有与MAXQ1061类似的加密功能。此外,芯片DNA唰唰��MAXQ1065中的PUF安全技术保护安全密钥,该密钥永远不会静态驻留在寄存器或存储器中,也不会离开IC的电气边界。ChipDNA技术提供了对黑客应用的侵入性和逆向工程攻击的指数级保护。

poYBAGO1IOGAFU74AABG7hNYT_U653.png?imgver=1

图7.主机处理器与MAXQ1065接口

处理流程与MAXQ1061非常相似,具有可选的“RESET_OUT”断言和固定的ECDSA密钥长度。

当固件需要由主机微控制器运行时,首先由主机MCU引导管理器检索,并以2048字节的顺序模块形式传送给MAXQ1065,以计算SHA-256哈希。

MAXQ1065完成SHA-256哈希计算后,处理器提供在开发环境中计算并附加到文件中的固件或数据的ECDSA签名。

主处理器向MAXQ1065发送“VERIFY BOOT”命令,同时发送待验证的固件或数据文件及其预期的数字签名。

MAXQ1065返回操作结果,带有“成功”或错误代码。

如果签名验证成功,则满足常规安全条件“安全启动”。安全文件系统允许用户根据固件验证的状态对部分MAXQ1065对象的访问进行门控。当满足安全启动条件时,将授予对此类对象的访问权限,否则将被锁定。此功能的典型用途是将固件加密密钥存储在MAXQ1065中,只有在验证其签名后,该加密密钥才能用于解密固件。(可选)将固件发送到硬件 AES 引擎进行解密。

主机微 数据流 最大Q1065
1 固件或数据文件以及 ECDSA 签名 执行固件散列和 ECDSA 签名验证
2 固件或数据文件 ECDSA 签名 返回“验证启动”命令状态:正常或失败
3 复位或接收中断信号 可选RESET_OUT引脚置位
4 - 授予对具有“安全启动”条件的对象的访问权限。例如,可以访问加密密钥
5 可选固件发送至MAXQ1065进行解密 -
6 - MAXQ1065解密固件,并将解密后的固件发送回主微控制器
7 成功安全启动操作后,固件继续运行 - -

使用 DS28S60 进行安全启动和安全下载

DS28S60 DeepCover加密协处理器为物联网安全应用提供了最简单的解决方案。DS28S60具有固定的命令集,无需开发器件级固件,能够快速、轻松地实现物联网设备的全面安全性。这种安全协处理器提供了一个全面的加密工具箱,用于保护各种嵌入式设备。DS28S60中的硬件加速器可实现快速SHA和ECDSA计算。集成的ChipDNA PUF技术提供了强大的对策,以防止安全攻击。®

pYYBAGO1IOOAPFxPAACUa2bHl1w362.png?imgver=1

图8.主机处理器与DS28S60接口

工艺流程与DS28C36类似,具有AES加密/解密功能。

DS28S60带有预编程的系统公钥(配置了权限属性)位于系统主板上,与本地或远程主机处理器接口。

当固件需要由处理器运行,或者系统使用需要配置数据文件时,处理器引导管理器首先检索固件,并以64字节顺序模块的形式传送到DS28S60,以计算SHA-256哈希。

DS28S60完成SHA-256哈希计算后,处理器提供在开发环境中计算并附加到文件中的固件或数据的ECDSA签名。

DS28S60收到ECDSA签名后,处理器发送命令,使用预装的系统公钥进行签名验证。

如果DS28S60验证了签名,则向处理器传送一个传递结果参数字节。它向处理器发送 go/no-go 命令以运行固件或使用配置文件。(可选)将固件发送到硬件 AES 引擎进行加密/解密。

主机微 数据流 DS28S60
1 固件或数据文件 SHA-256 使用计算多块哈希函数对文件进行哈希处理
2 固件或数据文件 ECDSA 签名 验证固件的 ECDSA 签名和多块哈希结果
3 - 如果 ECDSA 身份验证结果通过,则授予对对象的访问权限。例如,可以访问加密密钥
4 可选固件发送到DS28S60进行加密/解密 -
5 - DS28S60对固件进行加密/解密,并将固件发送回主微控制器
6 成功安全启动操作后,固件继续运行 - -

结论

安全启动或安全下载是一种经过验证的安全解决方案,可解决 IoT 设备面临的相关威胁。它可以确定安装或下载到嵌入式系统的固件或配置数据文件的完整性和真实性。在系统中成功实施安全启动和安全下载可以:

确保下载的数据文件或固件真实且未经修改

防止在设备硬件中安装被黑客入侵的数据或固件

提高工业和医疗应用的安全性

控制功能启用

审核编辑:郭婷

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

    关注

    68

    文章

    18298

    浏览量

    222217
  • 嵌入式
    +关注

    关注

    4983

    文章

    18295

    浏览量

    288593
  • 接口
    +关注

    关注

    33

    文章

    7648

    浏览量

    148521
收藏 人收藏

    评论

    相关推荐

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统的软件部分。固件负责控制硬件并执行特定任务。 (5).调试和测试:在将
    发表于 02-02 15:24

    嵌入式设备的程序怎样保护?成本低一点的

    嵌入式设备的程序怎样保护?成本低一点的
    发表于 01-28 16:01

    嵌入式设备的发展:解决复杂的设计挑战

    智能手机的推出,我们现在希望我们的设备智能化,可升级并可通过互联网访问。安全性不是可选的,如果不认真对待安全性,数据,品牌声誉和收入流都会受到影响。此外,嵌入式系统变得越来越复杂,你不可能成为一切的专家
    发表于 11-23 10:01

    如何设计嵌入式FIFO数据传输系统?

    嵌入式设备由于具有硬件可在线配置,实现灵活等特点,使得其应用越来越广泛。尤其在基于FPGA的硬件系统应用较多,目前在许多产品实现了嵌入式
    发表于 08-08 07:03

    如何设计嵌入式系统掉电保护方案?

    嵌入式系统设计过程,系统的掉电保护越来越受到重视。如何设计嵌入式系统掉电保护方案?这个问题急需解决。
    发表于 08-09 07:48

    嵌入式系统的掉电保护过程是什么样的?

    嵌入式系统设计过程,系统的掉电保护越来越受到重视。本文介绍的方法是在用ARM7系列芯片S3C4510B和μClinux构建的嵌入式平台上实现的。整个掉电
    发表于 11-01 08:00

    嵌入式设备如何提高安全性

    工程师来说,安全是又一个极其复杂的主题,在为嵌入式微控制器设计系统时,很难把握到底需要怎样的保护力度。    为了简化安全性这一讨论话题,我们从三个方面进行探讨。在图1嵌入式
    发表于 06-30 11:05

    使用安全IC保护IoT嵌入式设计

    控制,因此您可以安全地启用和禁用各种基于工厂的选项安全IC继续为现有以及新的嵌入式设计提供高级保护。使用这些设备进行设计的优点之一是,您无需成为密码专家就可以利用强大的密码功能。基于软件的方法将需要
    发表于 09-28 19:21

    怎么保护嵌入式软件和电子设备产品不被抄袭

    需要确保运行官方授权的固件或使用授权的内部配置数据,最核心的是需要核实信息的真实性和完整性来确保嵌入式软件是可信的,而不是抄袭者篡改的。目前正在给一些国内外方案商做防抄板保护方案,之前
    发表于 07-22 09:20

    所有现代设备中都存在物理嵌入式系统是为什么?

    嵌入式计算机在日常设备,办公用品,汽车,工业,医疗和农业无处不在。从计算器到电话,相机、电梯,交通信号灯,工厂控制器和核电站控制系统,几乎所有现代设备中都存在物理
    发表于 10-27 09:13

    嵌入式系统固件的开发与调试相关资料分享

    嵌入式系统固件的开发与调试主要学习• ❖ 嵌入式系统的质量属性(quality attributes)• ❖ 嵌入式系统的设计与开发• ❖ 嵌入式
    发表于 12-14 07:26

    嵌入式系统数据存储和管理的相关资料分享

    【功能】: 嵌入式系统数据存储和管理 数据查询【定义】:嵌入式数据库系统是指支持移动计算或某
    发表于 12-17 07:15

    嵌入式数据库的作用是什么

    随着嵌入式技术的发展,嵌入式数据库逐步走向应用。本质上,嵌入式数据库是由通用数据库发展而来的,在
    发表于 12-21 07:18

    嵌入式设备固件的安全分析和测评技术

    随着嵌入式设备的种类和数量的增加,设备之间日益增长的互联互通、制造商对安全的忽视、设备固件更新不
    发表于 06-07 16:31 8次下载

    安全启动和安全下载的基础:如何保护嵌入式设备中的固件和数据

    发表于 11-17 08:22 0次下载
    安全启动和安全下载的基础:如何<b class='flag-5'>保护</b><b class='flag-5'>嵌入式</b><b class='flag-5'>设备</b>中的<b class='flag-5'>固件</b><b class='flag-5'>和数据</b>