ブロックチェーン/レベル IV · プロトコルを深く知る/4.3 カストディとプライバシー/レッスン 2
ハードウェアウォレット
エアギャップ、セキュアエレメント、そして本体の外に決して出ない鍵
用意するものハードウェアウォレットデバイス連携するソフトウェアウォレット(例:ElectrumやSparrow)USBケーブルまたはQRコードスキャナー
問い
- デバイスは、接続されたコンピューターに秘密鍵を一切明かすことなく、どのようにしてトランザクションに署名できるのでしょうか?
- セキュアエレメントチップは何を防ぎ、オープンなファームウェアによって外部の人は何を検証できるのでしょうか?
- 専用の機器を持つ攻撃者によってハードウェアウォレットが物理的に奪われた場合、どうなるでしょうか?
探究
- ハードウェアウォレットは、秘密鍵を隔離されたハードウェアに保存し、インターネットに接続されたコンピューターに鍵をさらすことなくトランザクションに署名する専用デバイスです。デバイスは承認前に送金先アドレスを自身の画面に表示し、確認できるようにします。この隔離により、接続先のホスト上のマルウェアが秘密情報を抜き取ったり、トランザクションの内容を改ざんしたりすることを防ぎます。初期の製品には、Trezor(SatoshiLabs、2014年)、Ledger Nano S(2016年)、Coldcard(Coinkite、2018年)があります。
- 設計は、セキュアエレメントチップと汎用マイクロコントローラーに分かれます。セキュアエレメントチップは物理的な抽出に強い一方、内部構造は非公開です。汎用マイクロコントローラーは完全に検証可能ですが、物理的な攻撃を受けやすくなります。いくつかのデバイス(たとえばColdcard、BitBox02、Trezor Safe)は、セキュアエレメントとオープンソースまたはソース公開型のファームウェアを組み合わせています。2020年には、Kraken Security Labsがデバイスの電子回路に物理的にアクセスしてTrezorのシードを抽出できることを実証しました。このトレードオフ、つまり透明性か耐タンパー性かが、現在のセキュリティ方針を決定づけています。
- 多くの署名ワークフローでは、PSBT(Partially Signed Bitcoin Transactions:部分署名済みビットコイントランザクション)が使われます。連携するソフトウェアウォレットが未署名のトランザクションを作成し、USB、NFC、またはQRコードでハードウェアデバイスに送ります。ユーザーはデバイスの画面で内容を確認し、承認します。署名はsecp256k1のECDSAまたはSchnorrアルゴリズムを使ってデバイス内部で生成され、返されます。秘密鍵が安全な境界の外に出ることはありません。
- エアギャップ型デバイスは、コンピューターとの直接のケーブル接続を避けます。ColdcardのようなデバイスはSDカード経由で署名し、ほかのデバイスはQRコードでトランザクションデータを受け渡します。SDカードやQRコードもデータの通り道であることに変わりはないため、侵害されたコンピューターがリクエストを改ざんする可能性があります。それを見抜くのが、デバイス自身の画面での内容確認です。ネットワークへの露出と鍵の保管を物理的に分離することが、長期保管における中核的なセキュリティモデルであり続けています。
- ハードウェアによる隔離があっても、サプライチェーンやデータベースに起因するリスクは残ります。非正規の販売業者から購入した改ざん済みのデバイスには、バックドアが仕込まれている可能性があります。2020年にはLedgerの顧客データベースが流出し、暗号の解読ではなくソーシャルエンジニアリングでユーザーを狙うフィッシング攻撃を助長しました。2023年のLedger Recoverをめぐる論争では、このオプションサービスがシードの暗号化されたシェアを第三者企業にバックアップするものだったことから、利便性とノンカストディアルの原則との間の緊張関係が浮き彫りになりました。
- ハードウェアウォレットは、日常の支払いに使うモバイルウォレットや取引所のウォレットとは異なり、たまにしかアクセスしない資金の長期保管に使われます。多くのユーザーはこのように資金を分けており、大部分をハードウェアデバイスに、少額をスマートフォンのウォレットに置いています。また、セルフカストディでは、ミスを取り消したり盗まれたシードを取り戻したりしてくれるヘルプデスクは存在しません。
重要な事実
- Trezor(2014年)およびLedger Nano S(2016年)は、最初に広く採用されたハードウェアウォレットの一つであり、Coldcardは2018年に登場しました。
- 2020年、Kraken Security Labsは物理的なアクセスによってTrezorのシードを抽出し、汎用マイクロコントローラーのリスクを実証しました。
- 2020年にLedgerの顧客データベースが流出し、ユーザーを狙った標的型フィッシング攻撃を可能にしました。
- エアギャップ型デバイスは、PSBTとSDカードまたはQRコードを使い、直接のデータ接続なしでトランザクションに署名します。
- セキュアエレメントチップは物理的な抽出に強いものの内部構造は非公開で、一部のデバイスはこれをオープンなファームウェアと組み合わせています。
- ハードウェアウォレットでは、ネットワークとのやり取りやトランザクションの作成のために、連携するソフトウェアウォレットが必要です。
演習 九・六・三・一
9集めるハードウェアウォレットの機種またはメーカーを9つ挙げてください。それぞれのチップの種類(セキュアエレメントかマイクロコントローラーか)と主な接続方式を書き留めてください。
6まとめるセキュリティアーキテクチャに基づいて、9つを6つに分類してください:クローズドなセキュアエレメント、オープンなファームウェア、エアギャップ専用、ハイブリッド、その他の設計上の違い。
3絞り込む6つを、透明性、物理的な耐性、利便性の間にある3つの中核的なトレードオフに絞り込んでください。
1結晶化するエアギャップが何を防ぎ、何を防がないのかを、1文で書いてください。
事実確認
日付、数字、主張は、下記に記載された公表資料と照合して確認しました。
- Kraken Security Labs, Trezor seed-extraction research (January 2020)
- Ledger, 'Data Breach Disclosure' (2020)
- A. M. Antonopoulos & D. A. Harding, Mastering Bitcoin, 3rd ed. (2023), ch. 5
- SatoshiLabs, Trezor documentation
- Coinkite, Coldcard user manual