历史上的今天
返回首页

历史上的今天

今天是:2025年03月25日(星期二)

正在发生

2020年03月25日 | 利用有安全保障的闪存存储来构建安全汽车系统

2020-03-25 来源:EEWORLD

在现代汽车嵌入式系统中,高度安全的数据存储是必不可少的,尤其是在面对日益高明的网络攻击时。本文将介绍设计师正确使用闪存的步骤。


对电子嵌入式系统的安全和安全保障需求从未有今天这样强烈。随着汽车的自动化程度不断提高,我们需要提高其安全保障水平,防止它们被黑客攻破。对于采用大量机器人与物联网(IoT)设备,需要处理敏感数据的工厂来说,同样如此。


对所有此类嵌入式系统来说,非易失性闪存存储器必不可少。闪存可用作代码存储、文件系统存储或直接运行代码的微控制器单元(MCU)存储器。如果要实现系统安全性,必须首先确保系统使用的闪存存储器是安全的。本文探讨闪存存储器的安全需求,帮助开发人员为汽车、工业和通信应用构建安全有保障的嵌入式系统。

 

闪存存储器的使用方式


如果我们仔细观察现代汽车的电子系统,我们会发现闪存在整车上都得到广泛使用。随着系统的复杂性增加,我们需要更大容量的代码存储和数据存储。车内的所有子系统,包括高级驾驶辅助系统(ADAS)、仪表系统(即将与信息娱乐合并)、传动和车身系统,都需要嵌入式系统才能实时运行。


所有这些嵌入式系统都需要某种类型的闪存存储器,用作代码存储和数据存储。例如,图1所示的是一个使用多个NOR闪存器件的ADAS子系统。

ADAS子系统使用多个NOR闪存

图1.该ADAS子系统使用多个NOR闪存


在当今的ADAS应用中,复杂的算法和人工智能流程依赖在闪存存储器中存储的代码和数据来运行。存储必须提供故障安全和安全保障,因为系统故障或恶意攻击可能导致严重的人身伤害乃至身故。


在工业和网络应用中,也存在对存储解决方案的类似安全与安全保障需求。在互联互通程度不断提高的大背景下,黑客能突破任何与互联网相连的薄弱实体,窃取敏感信息,或者将被攻破的设备当作跳板,在整个网络中的其他地方发起攻击。因此,构建有安全保障的系统,避免发生这种类型的攻击,变得至关重要。

 

有安全保障的闪存存储


多年来,闪存存储器厂商一直提供纯粹的数据存储。对于这些应用,耐久度和保持能力是衡量闪存存储器质量的两大指标。安全保障并非是对这类型闪存器件的要求,这就意味着存储在闪存上的数据要么完全不受保护,要么使用未经认证的命令进行保护。


例如,一些闪存器件通过正常命令集提供基本的保护功能,例如针对编程或擦除操作对扇区提供非易失性或易失性保护、针对编程或读取操作的密码保护等。这些功能虽是好功能,但不足以抵御手段高明的攻击。如果黑客能够访问闪存器件的总线接口,他们就能轻易地提取或修改设备上的数据。


为了保障安全,闪存器件必须保护存储的代码和数据免受多种手段的攻击。下面总结了闪存存储设备需要加以防范的几种攻击。

 

(1)中间人(MIM)攻击


MIM攻击中的黑客常模仿通信信道的发送方,发送命令或消息给另一侧,以窃取或修改数据(图2)。因此,有必要认证主机和闪存设备间的每一条消息。认证可通过在主机和闪存上使用公共密钥,生成伴随实际消息的消息认证码(MAC)来实现。接收方可以在对消息采取行动之前先验证MAC。

中间人攻击常模仿通信的信道发送方发送命令或消息,最终目的是窃取或修改数据

图2.中间人攻击常模仿通信的信道发送方发送命令或消息,最终目的是窃取或修改数据


为了防止在密钥受损时系统被永久破坏,通常需要使用临时密钥。临时密钥会在一定时间或在一定次数后失效。这样做的目的是尽可能避免密钥被破坏性物理分析(DPA)或其它迭代攻击等方法进行解密。


另一种中间人攻击则是在一定时间以后重放截获的合法消息。为了防范重放攻击,主机和闪存设备必须使用累加计数器(值随每个消息递增)生成MAC。由于当前的累加计数器值与上一消息的值不同。重放相同的消息就不能通过MAC验证,

 

(2)克隆


一些黑客可以使用先进的技术读取闪存芯片中的全部内容,通过非法克隆牟利。为了防范此类攻击,每个闪存芯片都必须拥有任何人都不能读取的唯一设备秘密(UDS)。UDS值具有唯一性,是每个芯片内的真实随机值。一个芯片和另一个芯片中的UDS之间毫无关联。


UDS可用于推导复合设备标识符(CDI),而这个标识符是生成可信计算工作组织(TCG)设备标识符组合引擎(DICE)规格定义的设备ID证书的基础。一般来说,设备也在CDI的基础上,为所有用主机导出的密钥生成别名私钥公钥对。这样就无需暴露设备ID的私钥。

