どちらの設計も、あなたのアドレスを一つの公開IPの背後に隠し、見えているアドレスを表示するサイトにも両者は区別できない。違いは、途中で誰が何を知るか、どれだけの通信が対象になるか、どのポートが使えるかにある。Torの出口リレーは三つのリレーからなる回線の最後のホップであり、VPNの出口サーバーはトンネルを終端し、外向きの接続を自分で張る。以下では、ある作業にどちらが必要かをどう決め、一方が他方と同じように振る舞うと決めつける前に何を確認するかを述べる。

同じアドレスで終わる二つの経路

Torはガード、中間リレー、出口を通る回線を組み、ペイロードを層ごとに暗号化するので、各リレーは自分の層だけを剥がす。出口が宛先への通常のTCP接続を張るため、宛先には出口のアドレスが見える。あなたのクライアントが宛先と直接話すことはなく、ガードも宛先を見ることはない。

VPNは一つの終端点への一つのトンネルだ。事業者のサーバーがトンネルを外して外向きの接続を開くので、宛先にはやはり一つのアドレス、今度は事業者のものが見える。観測される結果は同じだが、知識は同じではない。IPを表示するテストは、どちらの方式にいるかしか答えず、実際に異なる信頼の配分については何も語らない。

最終的に誰が何を知るか

VPNの終端点は、送信元アドレス、宛先、時刻、通信量を一か所で見る。この集中こそが設計であり、事業者は一つ、ログの面は一つ、召喚状や設定ミスを受け止める場所も一つになる。得られるものはすべて、その当事者への信頼と終端点の外向きポリシーから来る。

Torはその知識を分ける。ガードはあなたのアドレスを知るが宛先は知らず、出口は宛先を知るがあなたのアドレスは知らない。一つのリレーが両方を学ぶことは想定されていない。これは構造的な性質であり、世界規模の観測者、時刻を突き合わせるリレー、侵害された終端点に対する約束ではないため、失敗し得ない匿名性ではなく、同じリスクの異なる配分として扱うべきだ。

What is knownTor exit relayVPN exit server
Your public addressSeen by the guard relay, not the exitSeen at the endpoint
Final destinationSeen at the exitSeen at the endpoint
CoverageApplications configured for Tor, chiefly Tor BrowserWhatever the route policy includes
Plain HTTP payloadReadable at the exitReadable at the endpoint

適用範囲はブラウザの決定か、経路の決定か

Torブラウザは自分の通信を自分で経路に載せ、指紋への耐性、ファーストパーティ分離、固定のウィンドウサイズ、セッション状態を捨てる「新しい識別情報」操作といった、汎用のVPNクライアントが再現しない保護を加える。他のアプリケーションは、そう設定されていない限りこの回線を使わず、システム全体のTor設定はブラウザの導入とは別の作業になる。

VPNは逆の形をしている。適用範囲は経路表に従うので、AllowedIPs = 0.0.0.0/0 を持つWireGuardプロファイルはすべてを捕まえ、分割トンネルの一覧はそこに挙げたプレフィックスだけを捕まえる。漏えいもまさにこの仕組みに住んでおり、DNSクエリ、IPv6、WebRTCはそれぞれ、経路ポリシーに含まれない道を取り得る。失敗したアプリケーションの内側から確認し、別のインターフェースを使っているかもしれないブラウザのタブから確認しないこと。

ポートポリシー、遮断される宛先、HTTPS

出口リレーは外向きポートを拒否してよく、既定のポリシーは悪用されやすいポートの一覧を拒み、そこにはSMTPポート25も含まれる。そのためTor経由で設定したメールクライアントは出口で失敗し、ネットワーク障害に見えるがそうではない。リレーを運用する人はこれを明示的に設定する:

# torrc — refuse outbound SMTP from this relay
ExitPolicy reject *:25

宛先も遮断し、その遮断の仕方は二つの方式で異なる。Torの出口アドレスは公開されているのでサイトは一覧ごと拒否でき、VPNの終端点はデータセンターの範囲にあり同じくらい気軽に拒否される。ページが失敗したら、何かを変える前に、出口や外向きのポリシー、送信元を拒む宛先、最初の要求を乗っ取るキャプティブポータルという三つの候補を切り分ける。

どちらの方式も転送時の暗号化を置き換えない。平文のHTTPは出口リレーでもVPNの終端点でも読めるので、HTTPSは有効のままにし、証明書の警告は捨てずに読む。経路の問いは二つの確認で早く決まる:要求が回線を通ったとき curl -s https://check.torproject.org/api/ip は IsTor を返し、curl -s https://ifconfig.me はVPNが提示する外向きアドレスを示す。両方を実行すれば、シェルが実際にどちらの経路を使っているかが分かる。

一方を他方の代わりに使わない

出口リレーのアドレスはVPNプロファイルではない。OpenVPNやWireGuardのクライアントをポート443のリレーに向けても、そこにVPNサービスは待ち受けていないためトンネルはできず、リレーは他人の回線の中の一ホップにすぎない。逆方向では、VPNの終端点はTorの入口ではなく、Torブラウザのブリッジ設定は商用VPNのホスト名を貼る場所ではない。VPNの上でTorを動かすと、ガードはあなたの代わりにVPNのアドレスを見ることになり、これは二つの役割を統合せずに配分だけを変える。

選ぶ前に、終端点を誰が運用し何を保持するか、この端末でツールが何を覆うか、外向きポリシーがどのポートと宛先を許すか、アプリケーションがネットワーク経路の先に何を加えるか、という四つの問いに順に答える。多くのプログラムに通常のネットワークアクセスが必要な作業にはVPNが向く。ブラウザ水準の保護と回線モデルが必要な作業には、更新を保ったTorブラウザが向く。答えが「両方」なら、意図した順序で動かし、どちらの側がどのアドレスを見るかを書き留める。

関連記事