VPNのカバートラフィック:どの観測者から隠れているのか
パディングはトラフィックのパターンを変えるが、それは設計時に想定した観測者に対してのみである。フィラーがどこで止まり、何のコストがかかり、何を隠せないのかを順にたどる。
カフェのネットワークをVPN利用者と共有していて、あなたに見えるのがパケットサイズとタイミングだけだとしよう。カバートラフィックはその絵をぼかすはずだ。パディングをノートPCからゲートウェイまでたどると、ぼかしは局所的なものだとわかる。ゲートウェイが終わる場所でそれは終わる。その先はすべて、同じ実トラフィックに対する新たな観測問題である。
つまり最初の問いは、どれだけのフィラーを送るかではない。どの観測者から隠れるのか、そしてその観測者がどこにいるのかである。
ノートPCから始める
ローカルリンク上で、観測者は暗号化されたパケットが出入りするのを見る。パディングがなければ、大きなアップロードはフルサイズのパケットの連なりであり、通話は中サイズのパケットの安定した流れであり、アイドル状態のクライアントは keepalive を送る。内容が読めなくても、こうした形は利用者の行動と相関する。フィラーは形を滑らかにできるが、誰も求めていないバイトを送る代償を払う。
その観測者がそうでなければ気づくはずのものを書き出そう。転送開始時のバースト、通話終了時の空白、アイドル期間のリズムである。その特徴に名前を付けられないなら、フィラーがそれを隠しているとは言えない。
フィラーをゲートウェイまで追う
ノートPCは協力するゲートウェイにパディングを送り、ゲートウェイはそれを捨てて実トラフィックを先へ転送する。この協力こそが仕組みである。フィラーを取り除く端点がなければ、カバーを作るのではなく他人の経路に負荷を加えただけになる。Tor のパディング仕様は、同じ切り分けを明示している。隣接リレー間のリンクパディングと、プロトコル状態に結び付いた回線パディングである。
次にゲートウェイが何を見るかを考えよう。ゲートウェイは実トラフィックにフィラーを加えたものを見る。つまり、あなたが信頼する当事者でない限り、学ぶことは減らず増える。カバートラフィックは信頼を移すのであって、信頼の必要性を取り除くのではない。
続いて第二の区間を見る
ゲートウェイの先では、実際の宛先への接続はありふれた形のありふれたトラフィックである。そこにいる観測者、ホスティング事業者であれ宛先ネットワークであれ、パディングが隠すはずだったのと同じバーストを見る。気にしていた観測者がそこにいるなら、パディングはあなたのために何もしていない。この境界こそが経路をたどる意味のすべてである。
カバートラフィックは区間単位で完結し、範囲を広げることは協力の範囲を広げることを意味する。
方向と形
外向きにだけ送るパディングは、送るもののタイミングを隠す。戻ってくるもののタイミングについては何も語らない。応答はそれぞれの予定で届くからだ。非対称な隠蔽は正常であり、声に出して言う価値がある。ダウンロード中心のセッションでも、受信側ではその形が見えている。
パケット長、バースト構造、開始と停止の時刻、到着間隔は、いずれも情報を運ぶ。平坦なままのバイトカウンタは、非常に見分けやすいパケットサイズ分布と共存しうる。合計が平坦であることは、振る舞いが平坦であることを意味しない。
予算が買うもの
フィラーは誰かが費用を払う容量を消費する。従量制のデータ、上り回線の競合、同じ接続を使う他の利用者の待ち行列遅延である。利用可能な最大レートに従うのも自己矛盾的だ。その最大値は回線とともに動き、フィラーもそれに合わせて動くからである。予算を明示し、予算を使い切ったときの振る舞いも明示することが、仕組みと事故の違いになる。
結果は、最初に名付けた観測に対して評価しよう。定義された観測者の下で認識率が下がったことを示す試験は結果である。より多くのトラフィックがより少ない情報を意味するという約束は結果ではない。
そもそも行うかどうかの判断
ほとんどの人にとって答えは否であり、正直な理由は、全速のバックグラウンドストリームは、何を守るのかを文書化したソフトウェアの代わりにはならないということだ。パディングは正当な工学であり、観測者、協力する端点、コスト、限界を明記する設計に属する。VPN を匿名性システムに変えるチェックボックスではない。
実装するなら、まず観測者モデルを書き留めよう。パケットサイズから停止時の振る舞いに至るまで、その後のすべての判断はその一つの段落から導かれる。