Deanonymizing Monero Transactions in Tor Network
本論文は、MoneroのTor統合における根本的な脆弱性、すなわちトランザクションが特定の2つのプロキシノードのみを経由して転送されるという性質を悪用し、Moneroトランザクションの送信元IPアドレスの特定に成功する3段階のフレームワークである\textit{ProxyMark}を紹介するものである。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
全体像:「壊せない」箱 vs 「漏れのある」封筒
Monero(モネロ)は、究極の秘密を守るために設計されたデジタル通貨だと想像してください。それは高度な「魔法の箱(暗号技術)」を使用して、「誰が」送金したのか、そして「いくら」送ったのかを隠します。送信者の物理的な場所(自宅のインターネットアドレスなど)を特定されないようにするため、MoneroユーザーはしばしばTorを利用してメッセージを送信します。Torは、データの送信元がどこであるかを隠すために、世界中のあらゆる場所を経由してデータを跳ね返らせる「秘密のトンネルシステム」のようなものです。
この論文の研究者たちは、巧妙なトリックを発見しました。彼らは「魔法の箱」を壊したわけでも、「秘密のトンネル」を壊したわけでもありません。その代わりに、Moneroには、トンネル内でのメールの届け方に関する特定のルールがあり、そのルールが微かな、予測可能な足跡を残していることに気づいたのです。
彼らは、この足跡を利用するためにProxyMarkと呼ばれるツールを構築しました。これは、手紙の内容を読もうとするのではなく、「手紙が最初にどの地点に止まったか」を観察することで、秘密のトンネルを通じて誰が手紙を送っているのかを見つけ出す方法です。
3つのステップによる探偵ゲーム
研究者たちの手法であるProxyMarkは、3つの段階で動作します。これは、仮面舞踏会の中でスパイを捕まえようとする探偵のようなものです。
ステップ1:役割の特定(あなたは誰?)
問題点: Moneroネットワークには、2種類の「ノード(ソフトウェアを実行しているコンピュータ)」が存在します。
- ホスト (Host): 外部からの接続を受け入れるコンピュータ(顧客を待っているショップのようなもの)。
- ゲスト (Guest): 他の場所へ訪問するためだけに動くコンピュータ(ショップに歩いて入っていく顧客のようなもの)。
手がかり: これらのコンピュータが互いに通信する際、「友人リスト(自分が知っている他のコンピュータのリスト)」を交換します。
- ホストは、毎回必ず、リストの最後に自分自身のIDを載せます。これは、ショップの店主が、渡すレシートの最後に必ず自分の名前を署名するようなものです。
- ゲストはこれをしません。彼らのリストは毎回変化します。
トリック: 攻撃者は謎のコンピュータに対してリクエストを送信します。もし返ってきたリストが常に同じIDで終わっていれば、攻撃者は「あぁ、君はホストだ!」と判断し、あなたの秘密のIDを知ることができます。もしリストが変化していれば、あなたはゲストです。
ステップ2:交通渋滞(スパイに聞かせる)
問題点: たとえ攻撃者が「ホスト」であることを突き止めたとしても、自分が「最初の受信者」にならない限り、送金内容を見ることはできません。Moneroには、「新しいトランザクションを作成したら、誰よりも先に、必ず特定の2つの特定の友人(『プロキシノード』と呼ばれるもの)に送らなければならない」というルールがあります。
トリック: 攻撃者は、自分がその特別な2人の友人のうちの一人になろうとします。
- 名簿の占拠: 攻撃者は、被害者の「友人リスト」を、自分自身のコンピュータの偽の名前で埋め尽くします。被害者が新しい友人を選ぼうとする際、リストが攻撃者の偽のアイデンティティでいっぱいになっているため、強制的にこのリストの中から選ばざるを得なくなります。
- 偽の履歴書: Moneroは、最も最新の情報(ブロック高)を持っている者を基準に「プロキシノード」を選びます。攻撃者の偽のコンピュータは、「私は最新の情報を持っている!」と嘘をつきます(実際には持っていませんが)。被害者がこの嘘を信じることで、攻撃者のコンピュータが特別な「プロキシノード」として選ばれるのです。
結果: これにより、被害者が秘密のトランザクションを送信すると、それは直接攻撃者のコンピュータへと届きます。攻撃者は、トランザクションを「捕捉」することに成功したのです。
ステップ3: invisible ink(目に見えないインク:IDと実在の人物を結びつける)
問題点: 攻撃者は今や、トランザクションと被害者の秘密のID(オニオンアドレス)を手に入れています。しかし、被害者の「本当のIPアドレス(物理的なインターネット接続)」はまだ分かりません。Torのトンネルが依然としてそれを隠しているからです。
トリック: 攻撃者は**ウォーターマーキング(電子透かし)**を使用します。
- 攻撃者と被害者が、トランシーバー越しに話していると想像してください。攻撃者は特定の「リズム」でメッセージを送り始めます。
- 信号: 攻撃者は単に話すだけでなく、メッセージをグループ化して送ります。
- 素早く3つのメッセージを送る = 数字の 1
- 素早く1つのメッセージを送る = 数字の 0
- これらのグループを長く送り続けることで、攻撃者はメッセージの「タイミング」を使って、秘密のコード(被害者のID)を「綴って」いくのです。
- また、攻撃者はエントリガード(Entry Guard)(秘密のトンネルの入り口となる最初の人物)も制御しています。このガードは、中にある秘密のメッセージを見ることはできませんが、トンネルに入ってくる人の「本当のIPアドレス」を見ることはできます。
- エントリガードが、特定のメッセージのリズム(ウォーターマーク)が特定のIPアドレスから来ているのを確認すると、「あのIPアドレスこそが、あの秘密のIDを送っている張本人だ」と断定できるのです。
結果: 攻撃者は、秘密のIDを現実の物理的な場所に結びつけます。
彼らは何を証明したのか?
研究者たちは、実際のMoneroネットワークとTorネットワーク上でこれをテストしました。結果は以下の通りです。
- 役割の特定: コンピュータが「ホスト」か「ゲスト」かを、100% 正確に特定しました。
- 接続の奪取: 被害者の接続リストを操作し、被害者の外出接続のうち 7〜11/12 を攻撃者が制御することに成功しました。
- 選出の獲得: 「ブロック高」について嘘をつくことで、特別な「プロキシノード」として選ばれる確率を、15%から35% へ(さらに偽のコンピュータを増やせばそれ以上へ)向上させました。
- 最終的な紐付け: 秘密のIDと実際のIPアドレスの紐付けに成功した割合は、ホストで 93.8%、ゲストで 91.4% でした。
結論
この論文は、MoneroとTorはそれぞれ単体では非常に強力ですが、これらを組み合わせることで新たな弱点が生まれると結論付けています。
Moneroは、「ホスト」コンピュータと「ゲスト」コンピュータを、メッセージ送信時に異なる扱いをします。この違いが、攻撃者が利用できるパターンを生み出します。被害者が話す「友人」をコントロールし、メッセージのリズムを聴くことで、攻撃者は匿名性の層を剥ぎ取り、誰が送金しているのかを突き止めることができるのです。
著者らは、この問題を解決するためには、Moneroがすべての接続を同じように扱うようにルールを変更し、このような探偵作業を可能にする「足跡」を取り除く必要があると提言しています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。