Ledger Nano X & Bluetooth – ワイヤレスハードウェアウォレットのセキュリティモデル
Ledgerは、Ledger Nano Xの発売を発表しました。. この新製品は、汎用性の高いLedgerのセキュリティOSを活用した、新しいハードウェアアーキテクチャで構成されています。 BOLOS.
Ledger Nano XはBluetooth Low Energy(BLE)接続に対応しており、AndroidおよびiOSデバイスとケーブルなしで接続することが可能です。 この機能はユーザーエクスペリエンスを大きく向上させる一方で、ワイヤレス接続のセキュリティに対する懸念を生じさせるものでした。 この件についてご説明したいと思います。
要約すると:
- Bluetoothで転送されるのは公開データのみで、重要なデータ(秘密鍵やシードなど)はデバイスの外部に送信されることはありません。
- 仮にBluetooth接続がハッキングされたとしても、Ledger Nano Xのセキュリティはセキュアエレメント(SE)を採用しており、操作をする際にはお客様の同意が必要です。
- Ledger Nano XのBluetoothには、最先端のBluetoothプロトコルが採用されています。 このBluetoothプロトコルでは、ペアリングを使用することによって認証を保証。 これは数値比較がベースになっており、機密性はAES暗号化によって保証されます。
- Nano Xをワイヤレス接続で使うことに抵抗がある場合は、Bluetoothを無効にし、USB Type-Cケーブルを使用することも可能です。
この仕組みと、これがハードウェアウォレットのセキュリティモデルに影響を与えない理由について詳しく説明します。
構造
この新しい構造は、Ledger Nano Sのものと少々異なりますが、非常に類似しています。
2個のチップを搭載:
- 最先端のセキュアエレメント(ST33J2M0)
- ワイヤレス対応デュアルコアMCU(STM32WB55)
STM32 MCUは、スマートフォン/パソコンとセキュアエレメント間の接続を担当し、プロキシとして動作します。
セキュアエレメントは、ユーザー入力を取得し、重要な情報が表示される画面を制御する役割を持ちます。 もちろん、製品のセキュリティを担うのもこのセキュアエレメントです。 シードと秘密鍵を保管し、暗号資産を管理するためのすべての操作を実装します。
Bluetooth Low Energy
Ledgerのセキュリティモデルへの影響
Bluetooth接続は、公開情報のトランスポート層としてのみ使用されます。 秘密鍵やシードがBLEスタックに公開されることは絶対にありません。 セキュアエレメント内に常に保持されます。
例えば、トランザクションを実行した際、スマートフォンまたはデスクトップのLedger Liveアプリでそのトランザクションが作成されます。その後、トランザクションはBluetoothまたはUSBを使用してMCU(STM32)に送信され、セキュアエレメントに直接中継されます。 次に、画面に表示される数量と送付先のアドレスを確認するよう求められます。 すべて正しければ、両方のボタンを押してトランザクションを承認します。
お使いのスマートフォン/コンピュータが侵害されても、Bluetoothリンクが侵害されても、STM32 MCUが侵害されても、最終的にセキュアエレメントによってトランザクション情報の確認を求められます。 画面には、トランザクションの正確な詳細が表示されます。 あなたの明示的な同意がない限り、トランザクションの署名は発行されません。
BLEの利用について
ただし、Bluetoothスタックは公開鍵またはアドレスを転送する可能性があり、それによってプライバシーの問題が発生する恐れがあります。 Ledgerが 最先端のBluetoothプロトコルを実装したのはこのためです。
BLE通信は2つのフェーズで行われます。
- 主要な取引所
- BLEチャンネルの利用
まず最初に、Ledger Nano Xとスマートフォンは、ランダムジェネレーターを使用して自身の鍵ペアを生成します。
このあとにペアリングがあり、ユーザーの承認後に、Ledger Nano Xとスマートフォンの間で楕円曲線暗号Diffie-Hellman鍵交換が行われます。 このフェーズは、Ledger Nano Xがペアリングするスマートフォンを信頼するフェーズであり、その逆も同様であるため極めて重要です。 Bluetoothプロトコルは、BLEに対する一般的な攻撃である、中間者攻撃(MiTM)を回避するための特定の構成を備えています。
Ledgerは、MiTM攻撃を回避するために、最先端のセキュリティ構成である数値比較を実装しました。 共通秘密情報が生成されると、Ledger Nano Xとスマートフォンの両方に数字コードが表示され、ユーザーはそれらの数字が同じであるかどうかを確認します。 この数値コードは、両者の公開鍵とランダムナンスからAES-CMACを使って計算されます。 これにより、衝突攻撃やダウングレード攻撃を回避しつつ、公開鍵の認証を実施することができます。 この場合、両者はお互いを正当とみなし、認証と機密性を保証した上で通信することができます。
この鍵交換プロトコルが完了すると、スマートフォンとLedger Nano Xの間に、AESベースの暗号化方式による安全なチャンネルを確立することができます。
古いバージョンのAndroidでは、数値比較を利用できない場合があります。 そのようなケースでは、セキュアエレメント がMiTM攻撃が実行可能であることをメッセージで警告します 。 この攻撃では、近くにいる攻撃者がまず不正なデバイスをLedger Nano Xとペアリングし、さらにスマートフォンともペアリングする必要があります。 そうすることで、すべてのパケットを傍受して転送可能になります。 その結果、Ledger Nano Xとスマートフォン間の通信を傍受したり、セキュアエレメントにコマンドを送信できるのです。 この様な場合でも、何らかのトランザクションを実行する際、ユーザーに確認および承認が求められることに変わりはありません。
セキュリティ監査
LedgerのBLEスタックは、STスタックを介して実装されています。 ザ・ LedgerのセキュリティチームであるDonjonは、Invalid Point攻撃などの最新の攻撃に対する、この実装のセキュリティの評価を実施しました。
古き良きUSBケーブル
それでも、Ledger Nano Xをワイヤレス接続で使うことに抵抗がある場合は、Bluetoothを無効にしてUSB Type-Cケーブルでコンピュータに接続することで、Ledger Nano Xの他のすべての機能にアクセスできます。
Ledger Nano Xは現在、予約注文を受け付けています。 詳細は下のバナーをクリックしてください。