历史上的今天
返回首页

历史上的今天

今天是:2025年03月26日(星期三)

正在发生

2020年03月26日 | 技术文章—互联环境中的安全存储器

2020-03-26 来源:EEworld

嵌入式系统越来越普遍地采用云技术来进行数据采集、事件检测和软件更新。这些远程物联网设备普遍通过固件完成设置,这些固件有可能存储在主机MCU中,也有可能存储在外置非易失性存储器的用户空间中。而这些非易失性存储器中的内容则是恶意攻击的主要对象。对于所有全新开发的物联网设备来说,采取应对措施防止非易失性存储器的非授权修改,已成为一项基本的设计要求。

 

 

图 1 - 作为节点的互联嵌入式系统

 

本文将对分立闪存存储器领域开始涌现的加密和安全基础设施进行介绍,并探讨如何将这些新特性用于物联网互联设备的安全保障。

 

新一代安全NOR闪存产品

 

NOR闪存制造商已经开发出了一些NOR闪存产品,这些产品通过集成加密基础设施,能够提供高水准安全性。设备配对(主机MCU和NOR闪存)与认证写入(编程与擦除)操作已通过使用对称加密来实现。这些设备通常都是基于HMAC引擎和非易失性累加计数器。在配置过程中,需要先将对称密钥同时加载到主机MCU和安全NOR闪存器件中,以便在正常操作时执行经认证的读写操作。 

 

 

图 2 - 采用集成加密的新一代NOR闪存器件(使用串行外设接口)

 

最近,内部NOR闪存基础设施的发展已经超出了内部状态机实际管理的范畴。较新型设备集成了CPU子系统(CPUSS),能够执行透明负载均衡和坏块替换等高级功能。一旦CPU子系统成为闪存器件基础设施的组成部分,那么增添加密硬件块和数据包缓存的想法就能很快成为现实。通过使用这种全新的基础存储器件,就能够开发出一系列安全功能,从而为加密安全提供支持。在NOR闪存领域,用户存储阵列的访问控制和执行前的分层代码验证是得到大量关注的两个特性。

 

将用户存储空间划分为安全区域

 

较新型NOR器件的用户存储空间能够划分成多个区域,每个区域可以单独配置,用于传统(非安全)访问或安全访问。配置为安全访问的区域能够设定为受控读/写访问或认证访问。

 

配置为受控访问的安全区域能够独立启用或禁用读/写操作。启用/禁用设置由认证序列(需要主机MCU证明其知晓共享密钥)进行管理。在制造过程中,共享密钥将被同时加载到主机MCU和存储器。试图访问禁用区域的读或写将在读取期间返回未定义数据,并且写入尝试将会被阻断。配置为受控访问状态的区域可以选择配置成加电读/写访问状态。例如,可以将启动区域配置为加电时可读不可写,而将其余区域配置为禁用所有读/写访问。

 

此外,安全区域也可以配置为只支持经认证的读写访问。认证区域不支持传统读写。认证读写操作是通过数据包传输来执行的,其中包含HMAC,表示知晓共享密钥和非易失性命令累加计数器值。在访问请求中使用命令累加计数器能防范重放攻击。

 

 

图3 - 用户阵列的安全分区

 

软件层之间的安全性

 

此外,分层验证软件也成为安全环境中的常见做法。可信计算组织的设备身份合成引擎(DICE)工作组已发布一项策略,即每层代码在释放控制前都需要向下一层代码进行证实。当主机MCU无法集成可编程存储器时,系统级场景会变得更加复杂。从NOR闪存CPUSS ROM开始(推定为可信),分立闪存器件开始支持DICE策略的变化。 

 

NOR闪存CPUSS ROM在加电重置(PoR)时执行,在将代码执行移交给CPUSS闪存前,先验证其捕获的闪存器件启动代码(在CPUSS闪存内,未暴露给用户阵列)是否完整。完成这种DICE 0层复合器件识别符(CDI)计算需要结合使用唯一的器件密钥(对每个闪存器件有唯一性),以及对驻留在0层中的闪存器件启动代码的测量值。

 

国际标准文档NIST SP800-56C介绍了在CDI计算中使用的可接受的加密单向函数。唯一器件密钥用于0层CDI计算。0层CDI验证将计算值与NOR制造商提供的存储在片上的预期值进行比较。 

 

在确认CPUSS闪存有效后,代码执行就从ROM启动代码传递到(0层)CPUSS闪存器件启动代码。接下来,NOR器件将验证由系统制造商编程到用户阵列中的系统级启动代码。测得的系统级启动代码值将被用于与器件配置过程中存储在片上的预期值进行比较。这两步验证发生在闪存器件运行其PoR序列的过程中,在可供主机MCU访问之前。请注意,在整个启动过程中,务必确保CDI值不被暴露给更高层的代码,当然还有恶意行为者。

 

 

图4 - 安全软件分层

 

在完成闪存器件PoR序列的执行后,系统级启动代码将会暴露给主机MCU供其执行。在确认系统级启动代码的真实性后,系统启动流程能够继续运行。分层验证策略还能继续执行,方便主机CPU对每个新软件层的验证工作进行管理。 

 

图4描绘了从闪存启动代码到用户应用的线性推进过程。实际情况很可能复杂得多,尤其是在程序控制权被移交给操作系统后。请注意,一旦系统级启动代码取得程序控制权,每个后续层的证实值都能够与本地值(存储在闪存器件中)进行比较,或更理想的话,还能够与远程驻留(可能是云服务器)值进行比较。如果使用DICE规范中规定的数字证书,远程验证的安全性还能进一步提高。

 

结论

 

