二つのiPhoneアプリがどちらも「設定」にVPN項目を置き、どちらもVPNクライアントと名乗りながら、実装をほとんど共有しないことがあります。Appleはそのうち一方の統合をパーソナルVPNと呼び、この名前が混乱の大半を生みます。パーソナルVPNは、内蔵のIPsecまたはIKEv2実装を使う構成を作成・管理するためのAPIです。パケットトンネルプロバイダーはもう一方のモデルで、アプリが独自プロトコルのクライアント側を実装した拡張機能を同梱します。その後、人々がラベルから推測するすべて、暗号から所有権、端末を管理しなければならないかどうかまで、それは推測であって明言ではありません。

トンネルを実装するのは誰か

この分離が、何か壊れたときに誰が責任を負うかを決めます。内蔵のIPsecまたはIKEv2では、トンネルの状態機械はiOSが所有し、アプリは構成とボタンを所有します。プロバイダーの場合はアプリが両方を所有するため、プロトコルの不具合はOSの更新ではなくアプリの更新になります。

誰がプロトコルを実装するのかと問えば、比較は短く済みます。

IntegrationApple interfaceProtocol implementation
Personal VPNNEVPNManager with a Personal VPN configurationThe system IPsec or IKEv2 client
Packet tunnelNETunnelProviderManager plus the provider extensionWhatever the extension implements

パーソナルVPNのドキュメントも、アプリが初めて構成を保存するときの明示的なユーザー承認プロンプトに触れており、これはVPNアプリ全般ではなく、このモデルに属するものです。

ラベルについて手放すべき二つの主張

一つ目は、パーソナルVPNが暗号を選ぶという主張です。そうではなく、ネゴシエートされるスイートはプロトコルとその構成から決まり、パーソナルというラベルはどれを得るかを何も語りません。二つ目は、パーソナルVPNがプロキシや制限付きトンネルを意味するという主張です。それは内蔵のIPsecまたはIKEv2を意味し、ルートがそう定めれば完全なトンネルです。

したがって、アプリの存在はワイヤープロトコルの証拠になりません。WireGuardやOpenVPNを話すサードパーティのクライアントは、iOSがそれらのプロトコルをネイティブに実装していないため、構造上プロバイダーのアプリです。

エンタープライズという表現が誤解を招く理由

Appleのドキュメントは、NETunnelProviderManagerの構成を通常のエンタープライズVPN構成として分類しています。この表現はAPIのカテゴリーであり、人々を、消費者向けアプリはプロバイダーのモデルを使えないという誤解と、そのために端末を監視下に置かなければならないという誤解という二つの逆の誤解へと押しやります。どちらも成り立ちません。消費者向けアプリは日常的にプロバイダーを同梱しており、監視は誰がポリシーを強制できるかという別の問いです。

管理の所有権がその四つ目の問いであり、両方のモデルから独立しています。組織がインストールした構成は、独自の身元、通信範囲、ライフサイクル規則を持ち、それらはたまたまインストールされたアプリではなくプロファイルとともに移動します。管理された内蔵プロファイルと管理されていないプロバイダープロファイルが同じ端末に同時に存在し得るため、統合モデルと並べて読んでください。

スクリーンショットではなく証拠を確かめる

スクリーンショットは、リリースごとに「設定」のグループ分けが変わるため、利用可能な証拠として最悪です。管理されたプロファイルは自身のペイロード種別を名乗り、内蔵プロファイルはIKEv2やIPsecといったVPN種別を宣言し、プロバイダープロファイルはプロバイダーのバンドル識別子を名乗るサブタイプを持ちます。これは目の前の端末で確認でき、次の再設計にも耐えます。

アプリ自体については、使われているクラスが、パーソナルVPN APIの構成オブジェクトか、プロバイダーマネージャーとその拡張機能かという同じ問いに反対側から答えます。

次に、事業者が実際に提供するものに応じて選びます。互換性のあるネイティブプロファイルがある場合、内蔵の道は可動部品が少なく、更新するものも一つ減ります。サービスがiOSにないプロトコルを必要とする場合、プロバイダーのアプリが唯一の選択肢であり、そのリリース周期がリスクの一部になります。

記録を接続とともに保つ

認証とリソースポリシーはアプリではなく接続の記録に結び付け、再インストールで承認モデルまで失わないようにします。その記録は、トンネルが上がったのに他が何も動かないときにサポートエンジニアが必要とするものでもあります。

最後に問う価値があるのは、どちらのモデルが優れているかではありません。事業者がどちらのモデルを支えているか、そして実際に持っている道具で深夜二時にどちらをデバッグできるかです。

関連記事