使用有安全保障的闪存存储构建安全的汽车系统 IT运维网

2019-12-08

在现代轿车嵌入式体系中,高度安全的数据存储是必不行少的,尤其是在面对日益高超的网络进犯时。本文将介绍设计师正确运用闪存的进程。
 
对电子嵌入式体系的安全和安全保证需求从未有今日这样激烈。跟着轿车的自动化程度不断进步,咱们需求进步其安全保证水平,防止它们被黑客攻破。关于选用很多机器人与物联网设备,需求处理灵敏数据的工厂来说,相同如此。
 
对一切此类嵌入式体系来说,非易失性闪存存储器必不行少。闪存可用作代码存储、文件体系存储或直接运转代码的微控制器单元存储器。假如要完成体系安全性,有必要首要保证体系运用的闪存存储器是安全的。本文讨论闪存存储器的安全需求,协助开发人员为轿车、工业和通讯运用构建安全有保证的嵌入式体系。
  闪存存储器的运用办法  
假如咱们仔细观察现代轿车的电子体系,咱们会发现闪存在整车上都得到广泛运用。跟着体系的杂乱性添加,咱们需求更大容量的代码存储和数据存储。车内的一切子体系,包含高档驾驭辅佐体系、外表体系、传动和车身体系,都需求嵌入式体系才干实时运转。
 
一切这些嵌入式体系都需求某种类型的闪存存储器,用作代码存储和数据存储。例如,图1所示的是一个运用多个NOR闪存器材的ADAS子体系。
  图1.该ADAS子体系运用多个NOR闪存  
在当今的ADAS运用中,杂乱的算法和人工智能流程依托在闪存存储器中存储的代码和数据来运转。存储有必要供给故障安全和安全保证,由于体系故障或歹意进犯或许导致严峻的人身损伤甚至身故。
 
在工业和网络运用中,也存在对存储解决方案的相似安全与安全保证需求。在互联互通程度不断进步的大布景下,黑客能打破任何与互联网相连的单薄实体,盗取灵敏信息,或许将被攻破的设备当作跳板,在整个网络中的其他地方建议进犯。因而,构建有安全保证的体系,防止发作这种类型的进犯,变得至关重要。
  有安全保证的闪存存储  
多年来,闪存存储器厂商一向供给朴实的数据存储。关于这些运用,耐久度和坚持才干是衡量闪存存储器质量的两大目标。安全保证并非是对这类型闪存器材的要求,这就意味着存储在闪存上的数据要么彻底不受维护,要么运用未经认证的指令进行维护。
 
例如,一些闪存器材经过正常指令集供给根本的维护功用,例如针对编程或擦除操刁难扇区供给非易失性或易失性维护、针对编程或读取操作的密码维护等。这些功用虽是好功用,但不足以抵挡手法高超的进犯。假如黑客可以拜访闪存器材的总线接口,他们就能轻易地提取或修正设备上的数据。
 
为了保证安全,闪存器材有必要维护存储的代码和数据免受多种手法的进犯。下面总结了闪存存储设备需求加以防备的几种进犯。
 
  中间人进犯
 
MIM进犯中的黑客常仿照通讯信道的发送方,发送指令或音讯给另一侧,以盗取或修正数据。因而,有必要认证主机和闪存设备间的每一条音讯。认证可经过在主机和闪存上运用公共密钥,生成随同实践音讯的音讯认证码来完成。接纳方可以在对音讯采纳举动之前先验证MAC。  
图2.中间人进犯常仿照通讯的信道发送方发送指令或音讯,终究意图是盗取或修正数据  
为了防止在密钥受损时体系被永久损坏,一般需求运用暂时密钥。暂时密钥会在必定时刻或在必定次数后失效。这样做的意图是尽或许防止密钥被损坏性物理剖析或其它迭代进犯等办法进行解密。
 
另一种中间人进犯则是在必定时刻今后重放截获的合法音讯。为了防备重放进犯,主机和闪存设备有必要运用累加计数器生成MAC。由于当时的累加计数器值与上一音讯的值不同。重放相同的音讯就不能经过MAC验证,
 
  克隆
 
一些黑客可以运用先进的技能读取闪存芯片中的全部内容,经过不合法克隆牟利。为了防备此类进犯,每个闪存芯片都有必要具有任何人都不能读取的仅有设备隐秘。UDS值具有仅有性,是每个芯片内的实在随机值。一个芯片和另一个芯片中的UDS之间毫无相关。
 
UDS可用于推导复合设备标识符,而这个标识符是生成可信计算作业安排设备标识符组合引擎规范界说的设备ID证书的根底。一般来说,设备也在CDI的根底上,为一切用主机导出的密钥生成别号私钥公钥对。这样就无需露出设备ID的私钥。
 
