TOUCH THE SECURITY Powered by Security Service G

ナレッジ

2018.02.22

仮想通貨のウォレットはホットorコールド?

いやー乱世乱世、どうもパーソルテクノロジースタッフのアツオと申します。さて、最近周りは「仮想通貨で一発逆転ホームラン」「来年までには億り人や!!」などと完全に仮想通貨乱世状態でして。私自身もアコムさんのお力添えで仮想通貨をおっぱじめてみたりと、かなりの錯乱です。

そして遂に起こってしまった某取引所の不正送金事件。他人事ではありませんし、ストロングゼロを片手に震えながらニュースを見守る中、やはり気になったのはその原因。セキュリティ上の問題が二点指摘されており、一つ目は「ホットウォレットで管理していた」、二つ目が「マルチシグネチャを使用していなかった」という内容のものでした。

ホットウォレット?!マルチシグネチャ?!

今回は所有通貨の適切な管理方法を探るべく、各ウォレットのセキュリティ特性を考えながら、「MyEtherWallet」というウェブウォレットを"コールド"状態で利用する方法を紹介します。

1.仮想通貨のウォレット

仮想通貨を管理する場合、ウォレット(wallet)と呼ばれる、要するに仮想通貨に対し、財布の役割として仮想通貨の送出金できるもので管理します。ウォレットにも以下のような種類が存在します。

  • ウェブウォレット
  • 取引所
  • ソフトウェアウォレット
  • ハードウェアウォレット
  • ペーパーウォレット

ウェブウォレットや取引所は、オンライン上のサイトにログインして使用するもので、新しく始めた人等はこれを使っているのではないでしょうか。

ソフトウェアウォレットはPCやスマートフォンにアプリケーションを入れ、そのアプリケーション上で仮想通貨の管理、入出金を行う仕組みを提供します。

ハードウェアウォレットはUSB機器などになり、そのUSB機器に仮想通貨の情報を入れて仮想通貨を管理する事ができます。

ペーパーウォレットは入出金に必要なアドレスや、秘密鍵の情報を紙に印刷や書き写して管理する方法で、手軽に受け渡しをしたり、念のため印刷して持っておいたりと、アナログな管理ができます。

2.ホットウォレットとコールドウォレット

さて、この5つのウォレットの中でホットウォレットになりえるのは、何になるでしょうか?答えは「取引所」「ウェブウォレット」「ソフトウェアウォレット」の三つになります。

2-1.ホットウォレット

ホットウォレットというのは運用状態のようなもので、ネットワークに接続された状態でウォレットの運用するものになり、上の3つのウォレットに関しては、インターネットに常時接続している状態で使用する場合はホットウォレットという扱いになります。

ホットウォレットはインターネットに接続している状態の為、ウォレットの通貨を使用する際、入出金などを素早く手軽にできるというメリットがありますが、何かしらの手段で秘密鍵の情報をネットワーク越しに盗み見られたり、ログイン情報を取られたり、常にハッキングされる可能性がある為、セキュリティ面に問題があるとされています。

2-2.コールドウォレット

コールドウォレットはインターネットから切り離された状態で保管、運用をするウォレットになります。これにより秘密鍵や認証情報を不用意にネットワークに送信する事が無くなり、ハッキングに狙われる可能性を減らす事ができます。5つのウォレットの中の「ハードウェアウォレット」「ペーパーウォレット」がそれに当たり、PCなどから切り離して管理できますが、デメリットとして仮想通貨を使う場合は入出金など手間がかかります。

ハードウォレット

Trezor社のハードウェアウォレット
By The original uploader was Ladislav Mecir at English Wikipedia [CC BY-SA 3.0], via Wikimedia Commons

2-3.ウェブウォレットにおけるコールドウォレット寄りの運用

運用方法やウォレットによっては「ウェブウォレット」や「ソフトウェアウォレット」もコールドウォレット寄りの安全な運用ができます。

結局の所、認証に関する情報をオンライン上で扱わなければ、多少安全に行けるという話なので、オンラインとオフラインを使いこなしてウェブウォレットを使用すればコールドウォレットのように使用する事が可能です。

