VPNのアイコンは接続済みを示し、ネットワーク切り替えの際にトンネルが一瞬切れ、遮断されるはずだった通信がセルラー経由で出ていく。インターフェースはその隙間を何も知らせなかった。あなたが頼っていた機能はクライアントとプラットフォームのポリシーであり、設定にあるプロトコル名はその一秒に何が起きるかを説明しない。

ロックは状態についての契約として説明すべきで、IKEv2やOn Demandの性質ではない。

症状:アイコンは接続済みと言う

アイコンはクライアント自身の状態に対する見方を映すもので、その見方は再接続の長さだけ現実より遅れることがある。キャッシュされたページ、素早い再接続、ステータスの更新はいずれもその間隔を隠す。問う価値があるのは、アイコンが緑だったかではなく、トンネルが無い間に端末が何を許したかである。同じ遅れが、アプリのスクリーンショットがなぜ弱い証拠なのかも説明する。それは遷移ではなく状態を記録する。

その問いに答えがあるのは、ポリシーがそれを定義している場合だけである。

プロトコルが実際に維持するもの

IKEv2は認証済みのIPsec関係を維持・更新し、モビリティ機能はアドレス変更後にそれを復旧させる助けになる。それはトンネルのライフサイクルについての記述である。隙間の間にiPhoneが別の通信を送る許可については何も語らない。その許可はプラットフォームとクライアントに属し、鍵交換には属さないからである。一秒未満で再接続する端末にも窓はあり、面白い挙動はその窓にこそ宿る。

On Demandも同様に有効化の挙動の記述であり、万能の遮断保証ではない。

プラットフォームが開発者に提供するもの

AppleのNetwork Extensionは通信範囲の制御を提供し、そのルーティングガイドは全ネットワークを含める挙動と通常の含まれるルートを区別し、システムの例外を列挙している。監視下のAlways On展開モデルもあり、個人用アプリの自動接続設定とは別である。あるアプリがその一部を使うかどうかはアプリの性質であり、それが話すプロトコルの性質ではない。

トグルの名前は、アプリがどのAPIを呼ぶかの証拠ではない。

機能を契約として読む

プロバイダーに五つの状態を明示するよう求めること。初回有効化、予期しないトンネル喪失、意図的な切断、アプリ終了、端末の再起動である。システムの例外と意図的なLANアクセスがあれば、そのリストの隣に置く。そのうえで、この機能が任意なのか、管理によって強制されるのか、クライアントのモードに条件づけられているのかを尋ねること。利用者が選ぶ一時停止と組織が強制するロックは別の製品だからである。その五つの答えを展開の記録に書くこと。次のレビュー担当者はまさにその質問をする。

予期しない喪失では遮断するが意図的な切断では遮断しない機能は、一貫した設計である。ただ、マーケティングページが説明していたものではないだけだ。

隙間をどう試すか

気になるアプリとアドレスファミリーで、無害な通信を使って一度に一つの遷移を試すこと。隙間の間に何が許されたかを確認し、その後にアイコンが何を示したかではない。結果と並べてクライアントのバージョンとポリシーを記録すること。どちらも変わるし、どちらも端末の設定画面からは見えないからである。実際の隙間と遅いアイコンを分ける唯一の方法である。

その答えがコンプライアンスに関わるなら、製品ラベルから推測するのではなく書面で求めること。

関連記事