見出し画像

メタマスク乗っ取り対策にハードウェアウォレットを導入する方法 ~アドレスを変更せずに流用する~

この記事では、現在使っているアドレスを変更せずにハードウェアウォレットを導入する方法を解説します。
例えば、OpenSea等でNFT取引を行っている場合、アドレスは変えたくないですよね。標準的なセットアップを行うと新規アドレスになってしまうので、自分で導入する際にアドレスを継続利用する方法を探しましたが、あまり情報がなかったので、まとめてみました。

さて、殆どの方はウォレットにMetaMask(以降メタマスク)を使っていると思いますが、ハードウェアウォレットを組み合わせることで、ハッカーの攻撃で資産を失うリスクを軽減することができます。
最近、ウォレットを乗っ取られたという話をよく聞きます。多額の資産やNFTのコレクション、クリエイターの方はアドレスが自身のブランドの証にもなっているのと思うので、セキュリティへの関心が高まっていると思います。多少面倒ではありますが、後悔先に立たずという事でサクッと導入しました。

概要

先にやることを言っておくと、利用中のメタマスクシークレットリカバリーフレーズハードウェアウォレットに登録し、メタマスクハードウェアウォレット用に再セットアップします。

取引の時は、ハードウェアウォレットをUSB等でパソコンに繋いで、PINコードを入力し、「承認」時はハードウェアウォレットのボタンを押すようになります。

Lender nano Sの場合、左右のボタンで「選択」、同時押しで「決定」というシンプルなUIです

セキュリティ確保の仕上げに、シークレットリカバリーフレーズはオフラインのハードウェアウォレット、紙、金属板等にのみ記録し、分散して保管しておきましょう。

リカバリーフレーズの記録はメモ帳やHW付属の用紙でも十分ですが、金属製だと水害や火災にも多少の安心感があります(火災だと溶ける気がしますが。。)
金属製のモノは結構お高いですがカッコいいです(笑)

後は、パソコンやクラウド等のオンライン上からシークレットリカバリーフレーズを削除します。これでハッカーはオンラインではあなたの「秘密鍵」を盗むことができなくなります。


メリット

・オンラインのハッキングに対してセキュリティが向上する
・複数端末で同じアドレスのメタマスクを安心して使える
 (ハードウェアウォレットを接続した時だけ承認できる)

デメリット

・1万円程度の費用とセットアップの手間が発生する
・承認時にハードウェアウォレットを操作する必要がある
 (クリック戦争には不利!)

その他

・モバイル版メタマスクはハードウェアウォレットに非対応 *)<追記>スマホからOpensea等に接続する方法は別記事参照
・人為的なリカバリーフレーズの流出には効果がない
・悪意のあるコントラクトの誤承認防止には効果がない
・水害、火災への耐性はない
・いつか故障する(消耗品)
・物理的盗難リスクはある(但しPINコードを3回間違えると初期化される)


なぜハードウェアウォレットなのか?

そもそもハードウェアウォレットを知らない方もいらっしゃると思うので簡単に説明します。ご存知の方は読み飛ばして「手順一覧」へ進んでください。

ブロックチェーンを操作する唯一の方法は「秘密鍵」を使う事です。そのため、ハッカーはあの手この手で「秘密鍵」を盗み、あなたの資産を奪おうとします。

では、あなたの大切な「秘密鍵」はどこにあるのでしょうか?

普通にメタマスクを使っていると、あなたの「秘密鍵」はパソコンやスマホの中に保存してあります。メリットとして簡単に利用できるのですが、オンライン状態なのでハッカーに狙われやすいのがデメリットです。

ハードウェアウォレット(以降HW)は、あなたの「秘密鍵」をハッカーの手の届かないオフライン端末に暗号化して保存することで、仮にパソコンやスマホをハッカーに乗っ取られても、「秘密鍵」を盗まれることを防いでブロックチェーンへの不正アクセスを防止します。

シークレットリカバリーフレーズ

「秘密鍵」は数字の羅列で人間には扱い辛いので、実際にあなたが管理するのは「シークレットリカバリーフレーズ」です。シードフレーズなどとも呼ばれますが、以降はリカバリーフレーズと呼びます。
1つの「リカバリーフレーズ」からは複数の「秘密鍵」を生成できます。また、リカバリーフレーズにもいくつか規格があり2048種類の単語から12, 18, 24語等の組み合わせで構成されます。

ここで、メタマスクは12語のBIP44という規格のリカバリーフレーズを使っています。一方、HWは多くのチェーンの秘密鍵に対応する為、デフォルトでは24語のリカバリーフレーズが記録されていることが多いです。しかし、12語のリカバリーフレーズにも対応しているので、メタマスクで現在使っているリカバリーフレーズをHWに上書きすることで、今までと同じアドレスを使う事ができます。(ただし、特に現状のアドレスを流用する必要がなければ、ハードウェアウォレットに最初から入っている24語をそのまま使う事をお勧めします)

