HeadlinesBriefing favicon HeadlinesBriefing.com

Laser-Fault-Injection umgeht RP2350 Secure Debug

Hacker News •
×

Die Photonenemissionsmikroskopie lokalisierte ein Register, das Debug-Funktionen auf dem Raspberry Pi-Mikrocontroller aktiviert. Laserpulse an zwei nahegelegenen Positionen stellten den Debugger-Zugriff auf die Secure-Welt des Chips wieder her, obwohl Debug dauerhaft deaktiviert worden war. Unter Verwendung dieses Zugriffs nach einem Rettungs-Reset haben wir ein Geheimnis aus dem einmalig programmierbaren Speicher wiederhergestellt. Der Reset stoppte den Chip, bevor die Firmware ihre Laufzeitsperre anwenden konnte, sodass die Seite sicher lesbar blieb. Der Angriff erfordert physischen Zugriff, destruktive Vorbereitung und Laborausrüstung im Wert von etwa 250.000 $.

Der RP2350 ist der Dual-Core-Mikrocontroller von Raspberry Pi: Jeder Prozessorsockel kann beim Booten entweder einen Arm Cortex-M33- oder einen RISC-V Hazard3-Kern auswählen. Zu seinen Hardware-Sicherheitsfunktionen gehören Secure Boot, Armv8-M TrustZone, permanente Debug-Deaktivierungseinstellungen und Glitch-Detektoren. Raspberry Pi lud Forscher ein, diese Schutzmaßnahmen im Rahmen seiner RP2350 Hacking Challenges zu bewerten. Die erste Challenge lief von August bis Dezember 2024 gegen den Originalchip. Nachdem mehrere Erkenntnisse behoben wurden, veröffentlichte Raspberry Pi die A4-Revision – die Version, die wir getestet haben.

Die permanente Sicherheitskonfiguration und die Boot-Public-Key-Fingerabdrücke werden im einmalig programmierbaren (OTP) Speicher gespeichert: Jedes Bit kann einmal von 0 auf 1 umgeschaltet werden und nie zurück. OTP ist in 128-Byte-Seiten organisiert, die durch zwei persistente Sperrzeilen geschützt sind. Bei einem OTP-Reset initialisieren die persistenten LOCK_S- und LOCK_NS-Werte eine Laufzeitsperre pro Seite. Die Firmware kann diese Sperre verschärfen, aber nicht lockern. Die Laufzeitänderung überlebt diesen Reset nicht.

Ein externer Debugger kommuniziert über die Serial Wire Debug (SWD)-Schnittstelle von Arm. Secure Debug bezieht sich auf Mem-AP-Zugriff mit Secure-Attributierung. Das permanente CRIT1.DEBUG_DISABLE-Flag schließt diesen Pfad. Wenn es gesetzt ist, treibt es die Enable-Signale für die Mem-APs beider Kerne auf Null und verhindert Buszugriffe. Der SW-DP und der RP-AP reagieren noch, aber kein Kern-Mem-AP kann auf den Systembus zugreifen. Das speichergemappte DEBUGEN-Register ermöglicht es Secure-Software jedoch, das Mem-AP jedes Kerns und Secure-Zugriffe wieder zu aktivieren. Das Datenblatt besagt, dass DEBUG_DISABLE „durch Setzen aller Bits dieses Registers vollständig überschrieben werden kann“.

Wichtige Entitäten: Unternehmen: Raspberry Pi, Arm, Ledger Donjon