物联网安全基础知识:确保安全引导和固件更新

通过组合使用,基于硬件的加密技术与安全存储可提供实现安全物联网 (IoT) 设计所需的基本功能。但是,物联网设备一旦部署,就会面临多种威胁,这些威胁会破坏这些设备,发起即时攻击,或造成更微妙和高级的持续性威胁。
本文描述了开发人员应如何使用基于底层安全机制构建的信任根来增强物联网设备的安全性,这个信任根在 Maxim Integrated、Microchip Technology、NXP Semiconductors 和 Silicon Labs 等厂商推出的安全处理器上可为软件执行提供一个可信任的环境。

什么是信任根,为什么需要信任根?

加密方法和安全密钥是确保任何互联设备安全性的关键促进因素。如本系列文章的第 1 部分和第 2 部分所述,它们提供了更高层次协议所用的基本机制,以保护数据和通信。要保护系统本身,需要开发人员解决可能影响嵌入式系统中的系统操作和软件执行的漏洞。
在典型的嵌入式系统中,由于电源故障或关键软件异常导致的系统复位最终会引起软件引导过程,从非易失性存储器重新加载固件映像。通常,软件重新引导是一种重要的安全机制,用于恢复被意外或有意打破稳定性的系统功能。在互联系统中,黑客使用各种黑帽工具来破坏软件,而安全专家通常建议通过重新引导,来应对影响软件执行的入侵行为。例如,FBI 在 2018 年曾建议消费者和企业主重新启动路由器,以阻止所发生的大规模黑客攻击活动。
实际上,重新引导并不能保证系统完整性。在固件映像被盗用的情况下重新引导后,系统仍处于黑客的控制之下。为了缓和此类威胁,开发人员需要确保其软件在信任链上运行,而该信任链则基于引导时建立的信任根所构建,并延伸至软件执行环境的所有层面。能否达到此安全级别关键取决于,确保使用可信的固件开始引导过程。

验证固件映像进行安全引导

在嵌入式系统中,主机处理器将固件映像从闪存加载到主存储器中并开始执行(或者直接从具有芯片内执行 (XIP) 功能的闪存开始执行)。如果黑客已盗用固件映像,则引导过程将会导致系统被劫持。
为了在引导之前验证固件的完整性,开发人员使用了一个从供应链早期开始的代码签名过程。在安全的设施内,通过使用椭圆曲线数字签名算法 (ECDSA) 之类的加密稳健算法创建的私钥-公钥对,可对系统的固件映像进行签名。尽管私钥从未离开过设施,但系统公钥会随系统一起发运。在引导过程中,处理器会在使用映像之前运用此系统公钥来验证固件签名。
当然,在上述过程中,公钥本身容易受到攻击,而且在扩展时,这会使系统固件容易遭到未经授权的替换。如果公钥在嵌入式系统中继续不受保护,黑客可能会用自己生成的私钥-公钥对中的公钥来替换它。如果他们以自己拥有的相关私钥签名的恶意固件替换了系统的固件映像,则被盗用的固件签名将会通过验证过程,并继续引导过程,从而导致系统被劫持。
因此,安全系统依赖于在安全设施内的安全元件中预配置的有效公钥。Maxim Integrated 的 DS28C36 和 Microchip Technology 的 ATECC608A 这类安全 IC 不仅可以安全地存储传统安全元件,还能安全地执行 ECDSA 等认证算法进行固件签名认证。
例如,在引导之前,主机处理器可通过串行接口将固件发送到 DS28C36。DS28C36 随即使用先前在安全设施中预配置的系统公钥,来验证固件签名是否确实由同一安全设施中的关联私钥创建。最后,DS28C36 将验证结果发送至主机处理器,如果签名有效,主机处理器会继续加载固件映像(图 1)。
更安全的引导过程可保护固件映像,以消除密钥或映像被盗用造成的问题。通过使用安全存储和加密加速器,有效的安全引导功能已内置到越来越多的处理器中,包括 Silicon Laboratories 的 Gecko 系列 2 处理器、NXP 的 LPC55S69JBD100、Maxim Integrated 的 MAX32520 和 Microchip Technology 的 ATSAML11D16A 等等。利用这些功能,此类安全处理器可以提供所需的信任根,以创建用于系统和应用软件执行的可信环境。

通过安全引导提供信任根

