仮想通貨の相場は大きく変動する場合がございます。また、レバレッジ取引を行う場合は投資額を上回る損失が生じる可能性がございます。

多種の仮想通貨を扱える人気のあるハードウェアウォレットである TREZOR を狙ったWebサイトのハイジャック事件が、2018年6月末に発生しました。ハイジャックされ、フィッシングサイトと化したWebサイト上で、ニモニックコードの入力を促され、入力してしまったユーザは仮想通貨の秘密鍵が窃取される事態になりました。

目次

  • 1、ハードウェアウォレットとは
  • 2、ニモニックコードとは
  • 3、ハイジャックによるニモニックコードの窃取
  • 4、ハードウェアウォレットを使用しても安全ではない
  • 5、どのように攻撃から守るか

1、ハードウェアウォレットとは

前提知識として、ハードウェアウォレットについて簡単に説明します。

仮想通貨の所有権は所有者に紐づく秘密鍵によって証明されます。ビットコインを例にあげましょう。ボブが自身の秘密鍵に紐づくビットコインの所有権をアリスに移動する(送金)場合のイメージは次の通りです。

※送金のイメージ(出典 田篭 照博 著:堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門(技術評論社))

① 分散台帳上でボブに所有権があるビットコインに錠がかけられている。所有権をアリスへ移す場合は、ボブの秘密鍵で解除する

② 所有権を移動する際に、アリスの秘密鍵のみが解除できる錠をかける

ボブの秘密鍵を持っていれば、上記のオペレーションは可能です。つまり、秘密鍵を盗まれるということは仮想通貨を自由に移動されてしまう(盗まれる)のと同義のため、如何に秘密鍵の管理が大事かはご理解いただけるでしょう。ハードウェアウォレットとはこの秘密鍵をセキュアに保管するためのデバイスです。ハードウェアウォレットでは秘密鍵がデバイス内に保管されており、デバイスの外には出ないため、一般的にセキュリティレベルが高いと言えます。パソコン内に秘密鍵をそのまま保管する場合を想定してください。仮にパソコンがマルウェアなどに感染した場合は簡単に秘密鍵を窃取されます。一方のハードウェアウォレットの場合はパソコンやスマホなどの端末にUSB接続して利用するものの、仮に接続している端末が感染しても秘密鍵を盗むことは出来ません。上記のオペレーションは送金用のトランザクションを作って、秘密鍵で署名することで可能となりますが、署名自体をハードウェアウォレット内で行うため、秘密鍵を外に出す必要がなく、「秘密鍵の直接的な窃取への耐性」という意味ではセキュリティレベルが高いのです。

2、ニモニックコードとは

2つめの前提知識として、ニモニックコードについて説明しましょう。はじめに、秘密鍵とはランダムに生成される非常に大きな整数です。理由はいくつかありますが、仮想通貨を扱う場合は用途に応じて複数の秘密鍵を生成するのが一般的です。この場合、その都度、ランダムな数を生成する必要がありますが、バックアップのことを考えると生成のたびにバックアップしなければならず、大変です。また、バックアップ前にハードウェアウォレットが破損してしまっては、バックアップのない秘密鍵に紐づく仮想通貨を失ってしまうことになります。しかし、ニモニックコードと呼ばれるものをひとつだけ控えておけばすべての秘密鍵をバックアップするのと同義のことが実現できます。

簡単に原理を説明しましょう。ブロックチェーンのウォレット(秘密鍵と公開鍵を保存する箱のようなもの)には階層的決定性ウォレットと呼ばれるものがあります。階層的決定性ウォレットとは、ランダムな整数であるシードとよばれるものをインプットにして、無限に秘密鍵を生成することが可能な仕組みです。

※マスター秘密鍵、マスター公開鍵、マスターチェーンコードの生成イメージ(出典 田篭 照博 著:堅牢なシステム開発/運用を実現するための-ビットコイン[技術]入門(技術評論社))

※親鍵から子鍵を生成するイメージ(出典 田篭 照博 著:堅牢なシステム開発/運用を実現するための-ビットコイン[技術]入門(技術評論社))

詳細な説明は割愛しますが、ポイントだけ説明すると、階層的決定性ウォレットの場合は、シードをインプットにしてマスター秘密鍵、マスター公開鍵、マスターチェーンコードというものを生成します(図2)。さらにそれらをインプットにして、子の秘密鍵、公開鍵、チェーンコードを生成します(図3)。以降は同様にしていくらでも子鍵、孫鍵、といったぐあいに子孫の鍵を生成することが可能です。ここでのポイントはシードが同じであれば、必ず同じ鍵が生成されるということです。したがって、シードさえ保管しておけば、同じ処理にかけることによって鍵を復元可能です。しかし、シードは大きな整数(表示される場合は一般的に16進数で表示されるため、英数字で表示されます)で無機質なものですので人間が覚えたり、控えたりするには難があります。ニモニックコードとは簡単に言うと、シードを無機質な英数字の羅列ではなく人間が理解しやすい単語の羅列で表現しているものと考えるとよいでしょう。厳密にはニモニックコードそのものがシードになるわけではなく、ニモニックコードからシードを生成します。