有了UDS和DICE流程后,由于UDS在物理上不可克隆,因此黑客就无法克隆设备。

 

(3)窃听


被动侦听是另外一种已知的攻击方式。攻击者通过在总线上窃听,可从通过总线传输的数据中搜集敏感信息或机密情报。为保护重要数据,用户可选择在通过总线将数据发送到闪存设备,并存储数据前为数据加密。当主机从设备检索数据时,也应对数据进行加密处理,让潜在的黑客永远无机可乘。


也许有人会说,加密方法不需要有安全保障的闪存存储解决方案,因为主机可以直接加密数据并将其存储到闪存中。只有主机才能解密数据。


然而,这样做也有一定的缺点。其中之一是主机不能轻易地弃用加密密钥。例如,假设使用KeyA加密数据并将其存储在闪存中,后来用户发现KeyA已被攻破,就需要在系统上使用不同的密钥,即KeyB。


这时,主机陷入两难境地:它不能直接弃用KeyA,因为它需要保留该密钥,才能解密从设备读取的数据。然而,如果KeyA被攻破,用户可能不想永久保留它。如果要使用新的数据加密密钥,用户不得不采取更复杂的措施。先擦除闪存上的原始加密数据,再用新加密的数据为闪存编程。这种操作在现场并非易事,且存在一定风险。

 

另一方面,如果有安全保障的闪存能够提供加密和解密功能,它就能在其有安全保障的存储中安全地存放明文数据,并在将数据发回给主机之前进行加密处理。如果当前的加密密钥被攻破,主机可以简单地与设备交换新的密钥。存储中的数据保持完整且有安全保障,与存储加密数据相比,是一种简单得多的方法。

 

保护措施


下面介绍开发安全闪存存储的各个步骤:


(1)提供灵活的存储器架构


在现代的多核嵌入式系统中,多个MCU或硬件安全模块(HSM)可能可以访问同一个闪存存储。闪存设备有必要提供一种灵活的存储器架构,可以对其进行分区和配置,以便通过不同的内核管理不同的区域。这些不同区域可提供不同水平的安全保障,或者在完全不需要时,取消安全保障。


通过了解eMMC标准和UFS标准,我们显然可以看到支持多个安全区域的趋势。当前的eMMC标准规定了重放保护内存块(RPMB)。最新的UFS(v3.0)标准可为四个RPMB分区提供智能支持,它们由四个不同的密钥进行管理。这样的存储器架构灵活性在多核SoC环境中更加合适。

 

(2)提供快速的安全启动功能


众多嵌入式系统都在闪存中存储启动代码。部分是因为需要快速启动,例如汽车子系统需要在加电重置(POR)的100ms内处理CAN消息。系统不仅需要安全启动(即验证启动代码),还需要快速启动。这就给嵌入式设计师提出更高的挑战。


一般情况下,在运行存储并下载(SnD)模式时,主机从闪存读取引导加载程序并映射给RAM执行。然而,要想安全启动,就需要检查认证整个引导加载程序代码,以确保其可信性。这个过程需要在MCU上花费时间。有安全保障的闪存存储能够提供引导加载认证,大幅度缩短启动时间。


安全的闪存设备能够使用内部安全散列函数检查引导加载程序,并为主机提供验证用散列值。如果散列值未发生改变,就说明引导加载程序未被篡改,可以安全地用于启动。

 

(3)提供安全的固件无线更新(FOTA)


对于现代的嵌入式应用而言,现场升级是必备功能。通过远程升级系统的固件或软件,制造商能够快速解决问题、提供新增特性、提升用户体验。然而,远程升级也会对系统构成安全威胁。没人希望黑客利用现成的更新通道,让系统运行恶意固件或软件。


除了依靠CPU提供的安全保障,闪存设备内部的安全引擎也能大幅提高FOTA流程的安全水平(图3)。采用这样的安全引擎后,提供启动代码存储的闪存设备不仅可以用闪存设备旁边的主机认证固件提供商,也可以在远程云上进行认证。通过这种方式,可以为闪存中的固件更新或软件更新建立端到端的通道安全。


闪存设备中的安全引擎有助于实现更安全的固件无线更新流程

图3.闪存设备中的安全引擎有助于实现更安全的固件无线更新流程


现代汽车、工业、通信使用的嵌入式系统需要有高度安全保障的数据存储。嵌入式系统设计师面临的挑战是,如何构建能够抵御网络攻击的安全系统。集成安全保障特性的闪存,如赛普拉斯的Semper Flash,通过防范各种针对嵌入式系统的攻击,提高整体系统的安全性。


推荐阅读

史海拾趣

Hirschmann公司的发展小趣事
TC4013作为定时器的核心,通过接收外部触发信号(如时钟信号的上升沿)来控制定时器的置位和复位。它内部的JK触发器可以根据输入的信号状态(J、K、时钟信号等)来设置或重置其输出状态。
Alpha Wire公司的发展小趣事
在自动化控制系统中,定时电路常用于实现各种定时控制功能,如延时启动、定时关闭、周期性操作等。这种可编程定时电路可以根据实际需求灵活设置延时时间和输出特性,满足复杂的控制要求。
DIOTECH公司的发展小趣事

