connecting...

NanoWalletを個人レベルで安全に運用する方法

621
xem
44uk_i3 1095 1 12
NanoWallet ウォレット セキュリティ 対ハッキング

NanoWalletの安全な運用方法

話題になっている?NanoWalletの件。
何が問題でどうすればいいのか、をしっかりと把握するにはとても良い話題だと思います。

が、やはり一定の知識を要求されるため、必要以上に恐れてしまってり、心配している方も多いと思います。

個人レベルでできる安全な利用の仕方をまとめてみました。ご参考ください。

あたり前ですが、ウィルス・マルウェアによる感染が無いことが前提です。

それらの脅威に晒されている場合は秘密鍵がどうこうという話ではありませんので。

 

NanoWalletにある安全な運用方法

あまり見られていないと思いますが(場所が悪いですよね…)

実はヘルプに「最適なセキュリティは?」という項目で、推奨されるNanoWalletの使い方が書かれています。

以下はそこからの引用です。
(ちなみに私が翻訳しました。おかしなところがあったらPRなどおねがいします。)

特に推奨するのは秘密鍵を紙に保存することです。
プリントアウトしてどこか安全な所で保管してください。

ウォレットファイルについても同様に、複数のコピーをUSBメモリなどのオフラインな場所に保存してください。
パスワードは一意で複雑にしてください。そのため、まずは書き留めておいてください。

ウォレットを確認する、もしくは操作をしたいときは:
- USBメモリを指します
- NanoWalletにインポートします
- USBメモリを抜きます

ウォレットのコピーは必要な時にブラウザのローカルストレージに保存されます。
作業が終わったら、ログアウトし、フッターの右端にある削除ボタンでローカルストレージ内のウォレットを削除してください。

ここまで引用

 

秘密鍵を紙に保存する

電子的な方法ではなく、アナログな方法で保管せよ、ということですね。

言い出したらキリがありませんが、紙では心配(火災、水害、劣化による判読不可)であれば、

例えば Cryptosteel のような製品を使ったり、

自分で金属性の英字刻印セットで鉄板に打ち込む、石板に刻むでもよいでしょう。

(保管場所に困りそうですね…いやジョークですが、耐久性は高そうです)

これはNEMに限らず、全ての暗号通貨で共通のことでしょう。

またちょっと神経質かもしれませんが、プリンタへ送られるデータは平文となるので、

気になる場合は画面を見ながら直接書き写しましょう。

 

ウォレットファイルをオフラインな場所に保存する

アカウントを作った時にダウンロードできる、*.wlt ファイルのことですが、

これをインターネットにつながっていない、オフラインな場所で保存せよ、ということです。

ウォレットファイルにパスワードを設定したと思いますが、このパスワードが簡単すぎる場合、

流出したり、盗まれてしまったときに総当たり攻撃によって突破されてしまう可能性があります。

パスワードが分かれば秘密鍵も取り出せます。

設定したパスワードによっては、秘密鍵を総当たりで探するより簡単かもしれません。

万が一の流出に備え、複雑で解析に時間がかかるパスワードを設定しましょう。

オフラインな場所に保存する意味としては、インターネットに流出するリスクを回避するためです。

操作ミスやオンラインストレージ上での障害・バグにより、

意図せず公開されてしまったなどのケースを想定しています。

 

ウォレットを操作するとき

ここではUSBメモリに保存されているとして、ウォレットを使うときにそのメモリをパソコンへ取りつけます。

ウォレットのインポートから、そのファイルを読み込みます。

読み込んだら「ウォレットの選択」に入ってきます。

ここでUSBメモリを外します。

そのあとは、いつも通りログインして操作を行います。

必要な操作が終わったら、右上のボタンからログアウトし、

ログイン画面右下のゴミ箱アイコンをクリックして、アカウント削除します。

全てのウォレットが消えてしまいますので、操作する前には消えてしまっても大丈夫かどうかを確認しておいてください。

