Les profils arrivent dans Réglages avec un nom, un signataire et un bouton Installer, et la ligne du signataire est la partie que la plupart des gens lisent. Cette ligne répond à une seule question : qui a empaqueté ces réglages, selon les règles de vérification de signature. Elle ne dit pas que la charge utile VPN pointe vers la passerelle de votre employeur, ni qu'un certificat racine intégré appartient à votre magasin de confiance TLS. La visite guidée ci-dessous ouvre le paquet dans l'ordre où l'appareil l'appliquera.

Commencer par l'enveloppe : qui a signé ce profil

Sur iOS, le profil apparaît dans Réglages, Général, VPN et Gestion de l'appareil, le signataire étant affiché au-dessus du bouton Installer. Lisez ce nom avant de toucher à quoi que ce soit, et demandez-vous s'il s'agit bien de l'organisation dont vous attendiez des réglages. Une signature valide d'une partie que vous ne reconnaissez pas reste une signature valide, et elle autorise sa configuration, pas la vôtre. Le même écran indique aussi si le profil est signé, tout simplement.

Si vous avez le fichier sur un Mac, inspectez-le avant qu'il n'atteigne le téléphone. L'outil de sécurité décode l'enveloppe CMS et affiche le plist que l'appareil lira, soit le même contenu sans bouton Installer pour gêner. La documentation d'Apple sur l'application des configurations décrit la signature comme une validation d'origine, ce qui correspond exactement au périmètre décrit ici.

security cms -D -i corp-vpn.mobileconfig -o corp-vpn.plist
plutil -p corp-vpn.plist

Arrêtez-vous ici si le signataire n'est pas celui que vous attendiez, ou si le fichier n'est pas signé et vous est parvenu par un canal qui ne peut pas en répondre. Rien dans la suite de cette visite ne rend une enveloppe non fiable digne de confiance.

Ouvrir chaque charge utile et nommer ce qu'elle installe

Un profil est un conteneur, et la partie intéressante est le tableau PayloadContent qu'il renferme. Chaque entrée porte un PayloadType qui indique ce que l'appareil va installer : une configuration VPN gérée, une identité PKCS#12, un certificat racine ou une inscription de gestion. Affichez les types avant de lire le moindre réglage.

plutil -extract PayloadContent xml1 -o - corp-vpn.plist |
  grep -E 'PayloadType|PayloadDisplayName'

Une charge utile VPN nomme une connexion : adresse du serveur, méthode d'authentification et, éventuellement, une règle par application ou à la demande. Une charge utile d'identité fournit l'identifiant client que cette connexion présentera. Une charge utile de certificat racine ajoute une ancre de confiance, et une charge utile de gestion confie le contrôle continu à un serveur. Ce sont quatre engagements différents, et la signature couvre le paquet plutôt que d'en garantir chacun séparément. Lisez-les dans cet ordre, car le VPN est inutile sans l'identité, et l'identité ne signifie pas grand-chose si l'on ignore qui l'a émise.

La protection par mot de passe du fichier est encore une autre propriété. Un paquet chiffré cache le contenu à qui n'a pas le mot de passe ; il ne décide pas si vous devez autoriser ce qu'il contient. Traitez le mot de passe comme un mécanisme de livraison, non comme une relecture.

Relier les certificats à la connexion qui les utilise

Listez les certificats du paquet et associez chacun à un rôle. Le certificat client identifie cet appareil auprès de la passerelle, l'autorité de certification qui l'a émis fait partie de la chaîne de confiance pour cette connexion, et une racine installée pour un proxy ou un service interne n'est pas automatiquement une ancre pour tous les sites HTTPS. Sur iOS, une racine installée à la main reste non fiable pour TLS tant que vous ne l'activez pas dans Réglages, Informations, Réglages de confiance des certificats, alors qu'une racine livrée par la gestion est approuvée sans cette étape. Cette différence explique précisément pourquoi l'objet de la charge utile compte.

openssl pkcs7 -inform DER -in corp-vpn.mobileconfig -print_certs -noout
security find-certificate -a -c "Corp Root" -p | openssl x509 -noout -subject -dates

Un fournisseur qui achemine votre trafic n'est pas, pour cette raison, le point de terminaison TLS de chaque site que vous visitez. L'interception exige le chemin du trafic et une ancre de confiance que l'application accepte, et un profil portant un seul certificat ne prouve ni l'un ni l'autre. Demandez quelle connexion utilise le certificat et quelles applications l'accepteront, au lieu de supposer que l'installation du profil déchiffre tout.

Après l'installation : vérifier, et savoir ce que fait la suppression

Une fois le profil installé, confirmez-le depuis l'appareil plutôt que depuis le fichier téléchargé. L'écran des réglages liste le profil installé, son signataire et ses charges utiles, et l'écran VPN montre si la connexion est configurée comme prévu. Supprimer le fichier téléchargé n'enlève rien ; la configuration installée est un objet distinct.

profiles show -type configuration
scutil --nc list

Si le profil comprend une inscription de gestion, lisez les conséquences de la suppression avant de l'installer, pas après. Retirer cette inscription emporte ses configurations associées et peut supprimer des applications gérées, selon la façon dont l'appareil a été inscrit. Ce n'est pas une étape de réparation à tenter quand un certificat semble incorrect. Demandez à l'administrateur quelle charge utile est responsable du problème avant de supprimer quoi que ce soit.

La visite se termine sur quatre réponses distinctes : qui a signé le paquet, quelles charges utiles il installe, quelle identité et quelle confiance chaque connexion utilise, et ce que la suppression emporterait. Gardez-les séparées et un profil signé devient une décision examinée plutôt qu'une coche verte.

Articles similaires