VPN 経由の Monero:三つのネットワーク経路のどれが変わるのか
ウォレットの RPC リンク、デーモンのピア通信、トランザクションの中継は別々の接続です。VPN がどの観測者に見えるかを変える前に、それぞれをラベル付けしてください。
ウォレットを開き、デーモンを起動し、何かを有効にする前に三本の矢印を描きます。一本はウォレットからノードの RPC ポートへ、一本はデーモンのピア同期を運び、一本はローカルで送信されたトランザクションを中継経路へ向けて運びます。これらは設定の異なる別々の接続であり、VPN や匿名ネットワークはそのうち一本、二本、あるいは一本も覆わないことがあります。
ソフトウェアが経路を開く順にたどります。各矢印に宛先とトランスポートを書き添えることが、後段のプライバシー主張を検証可能にします。順序が重要なのは、後段の主張が通常そのうち一本しか覆わないからです。
まずウォレットからノードへの接続を描きます
リモートノードと通信するウォレットは、そのノードのアドレスとポートへ RPC 要求を送ります。ローカルにデーモンを持つウォレットは代わりにループバックインターフェースと通信します。日常会話ではどちらも「ノード」と呼ばれますが、これは異なる信頼関係です。
ウォレットが使うよう設定されているアドレス、ポート、トランスポートを書き留めます。ウォレットに独自のプロキシ設定がある場合はデーモンの設定とは別に記録しますが、一方のプロセスを設定してももう一方は設定されません。
ここで公開 RPC エンドポイントが魅力的に見えます。図を簡単にするためにノードの RPC サービスを公開することは、ネットワーク経路を攻撃面と引き換えにします。ウォレットからノードへのリンクはプライベートな経路かループバックインターフェースに保ち、どちらなのかを記録します。その公開を隠す図は、図がないより悪いものです。
次にデーモンのピア通信を追います
同期中のデーモンはピアへの外向き接続を開き、ピアツーピアポートでチェーンデータを交換します。その通信はウォレットの RPC リンクではなく、ウォレットのプロキシを自動的に通るわけでもありません。デーモン自身のネットワーク設定とホストのルーティングテーブルに従います。
ピアポート、接続数、そしてデーモンがピア通信にプロキシを使うよう設定されているかを記録します。次に、サンプルのピアアドレスについてホストのルートを確認します。VPN がデフォルトルートを捕捉していればピア接続はおそらくそれを使い、デーモンが特定のインターフェースに束縛されていれば使わないかもしれません。この二つの事実が矢印を決めます。
この経路では観測者の問いが変わります。VPN はピア接続をローカルアクセスネットワークから隠しますが、VPN の端点とピア自身は別の像を見ます。どちらの観測も、ウォレットの要求が同じ経路を通ったことを証明しません。
続いてトランザクションの中継経路を切り離します
ローカルで送信されたトランザクションは、設定されたリレーやプロキシを通じてネットワークへ転送できます。現在の Monero デーモンの文書では、そのオプションはプロキシに向けたトランザクション中継の通信だけを送ります。すべての RPC、ウォレット、同期の接続をプロキシ経由の通信に変えるわけではありません。
プロジェクトの匿名ネットワークに関する文書は Tor と I2P の統合を実験的と述べ、中継の振る舞いの範囲を限定していますが、実際に動かしているバージョンの文書を読んでください。古い議論は Kovri のような名前を使い、もはや同じ形では存在しない構成要素を説明しているからです。
図では中継経路を分けておきます。ウォレットの残高照会がリモートノードを使う一方でプロキシから出ていくトランザクションには、二人の異なる観測者がいて、そのトランザクションがプロキシを通ったという事実は照会の経路について何も語りません。
三つの経路にラベルを付けてから VPN を加えます
矢印を描いたら、VPN が実際に運ぶものを印します。フルトンネルの VPN はホストのデフォルトルートを捕捉するので、デフォルトに従う接続はそれを使います。分割トンネル、束縛されたインターフェース、特定のアドレスから出ていくプロキシは、一部の矢印をトンネルの外に残すことがあります。
ここで観測者モデルを明示します。匿名ネットワークの接続が VPN の内側で動く設計では、ローカルアクセスネットワークは外側の VPN 接続を見て、VPN 側はその先の接続を見ます。それは観測者の変化であり、識別信号が消えることの証明ではありません。
同じ巡りの一部として障害時の振る舞いを確認します。VPN が落ちたとき、デーモンは直接のピア接続へ戻るのか、ウォレットはリモートノードへの問い合わせを続けるのか、中継プロキシは閉じた状態で失敗するのか。遮断が設定されていなければ、再接続は通常、沈黙ではなく新たな直接の試行を意味します。
設定したと考えている経路を検証します
ホスト自身の道具を使い、各宛先のルートを読み、待ち受け中と確立済みのソケットを調べ、どのプロセスが各接続を所有しているかを確認します。ウォレット、デーモン、中継がすべて動いている間にこれを行うのは、起動時だけ存在する経路が再接続の後に消えることがあるからです。
VPN の再接続後とデーモンの再起動後に繰り返します。宛先とトランスポートを図と比べます。矢印が動いたなら、どのプロセスもまだ健全だと報告していても、プライバシーモデルも一緒に動いています。
三つの宛先、それぞれのトランスポート、そしてそれらを隠したい相手の観測者を記録します。一つのマシンで複数の独立したクライアントが動くとき、観測者に名前を付けた短い経路図のほうが、単一の VPN 表示より役に立ちます。