TREZORの場合、初回起動時に紛失や故障に備えて、当該ニモニックコード(TREZOR上ではRecovery Seed と表現される)を生成し、TREZORのディスプレイ上に表示します。ユーザはそのニモニックコードを控え、安全な場所に保管しておきます。例えば、TREZORが故障した場合は、新しいハードウェアウォレットを購入して、当該ニモニックコードを入力すれば、故障したTREZOR内に保管されてあった秘密鍵を復元することが出来ます。言い換えると当該ニモニックコードさえあれば誰でも秘密鍵を復元可能なため絶対に他人に教えてはならないものです。

3、ハイジャックによるニモニックコードの窃取

今回の攻撃はどのようなものであったか解説します。具体的な攻撃方法は不明ですが、TREZORを操作するためのWebサイトがなんらかの理由でハイジャックされました。TREZORの正規サイト(サーバ)そのものがフィッシングサイトになったわけではなく、TREZORのサイトのURLにアクセスしたら攻撃者のサイトにアクセスさせられてしまう状態でした。(可能性としてDNSポイズニング、BGPハイジャックという攻撃が示唆されています)

TREZORを端末にUSB接続すると、専用のアプリケーションから操作が可能となります。例えば図4はパソコン端末上で起動する、Chrome拡張のTREZOR用のアプリケーションでビットコインの送金を行うための画面です。Chrome拡張とはいえ、通常のWebサイトと同じイメージを持っていただいて問題ありません。

専用アプリケーションは送金に必要な情報を取得するために、一度インターネット上にあるTREZORのサイトにアクセスしますが、攻撃発生時は攻撃者のサイトに誘導される状態でした。攻撃は不正なサイトを通じて、デバイスが破損した旨のメッセージを表示すると共に、リカバリーのためのニモニックコードの入力をユーザに求めたのです。悪性サイトではサーバ証明書のエラーが出ていたため、セキュリティ意識の高いユーザは気づけましたが、罠にはまってニモニックコードを入力してしまったユーザは、そのニモニックコードをインターネット経由で攻撃者のサイトに送ってしまい、結果として、秘密鍵の復元、仮想通貨の不正送金を許してしまう事態となりました。

※TREZORの送金画面

4、ハードウェアウォレットを使用しても安全ではない

ハードウェアウォレットを利用したら安全という論調も世間にはありますが、この事例が語っているように、その論調は間違いです。確かに秘密鍵のハードウェアウォレットからの直接的な窃取への耐性は高いと言えますが、本事例のような場合は不正送金を許してしまいます。ハードウェアウォレットとはいえ、オンラインにつながっている端末に接続する場合は、攻撃者にインターネット経由で攻撃される可能性があり、オンライン端末で使うことそのものにリスクがあると言えます。

5、どのように攻撃から守るのか

悪性サイトにアクセスしてしまった場合はどのように被害を防げたのでしょうか。上述したとおり、今回のケースではサーバ証明書のエラーが出ていたため、そこで気づけた可能性がありますが、エラーが発生しないサーバ証明書を用意するなどの、より洗練された攻撃が発生することも想定出来ます。

一般的にハードウェアウォレットの場合は、アプリケーション上で指示する重要なオペレーション内容やアドレスなどの表示内容をハードウェアウォレット上のディスプレイにも表示します。今回のケースのようにニモニックコードの入力を、ハードウェアウォレットが指示する場合は、それに関連するメッセージがディスプレイにも表示されるのです。そして、重要な点として、ハードウェアウォレットのディスプレイに表示されるものまで、攻撃者が直接干渉することは基本的にできません。したがって、今回のようなケースでは、アプリケーション上でニモニックコードの入力を促されていても、ディスプレイにそれに関連するメッセージが表示されていなければ、異変に気づけるのです。ディスプレイの値を常に慎重に確認するというのは、攻撃への対策として非常に有効と言えるでしょう。

パソコンをマルウェアに感染させて不正送金につなげる手口も発見されていますがこのような攻撃への対策にも有効です。例えば、ハードウェアウォレットに送金先アドレスを転送するまでのどこかの経路で、送金先アドレスを攻撃者のアドレスに置き換えるようなマルウェアに感染していたとしても、ディスプレイには攻撃者のアドレスが表示されるため、そこで異変に気づくことが可能です。

概して、ハードウェアウォレットを利用する場合は、アプリケーション上(接続元の端末上)の情報を真とするのではなく、必ずハードウェアウォレットのディスプレイの情報を真とする慎重なオペレーションを心がけるようにしてください。

この記事が気に入ったら
いいね!しよう
最新情報をお届けします

この記事を書いた人:田篭 照博

田篭 照博

「堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門」「堅牢なシステム開発/運用を実現するための ビットコイン[技術]入門」などの著者である田篭照博氏によるコラム。日本で初めてブロックチェーン診断としてスマートコントラクトのセキュリティ診断サービスを開発・リリースしたブロックチェーンセキュリティの第一人者が最新のセキュリティと脅威動向を紹介します。

主要仮想通貨

国内人気取引所一覧