片上加密基础模块显著缓解了传统非易失性存储器的受到的安全威胁。反克隆问题能够通过主机MCU与闪存存储器之间的设备配对得到解决。使用阵列分区和可配置访问权限能够处理非授权访问。通过可信计算组织制定的DICE策略,解决了恶意篡改代码的检测和恢复问题。集成在新型闪存存储器中的加密功能模块成功地解决了传统系统中存在的大量安全漏洞,说明外置Flash架构能够解决未来可能出现的安全问题。

推荐阅读

史海拾趣

Display Elektronik GmbH公司的发展小趣事

Display Elektronik GmbH始终将产品质量放在首位。公司建立了严格的质量控制体系,从原材料采购到生产流程,再到成品检测,每一个环节都严格把关。这种对品质的坚持让Display Elektronik GmbH的产品在市场上赢得了良好的口碑,也为其赢得了众多知名客户的信赖。

Econais公司的发展小趣事

自成立以来,Econais一直致力于技术创新。XXXX年,公司成功推出了一款具有里程碑意义的单芯片IEEE802.11b/g/n Wi-Fi系统级封装(SiP)模块——EC19D01。这款模块在业界引起了广泛关注,因为它不仅体积小、易于集成,而且待机功耗极低。这一突破性的创新使得Econais在物联网领域树立了技术领先的地位。

Gazelle Microcircuits Inc公司的发展小趣事
负电压的生成需要额外的电路和功耗,取消这些电压输出可以降低主板的整体功耗和发热量,提高能效。
Cogent_Computer_Systems公司的发展小趣事

Cogent_Computer_Systems公司在成立之初,便以其独特的技术创新在电子行业中崭露头角。公司研发团队成功开发出一款高性能的计算机芯片,该芯片在运算速度和能效比方面均达到了行业领先水平。这一技术突破迅速吸引了众多客户的关注,Cogent_Computer_Systems公司也因此获得了大量的订单。随着市场需求的不断增长,公司逐渐扩大生产规模,优化供应链管理,实现了业务的快速扩张。

ALCOA公司的发展小趣事

随着技术的不断进步和市场的扩大,ALCOA公司的业务逐渐扩展到铝土矿开采、氧化铝精炼和原铝生产等领域。这种垂直整合的模式使得公司能够更好地控制原材料的质量和供应,提高了生产效率,也降低了成本。到了20世纪中期,ALCOA已经成为全球最大的铝业公司之一,几乎垄断了全球的铝市场。

Design Gateway公司的发展小趣事

1985年,泰德·维特(Ted Waitt)和Mike Hammond两位年轻人决定辍学创业。他们利用维特祖母的15,000美元存款作为担保,从银行获得了10,000美元贷款,租用了一台计算机,并准备了一份三页的经营计划。在维特父亲位于爱荷华州苏城的牧场里,他们创办了TIPC Network公司(Gateway的前身)。公司起步时,主要向得克萨斯电脑器械公司销售零配件,并开展计算机邮购业务。得益于直销商业模式,Gateway在短短四个月内就实现了10万美元的销售额。

问答坊 | AI 解惑

一款单片机实验板的原理图

一款单片机实验板原理图,有很多值得参考的地方。有刚学单片机的想自己动手做一块实验板的可以借鉴一下。…

查看全部问答>

PCI9052板卡的开发中文资料

PCI9052板卡的开发中文资料…

查看全部问答>

WINCE下电话与IE共存问题!

嘿 各位:    现在我想在WINCE6.0下面做一个电话与IE共存的软件,想要做到当如果在下载数据或是浏览网页的时候有电话打进来需要挂住数据通道,电话接完后可以很快的浏览网页或是下载数据,以前我采用的方式是RAS函数库+AT指令方式,当想 ...…

查看全部问答>

请教高手printf和vprintf的问题

环境Vxworks 5.5.1 在相同的地方,如果使用printf可以正确打印,但是使用vprintf就会报如下错误:     CPU: Motorola MPC82xx ADS - HIP7    Runtime Name: VxWorks Runtime Version: 5.5.1     BSP version: 1 ...…

查看全部问答>

用在嵌入式中得移动数据库都有哪些?(linux下)

刚刚接触,不是很了解,推荐一下哪些比较好用?谢谢…

查看全部问答>

版主jishuaihu, 小小白, 江汉大学南瓜帮忙看看

https://bbs.eeworld.com.cn/thread-308442-1-1.html 此贴貌似冒的人看啊!给新人一点帮助嘛!…

查看全部问答>

C2000芯片顶端标识

很多人对C2000芯片版本表示之后的一串数字有疑问。如第三幅图片所示,它代表生产的年月以及产地。 TI芯片上并没有防伪印记,所以我们联系TI时候,TI总是说他们是通过渠道确认芯片是否为正品。 他们所说的渠道就是是否是正规代理商那里买的。 &nb ...…

查看全部问答>

高速PCB布线实践指南

高速PCB布线有很多方面的问题,关于这个题目已有人撰写了大量的文献。本文主要从实践的角度来探讨高速电路的布线问题。主要目的在于帮助新用户当设计高速电路PCB布线时对需要考虑的多种不同问题引起注意。 …

查看全部问答>

FPGA内存控制

两个摄像头同时采集写入内存,然后一起到vga显示,但是图像的交错的,各位大神看看是什么原因呢,谢谢 Sdram_Control_4Port        u8        (        //      &nbs ...…

查看全部问答>

多个STC单片机无线通信

多个STC单片机采用CC1100无线模块实现相互通信,怎么做到同步效果呢  ?????一般采用定时器中断实现同步  还有没有别的什么方法…

查看全部问答>