暗号を破らずにネットワークはVPNをブロックできるのか
暗号化が守るのは内容であり、配送ではない。ブロックリスト、許可リスト、遮断を比較し、一度の観測が実際に何を支えられるのかを問う。
事業者はトンネルを止めるのにセッション鍵を必要としない。経路上でパケットを捨てればトンネルは失敗し、暗号は設計が約束したとおりの強さのまま残る。暗号化が守るのは会話が運ぶ中身であって、どのネットワークがそれを運ぶかという意思ではない。この二つの性質を分ければ、ブロック不可能性をめぐる議論は、どの方針が効いていてどこまで及ぶのかという問いに変わる。以下の比較が可用性と機密性を分けて扱うのは、VPNのブロックに関する自信ありげな主張のほとんどが、両者を黙って混ぜているからだ。
到達可能性は経路が下す判断である
あらゆる輸送はパケットを転送する経路に依存し、ここでの政策の問いはすべてその転送の判断に還元される。パケットを捨てる規則は機密性に触れずに可用性を変える。だからこそ、あるトンネルは完璧に暗号化されながら、同じ瞬間にまったく使えないことがありうる。その結果のどこにも、暗号を破ることや鍵を取り戻すことは要求されない。要求されるのは経路の制御だけである。
混同はたいてい、二つの性質が一つの言葉を共有するところから始まる。強い暗号は誰が流れを読めるかを語るが、中間装置がそれを通過させるかどうかは何も語らない。したがってVPNはブロックできないという主張は、その下にもう一つの主張、つまり経路上の誰もパケットを捨てようとしないという主張を必要とする。
執行の型とそれぞれの代償
三つの型が実際の方針の大半を覆い、何を知る必要があるか、運用にいくらかかるか、そしてほかに誰が苦しむかが異なる。どれも何も復号せずにトンネルを拒否できる。違いが重要になるのは、ブロックという同じ言葉が三つすべてに使われているからだ。
| Style | Default | What it must know | Who else is affected |
|---|---|---|---|
| Blocklist | Allow, minus listed destinations | Addresses and ports of known endpoints | Unrelated tenants on a listed address |
| Allowlist | Deny, plus approved destinations | A maintained definition of permitted traffic | Anything outside the approved set |
| Shutdown | Deny broadly for a period | Nothing about the protocol | Ordinary services along the same path |
この表は費用の地図であり、順位づけではない。ブロックリストは始めるのは安く、正確に保つのは高い。許可リストは発見を許容集合の保守と引き換えにし、遮断は分類をまったく必要としない。両者を分けるのは技術的な洗練ではなく、持続的な手間をどこに置くかである。紙の上で単純に見える方針には、たいていどこかに隠れた保守の行がある。
ブロックリストは、アドレスがどれだけうまくサービスを名指しできるかに縛られる
ブロックリストはすでに特定された宛先を拒否し、残りはおおむね利用可能なままにする。執行には平文ではなくアドレスとポートが要り、それが当初の運用を安くする。費用は後から来る。かつて一つの事業者を指していた範囲が、後に無関係な十数のテナントを収容することがあるからだ。アドレスが変わるたびにリストの編集が強制され、古びた項目は無実の通信を巻き添えにする。
このモデルの精度は、宛先がどれだけうまくサービスを特定できるかに限られる。そして混雑した共有エンドポイントは識別子として貧弱である。これは実装の欠陥ではなく構造的な限界なので、道具が良くなっても消えない。ブロックリストが膨らみやすい理由もこれで説明できる。新しいエンドポイントはどれも小さな追加に見え、巻き添えの被害はリストとともに増える。
許可リストは保守の負担を移す
許可リストは既定を反転させ、あらかじめ選んだ宛先や通信の種類だけを通す。禁止されたエンドポイントをすべて列挙する必要はなく、禁止集合が大きいときや素早く変わるときに役立つ。代わりに必要になるのは、何が許されるかという保守された定義と、その定義に合う執行である。
ポート番号はそうした定義の常習的な弱点である。ポートを許すことは、それを使い得るすべてのアプリケーションを特定することと同じではない。だからポート基準の許可リストは、作者の意図より多くを通してしまうことが多い。プロトコルの指紋も別の角度から同じ問題を抱える。指紋が特定するのは通信の形であって意図ではない。したがって許可リストが自動的にブロックリストより正確なわけではなく、別の何かについて正確なのである。
一度の観測が支えられること、支えられないこと
ブロックについてのどんな主張も、四つの問いを手に読むべきだ。どのアクセス網で、どの宛先へ、どのプロトコルで、どの観測期間か。今日ある携帯網で見た失敗は、明日別の網から同じエンドポイントについて何も語らない。一度動いたトンネルも、持続的な可用性については何も語らない。
失敗の形は、原因を理論化する前に観察できる。沈黙のままの停止、即時の拒否、接続後のリセットはそれぞれ異なる執行の型を指し、二つのコマンドがそれらを分ける。
curl -sS -m 8 https://vpn.example.com/ -o /dev/null -w "%{http_code}\n"
traceroute -n -m 8 vpn.example.comタイムアウトで終わる停止は黙った破棄を示し、速い拒否は経路上の拒否する装置を、接続後のリセットは経路の欠落ではなく状態を持つ干渉を示す。検閲技術に関するRFC 9505の調査は、そうした形の背後にある制御点と干渉のパターンを記述している。だがどれも、その方針がどれだけ広く適用されるかは教えてくれない。永続性は到達可能性より強い主張である。エンドポイントもソフトウェアも方針も許可されるサービスもすべて変わるのだから、無期限の有効性には、ある瞬間に見たアドレスの一覧ではなく、執行が続くという前提が要る。