DIOTECH公司成立于电子行业的黄金时期,凭借其创始人在半导体领域的深厚造诣,公司迅速在高性能处理器领域取得了技术突破。通过不断优化产品设计和生产工艺,DIOTECH的产品在性能和稳定性上均达到了行业领先水平,逐渐赢得了市场的认可。随着智能手机的普及,DIOTECH的高性能处理器成为了市场上的抢手货,公司的营收和市场份额均实现了快速增长。

雅特力(Artery)公司的发展小趣事

在发展过程中,雅特力积极寻求与其他企业的战略合作,以实现共赢发展。通过与上下游企业建立紧密的合作关系,雅特力不仅确保了供应链的稳定性和高效性,还获得了更多的技术支持和市场资源。同时,雅特力还注重与同行业企业的交流与合作,共同推动电子行业的进步与发展。这些战略合作不仅增强了雅特力的综合实力和市场竞争力,也为整个电子行业的繁荣做出了积极贡献。

综上所述,雅特力公司通过技术创新、全球市场布局、企业社会责任、人才培养和战略合作等多个方面的努力,实现了从初创企业到行业领军者的华丽转身。这些故事不仅展现了雅特力的发展历程和成就,也揭示了其在电子行业中的重要地位和影响力。

ConnectBlue公司的发展小趣事

尽管已经取得了显著的成就,但ConnectBlue公司并没有止步不前。相反,公司继续坚持创新驱动的发展战略,不断推出新产品、新技术和新服务。同时,公司还积极关注行业发展趋势和未来技术方向,为公司的长期发展做好充分准备。展望未来,ConnectBlue公司将继续致力于无线通信技术的研发和应用,为推动电子行业的进步和发展做出更大的贡献。

这五个故事展示了ConnectBlue公司在电子行业中的发展历程和取得的成就。从创立初期的艰难起步到产品创新的突破、市场拓展的成功、被u-blox收购后的新跨越以及持续创新的未来展望,ConnectBlue公司始终保持着积极进取的精神和不断创新的态度,在无线通信领域取得了显著的成绩。

B&B Electronics Manufacturing Company公司的发展小趣事

在发展过程中,B&B公司注重与上下游企业的合作与共赢。公司与多家知名的芯片制造商、原材料供应商建立了长期稳定的合作关系,确保了产品的质量和供应链的稳定性。同时,公司也积极与集成商、解决方案提供商等合作伙伴开展深度合作,共同为客户提供更加完善的服务。

问答坊 | AI 解惑

51单片机按键的相关应用

51单片机按键的相关应用…

查看全部问答>

电子技术课程设计题目:秒表(要求:能精确显示0.01秒的变化;能同时对3个不同事件进行计时:比如长跑前三名)

电子技术课程设计题目:秒表(要求:能精确显示0.01秒的变化;能同时对3个不同事件进行计时:比如长跑前三名) …

查看全部问答>

求助:倒车防撞报警系统的仿真?

毕业论文(基于AT89C51的倒车防撞报警系统设计)需要仿真,不知道要从哪里入手?…

查看全部问答>

【转帖】贴片元器件焊接教程(图解版)

在别的网站上看到的一个不错的教程,关于贴片元器件焊接的,上传上来给需要的人看看。 特别感谢原作者!…

查看全部问答>

香帮主,暑假到了,办个STM32F--USB培训班嘛!

感觉USB,可深可浅. 浅的 不管三七二十一拿例子程序来仿,可能凑巧凑合着也能用. 深的,深不可测 香帮主能不能出点力,帮小白们普及点USB应用知识啊? 在上海或者南京什么地方办个班吧,2~5天时间,收费300~1000元…

查看全部问答>

初学者求助,三星K9F4G08U0A刷写程序问题

请教各位电子技术方面的前辈:本人是维修初学者,最近在给SAMSUNG K9F4G08U0A芯片写入原程序后,再读出写入后的程序发现写入后的程序与原程序大总份地方都不正确,编程器根本就没有办法检验,不知道是怎么回事?请各位前辈多多指教,因本人刚开始学 ...…

查看全部问答>

怎样让应用程序支持中文

我公司有个触摸屏是用wince英文系统的,我们电脑和触摸屏的故障信息是同步的,但是电脑改成中文故障信息后,触摸屏不能显示出中文故障,只显示乱码。 我应该怎么弄才能显示出来啊。…

查看全部问答>

用MSP430做485通信,但PC收到的数据不对

使用MAX485(单独USB供电)转换电平和485转USB,串口助手收发数据 逻辑是:PC通过串口助手发送数据给单片机使之进入中断后单片机将数据发送给PC。实验现象是:1:单片机通过485直接发送数据(不用中断),接收正确。2:使用串口中断后,在串口助手中 ...…

查看全部问答>