セキュアエレメントへのサイドチャネル解析とは?
電磁サイドチャネル攻撃と、認証済みハードウェアの限界について公的研究が明らかにしたこと。
多くのハードウェアセキュリティの失敗は、チップレベルやファームウェア、サプライチェーン、関連ソフトウェア、ユーザーの行動に起因します。記録された多くの事例では、Secure Elementは「破られる」のではなく「回避」されています。本シリーズの前回記事で、この点について詳しく解説しました。
しかし、チップ自体が物理的に突破された事例も存在します。セキュアエレメントへの直接的な物理攻撃が記録されており、これらはチップ自身の暗号処理を標的とし、秘密鍵の抽出に成功しています。これは、チップが本来備えているハードウェア防御をも突破するものでした。
本記事では、電磁サイドチャネル研究に関する最も重要な記録事例を紹介します。
電磁サイドチャネル攻撃とは?
電磁サイドチャネル攻撃とは、暗号処理中のチップが発する電磁波を観測することで、使用されている秘密鍵を推測する手法です。
この攻撃は、暗号処理を行う物理チップが、(消費電力・タイミングの変化・電磁波放射など)観測可能な物理現象を通じて、処理中の秘密値に関連する情報を漏洩するという事実を利用しています。
理想的な定数時間暗号アルゴリズムでは、すべての処理が入力データに関係なく同じ時間・同じ電力で実行されます。これがタイミングや電力サイドチャネルへの標準的な防御策です。メーカーは信号を均一にし、外部から観測できないようにしなければなりません。
しかし、暗号処理全体を完全な定数時間で実装するのは難しく、わずかなズレが生じやすく、発見も困難です。
SEへのサイドチャネル解析事例
事例1:NXP A700X / Google Titan Security Key
ELECTROMAGNETIC SIDE-CHANNEL · NinjaLab · USENIX Security 2021 · CVE-2021-3011
NXP A700Xは、NXP SemiconductorsのP5xファミリーに属するセキュアエレメントで、銀行のICカードや本人確認書類、ハードウェア認証トークンなどに使われています。A700Xは、Google Titan Security Key(Googleアカウント保護用のハードウェア2要素認証トークン)にも内蔵されており、FIDO U2F認証にも使われています。また、YubicoのYubiKey NEOやFeitianの認証トークンにも搭載されています。
このチップは、デバイス登録時に秘密のECDSA鍵を生成・保存し、その鍵で認証チャレンジに署名します。FIDO U2Fプロトコルは、秘密鍵がデバイス外に出ないよう設計されており、正規のインターフェースで鍵を抽出することはできません。
攻撃の実行方法
NXP ECDSA実装のソースコードがない中で、研究者はまず同じ暗号ライブラリを使うNXP J3D081(オープンソースJavaCardプラットフォーム)を利用しました。
J3D081上でアルゴリズム構造をリバースエンジニアリングし、A700X実チップの脆弱な計算箇所の特定に必要な参照データを得ました。
物理的な準備:ホットエアガンとメスを用いてTitanのプラスチックケースを開封し、NXP A700Xを露出させました。EMプローブをチップ表面近くに配置。恒久的な改造は不要なため、デバイスは動作を維持します。
データ収集:Titanへ認証チャレンジを送信し、約6,000回のECDSA署名処理を実行。各処理ごとにEM波形(トレース)を収集し、全体で約6時間かかりました。
鍵の復元:収集したEMトレースをオフラインで格子ベースの鍵復元アルゴリズムで解析し、ECDSA秘密鍵の抽出に成功。復元した鍵を使い、物理Titanと同じ認証応答を返すソフトウェアクローンが作成可能となりました。
使用機材:Langer近接EMプローブ、Thorlabs三軸マイクロマニピュレータ、Pico Technology PicoScopeオシロスコープ。合計で約13,000ドル相当。
物理アクセス要件:デバイスを数時間保持し、Titanのケースを開封する必要があります(改ざん痕が残る)。ただし、デバイス自体はその後も正常動作し、被害者に返却可能です。
この攻撃が示すもの
NXP A700Xへの攻撃は、抽出防止設計のチップから秘密鍵を直接抽出することに成功した事例です。FIDO U2Fプロトコルの「秘密鍵はデバイス外に出ない」という保証が、物理実装の情報漏洩によって破られました。
NXP P5xファミリーはCC認証を取得しており、最終評価は2015年です。この攻撃は現行ハードウェアへの影響は限定的ですが、CC認証が見落としうるリスクを示しています。
事例2:Infineon SLE78 / EUCLEAK(YubiKey 5シリーズ)
ELECTROMAGNETIC SIDE-CHANNEL · NinjaLab · CHES 2024 · CVE-2024-45678
Infineon SLE78は、世界で最も広く使われているセキュアエレメントファミリーの一つです。YubiKey 5シリーズ(世界的なハードウェアセキュリティキー)に内蔵されている他、以下のようなセキュリティクリティカル用途に幅広く採用されています:
- 電子パスポート
- 銀行ICカード
- 自動車キーシステム
- IoT認証インフラ
- 暗号資産(仮想通貨)ハードウェアウォレット
SLE78はCC EAL6+認証を取得しており、これは商用分野で最も高いセキュリティ要求に対応する水準です。さまざまな製品構成で約80回のCC評価を通過しています。
Infineonの暗号ライブラリは独自仕様で、チップのファームウェアに組み込まれており、公開されていません。
脆弱性の発見:オープンプラットフォームアプローチ
NinjaLabのThomas Roche氏は、2021年Google Titan研究と同じ手法をもとに、同じ暗号ライブラリを使うInfineon SLE78ベースのオープンなFeitianプラットフォームを調査し、脆弱性を特定しました。
オープンなFeitianプラットフォームで特性を把握した後、実際のYubiKey 5Ciで検証を行いました。
物理的な準備:YubiKeyの外装を開封し、EMプローブをSLE78表面近くに配置。デバイスは動作を維持。
データ収集:ECDSA署名時(YubiKeyで認証操作ごとに発生)のEMトレースを収集。
鍵の復元:各トレースでモジュラー逆数計算時のEM放射を取得し、格子ベースアルゴリズムでECDSA秘密鍵を復元。
機材コスト:ノートPCを含めて約1万ユーロ。
物理アクセス時間:必要なEMデータ取得には数分程度の物理アクセスで十分。オフライン解析には追加時間が必要ですが、追加の物理アクセスは不要です。
この研究が示すもの
この手法により、YubiKeyのクローンが作成可能となります。高度な攻撃者が一時的にデバイスへ物理アクセスし、プローブとオフライン計算環境を用意すれば、YubiKeyが登録されたすべてのアカウントに対して有効な認証応答を生成できるソフトウェアコピーを作成できます。
評価手法によっては、十分に高感度なEM測定機材が含まれていなかった可能性や、CC EAL評価者が署名ルーチン内の異なる数学的処理に注目していた可能性があります。
EUCLEAKは、CC EAL6+認証が「既知の手法」と定義された脅威モデルに対して評価されたことを示す、最も明確な公的証拠です。
両サイドチャネル事例が示すもの
NXP A700X攻撃とEUCLEAKは、セキュアおよびセキュア隣接チップへの直接物理攻撃の記録として残りました。異なるメーカーを同一手法で攻撃し、いずれも成功しています。
チップ | 手法 | 年 | 主な発見 |
|---|---|---|---|
NXP P5xファミリー(CC EAL4+) | EMサイドチャネル(SCA) | 2021 | ECDSA秘密鍵を抽出し、FIDOトークンを検知されずにクローン化。NXP ECC cryptolibの非定数時間スカラ乗算に起因する脆弱性。 |
Infineon SLE78(CC EAL6+) | EMサイドチャネル(EEAによるタイミング) | 2024 | EAL6+認証済みチップからECDSA秘密鍵を抽出。14年・約80回のCC評価を通じて未検出の脆弱性。 |
セキュアエレメント設計の根本課題は、正しい暗号実装だけでは不十分であり、実装が定数時間であること、適切にシールドされていること、サイドチャネル解析に耐性があることも必要だという点です。
まとめ
本記事で紹介した2つの攻撃はいずれも、研究者がターゲットデバイスを数分〜数時間物理的に保持し、専門的かつ高額なラボ機材(最低1万〜1万3千ユーロ相当)と、電磁サイドチャネル解析・格子暗号解析に関する高度な知識を要しました。いずれも遠隔からの攻撃は不可能で、デバイス自体に損傷は残りません。
一般的なハードウェアウォレット利用者にとって、現実的な脅威は国家レベルの研究所やLangerプローブ・信号処理装置ではなく、フィッシング・ソーシャルエンジニアリング・悪意あるソフトウェア・シードフレーズの管理不備です。
主な参考文献
事例1 — NXP A700X / Google Titan:
- 論文全文:ninjalab.io/a-side-journey-to-titan/ および eprint.iacr.org/2021/028
- USENIX Security 2021発表資料:usenix.org/conference/usenixsecurity21/presentation/roche
- CVE-2021-3011
事例2 — Infineon SLE78 / EUCLEAK:
- 論文全文および公式研究ページ:ninjalab.io/eucleak/
- Cryptology ePrint Archive:eprint.iacr.org/2024/1380
- Yubicoセキュリティアドバイザリ:YSA-2024-03
- CVE-2024-45678 — NVD/NIST
- CHES 2024発表資料:hardwear.io/netherlands-2024/presentation/eucleak.pdf