此类安全处理器提供安全引导选项,旨在确保信任根所依托的固件映像的完整性。例如,Silicon Laboratories 的 EFR32MG21A 和 EFR32BG22 Gecko 系列 2 处理器分别通过基于硬件安全元件和虚拟安全元件 (VSE) 的多级引导过程来构建此信任根(图 2)。
在 EFR32MG21A 中,专用处理器内核提供加密功能以及用于安全密钥存储的硬件安全元件。在此专用功能的支持下,处理器使用只读存储器 (ROM) 中存储的代码发起引导过程,以验证第一级引导程序 (FSB) 代码。完成验证后,FSB 代码即会运行,接着又会验证第二级引导程序 (SSB) 的代码签名。引导序列继续执行经验证的 SSB,后者进而会验证应用程序代码的签名,而该代码通常包括系统级代码和更高级别的应用程序代码。最后,经验证的应用程序代码运行,系统根据应用程序的要求继续执行操作。
由于此过程从 ROM 代码开始,而且仅运行经验证的 FSB、SSB 和应用程序代码,因此该方法将产生经验证的信任链来执行代码。由于此信任链中的第一环依赖于无法修改的 ROM 代码,因此信任链中后续的每一环都会延续此可信环境。与此同时,这种方法还允许开发人员安全地更新应用程序代码,甚至是第一级和第二级引导程序代码。只要每个代码包都提供经验证的签名,可信环境就能保持完好。
使用信任根提供这种安全引导的处理器,通常支持多种模式和选项。例如,Silicon Laboratories 的 Gecko 系列 2 处理器提供了更强大的基于证书的安全引导功能。
证书可用于常规公钥基础结构 (PKI) 事务处理,包含公钥以及对一个或多个相关证书的引用,这些证书最终指向证书颁发机构 (CA) 授予的根证书。此链中的每个证书均用于验证其下面的证书,从而形成基于值得信赖的 CA 的信任链。在传输层安全性 (TLS) 的认证阶段,浏览器依靠此信任链来确认 Web 服务器的身份。嵌入式系统可采用相同的方法使用证书来确认引导程序或应用程序代码源的身份。在这里,按照前述方式执行多级引导过程,但需要额外验证与每一级相关的证书(图 3)。
NXP 的 LPC55S69JBD100 等其他处理器支持多种不同的固件映像选项。除了签名的固件映像外,这些处理器还支持使用可信计算组织推出的设备标识符组合引擎 (DICE) 行业标准的引导映像。第三个选项允许开发人员将映像存储在支持 PRINCE 加密的处理器闪存特殊区域内,其中 PRINCE 加密是一种低延迟的分组加密,能够在小得多的硅面积内达到与其他加密相当的安全强度。在 LPC55S69JBD100 中可实现 PRINCE 加密,这种技术能对处理器专用的 PRINCE 闪存区中存储的加密代码或数据执行实时解密。由于解密使用的密钥仅供 PRINCE 加密引擎访问,因此该解密过程仍然是安全的。实际上,这些密钥由 LPC55S69JBD100 的物理不可克隆功能 (PUF) 生成的密钥加密密钥 (KEK) 提供保护。(有关 PUF 和 KEK 用法的更多信息,请参见第 2 部分。)
这种方法使开发人员能够存储更多固件映像,而这是在避免“封闭”设备的风险情况下,为物联网设备提供固件无线 (FOTA) 更新方法所需的功能。如果处理器只能使用一个位置来存储固件映像,则有缺陷的固件映像会将处理器置于不确定或锁定的状态,从而锁定或阻塞设备。通过将固件映像存储在 LPC55S69JBD100 中启用了 PRINCE 的闪存区内,开发人员可使用回退策略,即如果新版本引导进入无法工作状态,则还原固件的上一个正常工作版本。
由于所有这些新固件映像都必须通过基础引导过程中所需的签名验证检查,所以开发人员可充分利用安全 FOTA,在不影响系统或其信任链的情况下添加新功能或修复错误。

总结

系统和应用级别的安全性需要一个只允许授权软件运行的执行环境。尽管代码签名验证是实现此类环境的基本功能,但安全系统还需要利用更全面的功能集来构建必要的信任链,以确保执行的是受信任的软件。这些可信环境的基础在于信任根,而信任根可通过安全处理器所支持的安全引导机制提供。使用此类处理器,开发人员可以实现安全的物联网设备,使其能够抵御企图破坏系统中的软件执行或完全劫持系统的攻击行为。

作者:Stephen Evanczuk

(0)

