VPN クライアントに接続し、トンネルを待ち、それから Tor Browser を開いて回線を構築させます。その何気ない順序が、誰が何を見るかを決めます。この順序では、Tor の入口リレーは VPN の出口アドレスを迎え、VPN プロバイダーは公開ガードリレーを迎えます。逆にすれば、両方の観測者が変わります。どちらの順序も確認する価値があります。クライアント設定は、人々が有効だと思っていた順序を静かに壊すからです。そして、それを見つける検査はどちらの場合も同じです。

製品ではなく順序から始める

「Tor 付き VPN」と呼ばれる構成は二つあり、一般的なのは最初の一つだけです。Tor 経由の VPN では、Tor が起動する時点でトンネルはすでに上がっているので、tor プロセスは他の外向き通信と同じようにガード接続をトンネルへ送ります。VPN 経由の Tor では、先に Tor が上がり、VPN セッション自体が回線を通って、Tor の出口からプロバイダーに届きます。

両者の違いは、最も外側のリンクの遠端にどのアドレスが立つかです。観測者はどれも直前のホップしか見ず、経路全体は見ません。ガードは自分に接続した相手を見て、VPN サーバーは自分に接続した相手を見ます。Tor はローカルのトンネルアドレスを外へ運びませんし、プロトコルにそのためのフィールドはありません。

どちらの順序でも、目的地のウェブサイトは依然として Tor の出口を見て、どちらの順序もそのサイトがログインから学ぶことを変えません。違いは二つの端に限られます。

Tor の入口リレーが見るもの

入口、つまりガードは、リレーポートで通常の TCP 接続を受け入れ、クライアントとの TLS ハンドシェイクを始めます。Tor 経由の VPN の構成では、その接続の送信元は VPN の出口です。Tor 先行の構成では、あなたのマシンが Tor ネットワークに到達するために使ったアドレス、通常は自宅の回線です。

これは質問の IP の半分に答えますが、トンネルが実際に接続を運んだ場合に限ります。Tor プロセスは自分のソケットでガードに到達し、そのソケットは Tor Browser のプロキシ設定に従いません。ブラウザーは 9150 番の SOCKS で同梱の tor プロセスと話し、その後 tor がカーネルのルーティングテーブルを使って自分の接続を開きます。torrc の Socks5Proxy 行やクライアントトランスポートがその経路を変えます。それ以外は変えません。

Linux ではマシンから答えを読めます——カーネルに、任意の公開アドレスに対してどのインターフェースを使うかを尋ね、次に確立した接続のローカルアドレスを見てください。

ip route get 203.0.113.10
sudo ss -tnp | grep -i tor

経路が dev wg0 または dev tun0 を示し、確立した接続のローカルアドレスがトンネルのアドレスなら、Tor は VPN の内側です。経路が物理インターフェースを示すなら外側です。クライアント自身の表示が何を主張しても変わりません。

VPN プロバイダーが見られるもの

プロバイダーはあなたの VPN セッションを終端するので、あなたが接続するアドレスを見ます。ガードリレーのアドレスは公開コンセンサスに公表され、ポートもよく知られているので、一致を探すのはリスト検索であり、深いパケット検査ではありません。プロバイダーが Tor を破る必要はありません。セッションが Tor だと知るのに。

見えないのは回線の残りです。中間リレーと出口は Tor の内部で選ばれ、プロバイダーはガードへのリンクだけを扱います。ページの内容は出口で終わる TLS の中にあり、Tor 通信の名前解決も出口で行われます。したがって、プロバイダーには 目的地と結びつけられる DNS クエリがありません。

obfs4 を使うブリッジは検索を変えるだけで、トポロジーは変えません。ブリッジのアドレスは公開リレー一覧になく、通信は Tor に見えないよう整形されるので、アドレスを比べるだけの事業者はそれに気づきません。セッションは依然としてあなたの VPN クライアントから来ており、プロバイダーは依然として一つの端点、一つの量、一つの時間割を見ます。

能力は保存方針ではない

接続を観測できる事業者は、それを保存すると約束したわけではありません。記録は別の決定であり、方針に書かれ、管轄で制限され、すでに信頼している証拠によってのみ確認できます。ログなしという表示は、上で述べたネットワーク上の役割を変えません。

アカウントの身元は通常、出口アドレスより重要です。 メールアドレスでサインインした場合や、カードで支払った場合、プロバイダーは一つの目的地も記録せずにセッションをあなたに結びつけられます。出口 IP を回しても、それには何の効果もありません。

どちらの答えを信じる前に、適用範囲を確認する

VPN 経由で Tor を使っていると信じている人の大半は、その一部しか使っていません。Tor Browser を除外する分割トンネリング、ブラウザーは覆うが tor サービスは覆わないキルスイッチ、トンネルが上がる前に走る起動ユニット、トンネルを迂回する IPv6 経路がよくある四つです。

クライアントの状態画面を読んでも、そのどれも検査できません。検査できるのはこれです。Tor Browser を動かしたままトンネルを下ろし、ガード接続が物理インターフェース上で生き残るか見ます。

私が確認する順序は次のとおりで、最初の失敗で止めます:

  • ip route get 203.0.113.10 トンネルデバイスを返します。
  • ss -tnp | grep -i tor トンネルのローカルアドレスを持つガード接続を示します。
  • ip -6 route トンネルの外にデフォルトルートがない、またはクライアントで IPv6 が切られています。
  • VPN を落とすと、tor 接続は物理リンクに残らず、終了するか経路を変えます。

守りたいものに合う順序はどちらか

どちらの順序も何かを隠し何かを露出するので、答えは、あなたが気にする観測者についての選択です。

ObserverTor over VPNVPN over Tor
Your ISP or local networkSees a VPN connection, not TorSees a Tor guard connection
Your VPN providerSees Tor use, and your home addressSees a Tor exit as the client, not your home address
Tor entry relaySees the VPN exitSees your home address
Destination websiteSees a Tor exitSees a Tor exit

防ぎたいものに合う行が見つかるまで列ごとに読んでください。懸念がローカルネットワークや、Tor を記録・遮断する ISP なら、Tor 経由の VPN が対処します。懸念が VPN 事業者に自宅アドレスを知られることなら、VPN 経由の Tor が対処し、その代償として Tor の使用を自分のネットワークに、自宅アドレスをガードに晒します。

どちらの構成も両端を盲目にはしません。観測者を加えても、別の観測者は消えません。Tor Project の VPN を Tor と一緒に使う という注記は、逆の側から同じことを言います——トンネルは誰が信頼されるか、どんな故障経路があるかを変えるので、何を隠したかったかを決めずに加える改良ではありません。

まず観測者を決め、次に順序を選び、クライアントの表示ではなく ip route get と ss で確認してください。観測者が VPN プロバイダー自体を強制できる相手なら、順序の選択では解決しません。

関連記事