广告

互联环境中的安全存储器

2020-03-30 Cliff Zitlaw、Sergey Ostrikov 阅读:
互联环境中的安全存储器
对于所有全新开发的物联网设备来说,采取应对措施防止非易失性存储器的非授权修改,已成为一项基本的设计要求。

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

6eXednc

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

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

新一代安全NOR闪存产品

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

6eXednc

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

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

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

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

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

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

6eXednc

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

软件层之间的安全性

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

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

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

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

6eXednc

图4 - 安全软件分层6eXednc

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

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

结论

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

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 使用PCIe交换网结构在多主机系统中优化资源部署 PCIe交换网结构是一种能够充分利用CPU巨大性能的绝佳方法,但PCIe标准本身存在一些障碍。不过,可以通过使用动态分区和多主机单根I/O虚拟化共享技术来解决这些难题,以便可以将GPU和NVMe资源实时动态分配给多主机系统中的任何主机,从而满足机器学习工作负载不断变化的需求。
  • 4Gbps!HBM2E内存接口再现性能标杆 近年来,随着内存带宽逐渐成为影响人工智能持续增长的关键焦点领域之一,以高带宽内存(HBM、HBM2、HBM2E)和GDDR开始逐渐显露头角,成为搭配新一代AI/ML加速器和专用芯片的新型内存解决方案。
  • 利用Gen-Z实现内存共享和低延迟 Gen-Z本身的主要技术优势是能够将DRAM和非易失性存储器及未来的持久性存储技术结合起来,它还使用一种高带宽、低延迟和高效的协议来简化软硬件设计,降低了解决方案的成本和复杂性。
  • ARM发布新一代Cortex-R82:首次支持Linux,首款64位实时控 今天刚说到5个大学生4个月造出RISC-V芯片的事情,那边“敌对阵营”ARM就发布了新款Cortex-R82:首款64位实时控制器,首次支持Linux,SSD缓存可达1TB,号称比R8性能翻倍,究竟如何?为什么终于支持Linux了......
  • 安全闪存——网联汽车和工业应用中安全问题的解决之道 随着汽车和工业市场中自动化和互联革命的推进,边缘节点正在迅速成为网络攻击的目标。软件更新、远程捕获诊断数据以及远程端点与基础设施之间的通信变得越来越普遍,因此容易遭受网络攻击和其它安全威胁。 随着半导体技术的进步,工艺尺寸不断缩小,将闪存嵌入到包含硬件安全模块(HSM)的MCU中也变得越来越困难,因此外置闪存的需求不断增加。当闪存外置于MCU时,存储的代码和数据将更加容易受到攻击,所以设备必须设计安全启动流程和其它基础设施,以确保存储和检索的内容可以信赖。 本文探讨的是,当闪存外置于拥有HSM模块的MCU时,但仍然保持硬件信任根时,新一代安全设备的设计会面临哪些挑战和安全要求。本文涉及的其他内容还包括:加密安全存储、快速安全启动、安全固件远程更新和管理合规。
  • 希望助华为渡难关!华为张霁为何如此自信?(附Top PhD论文) 前几天,EDN电子技术设计网报道了:《华为“天才少年”校招薪资曝光:西安交大100万,华科201万》,详细介绍了华为招纳四大天才少年的情况,其中华科大博士生张霁年薪201万。昨天(8月4日)张霁对此进行了强大的回应:希望能助华为渡过难关!他为何如此自信?我们看看其Top PhD实力。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了