相关推荐

  • 一招就能搞定“这台电脑无法安装 Windows 11”的解决方法

    微软已经正式发布了 Windows 11.虽然公开发布为今年晚些时候,但微软的 PC Health Check (中文名电脑健康状况检查)应用程序允许 Windows 10 用户检查他们的计算机是否满 ...

  • 无论是因为CPU风险,还是USB故障,你都应该关注Windows 10更新

    Intel在二月最后一周终于发布针对Skylake架构往后的处理器的安全补丁,包括新的微代码,还有Google团队针对之前的2号变种(CVE 2017-5715),也就是属于"Spectre ...

  • X86漏洞爆发一周年,英特尔为处理器安全第一感到骄傲

    2018年困扰英特尔最多的麻烦除了10nm工艺不断延期之外,还有一个重要问题,那就是处理器漏洞,去年这个时候媒体曝出了英特尔处理器的Spectre幽灵.Meltown熔断两个漏洞,这严重影响了英特尔处 ...

  • 听取用户心声 尼康Z 7Ⅱ开发访谈

    去年10月中旬,尼康正式发布全画幅微单数码相机Z 7Ⅱ和Z 6Ⅱ.尼康(中国)为了让媒体及广大用户进一步了解Z 7Ⅱ的性能改进和设计理念,邀请北京上海多家媒体网络连线尼康总部.本次交流中Z 7Ⅱ开发人 ...

  • 别了 iPhone 7s,你好 iPhone X

    果粉俱乐部 让科技更好的服务生活 点击上方「蓝字」加入我们 近日,被提前泄露的 iOS 11 GM 版固件已经把新款 iPhone 最后的神秘面纱完全揭开,继 Face ID.外观设计.操作界面之后, ...

  • 物联网安全基础知识:保护机密

    尽管基于硬件的加密设备可以减少物联网 (IoT) 的漏洞,但即便使用了最强大的加密设备,如果密钥和相关数据缺乏足够的保护,安全性也会大打折扣.半导体制造商通过专用安全 IC 和在处理器中内置各种安全机 ...

  • 物联网安全基础知识:加密技术的使用

    在工业.医疗.运输及其他关键应用中,对物联网应用的依赖程度迅速增加,这极大地改变了安全格局.以往,企业应用普遍拥有随时可用的资源来处理安全算法,但如今企业级物联网应用却饱受威胁日益增多之苦,且其攻击目 ...

  • 干货!嵌入式物联网系统软硬件基础知识大全

    嵌入式ARM 今天 本文主要介绍了嵌入式系统的基础知识,涉及嵌入式软件和硬件的方方面面,希望对各位有帮助. 嵌入式系统基础 1.嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可 ...

  • 易学应用基础知识之八:《奇门遁甲》中十二地支的相互关系

    这一部分内容,我们来介绍关于十二地支的相互关系. 关于十二地支之间的相互关系,在其它传统预测学中的应用是比较广泛的,比如八字.六爻等.在奇门遁甲中,十二地支之间的各种相互关系并不是所有的关系都能用得上 ...

  • 事业单位公共基础知识:人文常识之楚辞

    在各种考试中,一般都会涉及一些人文常识的题目,考查方式主要以识记性为主,但由于考察内容涉及的知识范围较广.例如一些文学著作知识,对于很多考生来说部分题目还是比较难.现就文学著作中的楚辞的部分知识梳理如 ...

  • 88张PPT带你学习PLC基础知识,不看你就亏了!

    电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终 ...

  • 运维必知必备!73页计算机基础知识,新手小白也能轻松读懂

    基础不牢,地动山摇! 新手在学习运维亦或是开发的时候,都要注重基础知识的积累,不能只想着学习实战知识,这样到中后期,容易造成对"高级知识点"的一知半解,以至于知其然,却不知其所以然 ...

  • 干货 | 冷油器基础知识

    一,什么是冷油器?冷油器是电力系统中汽轮机配套使用的透平油冷却设备,冷油器为光管表面式,采用循环水作为介质实现热交换,从而保证轴承入口油温达到规定值,确保机组正常运行. 编辑搜图请点击输入图片描述(最 ...

  • 公共基础知识:你所不知道的人文常识汇总

    人文常识在中国传统文化中浩如烟海,博大精深,如何在浩如烟海的人文中把握准考点所在,是非常困难的,但是在我们历年事业单位考察中均有个别题目与当年的重大时政新闻紧密相关.小编根据2020年以来的时政帮各位 ...