我们可能很快就会知道谁赢得了价值 20,000 美元的 Raspberry Pi 和 Hextree RP2350 黑客挑战赛,但官方结果要到 1 月 14 日才会公布。

yB6wiDWXxE5MZmYV7D2CSG

工程师艾丹·卡伦在最近的第 38 届混沌通信大会上公开了他的 RP2350 黑客演示,并且发布了一个 GitHub 仓库来配合视频。 在对 RP2350 进行深入研究后,艾丹对芯片的第 53 引脚进行了电压注入故障攻击,成功激活了“永久禁用”的 RISC-V 核心及其调试端口,从而读取到了隐藏的秘密信息。

Raspberry Pi 通过 Raspberry Pi Pico 2 推出了 RP2350,作为 RP2040 的继任者,增加了安全功能以吸引商业和工业客户。 为了宣传这款新微控制器,他们与 Hextree 合作设计了 RP2350 黑客挑战赛,于 8 月在 DEF CON 上宣布。 挑战赛已于 2024 年 12 月 31 日结束,但官方获胜者将在 1 月 14 日揭晓。 艾丹在 12 月 27 日的大会上进行了演讲,并分享了一个 GitHub 仓库,详细介绍了他的黑客过程和 Python 代码。 然而,目前还不清楚艾丹是否是获胜者,因此这可能不是价值 20,000 美元的获胜黑客方法。(图片版权:艾丹·卡伦)

RP2350 带有四个新的安全功能,Raspberry Pi 特别强调了这些功能:安全启动、TrustZone、冗余协处理器(RCP)和故障检测器。 挑战赛的组织者在这些“完全安全”的芯片上隐藏了一个秘密,这个秘密将提供给申请者,第一个成功破解的参与者将获得 20,000 美元的奖金和挑战赛获胜者的荣誉。 比赛规则允许使用硬件和软件手段进行攻击,因此几乎没有任何限制。

Raspberry Pi 和 Hextree 将秘密隐藏在 RP2350 的 OTP(一次性可编程)内存中,这是一个一旦设置就无法更改的二进制代码。 使用 Picotool 将隐蔽代码写入 OTP。 然后,RP2350 的 OTP 内存被锁定在 Page Locks 硬件保护功能后面,设置为“不可访问”状态。 固件也已签名,启用了安全启动,并且禁用了芯片调试功能,因此无法通过串行线调试(SWD)接口获取秘密。 此外,所有其他启动密钥都被禁用,RP2350 故障检测器被打开并设置为其最高灵敏度。 它听起来确实被锁定了。

ibXQxW6autxYfKtTJxaTQG-1200-80

艾丹表示,他首先通过研究 RP2350 数据手册和文档中概述的依赖关系开始了他的黑客过程。 然后,他深入研究了 RP2350 如何启动并建立其安全设置,特别关注 OTP。 他的第一个想法是让 OTP 错误读取其关键位设置,这样可以让芯片以非安全的方式工作。 艾丹甚至对 RP2350 进行了 X 射线检查,并标注了芯片块。 然而,他强调这只是出于兴趣的探索,并不是破解挑战的关键。

研究促使艾丹关注第 53 引脚,标记为 USB-OTP_VDD,因为它连接到 OTP(和 USB)功能。 他想,也许可以通过外部干扰这个电源来影响这些功能。 因此,他取下了芯片并隔离了第 53 引脚(物理切割 PCB 走线),以便在重新组装的板上单独进行电气篡改。

有了这种硬件修改的设置,艾丹探测第 53 引脚以“注入我想要的任何电压”并检查发生了什么。 他保留了一个未受保护的 RP2350 板用于并排比较。 一旦硬件设置好,他就观察到一个受保护和一个未受保护的 RP2350 启动时的正常情况。 观察到 16 组尖峰,对应于启动时的 16 次初始 OTP 读取。 然后艾丹测试在启动过程中的某些点向第 53 引脚注入电源故障。 不幸的是,调试仍然被锁定。 接下来,他使用 Python 脚本在整个启动过程中 OTP 读取的 600 微秒范围内扫描故障电源输入的位置。 检查了调试功能,但从未变得可用。 因此,艾丹再次查看了具有调试功能的未锁定 RP2350 板以寻找线索。

然后,他观察到一些有趣的事情,因为 RISC-V 核心通过未受保护的 RP2350 上的故障显示出来。 艾丹然后使用另一个脚本来检查 RISC-V 调试访问端口在哪里显示。 这种技术也可以在受保护的 RP2350 上触发——现在可以将调试器连接到受保护的 RP2350 并从 OTP 中读取秘密!

秘密被破解了

VqTQyzSKcfsLApECYJYjTG-1200-80

“永久禁用”的 RISC-V 核心被故障唤醒以启用此访问。 艾丹解释说,故障 0x00030033 起作用的奇怪底层原因是它禁用了 Arm 和 RISC-V 核心,但 Arm 禁用指令具有更高优先级,使 RISC-V 保持开启状态。 重要的是,故障成功清除了 Debug_Disable。


文章标签: #RaspberryPi #黑客挑战 #RP2350 #安全机制 #电压注入

负责编辑

  菠萝老师先生 

  让你的每一个瞬间都充满意义地生活,因为在生命的尽头,衡量的不是你活了多少年,而是你如何度过这些年。