安全闪存——网联汽车和工业应用中安全问题的解决之道
扫描二维码
随时随地手机看文章
摘要——随着汽车和工业市场中自动化和互联革命的推进,边缘节点正在迅速成为网络攻击的目标。软件更新、远程捕获诊断数据以及远程端点与基础设施之间的通信变得越来越普遍,因此容易遭受网络攻击和其它安全威胁。
随着半导体技术的进步,工艺尺寸不断缩小,将闪存嵌入到包含硬件安全模块(HSM)的MCU中也变得越来越困难,因此外置闪存的需求不断增加。当闪存外置于MCU时,存储的代码和数据将更加容易受到攻击,所以设备必须设计安全启动流程和其它基础设施,以确保存储和检索的内容可以信赖。
本文探讨的是,当闪存外置于拥有HSM模块的MCU时,但仍然保持硬件信任根时,新一代安全设备的设计会面临哪些挑战和安全要求。本文涉及的其他内容还包括:加密安全存储、快速安全启动、安全固件远程更新和管理合规。
关键词——cHardware安全模块、安全闪存、智能闪存、信任根、可信执行环境
I. 引言
在一个日益趋于嵌入式和互联的世界中,安全问题正在变得举足轻重。每一个嵌入式系统都扩大了攻击面,从设备和车辆到办公室和工厂,其中的一切都更加容易受到攻击。在汽车电子、工业系统等应用中,功能安全上升到了至关重要的位置。
设计工程师深知,对安全和隐私与日俱增的关注已成为影响购买决策的一个主要因素。消费者和企业轻易采用新技术的日子已经一去不复返。如今,慎重取代了信任,这促使每个供应商都必须在某种程度上保证其产品和服务的安全性。政府也有着同样的担忧,因此推出法规,要求供应商执行各项安全规定,若未能执行有时候还会受到处罚。
设计工程师还意识到,保障嵌入式系统的安全将变得越来越困难。原因是,随着SOC/MCU在应对复杂的实时应用方面越来越强大,它们开始向较小尺寸的CMOS技术(例如:16纳米或7纳米)过渡,以加快速度和降低功耗。但是在较小尺寸的条件下,目前还没有可用的可重编程非易失性存储器(NVM)技术。这就导致了eFlash(MCU的嵌入式闪存)的去集成,需要一种天然安全的架构,并且支持外置闪存。这就需要制定特殊的规则以确保其安全运行。
本文的第II章和第III章还分析了设计安全嵌入式系统的挑战,包括嵌入式闪存的去集成所造成的挑战。第四章则探讨了利用安全闪存保护嵌入式系统的新一代架构。
II. 嵌入式闪存面临去集成
为了应对日益增长的安全问题,芯片供应商将硬件安全模块(HSM)功能集成于MCU。HSM位于安全的处理环境中,其中含有一个基于硬件的信任根,用于保护敏感数据、处理器状态、启动加载程序、加密密钥和应用安全服务代码。嵌入式存储(eFlash和RAM)也是安全处理环境可信边界的重要组成部分,因此足以抵御常见威胁。
片外存储(例如:外置闪存)并非天然可信,并且容易受到持续攻击。应对措施一般是对外置闪存中的数据进行加密,然后在执行代码之前,将其从外置闪存下载至MCU内置的RAM进行解密和验证。这种方法尽管足够强大,可以抵御大多数攻击,但是会导致性能下降(启动时有可能会出现问题)和成本上升(需要更多的内置RAM和更高的功率),甚至有可能仍然容易受到持续攻击(例如:回滚攻击)。
随着MCU逐步应用于先进的技术节点以提升性能、提高性价比和降低功耗,闪存的去集成有可能带来更大的威胁,以前被eFlash全部或部分克服的某些可信存储挑战也许会卷土重来。此外,由于嵌入式系统的普及所造成的威胁性环境也会带来新的挑战,而使用外置闪存则会让这些挑战变得更加难以克服。
为了确保外置闪存的安全,需要解决的主要威胁包括:
· 模拟闪存芯片的授权数据访问
· 篡改闪存芯片存储的内容
· 重放通讯指令以解析闪存芯片的内容
· 在不安全环境进行设置以获取密钥
· 在闪存芯片通讯时进行窥探(中间人)攻击
· 通过旁路攻击或故障注入来公开(获取或观察)闪存芯片的内容和密钥
· 以电子方式损害闪存芯片的完整性
· 克隆闪存芯片
为了解决上述及其他对外置闪存的威胁,有效地使其成为安全处理环境可信边界的组成部分,该设备必须提供以下三种功能:
· 基于硬件的信任根,可防止攻击对存储的代码和/或数据造成的修改、操纵、复制或其他潜在影响
· 通过MCU或云端提供安全更新,综合利用各种措施进行端到端保护,包括通过总线的加密验证,通过读/写访问方法实现的安全区域,安全密钥存储空间,以及非易失性防回滚计数器
· 低成本,无需额外的安全设备(例如:可信平台模块),也无需更改电路板,包括支持x4 SPI和x8 HyperBus标准.
图1显示了专门设计的安全闪存(见第IV章)如何提供上述三种功能。实际上,安全闪存通过标准总线从外部扩展了MCU嵌入式闪存集成的HSM功能。还请注意,图一也同时展示了安全闪存如何取代普通的NOR闪存,从而继续使用现有的电路板。
值得一提的是,使用外置闪存还具有一些其他优势,首先是它能够更加轻松地适应不断增加的代码长度。嵌入式系统常用的标准闪存容量规格可以支持1Gbit甚至更大的存储空间,远高于eFlash。外置闪存还可以容纳更多的CPU内核/负载,以应对机器学习、人工智能等复杂技术所需的更密集、更实时的处理。这些变化有助于简化设计工作并加快产品上市,从而提供不同的型号以便更好地满足价格、性能或其他标准方面的需求。
III. 利用外置闪存设计安全的嵌入式系统
无论是使用eFlash还是外置闪存,设计安全的嵌入式系统都是一项越来越繁重的工作。本章重点介绍一些重要的注意事项,以帮助指导设计和开发工作。
通常,针对端到端安全而设计的系统必须具备三大要素:
· 保护机制,用于保护代码和关键数据的完整性,防止各种方式的删除、更改或破坏
· 检测机制,用于揭示代码和/或关键数据何时被以某些未经授权的方式更改
· 恢复机制,用于恢复被以某些未经授权的方式更改的代码和/或关键数据的完整性
工程师设计的系统应能够应对STRIDE模型已验证的所有威胁。下表概述了此模型,它提供了一种实用的方法,以了解各种潜在的威胁以及如何使用各种安全措施来应对各种威胁。
安全产品设计需要建立基于信任根的可信执行环境(TEE)。在使用所有组件和子系统之前,TEE提供了验证真实性和完整性的方法。创建这种安全设计的部分最佳方法如下:
· 实施硬件信任根以创建安全基础
· 通过验证和加密巩固这一基础
· 保护所有连接、网络和云组件的端到端价值链
· 提供防御旁路攻击和故障注入技术的能力
· 对系统进行独立的漏洞和风险评估
· 持续实时监控异常情况
· 实施应对流程(例如:安全更新)
图2显示在系统中实施信任根时如何权衡风险和成本。可以预料,基于软件的设计成本最低,而安全性也最低。图2没有显示不安全嵌入式系统的间接成本,而这些非常实际的成本可以轻松地证明,基于硬件的设计可以将安全性最大化。
美国国家标准技术研究院计算机安全资源中心解释了在硬件中实施信任根的优势:“信任根是执行特定关键安全功能的高度可靠的硬件、固件和软件组件。因为信任根天然可信,所以必须通过设计来确保它们的安全。为此,许多信任根都在硬件中实施,这样恶意软件便无法篡改其提供的功能。”
技术的进步不断推动IC成本下降,集成新一代IC的系统成本也随之降低。外置闪存也是这种情况,安全“智能闪存”的出现,减少了在硬件中实施信任根并纳入其他必要功能所需的工作。
IV. 安全闪存:新一代智能存储
半导体厂商想方设法寻求小尺寸的嵌入式闪存,但是还没有可行的解决方案出现。小尺寸RRAM和MRAM技术已作为eFlash的替代品得到了广泛研究,但由于数据完整性和成本方面的挑战,它们目前都还不可行,尤其是不适合要求高温高可靠性的关键任务应用。截至本文撰写之时,尚不能确定这些技术或其他相关技术何时(或是否)能够交付批量生产的嵌入式存储。
尺寸缩小导致变化不可避免,因此产生了对新型安全信道的需求。在这种信道中,信息交换发生在MCU内部的HSM和外置存储设备的加密安全区之间。一种前景不错的解决方案是舍弃目前的做法,不将各种类型的存储集成于处理器,而将处理器集成于存储IC,是为智能存储。图3显示了安全闪存如何与主机MCU建立经过验证和加密的安全处理环境。
新一代智能存储的这种发展趋势有可能为电子行业带来革命性的变化。就嵌入式系统而言,技术发展将集中体现在NOR闪存上。NOR闪存是一种理想的非易失性存储,存储代码具有持久性,并具备快速随机读取性能。
安全NOR闪存,或更简单的安全闪存,可为安全密钥、证书、哈希密码、特定应用数据、配置数据、代码版本信息和生物识别传感器数据提供硬件保护的安全存储,以便用于验证。安全闪存还支持经过验证和加密的交易,以防止未经授权的访问和其他安全威胁。
相比之下,当前基于状态机的存储架构则无法提供与嵌入式处理器相同的多功能性和性能。例如,强大的安全需要强大的加密,进而需要强大的处理能力。嵌入式处理器还支持其他安全要求,包括HMAC密钥生成和存储以及防回滚计数器,并可保护固件、启动镜像和系统参数免受攻击。
在存储中嵌入处理能力有助于集成逻辑,以添加特定功能和/或减轻系统主SOC/MCU的工作量。例如,嵌入式处理可以实现硬件信任根的创建,从而防止对存储的代码和数据进行修改、操纵和其他安全攻击。或者,处理器也可以对原始数据运行各种算法,包括机器学习算法,然后存储系统其他功能所需的结果。
此外,针对可以通过智能存储的嵌入式处理器运行代码而全部或部分认证的安全法规,新系统能够更加轻松地获得认证。这样,通过简化所需的设计和开发工作,我们可以极大地加快新产品的上市速度。
图4显示了内置了智能化安全的闪存如何满足嵌入式系统所需的性能、可靠性、安全性和功能安全。通过使用包括x4 SPI(QSPI)和x8 HyperBus在内的标准总线协议,智能安全闪存可以与主控芯片配合,以达到要求严苛的互联应用所需的安全级别,同时仍然完全兼容现有的主控芯片存储控制器。
对于不允许发生故障的关键任务应用,安全闪存可以确保系统的安全启动,记录关键的信息,并扩展重要功能的工作存储。此类“故障保护”应用的示例包括:高级驾驶辅助系统(ADAS),便携式医疗设备,工厂自动化,国防级传感器,以及高级无线通信系统。
无故障的一个重要方面,是对存储的代码和数据进行加密,以防遭到更改或破坏。通过集成加密引擎和嵌入式处理器,数据能够以安全的方式进行存储。考虑到存储所增加的逻辑门数远小于CPU和专用计算引擎所需要增加的逻辑门数,因此在智能安全闪存中以相对较低的增量成本实施加密和其他高级功能更为可行。
安全闪存创建的硬件信任根,可提供一个安全环境或与安全MCU提供的TEE集成。信任根有一个至关重要的作用,就是确保系统正常启动,理想情况下应基于可信计算工作组的设备标识符组合引擎(DICE)标准。安全启动流程对闪存和主SOC/MCU进行相互验证,以确保穿越总线的所有交易的机密性,从而实现端到端的保护。而且因为闪存是智能的,所以经过验证的启动过程可以在某些应用领域需求的不到100毫秒时间内实现。
能够将代码安全地更新至最新版本,是安全启动流程的另一个重要方面。这就要求确保FOTA或其他形式的更新在没有任何篡改或损坏的情况下完成,无论是有意还是意外的损坏。如果通过版本认证或其他方式检测到任何篡改,那么可以利用备份功能还原以前已知有效版本(虽已降级)的代码。同样的功能也可用于保护非安全生产设施或服务中心可能存在的任何设备配置。
嵌入式智能使得安全闪存除了保护存储的代码和数据之外,还可以处理其他任务。例如,支持XIP功能使得作为可信环境的安全闪存可以直接执行代码,从而减轻主机MCU的负载。这样也可以减少MCU所需的片上RAM的数量,从而有助于降低成本和功耗。
在最严苛的安全性和功能安全需求推动下,汽车和工业自动化市场率先采用安全存储。因为嵌入式系统的潜在漏洞可能导致远程攻击,并最终威胁到乘客或工作人员的安全,所以,如果不能确保强大的安全性,就无法实现系统的功能安全。因此,安全关键型应用的所有半导体组件(包括外置闪存设备)都必须符合ISO26262高级驾驶员辅助系统(ADAS)标准和IEC 61508工业系统标准。
持续监控现场设备状况,执行远程诊断和预防性维护,也都非常重要。闪存设备容易出现几种故障模式,包括由于电荷损耗或宇宙辐射引起的闪存单元故障、时延、功率损耗故障等,这些故障都必须即时加以解决,以确保在20年以上的使用寿命中提供较高的可靠性。
V. 结论
智能安全闪存作为eFlash的替代产品已经逐步得到了人们的接受,随着它的工艺尺寸缩小到28nm以下,eFlash的使用必将变得日渐稀少,直至完全消失。芯片可以集成eFlash、但集成HSM功能的安全闪存方案更具有优势。在这两种设计中,安全闪存都可以通过行业标准总线,以加密安全的方式,在受保护区域和主机MCU的HSM之间传输代码和数据。
可以预期,采用安全闪存的设计将变得越来越普遍,对于满足不断发展的安全需求来说甚至必不可少。如今,攻击行为正在变得日渐广泛和复杂,各项法规预计将会越来越严格,自动化程度的提高也将进一步提升安全性和功能安全的重要性。为了满足这些不断发展的需求,同时最大程度地加快新功能的上市速度,设计工程师将越来越依赖仅智能安全闪存可以提供的便捷性。