では実際に仮想通貨のウェブウォレットをコールドウォレット寄りの使用の仕方で使用してみましょう。

3.MyEtherWalletでのウォレット作成

今回使用するのは「MyEtherWallet」というウェブウォレットになります。イーサリアム系の仮想通貨でウェブから手軽に操作できる現在の代表的なもので、ICO(Initial Coin Offering)に参加する時なども推奨されている事が多く、使用する方も多いのではないでしょうか。

このウェブウォレットはwww.myetherwallet.com上のサイトからウォレットの作成、送出金ができるのですが、オフライン上からでもウォレットの作成と送金用のトランザクションを作成でき、コールドウォレットの状態で扱う事が可能になります。

まずオンラインでwww.myetherwallet.comにアクセスします。

※サイト全体を日本語用に変えています。

右下のフッタ部にある「Github: Current Site & CX」をクリック。

Githubにあるmyetherwalletのサイトを丸ごとダウンロードしましょう、「Clone or download」から「Download ZIP」をクリック。

ダウンロードしたファイルを解凍して、ローカルに置きます。

オフラインにしてローカルに置いた「/etherwallet-mercury/dist/index.html」をchromeで開きます。

「お財布の作成」画面にて、好きなパスワードを入力して「お財布の作成」ボタンをクリック。

Keystoreファイルをダウンロードして、「理解しました続けます。」ボタンをクリック。

秘密鍵をコピーアンドペーストして任意の場所に保存します。

※秘密鍵は赤く塗りつぶしていますが、文字列が実際には入っています。

「お財布紙情報を印刷」ボタンを押すとペーパーウォレットが取得できます。

「アドレスを保存してください。」ボタンを押してお財布作成は完了です。次の画面で「秘密鍵」を選択して、先ほど保存した文字列を入力し、「アンロック」ボタンを押せば、作成したウォレットにアクセスできます。

4.MyEtherWalletでのオフライン送金

MyEtherWalletにはオフライン送金という機能があり、インターネット上にあるWebサイトで秘密鍵を入力しなくても、送金の手続きに必要となるトランザクションコードを作成できます。

ヘッダ部の「オフライン送出」をクリック。

オンラインになり、送出元アドレスに自分のアドレスを入れ「情報生成」ボタンをクリック。

オフラインになり、「送出先アドレス」「送出する値/総量」「ガスリミット」「ガス価格」「Nonce」を入力します。(ガス価格とNonceは上で情報生成した値を入れる)

「秘密鍵」を選択して、秘密鍵を入力後、「アンロック」ボタンをクリック。

「トランザクション生成」ボタンをクリック。「署名済みトランザクション」をコピーします。

オンラインになり、ステップ3の「署名済みトランザクション」にコピーした文字列を入力します。次に「トランザクション送出」をクリックして送金を了承すれば完了!

いかがでしょうか。上記のやり方であれば秘密鍵や認証情報の使用時がオフラインなのでインターネット上での使用では無くなり、多少安全と言えるでしょう!(元々ウイルスにかかってたり、何かが動いてスクショ撮りまくられたあとリモートで回収されたりすると終わりですが…それも心配なら常時オフライン用PCを用意して…ギギギ…)

5.まとめ ~仮想通貨は今まさに乱世~

先日、ICOと呼ばれる新しい仮想通貨の上場前販売に行ってみたのですが、なんだか本当に乱世でした。販売開始のカウントダウンは0になったらDDoS攻撃によりサイトがダウンし、公式と偽って仮想通貨のアドレス散布、これによりそのアドレスに送れば販売されるトークンが送られてくると勘違いする人もいるわ、公式と偽ったフィッシングサイトもteregramでガンガンに送られてくるわ。そもそもICO自体がscam(詐欺)とか。

仮想通貨関係は、セキュリティエンジニアとしてのリテラシーを鍛える絶好の場所なのでは?などと思う今日この頃。大きな企業が運営している取引所でも、普通に自分のお金が消えうる?なんて、かなり管理方法を考えさせられますし。やっぱりハードウェアウォレットかなぁ?でも高いんだよなぁ…。

記事一覧に戻る