手順一覧

以下に手順を示します。これだけで分かる方はサクサクと進めましょう。

  1. メタマスクのリカバリーフレーズをメモする(メモ済みですよね?)

  2. Ledgerを購入する(nano Sなら1万円位)

  3. Ledgerをセットアップしてリカバリーフレーズを入力する

  4. 確認の為に他のブラウザや端末にメタマスクをセットアップする(推奨)

  5. メタマスク拡張機能をブラウザから一旦削除する

  6. メタマスク拡張機能をブラウザに登録しHW用にセットアップする

  7. LedgerのETHアプリ設定で「Blind signing」をEnabledにしておく

以降では、1つずつ説明していきます。


1.メタマスクのシークレットリカバリーフレーズをメモする

メタマスクを導入する際にメモを取ることを強く推奨されるので、既にメモを取っている場合はそれを使ってください。

表示方法は「設定」→「セキュリティとプライバシー」から下記の赤字「シークレットリカバリーフレーズを公開する」をクリックしてください。12語の英単語が表示されますので、これを正確に記録してください。

尚、メタマスク起動時に毎回入力するパスワードはシークレットリカバリーフレーズではありませんので注意してください。

2.Ledgerを購入する

メタマスクと連携して利用できるHWとしてド定番のLedger(レジャー)社のLedger nano Sを使います。他にも選択肢はあるので、興味のある方は探してみてください。

値段は1万円前後です。2万円ちょっとの上位機種nano Xはカッコよかったり、Bluetooth対応だったり、USB-Cだったり、特にモバイル用途に良さげですが、肝心のモバイル版メタマスクがHWと連携できないので、パソコンのメタマスクで使う場合には無用な機能となってしまいます。Bluetoothはパソコンでも便利そうですがメタマスクとの連携には対応していないとか。。この辺りはネットで見かけた不確定情報で、自分では試していませんので、お好みで選んでください。

購入方法は色々ありますが「正規代理店で買う」のがセオリーです。Ledgerを買うとリカバリーフレーズがデフォルトで記録されています。
これをそのまま使う場合、誰かがそれを事前にメモするなり、別のものに書き換えて売り出すと、簡単にハッキングされてしまうため工場出荷の正規品を使うべきであるという事だと思います。
今回は既存のアドレスを使うためにリカバリーフレーズを書き換えるので、その危険性は低くなりますが、大切な資産を管理するものなので、怪しいサイト、販売店、中古での購入はおすすめできません。ここはケチらずに信頼のおけるルートで入手しましょう。
購入先のリンクはいくつか張っておきますが、ご自身でもお確かめください。アマゾンでも仏Leder直販をやっているようですし、ヨドバシ等の家電量販店でも正規代理店をやっているようです。

仏Ledger社直販

日本の正規代理店
 ・Hardwarewallet.jp :https://hardwarewallet.jp/ 
 ・Earth Ship:https://hardwarewallet-japan.com/


Amazon:https://www.amazon.co.jp/stores/page/FCE05A01-B526-4687-9BE2-B192A9E351AC
ヨドバシ:https://www.yodobashi.com/product/100000001003798381/


購入したら、公式アプリのLedger Liveをパソコンにインストールして、HWのファームウェアアップデートなどを行いましょう。

ぶっちゃけこのアプリの指示に従ってセットアップしても良いです(本記事の手順の3と同じ)。初回はガイドが出てくるので「新しいデバイスでリカバリーフレーズを復元」を選んで後述のメタマスクのリカバリーフレーズを入力すればOKです。

もし、Ledger nano Sのデフォルトの24語のリカバリーフレーズを保存しておきたい場合は一度新規セットアップしてメモを取ってから、初期化してメタマスクのリカバリーフレーズを上書きすればよいです。元に戻すことに未練がなければ面倒なので、すっ飛ばしてください。
尚、Ledgerはリカバリーフレーズが表示できるのは最初だけで、セットアップ後は表示出来なくなる設計です。

3.Ledgerにシークレットリカバリーフレーズを入力する

Ledger nano Sにシークレットリカバリーフレーズの12単語を入力します。初回起動時、もしくは初期化して、下記の「Restore from Recovery phrase」を選んでください。

次に、メタマスクは12語のリカバリーフレーズなので「Recovery phrase with 12 words」を選択します。

ここからはひたすらリカバリーフレーズを入力します。面倒ではありますが、リカバリーフレーズの単語はあらかじめ決められた2048種類のいずれかであるため、1文字入れるごとに文字の選択肢は減っていき、先頭の3~4文字を入れると、いくつかの単語候補から選ぶことが出来るので入力はそれほど苦になりません。ただ、wordを確定すると戻れなかった(たぶん)ので、その時はUSBを引っこ抜いて最初からトライしましょう。

