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

图 2 - 采用集成加密的新一代NOR闪存器件(使用串行外设接口)
最近,内部NOR闪存基础设施的发展已经超出了内部状态机实际管理的范畴。较新型设备集成了CPU子系统(CPUSS),能够执行透明负载均衡和坏块替换等高级功能。一旦CPU子系统成为闪存器件基础设施的组成部分,那么增添加密硬件块和数据包缓存的想法就能很快成为现实。通过使用这种全新的基础存储器件,就能够开发出一系列安全功能,从而为加密安全提供支持。在NOR闪存领域,用户存储阵列的访问控制和执行前的分层代码验证是得到大量关注的两个特性。
将用户存储空间划分为安全区域
较新型NOR器件的用户存储空间能够划分成多个区域,每个区域可以单独配置,用于传统(非安全)访问或安全访问。配置为安全访问的区域能够设定为受控读/写访问或认证访问。
配置为受控访问的安全区域能够独立启用或禁用读/写操作。启用/禁用设置由认证序列(需要主机MCU证明其知晓共享密钥)进行管理。在制造过程中,共享密钥将被同时加载到主机MCU和存储器。试图访问禁用区域的读或写将在读取期间返回未定义数据,并且写入尝试将会被阻断。配置为受控访问状态的区域可以选择配置成加电读/写访问状态。例如,可以将启动区域配置为加电时可读不可写,而将其余区域配置为禁用所有读/写访问。
此外,安全区域也可以配置为只支持经认证的读写访问。认证区域不支持传统读写。认证读写操作是通过数据包传输来执行的,其中包含HMAC,表示知晓共享密钥和非易失性命令累加计数器值。在访问请求中使用命令累加计数器能防范重放攻击。
软件层之间的安全性

图4描绘了从闪存启动代码到用户应用的线性推进过程。实际情况很可能复杂得多,尤其是在程序控制权被移交给操作系统后。请注意,一旦系统级启动代码取得程序控制权,每个后续层的证实值都能够与本地值(存储在闪存器件中)进行比较,或更理想的话,还能够与远程驻留(可能是云服务器)值进行比较。如果使用DICE规范中规定的数字证书,远程验证的安全性还能进一步提高。
结论
- 上一篇:基于SPAD / SiPM技术的激光雷达方案 [2020-05-08]
- 下一篇:Linux嵌入式系统的设计方法与设计层次 [2020-05-07]