新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > SRAM 冷不了:利用电源域分离窃取片上机密

SRAM 冷不了:利用电源域分离窃取片上机密

作者: 时间:2025-11-10 来源: 收藏

摘要

嵌入式系统与智能设备的普及,使物理内存泄露攻击风险上升。传统“冷启动攻击(cold boot)”依赖 DRAM 在低温下的跨断电保留特性;然而,在 SoC 上的片上 SRAM通常被视为更安全。本文表明:在大量商用 SoC 上,电源域分离配合外部电压探针可以人为保持 SRAM 的数据保持态,即使系统整体断电,也能在重启后无误提取缓存、iRAM 等片上数据。我们将该方法称为 Volt Boot。其关键并非温度或制程,而是电源域架构与对外暴露的供电引脚/测试焊盘。基于树莓派与 NXP i.MX 等平台的实验,我们给出攻击前提、步骤、可达性与局限,并提出面向芯片与系统的缓解策略。


1 背景与动机

1.1 从 DRAM 冷启动到 SRAM “不怕冷”

冷启动攻击通过人为降温,维持 DRAM 在断电后的短暂数据保持,从而在二次上电时转存密钥与残留数据。与之不同,SRAM 的信息由双稳态触发器维持,温度‑依赖性弱且泄放服从统计分布,简单的“低温+掉电”并不实用。然而,现代 SoC 出于能效与面积考虑,普遍采用电源域分离专用供电引脚(电源门控、分域降压),这无意中提供了让**部分片上存储在系统断电时仍“活着”**的条件。

1.2 威胁模型与现实性

攻击者具备物理接触设备主板的能力(常见于维修、回收、边检取证、企业资产处置等场景),可在 PMIC 附近的测试点/去耦电容焊盘上接入电源探针;攻击不依赖低温、显微操纵或制程差异,与工艺节点基本无关


2 攻击总览:Volt Boot

核心思想:利用 SoC 的电源域分离,在系统断电期间,向目标 SRAM 域施加外部恒定电压(高于其数据保持电压、低于额定电压),使其跨掉电保持数据。随后重新上电并优先转存该域中的数据(如 L1D/L1I、寄存器文件、iRAM),实现对明文密钥与敏感状态的窃取。

为何有效

  • SRAM 普遍且以明文存储:片上 SRAM 通常不加扰/不加密;即便外部 DRAM 已做加扰或内存加密,SRAM 内仍为明文

  • 域专有供电引脚可被“借路”:BGA 封装难以直接焊线,但域供电引脚通常连接到临近的去耦电容或测试焊盘,且布局有规律,可在板级找到等效注入点

  • 默认不清零:大多数 SoC 出于启动速度与**安全原语(PUF/TRNG)**考虑,不会对大容量 SRAM 做全清零;cache “清空/失效”只改元数据,数据本体仍在,且可通过协处理器接口在高权限级读出。


3 试验平台与可达性

我们选择三种广泛可得的评估平台:

  • Raspberry Pi 4 / 3(Cortex‑A 系)——目标为 L1D/L1I/寄存器文件,域电压名义值约 0.8 V

  • NXP i.MX53 ——目标为片上 iRAM,域电压名义值约 1.3 V

板级注入点:在 PMIC 区域附近可找到标注为 TPxx测试焊盘(如 RPi4 的 TP15)或去耦元件两端作为注入点。我们在这些位置测量名义电压并联外部稳压源

电流行为:以 RPi4 为例,在 0.8 V 探针下,设备在掉主电后最初吸取 400–600 mA(与负载相关),数微秒后下降到约 8 mA 并进入长期保持


4 实施步骤(可复现流程)

步骤 1:定位域供电等效注入点

优先在 PMIC 附近寻找与目标域相连的测试焊盘或去耦电容焊点;遵循“靠近 PMIC、走线短”与“布局成簇”的规律。无需精确到封装内引脚,板级等效点足够。

步骤 2:并联外部电源,设定保持电压

将外部可编程电源并联到注入点,电压设为名义电压或略低,但需高于 SRAM 数据保持电压(通常明显低于名义值)。保证电源具备足够电流与瞬态响应以覆盖掉主电瞬间的吸流峰值。

步骤 3:断开主电源并“跨掉电保持”

切断设备主供电,保持外部探针向目标域供电。此时其他域下电,目标 SRAM 仍处保持态

