完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
7个回答
|
|
当今无处不在的线上和永远在线应用使黑客攻击感到异常兴奋,这为他们提供了可以尝试攻击的全球性数量大量的设备。嵌入式设备的安全性对于阻止黑客获得其控制权至关重要,更糟糕的一种情况是,黑客可能会对设备的连接系统发起更具破坏性的攻击。但是,远程攻击只是对手采取的其中一种方式,对物理硬件设备的本地攻击则是获取机密信息的另一种方法,这些攻击包括访问系统验证密码,甚至包括应用代码本身的知识产权等。
本文将回顾在嵌入式微控制器中配置强大而可靠嵌入式安全机制的基本概念。我们将探讨一些安全原则,并深入了解攻击者使用的攻击面和攻击手段。 图1:在IoT部署中,即便一个受损或不安全的设备也会使整个系统遭受对手攻击。(来源:意法半导体) 无论安全性设置给嵌入式系统增加多少复杂性也绝不能低估,而且,这不仅涉及保护加密密钥和嵌入式固件,还包括个人可识别数据。如果对手获得设备固件的访问权限,就有可能对代码进行反向工程。通过了解代码的工作原理,攻击者可以发现进一步漏洞,并有机会注入恶意代码。在取得访问单个不安全连接IoT设备之后,可能会损害整个IoT网络部署,参见图1。 |
|
|
|
需要保护什么
在开始探讨安全技术之前,我们首先回顾并分类需要保护的对象。黑客可以针对物联网设备的三个不同方面发动攻击。一个目标是需要保护的物联网设备,其中包含的资产需要保护。图2列出了需要保护的资产以及每个目标受到损害后的相关风险。在实施嵌入式安全技术时,这种分类方法有助于选择所使用的正确安全方法。 图2:受保护目标、资产和相关风险的分类有助于确定需要实施的安全方法。(来源:意法半导体) |
|
|
|
攻击类型
对于物联网设备的攻击可能出自多种来源,大致可分为基于软件或基于硬件的攻击。对设备运行软件的攻击可以在本地或通过网络连接进行,而硬件攻击类型则进一步可细分为非侵入式或侵入式。非侵入式攻击一般在本地进行,仅在某些情况下需要与IoT设备的主PCB进行电气连接。而侵入式硬件攻击涉及对设备微控制器的物理和电气访问。对设备发起侵入式攻击通常是黑客采用的最昂贵途径,并且需要特别的专业知识。图3展示了上面讨论的三种攻击类型,并回顾了攻击者使用这些攻击手段的技术和原因。图3:攻击类型和成本。(来源:意法半导体) 软件攻击往往最为常见,通过利用设备通信管道,找到固件中的错误或缺陷(已知的协议漏洞)。由于是远程攻击,涉及的成本也可能相对较低,且易于实现。关于设备漏洞的一些信息可以在黑客社区内共享和交流。 |
|
|
|
实践中的安全措施
从设备制造商的角度来看,对设备安全驱动程序的了解有助于确定所需的安全功能,以下讨论的三种情况突出显示了每种情况所需的一些安全功能。下一节内容将说明众多安全功能及其实现方式。 场景一 考虑一家固件销售公司,其主要收入来源于特许权使用费。该公司生产的固件是一种极其宝贵的知识产权(IP)资产,需要加以保护。客户将固件与应用代码一起使用。从公司的角度来看,需要将固件与客户代码安全地隔离。公司需要不时地发布固件更新,因此需要安全安装和更新固件。在这种情况下,所需的安全功能包括隔离、软件IP保护以及安全固件安装和更新等日常规范。 场景二 IndustrialAdvantage公司出售昂贵的生产控制设备,并希望为客户提供固件更新服务,但要求提供的设备上仅运行IndustrialAdvantage固件。需要认真处理固件更新过程,并在整个过程中进行身份真实性验证。通过一个安全启动功能可确保设备上仅仅运行IndustrialAdvantage固件。安全的安装和更新功能负责进行完整性和真实性验证。 场景三 Consumer Tech制造的设备可收集用户数据,并作为系统扩展的一部分。公司时刻在确保遵守GDPR等消费者数据法规,Consumer Tech还希望确保其设备行为可靠,并且仅仅Consumer Tech固件才可在设备上运行。在设备与主机系统进行通信期间,可能会有暴露用户数据风险,通过使用加密技术、设备标识和身份验证可以防止暴露个人身份信息。使用安全启动功能可以维护平台完整性。 |
|
|
|
设置安全框架
对于嵌入式开发人员而言,能够访问微软设备微控制器平台的一套全面且强大安全功能至关重要。这里一个案例是意法半导体STM32系列微控制器的“ STM32Trust”生态系统,参见图4。 图4:STM32Trust安全功能生态系统。(来源:意法半导体) STM32L4和STML5 系列微控制器上使用的STM32Trust安全功能已通过Arm PSA Level 2和SESIP Level 3认证,这些安全功能要么嵌入在微控制器芯片内,要么作为与器件相关的固件提供。 在本文的剩余部分,我们将重点介绍STM32Trust提供的两项基本安全功能:安全启动(SB)和安全安装/更新(SBSFU),这些在之前的场景讨论中已经进行了重点介绍。 |
|
|
|
安全启动
安全启动的基本原理是,在重置设备时,安全启动代码会执行并验证应用固件是否真实可靠,然后再决定是否启动。安全启动取决于两个参数。首先,安全启动代码是重置时执行的唯一代码。其次,启动代码不可改变,这意味着无法以任何方式对其进行修改。启动代码地址是唯一的,从而可防止在设备重置时访问其它固件地址。这两个方面共同为设备建立了信任根,参见图5。 图5:安全启动功能的基本原理。(来源:意法半导体) 通过类似签名对比,可进行应用固件完整性和真实性验证。完整性检查需要将应用代码生成的哈希值(有时称为摘要)与提供的参考基准进行比较。真实性验证需要检查根据生成的哈希值和专有密钥得到的签名,然后使用关联的公钥验证签名。参考哈希值和签名值始终需要固件提供,这些通常存储在称为元数据(metadata)或标报头(header)的容器中,参见图6。由于生成方法的原因,元数据不需要加密。如果试图采用恶意固件,则无法使固件哈希值与参考值匹配。图6说明了使用哈希值固件摘要和私钥的元数据签名结构。 图6:生成元数据签名。(来源:意法半导体) 在图7中,安全启动代码使用元数据签名来确认应用固件的完整性和真实性状态。如果签名核对过程验证了有效固件,则启动过程将继续,并加载应用代码,与应用固件或签名出现差异会导致启动过程失败。 图7:在加载应用之前,使用元数据签名验证应用固件。(来源:意法半导体) |
|
|
|
安全固件更新
固件更新过程中已经确知的关键步骤包括: ●创建应用固件更新 ●生成关联元数据 ●将其传输到目标设备 ●安全启动功能使用元数据来检查应用固件完整性和真实性 ●如果检查通过,则安全启动过程将安装新固件 新的元数据签名创建方法与安全启动中采用的技术相同。对于许多远程连接的物联网/工业物联网(IoT/IIoT)设备,最简单的传输方法是通过无线方式(OTA)更新。没有互联网连接的设备则需要本地连接,例如可使用UART、SPI、USB或microSD卡等方式更新。新的应用固件是采用加载程序写入目标设备闪存,加载程序通常包含在安全启动代码或应用固件中。当前固件仍在运行时,新固件需要在本地存储。 图8说明了远程固件更新的过程,需要两个内存“插槽”以用于当前固件和更新版本存储。 图8:远程固件更新示例。(来源:意法半导体) 更新过程的最后阶段涉及检查新的应用固件。如果元数据检查通过,则会进行最新和现有应用固件的交换,表明更新已完成。 嵌入式设备的安全性不再是可选配置,每台设备都需要防御恶意攻击和潜在漏洞。设备的安全性始于启动,因此在启动过程中整合安全启动以及安全固件安装和更新等安全功能至关重要。STM32Trust能够为嵌入式开发人员提供保护设备以及满足法规要求的所有安全功能。 |
|
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36419 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4849 浏览 1 评论
6106 浏览 1 评论
6816 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4247 浏览 0 评论
642浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
639浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
640浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
727浏览 2评论
842浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:29 , Processed in 1.154420 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号