すこし手間のかかる順序ではありますが、秘密鍵の扱いを最小限に抑える方法です。

 

秘密鍵がメモリに残る

先の記事での指摘の通り、NanoWalletでの操作中に秘密鍵がメモリ上に平文で展開されている現象は確認できました。

(具体的には書きませんが、大抵のデバッグツールで出来る方法で確認しました)

これはMyEtherWalletにて秘密鍵によるログイン操作でも同様でした。

挙動からしてJavaScriptによってGCされるまではメモリ上に残っているような挙動でした。

それ以上の検証はしていませんが、仕組み上、同様の仕組みのウォレットについてはやはり露出するとおもいます。

ウォレットまたはブラウザ(プロセス)を終了すればメモリは開放されます。

さらにはメモリをクリーンしたり、再起動してもいいと思います。

秘密鍵を必要としない操作、例えば残高を確認するだけなら、ウォレットにログインする必要ありません。

公開情報であるアドレスで情報を取得すればいいので、xembookを利用するのが特に簡単でよいでしょう。

直接APIにアクセスするでもよいし、お好みでビューアをつくってもいいかもしれません。

https://xembook.net/

 

一例ですが、この仕様はこのようなマルウェアに狙われる可能性が考えられます。

そもそも感染している時点でアウトなのですが、

現状このような手法で暗号化が解除された秘密鍵を窃取される恐れがあります。

感染してしまっている場合は、いかにウォレットを使用する時間を短くしたとしても、

それ以上に素早く窃取されてしまうでしょう。

くれぐれもウィルス・マルウェア感染には気を付けてください。

 

普段使いウォレットと保管用ウォレットに分ける

ハーベストやスーパーノードを行っている人など、ある程度大きな残高を保有する人は、

保管用ウォレットから普段使うためのウォレットの2つを用意して、

必要な分だけ移動しては使用する、という方法です。

普段使いのウォレットにある程度あきらめが付くような量であれば、

多少上記のことを気にせずNanoWalletを利用してもいいと思います。

(もちろん各自の許容次第ですが)

 

マルチシグを利用する

さらに安全性を高めるとすれば、マルチシグを利用します。

いわゆる 2-of-3 構成という状態で構築すれば万が一の場合にも安心です。

送金時には承認する操作が増えることになりますが、

最低でも2つのアカウントをハックしないと送金はできなくなるので、乗っ取る難易度が格段に上がります。

上記の秘密鍵の漏えいを回避することとは別の対策となるため組み合わせることでよりセキュアとなります。

2-of-3 構成についてはほかの人に解説は譲りますが、このような方法もあることを知っておいてください。

ただし、マルチシグ構成にしたとしても、上記の問題が解決するわけではないため、

各ウォレットや秘密鍵の取り扱いには引き続き慎重になる必要があります。

 

オフライントランザクションを利用する

署名済みのトランザクションを生成(QRコード化)し、

それを別のマシンで送信するという、ハードウェアウォレットのようなことができます。

この署名済みトランザクションは中身が改ざんされてもネットワークには承認されません。

操作するパソコンはオフライン環境下においてください。

ウォレットをインポートして、ログイン画面上部の「オフライントランザクションの準備」をクリックします。

あとは通常の送信と同様、項目を埋めます。

「作成」を押すと、右側に署名トランザクションが生成されます。

これをコピーして、テキストファイルなどに貼り付けて保存してください。

またはQRコードとして保存できます。
(が、送信機能のほうで対応していないのでテキストとして保存してください)

こうして保存した署名済みトランザクションを別のインターネットに接続されたパソコンへ、

USBメモリ(ウォレットを保管しているものとは別に用意する)等で移動させます。

移動先のインターネットにつながったパソコンでNanoWalletを開き、

「トランザクションのリリース」をクリックします。

ネットワークとノードを選択し、「署名済みトランザクション」というところに、先ほど生成されたものを貼り付けます。
(現状、直接QRコードを読み込ませることはできません…アップデートに期待です)

