激光打穿 RP2350:安全链等于最弱的寄存器

激光打穿 RP2350:安全链等于最弱的寄存器

安全RP2350故障注入硬件逆向

数据源:Ledger Donjon 技术博客 + HN 讨论

2026 年 7 月 28 日,Ledger Donjon 向 Raspberry Pi 披露了一项针对 RP2350 A4 修订版的物理攻击。在 Raspberry Pi 官方主动举办的 RP2350 Hacking Challenge 悬赏活动背景下,安全研究员 Antoine Plin 给出了一次硬件破防实证。他们切开芯片背面树脂,用脉冲激光照射特定硅片区域,让已经在工厂被永久关闭的调试端口重新开启。

攻击者最终顺畅读出了单次可编程(OTP)存储器中的 128 位挑战密钥。从物理破坏到逻辑提权,整个攻击链路走得非常精准。硬件信任根不需要魔法,只需要绕过外围的逻辑验证,找准没有任何防护的终端物理寄存器。

安全链条断在最后一步

OTP 存储器里的安全状态读取机制拥有很高的冗余度。为了防止偶发位翻转,RP2350 的关键状态使用了「三选八投票」和「三冗余多数投票」机制。设计者在这里投入了大量逻辑门资源。芯片在上电时能准确感知自己是否被禁用了调试功能,常规的环境电磁干扰根本无法欺骗这套严格保护的验证系统。

真正的漏洞出在终端寄存器上。决定调试端口开关的 DEBUGEN 寄存器,在数据手册里没有任何冗余记录、奇偶校验或多数表决的记载。OTP 读出的安全状态就算再严密,最终也要写入这个缺乏保护的单点寄存器。

DEBUGEN 寄存器内部包含五个关键的功能位:PROC0PROC0_SECUREPROC1PROC1_SECURE 以及 MISC。芯片设计规则要求,必须将核心的基础调试位与 Secure 调试位同时置 1,才能对该核开启 Secure 调试权限。攻击者在实测中精确打中了两个关键坐标,成功把核心 1 的这两个位都置上,使得最终读出的值为 0xc

安全模块与防护机制芯片设计层面的初衷与手段激光注入攻击中的实际表现
OTP 安全状态读取使用三选八投票与三冗余多数投票机制,抗随机位翻转成功抵御了常规干扰,攻击者并未选择在此处正面强攻
DEBUGEN 寄存器依赖 OTP 投票结果一次性写入,本身无冗余校验门电路被激光单点精确翻转,成为开启底层调试权限的核心突破口
DEBUGEN_LOCK设计为写 1 后即物理锁死,直到芯片下次复位前都无法清除被激光意外置 1 后,固件无力将其写回禁用状态,反成驻留后门
运行时内存持久锁固件每次启动时主动写入 sw_lock 寄存器来收紧读取权限攻击者利用 RP-AP 抢先触发复位,固件并未运行,锁机制未能生效

背面开盖后的 RP2350,焊在分析子板上 图:背面开盖后的 RP2350,焊在分析子板上。来源:Ledger Donjon

用 200 帧图像求均值找靶心

定位攻击目标点比开枪本身更难。攻击团队把选中的 DEBUGEN 位在循环里反复翻转。随后用光子发射显微(PEM)技术,采集了 200 帧全视场图像求均值堆叠。

他们将目标位置在 0x3 与 0xc 两种状态掩码下的均值相减。这种差分定位原理过滤了静态背景、传感器偏置和热发射的底噪,剩下的高亮像素就是与目标位对应的微小硅片发光点。

攻击用的实验台全貌 图:攻击用的实验台全貌。来源:Ledger Donjon

拿到靶心坐标后,他们换上 50x 物镜,打出 100 纳秒脉宽、980 纳米波长的脉冲激光。激光器的最大光功率高达 2.97 W,实际注入时使用了约 40% 的输出,相当于 1.2 W 的峰值功率。每次脉冲后,他们通过串行线调试(SWD)回读访问端口状态,以此校准两个相距仅几微米的作用点。微米级的误差修正,决定了物理攻击能否从理论走向现实。

