有料VPNはアカウントなしでセッションを認可できるか
リンクできないトークンを使えば、適格性の確認とセッションそのものを分離できる。重要なのは発行と償還の設計であり、ログイン画面のラベルではない。
トンネルに料金を払うことは、接続のたびに課金上の身元を示すことと同じではない。設計次第で、適格性を一度だけ確認し、顧客に暗号学的なトークンを渡し、その後ゲートウェイが背後のアカウントを見ずにトークンを受け入れられる。それが実際に何かを隠すかどうかは発行と償還の選択にかかっており、スイッチを入れる機能ではなく四つの節からなる仕様の検討課題として扱うべきだ。
購入の段階とセッションの段階を分ける
RFC 9576 の Privacy Pass アーキテクチャは語彙を与えてくれる。クライアント、証明者、発行者、オリジンである。クライアントは何らかの性質を発行者に証明してトークンを受け取り、後でその一つをオリジンに提示し、オリジンが提供するかどうかを決める。VPN に当てはめるなら、証明される性質は一回分のアクセス単位でありうる。
課金側は自分の処理に必要なものは依然として見ており、誰もそれを否定していない。より狭い目標は、後の償還を、そのトークンを生んだ購入に結び付けられないようにすることだ。これは具体的で検証可能な性質であり、書き留める価値があるのはこちらである。
見た目がランダムなベアラ文字列ではそれを提供できない。発行者が値を顧客レコードの隣に保存し、ゲートウェイがその対応を問い合わせられるなら、二つのやり取りは暗号ではなくデータベースで結ばれる。構成は発行者がその問いに答えられないようにし、配備は発行者とゲートウェイが視点を突き合わせないようにしなければならない。
一つのトークンが何を認可するかを決める
「トークン一つでアクセスを買う」では運用上の問いにほとんど答えられない。単位は一回の接続なのか、時間の割り当てなのか、データ量なのか。応答を失ったクライアントは同じ付与を再開できるのか。ネットワークが切り替わる最中に端末が再接続したらどうなるのか。これらの答えが設計の実用性を決め、それぞれにプライバシー上の帰結がある。
| Reuse rule | What it buys | What it leaks |
|---|---|---|
| Single use per connection | Strongest unlinkability between sessions | Frequent reissuance, more purchase-to-use timing pairs |
| Bounded time window | Fewer tokens, reconnects work | Activity inside the window is linkable |
| Long-lived grant | Operationally simple | Behaves like an account reference with extra steps |
一つを意図的に選び、失敗時の挙動をその横に書く。時間切れの後に新しい権利で再試行するクライアントはもう一単位を消費し、それは同時に課金上の驚きでありプライバシーの信号でもある。
再利用と失効の方針を書く
失効は、匿名の設計がしばしば自らの約束を破る場所である。購読の解約と、すでに発行したトークンの無効化は別の操作であり、判断のために静かにアカウント照会を行うゲートウェイはその時点でもう匿名ではない。
有効期限、発行上限、失効の筋書きを互いに整合するように選ぶ。そのうえで、削除した結び付きを再び持ち込む項目がないか、ゲートウェイ自身の記録を確認する。
sudo grep -rIl --include='*.log' -e 'Bearer ' -e 'account_id' /var/log/vpn/
この検索はトークンやアカウントの項目を含むログファイルを一覧するもので、注意深い設計が実際に漏れる最初の場所である。トークンの値をアカウント識別子の隣に保存するセッション記録は構成全体を台無しにし、たいていは誰も見直さなかったデバッグ用の変更から入り込む。
セッション終了後にゲートウェイが何を保持するかも定める。継続時間、バイト数、端点は運用に有用だが、いずれも観察者が欲しがるパズルの一片である。保持期間を短く、項目一覧も短くし、デバッグ用の変更が列を追加したときに両方を見直す。新しいログ項目は一年居座るまで誰も気づかない。
主張を述べ、そのうえで残る観察を挙げる
プライバシーの主張を前提とともに一文で書く。どの当事者がどの文脈を結び付けられてはならないのか、発行者とゲートウェイが記録を突き合わせたら何が起きるのか。その一文に耐える設計はレビューできるが、「ゼロ知識」とだけ説明された設計はできない。
次に、それでも見え続けるものを挙げる。送信元アドレス、接続時刻、パケットサイズ、そして唯一の新しい接続が現れる直前に購入があったという単純な事実は、いずれも暗号の外にある。一単位を買って一度だけ接続する顧客は、時刻だけで結び付けられ、どのトークン設計もそれを変えない。
正直な結論は、見えないセッションではなく、アカウントと利用の間のより狭い結び付きである。文書がそう述べ、運用記録が主張と一致するなら、それでも作る価値はある。