2014年のBadUSBが問う盲点|接続ゼロ署名の設計原理
ハードウォレットをPCに接続するとき、あなたは何を信頼しているだろうか。「USBで繋ぐだけ」という手軽さの裏に、2014年から公開されている攻撃手法が潜んでいる。
USBは「見えているものと違う」場合がある
2014年8月、セキュリティ研究者のKarsten NohlとJakob LellはBlack Hat USAというカンファレンスでBadUSBと名づけた研究を発表した。内容は単純で、かつ根本的だ。
USB機器はファームウェアと呼ばれる内部プログラムで動く。このファームウェアを書き換えると、USBメモリがキーボードとして振る舞い、接続と同時にPCへコマンドを送り込める。通信アダプタを偽装してネットワーク経路を書き換えることもできる。
問題はこの攻撃がOSレベルでは見抜けない点にある。PCは「USBキーボードが接続された」と認識し、そこから届くコマンドを正規の入力として実行する。ウイルス対策ソフトがデータをスキャンしても、ファームウェアの偽装は検出の対象にならない。BadUSBはUSBという設計そのものに内在する問題であり、ソフトウェアのパッチでは根本的に解決できない。
なぜハードウォレットが対象になるか
この文脈でハードウォレットを見直してほしい。多くのハードウォレットはUSB経由でPCと通信し、未署名のトランザクションを受け取り、署名済みデータを返す。その接続の瞬間、PC側が改ざんされていれば何が起きるか。
送金先アドレスをすり替えるだけなら、接続が成立した時点で済む。もしPCのマルウェアがUSBを通じてデバイスのファームウェアに干渉できるなら、「ハードウォレットの画面に表示されたアドレスを必ず確認する」という作業の前提が崩れる。
2024年に発生したBybit事件では、正規と思われる署名環境でUIが書き換えられ、担当者が気づかないまま偽のトランザクションに署名した。BadUSBのような物理接続経由の攻撃とは経路が異なるが、「表示されているものを信じる」という前提を攻撃する構造は共通している。
エアギャップ署名がUSBを「排除」した理由
この問題への回答がエアギャップ署名という設計思想だ。
仕組みは以下の通りだ。PCで作成した未署名のトランザクション(PSBT: Partially Signed Bitcoin Transaction)をQRコードに変換し、それをオフラインデバイスのカメラで読み込む。デバイスは完全にスタンドアローンで動作し、内部で署名を完了させる。署名済みデータを再びQRコードで表示し、PCのカメラが読み取る。
このプロセスに物理的な接続は存在しない。USB端子もケーブルも使わない。データの移動手段がQRコードだけであれば、PCのマルウェアが署名デバイスのファームウェアに触れる方法がない。BadUSBが前提とする「接続によるファームウェア書き換え」は、接続自体をなくすことで無効化される。
秘密鍵は電波も電線も届かない空間に置かれたまま、ただ光学的なデータ交換だけが行われる。これが「接続ゼロ」という設計の意味だ。PCがマルウェアに感染していても、署名デバイスには到達する経路がない。
取引所との非対称性
取引所に預けたBTCには、このような設計の選択が存在しない。
取引所はサーバー上でBTCを管理し、出金指示を内部システムで処理する。その署名がどのデバイスでどのように行われているか、顧客側には確認できない。BadUSBへの対策がとられているか、エアギャップが実装されているか、外部からは判断できない。
問題は所有権ではない。日本の資金決済法上、取引所には顧客資産の分別管理義務があり、預けたBTCは法的にあなたの資産だ。しかし「法的に誰のものか」と「必要なときにアクセスできるか」は別の話だ。取引所のシステムが攻撃を受けたとき、あるいは出金が停止されたとき、あなたには介入する手段がない。エアギャップ署名は、その介入手段を自分の手元に残すための設計だ。
今日できる一歩
使っているハードウォレットがUSB経由でPCと通信している場合、QRコード方式のエアギャップ署名に対応したデバイスへの移行を検討する価値がある。SeedSigner、ColdcardのQRモード、Foundation Passportなどが代表的な選択肢として挙げられる。
BadUSBが公開されてから10年以上が経過した。攻撃の手法は進化し続けている。設計段階でUSBを排除した仕組みだけが、その進化を無力化できる。あなたのBTCを守る責任は、あなた自身にしか持てない。
※本記事は一般的な情報提供を目的としており、投資助言ではありません。
この記事が参考になったら、セルフカストディの具体的な始め方もチェックしてみてください。
LINE登録でセルフカストディの始め方を学ぶ 正しい手順を無料でお届けします