Deux applications iPhone peuvent toutes deux ajouter une entrée VPN dans Réglages, toutes deux se présenter comme des clients VPN et ne partager presque aucune implémentation. Apple nomme l’une de ces intégrations VPN personnel, et ce nom produit l’essentiel de la confusion. VPN personnel est une API permettant de créer et de gérer des configurations qui utilisent l’implémentation intégrée d’IPsec ou d’IKEv2. Un fournisseur de tunnel de paquets est l’autre modèle : l’application fournit une extension qui implémente le côté client de son propre protocole. Tout ce que les gens en déduisent ensuite, des chiffrements à la propriété jusqu’à la nécessité ou non de gérer le téléphone, relève de l’inférence et non de l’énoncé.

Qui implémente le tunnel

La séparation décide qui est responsable quand quelque chose casse. Avec IPsec ou IKEv2 intégré, iOS possède la machine à états du tunnel et l’application possède la configuration et les boutons. Avec un fournisseur, l’application possède les deux, si bien qu’un bug de protocole devient une mise à jour d’application plutôt qu’une mise à jour du système.

La comparaison est courte si l’on demande qui implémente le protocole.

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

La documentation de VPN personnel mentionne aussi l’invite d’autorisation explicite de l’utilisateur lorsqu’une application enregistre une configuration pour la première fois, ce qui relève de ce modèle et non des applications VPN en général.

Deux affirmations sur l’étiquette qu’il vaut mieux abandonner

La première est que VPN personnel choisit un chiffrement. Ce n’est pas le cas ; la suite négociée vient du protocole et de sa configuration, et une étiquette Personnel ne dit rien sur celle que vous obtiendrez. La seconde est que VPN personnel implique un proxy ou un tunnel limité. Il implique IPsec ou IKEv2 intégré, ce qui est un tunnel complet dès que les routes le disent.

La présence d’une application n’est donc pas une preuve du protocole sur le fil. Un client tiers qui parle WireGuard ou OpenVPN est par construction une application fournisseur, car iOS n’implémente pas ces protocoles nativement.

Pourquoi la formulation entreprise induit en erreur

La documentation d’Apple classe les configurations NETunnelProviderManager comme des configurations VPN d’entreprise ordinaires. Cette formulation est une catégorie d’API, et elle pousse les gens vers deux erreurs opposées : supposer qu’une application grand public ne peut pas utiliser le modèle fournisseur, et supposer que le téléphone doit être supervisé pour cela. Ni l’une ni l’autre n’en découle. Les applications grand public fournissent couramment des fournisseurs, et la supervision est une question distincte de savoir qui peut appliquer une politique.

La propriété de la gestion est cette quatrième question, et elle est indépendante des deux modèles. Une configuration installée par une organisation porte sa propre identité, sa portée de trafic et ses règles de cycle de vie, et celles-ci voyagent avec le profil plutôt qu’avec l’application qui se trouve installée. Lisez-les avec le modèle d’intégration, car un profil intégré géré et un profil fournisseur non géré peuvent coexister sur un même téléphone.

Vérifiez la preuve plutôt que la capture d’écran

Les captures d’écran sont la pire preuve disponible, car le regroupement des Réglages change d’une version à l’autre. Un profil géré nomme son propre type de charge utile : un profil intégré déclare un type de VPN tel qu’IKEv2 ou IPsec, tandis qu’un profil fournisseur porte un sous-type nommant l’identifiant de bundle du fournisseur. C’est vérifiable sur l’appareil devant vous, et cela survit à la prochaine refonte.

Pour l’application elle-même, la classe utilisée répond à la même question par l’autre côté : des objets de configuration issus de l’API VPN personnel, ou un gestionnaire de fournisseur et son extension.

Choisissez ensuite selon ce que l’opérateur fournit réellement. Là où un profil natif compatible existe, la voie intégrée a moins de pièces mobiles et une chose de moins à mettre à jour. Là où le service a besoin d’un protocole qu’iOS ne fournit pas, une application fournisseur est la seule option et son rythme de publication fait partie de votre risque.

Conservez l’enregistrement avec la connexion

Attachez l’authentification et la politique de ressources à l’enregistrement de connexion plutôt qu’à l’application, afin qu’une réinstallation n’emporte pas le modèle d’autorisation. Cet enregistrement est aussi ce dont un ingénieur support a besoin lorsque le tunnel monte et que rien d’autre ne fonctionne.

La question qui vaut la peine d’être posée à la fin n’est pas quel modèle est meilleur. C’est quel modèle votre opérateur prend en charge, et lequel vous pouvez déboguer à deux heures du matin avec les outils que vous avez réellement.

Articles similaires