步骤 4:受控启动并最小化污染

重新上电并引导到外部介质(如 USB),以减少启动过程中对目标 SRAM 的写入/替换。随后运行特制的数据转存程序

  • Cache 提取:在 ARMv8/ARMv7 上利用协处理器/系统寄存器指令(如 CP15SYS #0, c15, c4, #0, 等 RAMINDEX 访问),配合 DSB SY/ISB 栅栏,逐线读出 L1 到通用寄存器;

  • 搬运:将寄存器内容写入 DRAM/外部闪存/调试接口做后处理;

  • iRAM 提取:如目标为片上 iRAM,可直接经调试接口转储。

工程提示:为避免启动过程“污染”保留数据,转储程序应早期加载、避免调用会使用目标 SRAM 的库/驱动,并关闭影响缓存的一切后台任务。


5 攻击为何可规模化生效(Enablers)

  • SRAM 的普适性:从微控制器到服务器级处理器,任何具有“SRAM 与计算核分离供电域”的 SoC理论上都可诱导保持。

  • 片上明文:与外部 DRAM 不同,商品处理器的 SRAM 很少启用加扰/加密,因此一旦访问即为明文

  • 分域供电对外暴露:为性能、能效与面积,SoC 厂商把子域供电引出,其中部分直接或通过网络连接到嵌入式 SRAM;只要探针维持高于保持电压,数据即保持无错

  • 缺省无全局清零:清空/失效不等于抹除;Cache 的 invalid 仅阻止命中,数据体仍在,在高特权级依然可读。


6 实验与结果

6.1 可访问比例

裸机环境下预填充特定模式,测量启动阶段 CPU 对内部存储区的占用,从而估计重启后可被攻击者访问的比例。不同 SoC/目标内存类型差异显著,但在三平台上均验证到非零且稳定的可访问窗口。

6.2 成功提取与误码

与 DRAM 冷启动不同,Volt Boot 不依赖温度,且在保持电压满足时,SRAM 数据可无误跨电保持。误码主要来自探针瞬态与污染而非本征泄放。我们在 RPi3/4 的 L1 与 i.MX53 的 iRAM 上均实现了稳定提取

6.3 可移植性与节点无关性

攻击与温度、制程节点无关;关键是分域供电结构板级暴露点是否存在及可达。只要满足两点,方法即可移植到更广泛的 SoC 家族。


7 防护建议(芯片—板级—系统分层)

7.1 芯片级

  • SRAM 上电自清零(强制清除):在复位序列中加入硬件清零按行覆盖;对大容量 SRAM,可使用并行清除/按域流水降低启动时延。

  • Cache 真抹除:在上电阶段提供物理擦除路径,而非仅设置 invalid 位。

  • SRAM 加扰/加密:为成本敏感平台提供轻量加扰(随机映射/按行 XOR)或域内加密(结合唯一芯片密钥)。

7.2 封装/板级

  • 屏蔽或迁移测试点:降低域测试点可达性;

  • 上拉/监测保持电流:检测异常的反向供电/维持电流

  • PMIC 策略:设计全局掉电路径,避免子域“借电”存活。

7.3 固件/系统

  • 可信启动阶段的“早清零”:在 BL1/EL3 等最早阶段对目标区执行覆盖

  • 最小化引导污染:把日志/堆栈/中断向量等迁出目标 SRAM

  • 调试接口管控:限制高特权级对协处理器/系统寄存器的直接访问。


8 相关工作与比较

与经典冷启动相较,Volt Boot 的威胁面更贴近现实:无需低温、无需外设拔插、无需制程知识。与依赖缓存锁定刷新时序的通道攻击不同,Volt Boot 直接获取明文数据体,对密钥搜索与取证更为直接。但其前置条件是可物理接触与板级注入点可达,且对安全封装完备的上电清洁平台,攻击难度显著上升。


9 结论

电源域分离是现代 SoC 的工程事实,但它也为攻击者提供了在系统断电时选择性“保活”片上存储的通道。本文提出的 Volt Boot 证明:只要能在板级找到域电源的等效注入点并维持保持电压,就可以在无温控前提下稳定跨电保留并提取缓存/iRAM 等片上敏感数据。工程社区需要在芯片、封装/板级与固件多层次引入防护,把“清零即安全”从文档变成硬事实


关键词:

评论


相关推荐

技术专区

关闭