人は Onion サービスと VPN 経由でしか届かないサービスを、同じ発想、つまりポートを隠して秘密のアドレスを共有するという発想の二つの変種だと説明します。両者は、アドレスが何に結び付くのか、誰が到達できるのか、要求が届く前に何が必要なのかで異なります。一方は Tor の内部の待ち合わせ場所であり、他方はプライベートネットワーク内の経路です。両者を交換可能なものとして扱うと、プライベートでも保守可能でもない設計になります。

神話:どちらの設計もただの隠し扉

共通する性質は確かですが薄く、どちらの設計も管理用インターフェースを直接到達できる公開ポートには置きません。その先はすべて分かれます。Onion アドレスはサービス自身の鍵から導かれるため名前は同一性に結び付き、VPN アドレスは受け入れられたネットワーク内の単なるアドレスです。一方はサービスをオーバーレイの中に隠し、他方はプライベートなトポロジーへ受け入れます。後者を前者の同義語と見なすことから混乱が始まります。

どちらの性質も、アプリケーション自体にとってのセキュリティ制御ではありません。隠れた場所はその背後のソフトウェアに修正を当てるわけでもなく、プライベートな経路はログインページに認証を加えるわけでもありません。どちらの設計にもアプリ自身の権限が必要であり、どちらにも更新と復旧に責任を持つ人が必要です。

Onion アドレスは実際に何を指すのか

v3 の Onion アドレス はサービスの公開鍵を符号化するため、管理していないサービスのアドレスを誰も選べません。クライアントは Tor 経由で待ち合わせ場所に接続し、サービスは自分側から同じ地点に到達し、通常の出口ノードがその接続をサービスまで運ぶことはありません。名前は同一性であり、DNS レコードではありません。

dig +short example.onion
curl --socks5-hostname 127.0.0.1:9050 http://example.onion/
systemctl status tor

だから onion 名のために経路や hosts の項目を足しても何の役にも立ちません。名前解決が仕組みなのではなく、Tor クライアントとその回路が仕組みです。サービスが少数の人向けなら、onion クライアント認証は接続を受け入れる前に鍵を要求できますが、それはやはりアプリのログインではありません。アドレスの公開も意図的な行為であり、制限していなければ知った誰もが接続を試せます。

onion 設計の唯一の理由が認証の設定を避けることなら、立ち止まってください。オーバーレイはそれを提供しませんし、結局あとで作ることになります。

VPN の経路は実際に何を与えるのか

VPN は端末をネットワークに受け入れ、ゲートウェイまたはサブネットへの経路を与えます。そのゲートウェイの背後のサービスは、トンネルのプールから来たアドレスを見て、自分が持つ許可を適用します。経路は利用者が誰かを何も語らず、語るのはパケットがどこへ行けるかです。

ip route get 10.20.30.40
wg show
curl -sv https://files.internal.example/ -o /dev/null

ゲートウェイが端末の状態を強制でき、ネットワークを監査できるため、そのモデルは管理された端末を持つ既知のグループに向きます。匿名やその場限りの訪問者には、まず登録が必要になるため向きません。接続した利用者が何を読めるかは、やはりアプリ自身のログインが決めます。到達可能性を許可と混同すると、VPN は接続できる全員にサブネット全体を与えてしまいます。

公開範囲が不明だったり絶えず変わったりするなら、立ち止まってください。一ページを見せるために見知らぬ人をプライベートネットワークに登録するのは、サービスを公開するのに比べて大きな約束です。

どちらを選ぶか、そして変わらないもの

公開範囲が技術者で、サービスに公開アドレスをまったく持たせられず、Tor クライアントの要件を受け入れられるなら onion モデルを選びます。公開範囲が管理する端末を持つ特定のグループで、そのアクセスをネットワーク層で記録したいなら VPN モデルを選びます。どちらの選択も、アプリの認証、修正の適用、復旧の道筋の必要性を消しません。どちらも、利用者にとって重要な意味で自動的に秘匿性が高いわけではありません。

どちらの設計でも、誰がサービスに到達できるのか、どう識別されるのか、資格情報を失ったときに何が起きるのかを書き留めます。onion サービスの答えには、クライアント認可の鍵とアドレス自体が含まれます。VPN の答えには、アカウント、端末、ゲートウェイのポリシーが含まれ、これらは別の台帳であるため次の管理者に明らかなのはそのうち一つだけです。

比較はアプリケーションが始まる所で終わります。隠れたアドレスとプライベートな経路は輸送の選択であり、要求に何を許すかはアプリが決めなければなりません。その判断を別の文書に保てば、どちらの設計も他方の仕事を静かに吸収することはありません。

関連記事