webツールでhex変換するリスクと対応策

Screenshot of manpages.debian.org

opreturnを送信するために、coinb.inなどのウォレットソフトを使って、手動でトランザクションを作成し、秘密鍵で署名して送信するわけですが、その時、op_return文字列を書き込むために、ascii文字列を16進数のhex変換する必要があります。

このascii→hex変換、今までは rapidtables というwebアプリを使ってやっていたのですが、これが危険かもしれないというお話しです。

https://www.rapidtables.com/convert/number/ascii-to-hex.html

勿論、rapidtables は検索するとトップに君臨する大手の便利サイトであり、広告も表示されているわけですからフィッシングサイトではないとは思いますが、もしもこのサイトの運営者がやろうと思えば、クライアントPCのクリップボードの内容を抜いてきて自分のサーバーに保存したりすることも可能だということに気付いてしまったのです。

https://developer.mozilla.org/ja/docs/Web/API/Clipboard/read

これを読んだ時、javascriptっていうのは便利だなと感心しましたが、同時に恐ろしくなりました。トランザクションに署名する時に、秘密鍵をカットアンドペーストして署名ボタンを押していたからです。

ということは、悪のサイトを開いている時に、クリップボードに秘密鍵を入れますと、そのデータが抜かれちゃうリスクがあるってことなんですよね。今頃気付いたか!と言われてしまうかもしれませんが、便利さの裏返しで、リスクもあるんだなと改めて思い知らされました。

ということで、徐々にwebツールを使うのをやめようと決心しましたが、そこからが大変でした。githubからオープンソースの変換ソフトを引っ張ってこようと思っていくつかコードを読んでみたのですが、依存している外部ライブラリ(urlで指定されておりインターネットから引っ張ってくる)が多くて「これホントに大丈夫?」と心配になってしまいました。まあ、疑心暗鬼というやつですね。それで更に二晩考えまして、とりあえず暫定案ができましたのでご紹介します。

それは、ubuntuのコンソール画面で、xxdコマンドを使って変換する方法です。さすがにこれなら安全といえるでしょう。

※ascii to hex 変換
$ echo -n “ascii-string” | xxd -p -c 160

※hex to ascii 変換
$ echo “hex-string” | xxd -p -r

これで変換できます。シェルスクリプトを作っても良いでしょう。ウインドウズPCの場合は、wslをインストールすればubuntuコンソールを使うことができます。「windowsの機能の有効化または無効化」で、「仮想マシンプラットフォーム」または「hyper-v」 を有効化にしてから、wsl –installを実行すれば良いのです。


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です