Wasabiウォレットユーザー必見!考えられる2種類の攻撃手法 2019/10/27 17:00 10/27 17:00 CoinPost 2019年6月8日から9日にかけて、アムステルダムでBreaking Bitcoinというカンファレンスが行われました。 本コラムは、公開された動画や書きおこしをもとに、その発表内容を追いかけ、ビットコインのセキュリティに関する取り組みの最先端を知ろうという試みです。発表内容を日本語で、かつ実際の事例などを交えて解説することで、少しでも皆様がビットコインの仕組みや最新の研究について詳しくなるための一助になれることを願います。 今回も前後半で、Wasabiウォレットへの攻撃を取り上げます。 Wasabiウォレットとは? Wasabiウォレットは、標準的な機能を持ったウォレットとして実装されています。鍵の管理だけでなく、ハードウェアウォレットを併用したり、コインの送受信、Torネットワークに接続することで、毎回異なるTor識別情報とリンクすることになるので、サーバーやピアからの追跡が難しくなります。 また、Wasabiウォレットでは、Coinjoinトランザクションが実装されています。この目的は、UTXOの過去と未来を切り離すことです。これらのリクエストはローカルキューに追加され、Wasabiウォレットは順次ラウンドをまとめ、Coinjoinトランザクションを生成します。 各ラウンドのサイズは固定なので、ミキシングのためには約10ラウンドが必要です。Coinjoinに必要なだけのリクエストが集まるまでは、待ち続ける必要があるでしょう。 とはいえ、Coinjoinは万能ではありません。現状の実装では出力はすべて等しくなければなりませんし、それに反する場合はプライバシーが守られません。また、ミキシングを行ったとしても、そのあとで不用意な行為があれば、簡単に追跡できてしまうという点も、注意が必要です。 シビル攻撃も考えられます。つまり、ミキシングに参加したユーザーのうち複数が結託した場合、あるいは事前に悪意を持ったユーザーがビットコインに参加している場合、どの出力が誰のものか特定できてしまう危険性があります。 Wasabiウォレットではコーディネーターを使います。これはWasabiコーディネーターと呼ばれ、Chaumian CoinJoinsが実装されています。コーディネーターはユーザーの情報を得られないはずですし、資金についても盗めないはずですが、可能性については検証すべきでしょう。 Wasabiウォレット:https://wasabiwallet.io/ Chaumian CoinJoins:https://github.com/nopara73/ZeroLink/ 自動ウォレットとは? 自動化されたウォレットは、スマートコントラクトとも呼ばれます。秘密鍵に直接アクセスし、それを利用することができます。トランザクションの開始、サイズの選択、手数料の調整など、ユーザーを介さない非対話型の操作が可能です。 もちろん、自動で行われるため資金の整合性に影響を与える可能性があります。資金が一定期間ロックされるため、そこにあるように見える資金が、動かせないといった状況も起こりえるでしょう。 Wasabiウォレットが自動化されているのは、利便性のためです。ミキシングを行うとき、人間が個別に設定すると煩雑過ぎるものがいくつもあります。コーディネーターやトランザクションのマイニングに支払う手数料、ラウンドに含まれるビットコインの量は適切かどうかの調整、ミキシングラウンド完了後に追加で行うリングミキシングなどについても最適化を行っています。 Wasabiウォレットへの攻撃にはこの二種類に注意! さて、攻撃を考えるときには、どういう可能性があるでしょうか。 まずひとつめは、匿名化されたCoinjoinを破る、つまりユーザーの情報を得るということです。もちろん電話番号や名前といった情報が得られるわけではありませんが、Coinjoinで隠したかったトランザクションの詳細について、特定されてしまうと困ったことになるケースも往々にしてあるでしょう。 例えば友人にビットコインを転送したいとき、過去の支払い履歴まですべて遡って特定されると個人情報が詳らかになってしまいます。今は少ないですが、将来的に給与受け取りもビットコインで、という可能性も考えると、銀行の明細が公開されているようなものです。 もうひとつは、意図したよりも多くの資金を転送させる、という攻撃です。コインを盗み出す行為は、成功すれば簡単に金銭を得られるため様々な研究者、攻撃者が試行錯誤を続けています。脆弱性を突いて盗み出す他、意図したよりも多くを転送させる、あるいは支払ったものを取り消すといった手口も一般的です。 次回、これらの攻撃の可能性について、順にみていきましょう。 おわりに ここまで、wasabiウォレットの概要となります。次回の後編では、実際の攻撃について取り上げます。 記事中の表現については講演資料を筆者なりに読み解きつつ、前後で独自の解説を加えておりますが、なにぶん新しい技術に関する内容ですので、もしも間違いなどございましたらお気軽にご指摘くださいませ。(特に技術的な指摘は大歓迎です) 前回の記事はこちら 前回のコラムでは、ビットコインが2009年の誕生から停止せずに今もなおネットワークを形成している背景について解説しました。ビットコインの存続にどのような取り組みがなされているのか、ぜひご覧ください。 BTCが10周年を迎えられた理由とは?BTCを存続させている5つの防御を解説 Wasabiウォレットユーザー必見!攻撃の手口がわかれば予防線がはれます 次の記事では、Wasabiウォレットに対して考えられる具体的な攻撃手法について検証し、その予防手段を提示させていただきました。こちらのコラムと合わせて読んでいただき、各ユーザーのウォレット管理の一助になれば幸いです。
Wasabiウォレットユーザー必見!考えられる2種類の攻撃手法
10/27 17:00 CoinPost
2019年6月8日から9日にかけて、アムステルダムでBreaking Bitcoinというカンファレンスが行われました。
本コラムは、公開された動画や書きおこしをもとに、その発表内容を追いかけ、ビットコインのセキュリティに関する取り組みの最先端を知ろうという試みです。発表内容を日本語で、かつ実際の事例などを交えて解説することで、少しでも皆様がビットコインの仕組みや最新の研究について詳しくなるための一助になれることを願います。
今回も前後半で、Wasabiウォレットへの攻撃を取り上げます。
Wasabiウォレットとは?
Wasabiウォレットは、標準的な機能を持ったウォレットとして実装されています。鍵の管理だけでなく、ハードウェアウォレットを併用したり、コインの送受信、Torネットワークに接続することで、毎回異なるTor識別情報とリンクすることになるので、サーバーやピアからの追跡が難しくなります。
また、Wasabiウォレットでは、Coinjoinトランザクションが実装されています。この目的は、UTXOの過去と未来を切り離すことです。これらのリクエストはローカルキューに追加され、Wasabiウォレットは順次ラウンドをまとめ、Coinjoinトランザクションを生成します。
各ラウンドのサイズは固定なので、ミキシングのためには約10ラウンドが必要です。Coinjoinに必要なだけのリクエストが集まるまでは、待ち続ける必要があるでしょう。
とはいえ、Coinjoinは万能ではありません。現状の実装では出力はすべて等しくなければなりませんし、それに反する場合はプライバシーが守られません。また、ミキシングを行ったとしても、そのあとで不用意な行為があれば、簡単に追跡できてしまうという点も、注意が必要です。
シビル攻撃も考えられます。つまり、ミキシングに参加したユーザーのうち複数が結託した場合、あるいは事前に悪意を持ったユーザーがビットコインに参加している場合、どの出力が誰のものか特定できてしまう危険性があります。
Wasabiウォレットではコーディネーターを使います。これはWasabiコーディネーターと呼ばれ、Chaumian CoinJoinsが実装されています。コーディネーターはユーザーの情報を得られないはずですし、資金についても盗めないはずですが、可能性については検証すべきでしょう。
Wasabiウォレット:https://wasabiwallet.io/
Chaumian CoinJoins:https://github.com/nopara73/ZeroLink/自動ウォレットとは?
自動化されたウォレットは、スマートコントラクトとも呼ばれます。秘密鍵に直接アクセスし、それを利用することができます。トランザクションの開始、サイズの選択、手数料の調整など、ユーザーを介さない非対話型の操作が可能です。
もちろん、自動で行われるため資金の整合性に影響を与える可能性があります。資金が一定期間ロックされるため、そこにあるように見える資金が、動かせないといった状況も起こりえるでしょう。
Wasabiウォレットが自動化されているのは、利便性のためです。ミキシングを行うとき、人間が個別に設定すると煩雑過ぎるものがいくつもあります。コーディネーターやトランザクションのマイニングに支払う手数料、ラウンドに含まれるビットコインの量は適切かどうかの調整、ミキシングラウンド完了後に追加で行うリングミキシングなどについても最適化を行っています。
Wasabiウォレットへの攻撃にはこの二種類に注意!
さて、攻撃を考えるときには、どういう可能性があるでしょうか。
まずひとつめは、匿名化されたCoinjoinを破る、つまりユーザーの情報を得るということです。もちろん電話番号や名前といった情報が得られるわけではありませんが、Coinjoinで隠したかったトランザクションの詳細について、特定されてしまうと困ったことになるケースも往々にしてあるでしょう。
例えば友人にビットコインを転送したいとき、過去の支払い履歴まですべて遡って特定されると個人情報が詳らかになってしまいます。今は少ないですが、将来的に給与受け取りもビットコインで、という可能性も考えると、銀行の明細が公開されているようなものです。
もうひとつは、意図したよりも多くの資金を転送させる、という攻撃です。コインを盗み出す行為は、成功すれば簡単に金銭を得られるため様々な研究者、攻撃者が試行錯誤を続けています。脆弱性を突いて盗み出す他、意図したよりも多くを転送させる、あるいは支払ったものを取り消すといった手口も一般的です。
次回、これらの攻撃の可能性について、順にみていきましょう。
おわりに
ここまで、wasabiウォレットの概要となります。次回の後編では、実際の攻撃について取り上げます。
記事中の表現については講演資料を筆者なりに読み解きつつ、前後で独自の解説を加えておりますが、なにぶん新しい技術に関する内容ですので、もしも間違いなどございましたらお気軽にご指摘くださいませ。(特に技術的な指摘は大歓迎です)
Wasabiウォレットユーザー必見!攻撃の手口がわかれば予防線がはれます
次の記事では、Wasabiウォレットに対して考えられる具体的な攻撃手法について検証し、その予防手段を提示させていただきました。こちらのコラムと合わせて読んでいただき、各ユーザーのウォレット管理の一助になれば幸いです。