秘密鍵・公開鍵ペアの意図的な重複生成が発覚 コールドウォレット作成サービス「ウォレットジェネレーター」を利用しないよう呼びかけ

紙に印刷するコールドウォレット(ペーパーウォレット)を作成するオンラインサービス「ウォレットジェネレーター(WalletGenerator.net)」が、ユーザーが暗号化データを保護・アクセスする一般的な手段となっている秘密鍵公開鍵のペアを、複数ユーザーに重複発行するコードを故意に実行していた可能性が発覚した。仮想通貨ウォレット「マイクリプト」のセキュリティ研究者ハリー・デンレー氏が、マイクリプト公式ブログで5月24日に明らかにした

(「ウォレットジェネレーター(WalletGenerator.net)」。秘密鍵・公開鍵のペアを、複数ユーザーに重複発行するコードを故意に実行していた可能性が発覚した。 出典: マイクリプト公式ブログ

マイクリプトは、2018年8月17日以降にウォレットジェネレーターで秘密鍵・公開鍵ペアを生成したユーザーは、仮想通貨を別のウォレットにただちに移動すべきであること、ウォレットジェネレーターが脆弱性がある状態に意図的に戻す可能性(仮想通貨盗難の可能性)があり、使用しないよう推奨すると述べた。

公式ブログによると、脆弱性を抱えたこのコードは、2018年8月には利用開始されており、2019年5月23日正午時点には修正パッチが適用されたようだ。

デンレー氏によると、ウォレットジェネレーターのソースコードは、オープンソースとしてGitHub上で公開されているものの、2年前に同プロジェクトの所有者が変わって以降、実際に利用されているソースコードとGitHub版が一致していないことが最近明らかになったという。またGitHub版では、同様の脆弱性や悪意のある記述は従来から存在していなかったそうだ。

デンレー氏は、ウォレットジェネレーター側のソースコードを調査したところ、秘密鍵・公開鍵はランダムに生成しているのではなく、わざと重複発行していると結論付けたことを明かした。

同氏は5月18~23日に検証テストを行っており、その1つは、ウォレットジェネレーター版およびGitHub版の秘密鍵・公開鍵の生成機能を使って、1000個のキーを作成するというものだった。すると、GitHub版では1000個の一意のキーを生成したが、ウォレットジェネレーター版は120個のキーを生成した。

ウォレットジェネレーター版では、ブラウザーの更新、VPNを利用したIPアドレス変更、ユーザーの変更など、何らかの調整を行った場合でも、1000個ではなく、120個のキーが生成されたそうだ。

デンレー氏は、ペーパーウォレットを含め、秘密鍵・公開鍵ペアの生成にはランダム性が重要と指摘した。

また、調査途中にウォレットジェネレーターに問い合わせたところ、同社は脆弱性に対して修正パッチを適用したそうだ。ただし、ウォレットジェネレーターはその後、脆弱性の検証はできないと主張し、マイクリプトが「フィッシングサイト」ではないか尋ねてきたという。


翻訳・編集 コインテレグラフ日本版