最後に「送信」をクリックして、ネットワークへ送信します。

残念ながら現状ではモザイクは扱えず、XEMしか扱えません。アップデートに期待です。

(nemの仕様ではなく、オフライントランザクションモジュールにその機能がないだけです)

もし大きな額を扱っていて、直接インターネットにつながることが不安な場合は利用してみてください。

 

少しでも不安がある場合には

例えば、直接影響はなかったものの、

  • ウォレットを保存しているパソコンがウィルス感染してしまった
  • ファイルをオンライン上に保存してしまったことがある、
  • ファイルを保存していたHDDやメモリを紛失した・破棄するときなど

などの流出の可能性があると感じたら、いっそ新しいアカウントを作り、そこへ全部送ってしまいましょう。

手数料を払ったとしても、全額盗まれてしまうよりはマシです。

 

さらなる徹底

話が前後しますが、ウォレットを作成するときもオフライン環境下で別のマシン上で作るとより一層安全です。

取引所レベルになると新品のパソコンで鍵を生成したら、そのパソコンは破棄するそうです。
(なにかで見聞きしただけですが…)

そこまでしなくとも、オフライン専用パソコンでウォレットを作成、署名済みトランザクションの生成に使用する、くらいなら個人でも対応できそうですね。

 

まとめ

  • ウィルス・マルウェアに感染しないようにすること(大前提ですが)
  • 秘密鍵を扱う時間を極力短くすること
  • 頻繁に利用する機会があるなら別のウォレットへ移して使うこと
  • 2-of-3マルチシグを利用すること
  • 専用のマシンを別途用意すること
  • オフライントランザクションを利用すること
  • 秘密鍵が必要ない操作ならウォレットにログインしないこと
  • いっそアカウントを乗り換えるという選択もある
  • ハードウェアウォレットを利用すること

このあたりでしょうか。

大前提であるウィルス・マルウェア感染を避けるというのは昨今なかなか難しい話ですね…。

ウィルス対策ソフトもあくまで予防でしかなく、未知のウィルスや脆弱性には対応できない可能性も十分あります。

するとやはりオフライン環境のパソコンを用意するというのが一番安全な方法かと思われます。

ある程度の量のXEMを保有する機会があるなら(SN運営、お店の支払い受領アドレス等)、

これくらいを徹底したほうがよいと思われます。

 

この記事中に出てきたそれぞれの用語や機能の使い方が分からなければ

nemberに聞いてみるとよいでしょう。

みなさん優しいですから。また、コメントで質問してくださってもよいです。

 

これだけでは不十分だ、ということもあるかもしれません。

しかし現実的に個人レベルでできることとしては十分ではないでしょうか。

このあたり、ユーザー向けセキュリティガイドみたいな感じでまとまった本が仕上がると

いいんじゃないかと思います。(小並感)

 


1095 views
NanoWallet ウォレット セキュリティ 対ハッキング
2018-10-05 15:58:21
nem投げnem 通報

nemlogで記事を書いて 仮想通貨nemをゲットしよう!

nemlogは暗号通貨nemを使用した寄付機能付きブログ投稿サイトです。
ブログを通じてユーザー同士がお互いにnemを寄付しあえるような環境づくりを目指して、nemlogはスタートしました。
あなたもステキ記事を投稿して暗号通貨nemをゲットしてみませんか?

nemlogの無料ユーザー登録はこちらから新規登録
ZEMZEM コメント日時:2018-10-05 17:05:23

・w・ノ初心者の私もセキュリティアップ!


この記事を書いたNEMber

44uk_i3
702
Twitter: @44uk_i3
nem投げnem profile
4322
こちらの記事もどうぞ
アポスティーユして遊んでみた。

12.575 XEM
73 1 3
パソコン

0.9 XEM
56 1 0
【簡単にざっくり解説!】マルチシグってなに?

1.75 XEM
135 0 3
TREZOR購入してみました

1.75 XEM
70 2 2