L’épinglage TLS et l’accès VPN répondent à des questions différentes
Un épinglage limite le serveur auquel l’application fait confiance ; la politique VPN décide qui atteint le réseau. Ni l’un ni l’autre ne couvre l’autorisation ou un appareil perdu.
Placez une application mobile privée derrière un VPN et une personne raisonnable demandera si elle a encore besoin de l’épinglage de certificat. La question ressemble à un choix entre deux contrôles équivalents, et c’est en réalité une question sur deux portes différentes. Le VPN décide si cet appareil peut emprunter le chemin ; l’application décide si le serveur atteint est celui attendu. Répondez aux deux séparément et la conception devient plus simple.
Deux portes, deux questions
L’admission au réseau concerne le client : cet appareil est-il enrôlé, son justificatif est-il valide, et la politique l’autorise-t-elle sur ce chemin ? La confiance de l’application concerne le serveur : la connexion a-t-elle atteint un service dont l’identité est acceptée par l’application ? Ces réponses viennent de systèmes différents, échouent pour des raisons différentes et sont corrigées par des équipes différentes. Une poignée de main VPN peut réussir pendant que l’application parle à un certificat expiré derrière le pair. Une application parfaitement épinglée peut rester inaccessible à tous, parce que l’appareil n’est jamais entré sur le réseau.
Les deux s’additionnent. Retirer l’un enlève un contrôle ; ajouter l’autre ne le remplace pas.
Ce qu’un épinglage limite réellement
Un épinglage resserre l’ensemble des identités de serveur que l’application acceptera, généralement en nommant une clé publique ou un condensat de certificat plutôt qu’en faisant confiance à chaque chaîne qu’un magasin cautionnerait. C’est une contrainte posée sur la validation ordinaire, non un remplacement. La validation ordinaire répond si une chaîne est fiable ; l’épinglage répond si c’est la chaîne que cette application attend. Une implémentation qui saute la première étape n’a pas gagné en sécurité, seulement en nouveauté.
L’objet épinglé varie selon les plateformes, donc le mot seul dit très peu. Copier un condensat du magasin de confiance d’un produit et le traiter comme la même chose dans une application mobile est une erreur courante et silencieuse.
L’épinglage sur la plateforme est une configuration, pas une politique
Android expose l’épinglage par sa configuration de sécurité réseau, où un jeu d’épinglages contient des condensats de clé publique et la chaîne doit en contenir au moins un. Ce fichier est propre à chaque application et exige un changement de build délibéré. iOS n’a pas de mécanisme de manifeste équivalent, aussi l’épinglage y vit-il dans le code d’évaluation de confiance de l’application elle-même.
Comme le mécanisme diffère, l’exigence doit être écrite par plateforme. Une politique qui dit épinglez le certificat sans nommer la plateforme n’est pas applicable.
La rotation décide si l’épinglage survit
La partie difficile n’est pas la première version, c’est le renouvellement du certificat qui suit. Une politique de confiance restrictive rejette une nouvelle clé légitime aussi fermement que celle d’un attaquant.
Deux mécanismes rendent la rotation survivable : un épinglage de secours déjà approuvé avant d’être nécessaire, et une date d’expiration sur le jeu d’épinglages pour que l’application de la politique cesse au lieu de bloquer l’application. Les deux sont des décisions de politique, et l’expiration en particulier est une réduction délibérée de sécurité, non un minuteur inoffensif. Nommez qui contrôle le build de l’application, le point de terminaison TLS et le renouvellement du certificat, et réunissez-les dans un seul processus de changement. Si ce sont trois équipes différentes, l’épinglage finira par causer une panne que personne n’avait planifiée.
Un appareil perdu est un troisième problème
Révoquer un justificatif VPN ne met pas forcément fin à une session d’application, et un épinglage de serveur ne fait absolument rien pour un téléphone dans la main d’un autre. Le verrouillage de l’appareil, le stockage des justificatifs, la durée de session et la révocation à distance sont des décisions distinctes avec des propriétaires distincts. Les plier dans la discussion sur l’épinglage garantit qu’aucune d’elles ne sera conçue.
Testez quatre relations au lieu de celle que vous voyez : le serveur et l’opération prévus, un compte qui devrait être refusé, une identité de serveur qui devrait être rejetée, et la rotation planifiée. Un VPN qui fonctionne n’exerce que la première. Notez ce que chaque test a prouvé, car la personne suivante supposera qu’un tunnel vert signifie que les quatre ont réussi.