有了UDS和DICE流程后,由于UDS在物理上不行克隆,因而黑客就无法克隆设备。
  偷听
 
被迫侦听是别的一种已知的进犯办法。进犯者经过在总线上偷听,可从经过总线传输的数据中收集灵敏信息或秘要情报。为维护重要数据,用户可选择在经过总线将数据发送到闪存设备,并存储数据前为数据加密。当主机从设备检索数据时,也应对数据进行加密处理,让潜在的黑客永久无机可乘。
 
或许有人会说,加密办法不需求有安全保证的闪存存储解决方案,由于主机可以直接加密数据并将其存储到闪存中。只要主机才干解密数据。
 
但是,这样做也有必定的缺陷。其中之一是主机不能轻易地弃用加密密钥。例如,假定运用KeyA加密数据并将其存储在闪存中,后来用户发现KeyA已被攻破,就需求在体系上运用不同的密钥,即KeyB。
 
这时,主机堕入两难地步:它不能直接弃用KeyA,由于它需求保存该密钥,才干解密从设备读取的数据。但是,假如KeyA被攻破,用户或许不想永久保存它。假如要运用新的数据加密密钥,用户不得不采纳更杂乱的办法。先擦除闪存上的原始加密数据,再用新加密的数据为闪存编程。这种操作在现场并非易事,且存在必定危险。
 
另一方面,假如有安全保证的闪存可以供给加密和解密功用,它就能在其有安全保证的存储中安全地寄存明文数据,并在将数据发回给主机之前进行加密处理。假如当时的加密密钥被攻破,主机可以简略地与设备交换新的密钥。存储中的数据坚持完好且有安全保证,与存储加密数据比较,是一种简略得多的办法。
   
下面介绍开发安全闪存存储的各个进程:
 
  供给灵敏的存储器架构
 
在现代的多核嵌入式体系中,多个MCU或硬件安全模块或许可以拜访同一个闪存存储。闪存设备有必要供给一种灵敏的存储器架构,可以对其进行分区和装备,以便经过不同的内核办理不同的区域。这些不同区域可供给不同水平的安全保证,或许在彻底不需求时,撤销安全保证。
 
经过了解eMMC规范和UFS规范,咱们明显可以看到支撑多个安全区域的趋势。当时的eMMC规范规则了重放维护内存块。最新的UFS规范可为四个RPMB分区供给智能支撑,它们由四个不同的密钥进行办理。这样的存储器架构灵敏性在多核SoC环境中愈加适宜。
 
  供给快速的安全发动功用
 
很多嵌入式体系都在闪存中存储发动代码。部分是由于需求快速发动,例如轿车子体系需求在加电重置的100ms内处理CAN音讯。体系不只需求安全发动,还需求快速发动。这就给嵌入式设计师提出更高的应战。
 
一般情况下,在运转存储并下载形式时,主机从闪存读取引导加载程序并映射给RAM履行。但是,要想安全发动,就需求查看认证整个引导加载程序代码,以保证其可信性。这个进程需求在MCU上花费时刻。有安全保证的闪存存储可以供给引导加载认证,大幅度缩短发动时刻。
 
安全的闪存设备可以运用内部安全散列函数查看引导加载程序,并为主机供给验证用散列值。假如散列值未发作改动,就阐明引导加载程序未被篡改,可以安全地用于发动。
 
  供给安全的固件无线更新
 
关于现代的嵌入式运用而言,现场晋级是必备功用。经过长途晋级体系的固件或软件,制造商可以快速解决问题、供给新增特性、进步用户体会。但是,长途晋级也会对体系构成安全要挟。没人期望黑客运用现成的更新通道,让体系运转歹意固件或软件。
 
除了依托CPU供给的安全保证,闪存设备内部的安全引擎也能大幅进步FOTA流程的安全水平。选用这样的安全引擎后,供给发动代码存储的闪存设备不只可以用闪存设备周围的主机认证固件供给商,也可以在长途云上进行认证。经过这种办法,可以为闪存中的固件更新或软件更新树立端到端的通道安全。  
图3.闪存设备中的安全引擎有助于完成更安全的固件无线更新流程  
现代轿车、工业、通讯运用的嵌入式体系需求有高度安全保证的数据存储。嵌入式体系设计师面对的应战是,怎么构建可以抵挡网络进犯的安全体系。集成安全保证特性的闪存,如赛普拉斯的Semper Flash,经过防备各种针对嵌入式体系的进犯,进步全体体系的安全性。