4.確認の為に他のブラウザや端末にメタマスクをセットアップする

元の環境のメタマスクをHWに置き換えるには、一度メタマスクを削除して再セットアップしなければなりませんが、万が一問題があると致命的です。
また、普段使う作業のどこかで上手く作動しない事もあるかもしれません。送金はできるけど、MINTできないとか困りますよね?

そこで、Ledgerに入力したリカバリーフレーズが間違っていないか? 普段の利用用途で問題なく使えるか? を試すために、別のブラウザや端末にメタマスクをセットアップして確かめてみることをお勧めします。リカバリーフレーズに間違いがなく、そんなこと気にしない方はひと思いに先に進んでしまっても良いと思いますので、お好みで進めてください。

テスト環境を作る場合は、例えば、Chromeを使っているなら、同系統のBraveを使うなどがあげられます。同じブラウザを使いたいなら、普段デスクトップで使っているならノートでテストする。元々2つの環境にメタマスクをインストールしているなら片方でテストするなど、ご自身の都合の良いやり方で試すことをお勧めします。
その場合の手順としては、5を飛ばして、別のブラウザもしくは端末で6を実施します。

5.メタマスク拡張機能をブラウザから一旦削除する

テスト環境を構築する場合は次の6へ進んでください。メイン環境をHW化する気になったら、ちょっと怖いですがメタマスクを一旦削除します。
テスト環境を作ってあれば問題ないですが、「ネットワークの設定」や「トークンの登録」もすべてやり直しになります。必要に応じてスクショなり、メモを残しておきましょう。

操作方法は、Chromeの場合は右上のパズルマークをクリックして「拡張機能」からMetaMaskの横の・・・をクリックします。

次に「Chromeから削除」をクリックします。

ブラウザがBraveでもほぼ同じです。

6.メタマスク拡張機能をブラウザに登録しHW用にセットアップする

メタマスクでHWをセットアップするには、新規のアドレスを作ってから、HWのアカウントを追加する形でないと登録できないようです。この新規アドレスは使う必要がないので、邪魔ですが仕様なので諦めてください。

まずブラウザの拡張機能にメタマスクを普通に追加します。これは指示通りにやればよいのでメタマスクの公式サイトからダウンロードして指示通りに進んでください。検索するといきなり偽サイトが出てくる事があるので、気を付けてくださいmetamask.ioが本物です。

下記画面に進んだら、右の「ウォレットを作成」をクリックしてください。

左を選んでしまいそうになりますがHWの導入のために新規にアカウントを作成します。

新規のシークレットリカバリーフレーズの確認画面になります。HWを導入するならこのアカウントは使わないと思うので「後で通知する」でも良いです。ここもお好みで。

次に、メニューから「ハードウェアウォレットの接続」を選択します。

新規アカウント「Account1」ができました(使わないけど)

下記の画面がブラウザに表示されるので「Ledger」をクリックすると、下に説明が表示されます。ここで、Ledger nano SをUSBでパソコンに接続して、PINを入力して「イーサリアムアプリ」を立ち上げ(Ledgerの画面は下記参照)、「続行」をクリックします。

「イーサリアムアプリ」は下記の画面で、左右同時押しで起動します。もし表示されない場合は、Ledger Liveを使って「イーサリアムアプリ」をHWにインストールしてください。

「イーサリアムアプリ」を起動して準備完了にになると下記の画面になります。

ポップアップが表示されるので「Nano S」を選んで「接続」をクリックします。

次にプルダウンから「BIP44 Standard(e.g. MetaMask, Trezor)」を選択します。

インポートしたいアドレスのチェックボックスを選択して「ロック解除」をクリックします。

メニューを確認すると「Ledger1」の右側に「ハードウェア」と表示がありますね。アドレスや残高があっていればインポートは成功です。

あとは、「ネットワークの追加」や「トークンの追加(import tokens)」を行って、普段の環境を復元しましょう。

7.LedgerのETHアプリ設定で「Blind signing」をEnabledにしておく

最後にOpenSea等でコントラクトの承認ができるように「イーサリアムアプリ」の「Setting」から「Blind signing」を「NOT Enabled → Enabled」に変更しておきましょう。
尚、送金しか行わない用途で使う場合などは、誤って悪意のあるコントラクトを踏んでしまう事がないように「NOT Enabled」のままの方がよいと思います。

「NOT Enabled(無効)」設定になっているので
「Enabled(有効)」に変更しておきます

これで、HWの設定は完了です。

テスト環境を作って様子を見たら、手順5に戻り元々使っていた端末のブラウザからメタマスクを削除して、HW用のメタマスクを導入しましょう。

以上です。

その他ハードウェアウォレット

メタマスクとは連携できませんが、低価格のハードウェアウォレットもあるので興味があれば参照ください。

この記事が気に入ったらサポートをしてみませんか?