为实现固件安全选择正确的存储器架构

尽管联网物联网设备遭受的网络攻击事件日益增多,固件安全却往往被置于次要地位。随着攻击者穿透系统堆栈,将目标对准引导过程和底层硬件配置,存储器架构的选择已成为建立可验证信任链的关键决策。

因此,保障固件安全需要每个组件在执行前都经过加密验证。这一路径始于一个不可变的引导加载程序,它负责加载并验证主固件。然而,其中每一步所使用的的存储器技术,都可能造成固件面对未授权修改时的脆弱性。

内置与外置闪存

用于存储固件的非易失性存储器的物理位置,是设备威胁模型中最为关键的因素之一。固件工程师需要在片上嵌入式闪存 (eFlash) 和通过 SPI 或 QSPI 等串行接口连接的外部闪存模块之间做出选择

嵌入式闪存通常直接集成在单片机或 SoC 晶粒上。这种架构能提供最高级别的物理安全性,因为不存在可供攻击者操纵的外部总线。即便是对内部闪存的访问,也由专用寄存器和锁定位控制。

此外,嵌入式闪存支持永久读取保护。通过短接专用的安全保险丝,开发者可以禁用 JTAG 或 SWD 调试接口,从而防止黑客修改固件映像。然而,随着 SoC 向着更小节点迈进,该技术面临着显著的扩展性难题。

相比之下,外置闪存置于主处理器之外,通过高速串行接口进行通信。这种架构选择使得存储容量易于扩展,但也扩大了系统的攻击面。在处理器与外部闪存之间传输的任何数据,本质上都易遭受窃听、中间人攻击及物理篡改的威胁。

为应对这些风险,固件工程师必须实施健全的硬件与软件保护措施。许多外部 NOR 闪存器件都配备了一个物理写保护引脚。当该引脚被置于特定电压时,芯片内部逻辑会阻止执行任何擦除或写入命令。

图 1:Winbond Electronics 的 W77Q32JWSSIR TR 安全串行 NOR 闪存具有复杂的通信信道加密功能。(图片来源:Winbond Electronics)

但是,如果数据可以被读取,仅仅锁定闪存是不够的。在执行过程中,攻击者仍可访问地址和数据总线。这一漏洞促使人们开发出专门的安全闪存设备,其中包括基于硬件的信任根机制、加密通信通道和单调计数器,以防止回滚攻击。

然而,如果选择了错误的存储器架构,设备就会留下软件补丁也无法完全修复的根本缺陷。例如,将固件存储在外部 EEPROM 上且不进行加密或验证的设计,总是容易受到硬件攻击者的攻击。反之,选择限制性过强的存储器可能会影响功能。

因此,工程师必须了解最佳实践和设计技巧,通过存储器架构最大限度地提高固件安全性。

安全固件存储设计最佳实践

固件工程师在设计从开机到运行时的安全固件存储路径时,必须遵循以下原则:

1. 基于硬件的信任根

执行必须始终从不可变的存储器区域开始。例如,引导 ROM 或永久安全闪存扇区应包含验证所有其他固件的代码。这将确保攻击者无法通过篡改初始密码绕过验证。

2. 使用加密签名

实现安全引导加载器时配置成只运行使用信任私钥签名的固件映像。这样,即使攻击者可以访问存储器并修改位,也能防止未经授权的代码。如果需要保密,可对存储的固件进行加密。

3. 利用硬件安全功能

如果系统架构使用外部存储器,工程师应选择支持硬件安全的设备,如内置密码保护或简单加密。虽然这些设备可能不如完整的安全元件坚固,但它们却增加了另一层保护。

图 2:Macronix 支持串行外设接口的 MX25L3233FM2I-08Q 32 Mb 串行 NOR 闪存。(图片来源:Macronix)

4. 隔离固件和数据

整理存储器区域,将最敏感的代码分开。在 MCU 中,将关键的例行指令放在安全的存储器区域。即使是固件,如果硬件支持,也可将某些闪存存储体标记为只执行或只读。

5. 安全固件更新计划

确保更新过程本身经过验证(例如,要求更新包签名)。如果设计使用外部存储器进行暂存更新,则应采用与主固件存储器相同的安全措施。

结语

为固件选择存储器,既能保证嵌入式物联网设备的安全性,也能破坏其安全性。选择不安全的存储器,如果是没有任何保护措施的外部存储器,就会为攻击者敞开大门。相反,构建架构时若能结合片上存储器、安全的外部存储以及加密控制机制,就能为抵御复杂攻击奠定坚实基础。

对固件工程师而言,重点在于:将信任根置于防篡改的存储器中;将片外存储器视为不可信并采取相应的安全补偿;充分利用现代存储器技术提供的全套硬件安全功能。通过让存储器技术与设备的安全要求相匹配,即便是最微小的物联网传感器,我们也能有效保护其免遭固件层面的攻击。

关于此作者

More posts by Abhishek Jadhav
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum