VPN と Tor は HTTPS の代わりにならない:各層が終わる場所
トンネルは自分の相手で終わり、Tor 回線は出口リレーで終わる。サイトまで届くのは HTTPS だけなので、平文のフォームは読めたままになる。
VPN も Tor 回線も、旅の一部で通信を暗号化する。どちらも自分で選んだ相手のところで暗号化をやめる。HTTPS はサイトそのものまで届く層であり、その手前にいくらトンネルを重ねても、平文のフォーム送信が保護された送信になるわけではない。各層が終わる地点までたどれば、それは明らかになる。
三つの層、三つの異なる終端点
通常の VPN は VPN サーバーでトンネルを終える。端末とそのサーバーの間はすべてトンネルの内側にあり、その先は内側ではない。Tor 回線も別の相手で同じように振る舞い、出口リレーで網を離れて要求を宛先へ転送する。
TLS はサイトで終わる。検証した証明書はホスト名をサイトが管理する鍵に結びつけ、セッション鍵はブラウザとそのサーバーの間に存在する。その終端点は VPN サーバーより先でも Tor の出口より先でもある。
つまり三つの層には三つの異なる信頼の境界があり、要求は順にすべてを通る。一つを強くしても他については何も言えず、最後の層だけが宛先の関与する層である。
最後の跳躍が何を露出するか
アプリケーションが平文の HTTP を使うなら、出口より先の内容はその跳躍を運用する誰でも読める。前段のトンネルは完璧に仕事をしており、単にもう存在しない。HTTP フォームに入力した認証情報は、保護が終わったまさにその地点で露出する。
| Layer | Terminates at | Who can read the request there |
|---|---|---|
| VPN tunnel | The VPN server you selected | The operator of that server, and anyone who can compel them |
| Tor circuit | An exit relay chosen by the network | The exit relay operator, for traffic that is not otherwise protected |
| HTTPS | The website's own TLS endpoint | The site itself, and no intermediary on the path |
正しく検証された HTTPS では、経路上の中間者はアプリケーションの内容を読むことも黙って変えることもできない。それでも接続したこと、いつ、どのアドレスへかを知る。パケットのヘッダーは経路指定できなければならないからだ。内容の機密性と接続についてのメタデータは別の性質であり、TLS が与えるのは前者だけである。
アカウントの身元はさらに三つ目の話だ。アカウントにサインインすると、どの出口アドレスを使ったかに関係なく、そのサービスにあなたを特定させるので、出口はアカウントではなく経路を守る。この区別は手前にいくつの層があっても保たれる。出口を変えても、サインイン済みのセッションが明かす内容は変わらない。最初のパケットが出る前から、サービスはあなたが誰かを知っていた。
この配置に二つ目のトンネルを足しても壊れるものはない。変わるのは最初の跳躍をどの観察者が見るかであり、最後の跳躍が暗号化されているかではない。
順序が変えるのは観察者であり、終端点ではない
VPN と Tor を連結することは、網の水準で誰が何を見るかを変える正当な手段だ。VPN の上で Tor を走らせれば、Tor を使っている事実を接続網から隠し、Tor の上で VPN を走らせれば、あなたのアドレスを VPN 提供者から隠す。どちらの順序も公開文書に記されており、どちらも性能と障害時の振る舞いに妥協がある。
どちらの順序も TLS の終端点を動かさない。どちらの場合もブラウザは要求したホスト名の証明書を検証し、どちらの場合も HTTP のアドレスは最後のリレーの先でも内容を平文で送る。組み合わせは観察者の一覧を変えるが、宛先での層の数は変えない。
だから連結についての助言は、一般の安全性ではなく脅威モデルの話になりがちだ。長い鎖は同じものの強い版ではないし、アプリケーションが選んだ規約の代わりにもならない。
curl -sSI https://example.net | head -3
openssl s_client -connect example.net:443 -servername example.net -brief
どちらの命令も宛先で重要な層を示す。二つ目はどのトンネルも関与させずに交渉された規約を表示する。どちらも使った出口については何も告げない。
問題を調べる間も検証を働かせておく
証明書の警告は、これから作る接続についての情報だ。ホスト名の不一致、時計の問題、信頼できない鎖、傍受の試みのいずれかを意味しうる。VPN が接続されているからと恒久的な例外を足すと、そうした場合を見分けたはずの唯一の信号を消してしまう。
Tor Browser の安全な接続の機能と警告が存在する理由も同じであり、ページを読み込ませるためにそれらを切るのは、見える失敗を一つの見えない失敗に置き換えることだ。例外なしにサイトへ届かないなら、正直な結論は接続が検証できないということであり、トンネルが安全にしたということではない。
暗号化も意図については何も言わない。欺くサイトへの有効な HTTPS 接続は、あなたのデータを完璧な機密性でそのサイトへ届ける。錠の有無だけでなく、アドレスと送信内容を確かめよう。
Onion サービスは本当に別のモデルだ。通常の公開出口を使わずに Tor 網を通じて到達し、それは Tor 経由で公開サイトへ接続することと同じではない。同じ訪問の強い版ではなく、独自の期待を持つ別の事例として扱おう。
どんな設定でも残る規則は短い。ブラウザの検証をそのままにしておく。各層は実際に終わる場所で判断する。