
2026/10/15 19:24
低予算でのレーザー誤作動注入:RP2350 エディション
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
提供された要約は、不必要な冗長さがないまますべての本質的な情報を効果的に統合しており、明確かつ正確です。したがって、改善の余地はありません。
Text to translate
The provided summary effectively synthesizes all essential information without unnecessary verbosity. It is clear and accurate. Therefore, no improvement is necessary.
本文
RP2350 セキュアブート回避のための自作レーザ・フォルトインジェクションプラットフォーム開発報告
序論
- 背景: 2024 年 8 月、Raspberry Pi は RP2350 マイコンコントローラをリリース。RP2040 を継承しつつ、セキュアブートなど多数の新機能を搭載しています。
- 経緯: 数日後の DEFCON 2024 で、「RP2350 ハッキングチャレンジ」が開催されました。完全自作のレーザ・フォルトインジェクションプラットフォームを開発し、同チャレンジを克服しました。
- 本稿の目的:
- 独自プラットフォームの技術的詳細解説。
- 製造用ファイルとソースコードの共有。
- 単一のレーザー誘起フォルトがどのように RP2350 のセキュアブート機能を回避するかを説明。
⚠️ 警告: 本記事で紹介される「レーザ・フォルトインジェクションプラットフォーム」では、高出力の赤外線レーザー光源を使用します。危険を伴う部品であり、独自に実験を行う際は十分注意してください。
ハッキングチャレンジと RP2350 のセキュリティ機能
チャレンジの目的
- 対象: RP2350 マイコン搭載の Pico 2 ボード。
- 設定手順 (GitHub リポジトリに従う):
- RP2350 の OTP(ワンタイムプログラム可能な)領域に「秘密」データを書き込み。
- セキュアブート機能を有効化し、チップをロックする(SWD 無効化、フォルト検出器有効化など)。
- OTP 領域へのアクセス制限のために、署名済みファームウェアを書き込む。
- ゴール: 秘密データを復号化する手法を見つけると同時に、セキュアブート機能を回避することを試みます。
セキュリティ機能の詳細
- 強制機構: RP2350 の Boot ROM に含まれるコードが強制。ソフトウェア手法を超えたハードウェア特定機能を活用。
- レダンダンスコプロセッサ (RCP):
- Boot ROM 内で使用され、フォルトインジェクション攻撃および ROP 攻撃へのハードウェア支援型対策を提供。
- 主な機能:
- スタックカニィー値の生成および検証(ランダムシードに基づく)。
- 命令実行順序の検証。
- 2 つのパターン保存ブール値の検証。
- XOR パリティマスクによる冗長化されたデータの検証。
- ソフトウェア検出パニック時のプロセッサ停止。
- フォルト検出器 (Glitch Detector):
- 電圧または電磁的フォルトインジェクション試行を検出し、システムをリセット。
- チャレンジでは最高感度レベルに設定されていました。
記事の概要:なぜレーザ・フォルトインジェクションなのか?
レーザ選択の理由
- Boot ROM は監査済みであり論理バグは見つかりませんでした。
- オンライン上のコメントによると、電圧フォルトインジェクションは RP2350 のフォルト検出システムにより緩和されていました。
- 結論: レーザビームの焦点をフォルト検出回路からずらすことで、検出器を作動させずにフォルトを注入できる可能性を探るためを選択しました。
安価なプラットフォーム事例
通常は高コストですが、以下の「安価な」アプローチが存在します:
- 「The Masses for Laser Fault Injection」: レーザー彫刻ハードウェアの流用。
- NetSPI の「RayV-Lite」: 技術詳細は公開されていない(※後日 Blackhat 2024 や NetSPI ウェブサイトに資料が公開)。
サンプルの準備とダイ露出処理
LFI は集束レーザーをシリコングリに照射し、トランジスタへの光電効果を利用して故障を誘発します。パッケージの上側ではなく裏面からのアクセスを選択しました。
ダイ露出のステップ
- はんだ取り: ホットエアーリフローステーションを使用。
- 材料除去: Dremel 風の工具(Amazon パート番号:UKH062_FR)でグラウンドパッド周辺を削る。銀色のペースト層をスクレイプしてダイ裏面を露出。
- PCB 接続: 小さな LDO を含む専用 PCB にはんだ付け。電源・制御信号を FFC コネクタで外部へルーティング。
- コスト: メイン基板 BOM 10 ユーロ未満、I/O ボード BOM 15 ユーロ未満。
グラウンド接続の修復(重要)
グラウンドパッド除去により IC の接地破壊が発生するため、復元処理が必要です。
- 手法: 露出した銅/金粒子や切断ワイヤ部分に**導電性エポキシ (MG CHEMICALS 9410)**を塗布し、ホットエアー(約 150℃)で固化させる。
- 制限事項:
- 高クロック動作は通常不可能(過剰な電流消費)。
- I/O パッドの動作停止や信号整合性問題のリスク。
- ただし: Boot ROM は保守的な設定であり、低クロック動作下では攻撃には十分機能します。
レーザ・フォルトインジェクションプラットフォームの詳細設計
システム構成
- 位置決めステージ: OpenFlexure Delta Stage に基づく高精度移動(3D プリント+ステップモーター)。
- 光学サブシステム: ダイの可視化と高出力レーザーパルスの集束。
赤外線光の必要性
- シリコンは可視光に対して不透明。
- 波長 1064nm の赤外線を使用し、裏面からのフォルトインジェクションを実現。
オプティカルアセンブリー(光学部品)
市販品を多用しましたが、赤外特性への対応には妥協がありました。
| 部品 | 仕様/入手先 | 備考 |
|---|---|---|
| レーザードライバ基板 | カスタム PCB | 高パワーパルス生成用。 |
| 対物レンズ | AliExpress (90 ユーロ) | 顕微鏡用(無限遠補正)。 |
| 斜方照明 LED | 1064nm | ダイイメージング用。攻撃時はオフ。 |
| イメージングカメラ | Raspberry Pi Camera v2 NoIR | IR フィルターなし。感度向上。 |
| レーザーダイオード | Alibaba (約 300 ユーロ × 5pcs) | 1064nm, 定格 3W(過負荷運転)。 |
| その他の光学部品 | ビームスプリッター、チューブレンズ等 | AliExpress 購入。可視光用仕様のため色収差あり。 |
ビームスプリッターの特性
- 反射係数:90%
- レーザービームから来る光を優先的に反射させる設計。
イメージングとフォーカシング
- イメージング結果: 1064nm LED で照明し、カメラで確認。プロフェッショナル機程の解像度は劣るが、アライメントには十分。
- フォーカシング結果:
- スポットは楕円形で大きめ(光学部品仕様の制限)。
- レーザダイオードが高発散性のため、集光は不完全。
レーザ駆動基板とパルス発生原理
⚠️ 警告: 高出力レーザー操作は危険です。独自実験時は十分な注意が必要です。
- 制御方法: USB 経由でホストコンピュータが電圧設定・パルス送信を制御。ピンヘッダ也可直接接続可能。
- 回路設計 (RLC):
- コンデンサ充電後、スイッチ素子(GaN FET)でパルスを発生。
- 理論値:
,R=1.4Ω
,L=33nH
。C=60nF
- レーザーダイオードの調達難易度:
- 高出力・特定波長品は高価で入手困難。
- 定格電流(3.8A)を超えて使用(ピーク電流が絶対最大値の 40 倍以上)。
- しかし、パルス時間が短いという理由からダイオード損傷は回避できた。
フォルトインジェクションの結果
- ターゲットエリア: ダイ表面の一部のみで成功。
- バイパス原理:
とs_varm_crit_mem_copy_by_words
の間にフォルトを注入し、RAM 内に異なるデータをロードして SHA-256 ハッシュ計算を不正に通過させる。sb_sha256_update_32
攻撃プロセスと技術的詳細
アタックシナリオの分類
以下の 3 つの主要なフールインジェクションパターンを使用:
- シナリオ #1 - 単一命令「スキップ」 (データ改ざん)
呼び出し後のレジスタ変更をバイパス。sb_sha256_update_32- QSPI バス上のデータを直接書き換える(カスタム I/O ボードのデュアルフラッシュ機能利用)。
- シナリオ #2 - レジスタ値の汚染
- フォルトにより R4 がフラッシュメモリの開始地点を指すように変更。
- 攻撃者の制御下にあるデータ(フラッシュオフセット 0x0 など)を使用。
- シナリオ #3 - 命令変異 (Branch Misguided)
命令を変異させ、R4 の復元失敗を誘発。pop {r4,pc}- R4 を攻撃者の制御下にあるアドレスに設定し、強制実行する。
ソフトウェアアーキテクチャ
- FPGA:
- QSPI バス活動(
呼び出し直前)をリアルタイム監視。sb_sha256_update_32 - ランダム遅延命令(RCP による最大 127 サイクル)の存在により、完全な同期は困難だが、数回試行で成功。
- QSPI バス活動(
- 位置決めステージ制御: Raspberry Pi シングルボードコンピュータ+Web API で X/Y/Z 座標制御。
- フラッシュメモリ組織化:
- 2 つの QSPI フラッシュを使用。
- 1 つはパッチ済みファームウェア(シェルスクリプト含む)、もう 1 つは未変更ファームウェアを複数配置。
- シェルスクリプト実行により、XIP_BASE + 0x10000 に任意のペイロードを実行。
攻撃ループ
- 第 1 フラッシュを選択して RP2350 を起動。
- QSPI バス読み込みを監視し、
が完了するまで待機。s_varm_crit_mem_copy_by_words - 第 2 フラッシュを選択。
- 少し遅延後、レーザーパルスを照射。
が成功(バイパス)したか検証。sb_sha256_update_32- 失敗の場合は電源オフしてリトライ。
結果と改善点
- 達成: Glitch Detectors をトリガーせずにセキュアブートを回避し、OTP 領域へのアクセスが可能になりました。
- 課題:
- スポットサイズが大きく、位置決め誤差が成功率を低下。
- フォルトが強すぎてシステムクラッシュするケースが多い。
- レーザパルス期間の最適化は物理部品変更が必要で手間がかかる。
- 改善案: 小型スポット用光学系の実装、FPGA を使った動的ペイロード供給など。
結論
- 安価な LFI の実現: 妥協点はあるものの、予算内で RP2350 に対する攻撃プラットフォームを構築可能でした。
- セキュリティの限界:
- RP2350 の Boot ROM は強化されていますが、Boot ROM 内の一部領域(RCP 保護範囲外)にフォルトを注入し、QSPI バスを介してペイロードを供給すれば、本質的にセキュアブートを無力化できます。
- これにより OTP 領域の秘密データへのアクセスが可能になりました。
- 今後の方向性: EMFI(電磁故障インジェクション)を用いたフォルト検出器回避などの研究も可能です。
開示と参考文献
- Raspberry Pi への対応: 初回成功後速やかに連絡し、侵入の正当性が認められました。次の Boot ROM では標的領域の周囲にさらなる強化が施される予定です。
- 共有リソース:
- 完全自作プラットフォームの詳細と設計ファイルは公開。
- Raspberry Pi ハッキングチャレンジへの回答として提出済み。
参考文献
- Andrew 'bunnie' Huang. Infra-red, in-situ (iris) inspection of silicon. arXiv:2303.07406 (2023).
- Jemellie Galang et al. A green laser pointer hazard. arXiv:1008.1452 (2010).
- Samuel McDermott et al. Multi-modal microscopy imaging with the openflexure delta stage. Opt. Express, 30(15):26377–26395 (2022).
- Antonios Stylogiannis et al. Continuous wave laser diodes enable fast optoacoustic imaging. Photoacoustics, 9:31–38 (2018).