当降级使用 20x 物镜复现时,攻击流程当场失效。20x 物镜的光斑太宽,同时打到了「置位」和「清零」两个邻近的逻辑区域,导致无法向寄存器写入预期的值。激光故障注入对空间精度的要求卡死在微米级别,光学设备的物理解析力直接画出了攻击的成败边界。

红外全视场 + 彩色标出的 DEBUGEN 位点 图:红外全视场 + 彩色标出的 DEBUGEN 位点。来源:Ledger Donjon

物理锁死反而帮了攻击者

芯片本身并非没有防御机制,甚至还设计了硬件级的自毁式防御。DEBUGEN_LOCK 寄存器设计为写 1 后就直接锁死,直到全盘复位前都不可清除。但这种针对软件环境的只读锁,在物理激光面前暴露了局限性。

实测中锁定位被高能脉冲意外置 1 后,系统固件再也无法将 DEBUGEN 的值写回安全的禁用状态。硬件锁死机制原本是为了防止恶意软件篡改权限,在物理破坏下反而成了攻击者的驻留工具。 它把原本可能只是一瞬间打开的调试通道,固化成了稳定敞开的大门。

拿到底层通道后,完整的取密钥链条顺畅跑通。RP2350 的恢复复位机制(CTRL.RESCUE_RESTART)可以通过始终对外开放的 RP-AP 端口触发。攻击者通过该通道触发复位后,芯片直接停在启动 ROM 的等待路径。原本负责安全初始化的用户签名固件根本没有机会执行。

正常的安全流程中,存放密钥的 OTP page 48 拥有持久锁(PAGE48_LOCK1 = 0x3c3c3c),只允许 Secure 状态读写,Non-secure 状态无权访问。固件会在每次启动时写入 sw_lock[48] = 0b1111,在运行期收紧这把锁。由于固件被抢先阻断,运行期锁没有生效。攻击者用指令停住核心 1,利用已经获取的 Secure Mem-AP 权限,直接从 OTP 行 0xc08 至 0xc0f 读出了完整的 128 位挑战密钥。

复现成本从 25 万美元跳水到 1 万美元

在 Hacker News 的社区讨论中,25 万美元的显微设备总价让部分开发者松了一口气。但一位做过 MPC5566 攻击复现的工程师给出了另一笔账。25 万美元是用于探索未知芯片、记录管脚响应模式的整套顶配显微分析实验室造价。如果目标仅仅是复现已知的注入点位,熟练的硬件工程师用低于 2.5 万、甚至低于 1 万美元的家用实验台就能跑通全流程。

左:PEM 位点;右:激光故障作用点 图:左:PEM 位点;右:激光故障作用点。来源:Ledger Donjon

硬件攻击降本的路径非常清晰。开发者直接采用售价仅约 5000 美元的 ChipShouter 电磁注入工具,就能搭建出一套足以复现该攻击的简易平台。更激进的评估指出,此次攻击的核心步骤只需要翻转特定位置的单个比特。一旦具体的注入方法原理和硅片物理坐标位置被公开,下游研究者甚至可以将其做成盲打式的散弹扫描夹具。

安全对抗的真实门槛,其实是首批探路者的设备折旧费到底由谁来承担。 首批研究验证了可行性后,后续的攻击复制成本会呈指数级下降。

安全链强度等于最弱一环

一部分社区声音认为,要求一颗批发价约 0.80 美元的微控制器挡住物理层面的开盖注入并不现实。这颗芯片内含四个核心,两个插槽各可选 Arm Cortex-M33 或 RISC-V Hazard3 架构,在同等价位区间内的性价比已经拉满。另一方则坚持,与二十五年前设计、至今依然能利用数学复杂度抵御暴力破解的 AES 密文截然不同。硬件层面信任根的保质期,正在随着桌面级硅片攻击设备的迅速普及和降价而快速缩短。

「永久禁用」本质上是一个只存在于软件维度的承诺。只要决定最终权限的那个物理触发器本身没有任何冗余防护,前面的验证流程堆叠再多选票和校验逻辑,攻击者依然可以绕过外围防线一击击穿。 安全链条的极限强度,永远只等于最弱的那一环。

参考链接:

  • Ledger Donjon 技术博客
  • RP2350 数据手册
  • Hacker News 讨论