Importer un certificat VPN sur Android et vérifier la clé
Importez un P12 sous Android, confirmez quel fournisseur détient la clé et déterminez à qui appartient réellement l'exigence de verrouillage de l'écran.
Importer un certificat client VPN sur Android prend quelques minutes. Vérifier qu'il a atterri au bon endroit prend plus de temps, et c'est la partie que la plupart des gens sautent dès que la boîte de dialogue d'installation annonce un succès. Un message de succès signifie seulement que le fichier a été analysé. Il ne dit rien sur l'émetteur qui détient la clé privée ni sur la présence d'une copie encore dans votre dossier Downloads.
Étape 1 : Lisez le P12 avant qu'il ne quitte votre machine
Commencez par le fichier lui-même. Si vous ne pouvez pas nommer le sujet, l'émetteur et la date d'expiration qu'il contient, vous importez quelque chose que vous ne pourrez pas vérifier plus tard.
Un paquet PKCS#12 transporte normalement un certificat client, sa clé privée et la chaîne de l'émetteur. openssl pkcs12 -in client.p12 -info -noout imprime le MAC et les algorithmes de chiffrement sans vider le matériel de clé, ce qui vous montre si le paquet est protégé par mot de passe et avec quel chiffrement. Enchaînez avec keytool -list -v -keystore client.p12 -storetype PKCS12 pour obtenir l'alias, l'empreinte SHA-256 et la fenêtre de validité que vous comparerez au téléphone.
Envoyez le mot de passe par un canal différent de celui du fichier, ou remettez le fichier dans un flux de distribution géré qui ne laisse aucune copie. Un mot de passe collé dans le même message de chat que l'archive transforme deux contrôles en un seul.
Étape 2 : Installez-le dans l'emplacement que l'application VPN lit réellement
Sur Android 11 à 14 d'origine, le chemin passe par Paramètres, Sécurité, Chiffrement et identifiants, Installer un certificat, puis VPN et certificat utilisateur d'application. La formulation et l'imbrication changent selon les versions et les surcouches constructeur, suivez donc le libellé du type d'identifiant plutôt qu'une position de menu mémorisée. Dans un profil professionnel, installez depuis l'intérieur du côté professionnel, car les identifiants ne franchissent pas la frontière du profil.
Ne placez pas une identité client dans l'emplacement de certificat CA. Cet emplacement alimente le magasin de confiance de l'utilisateur, et depuis Android 7 les applications ignorent les CA ajoutées par l'utilisateur sauf si leur configuration de sécurité réseau l'autorise, donc un certificat client déposé là n'apparaît jamais dans le sélecteur de clés du VPN.
Certains clients VPN ne touchent jamais au magasin système et importent le P12 dans leur propre répertoire d'application. C'est une conception légitime, mais elle change toutes les étapes suivantes : la clé vit désormais dans le bac à sable de l'application et vaut exactement ce que cette application fait de son propre stockage. Consultez la documentation du client avant de supposer que KeyChain entre en jeu.
Étape 3 : Prouvez quel fournisseur détient la clé
Une importation confirme l'analyse, pas le support matériel. À partir d'Android 12, KeyInfo.getSecurityLevel() indique si une clé se trouve dans l'environnement d'exécution de confiance, dans StrongBox ou dans le logiciel, et remplace l'ancien appel isInsideSecureHardware(). Si le client VPN n'affiche pas cette valeur, l'empreinte de l'étape 1 est votre recours. Un certificat réencodé pendant l'importation ne correspondra pas octet pour octet, mais la clé publique et le sujet correspondront toujours.
Non exportable ne veut pas dire inutilisable. Une clé qui ne peut pas quitter l'appareil peut encore être utilisée par toute application que l'utilisateur autorise à sélectionner cet alias, et c'est pourquoi l'invite d'alias est un vrai contrôle et non une formalité. La documentation Android Keystore vaut une lecture si vous prenez cette décision de conception.
Tenez ensuite compte des copies que vous avez faites. Le P12 sur votre portable, celui de la pièce jointe du ticket et celui de la sauvegarde du mois dernier restent des identités valides jusqu'à ce que l'émetteur les révoque. La protection matérielle de l'instance sur le téléphone ne fait rien pour celles-là.
Étape 4 : Découvrez à qui appartient l'exigence de verrouillage de l'écran
Trois secrets se confondent ici : le PIN de déverrouillage de l'appareil, la phrase secrète de la clé privée et le mot de passe du compte VPN. Une invite pour l'un n'est jamais une demande de réinitialiser les autres, et réinitialiser le mauvais est la façon dont les gens se verrouillent hors d'un profil qui fonctionnait bien.
Quand un administrateur d'appareil ou une politique de profil géré exige un verrou, l'exigence appartient à cette politique, pas au certificat. adb shell dumpsys device_policy liste les administrateurs actifs et la qualité de mot de passe qu'ils imposent, ce qui est le moyen le plus rapide de voir si un agent MDM est la raison du changement de vos règles de PIN. Retirer le certificat ne relâchera pas la politique, et retirer la politique est une décision administrative plutôt qu'un réglage.
Attendez-vous aussi à un compromis d'ergonomie. Si la clé exige une autorisation utilisateur, le tunnel ne peut pas monter avant le premier déverrouillage, donc les synchronisations planifiées et les réveils distants échouent par conception. Décidez-le avant le déploiement, pas après.
Évitez le raccourci de modifier locksettings.db ou de rejouer un ancien contournement pour schéma oublié. Ces routines ont été écrites pour des versions précises, elles peuvent laisser le magasin d'identifiants dans un état que le framework n'attend plus, et elles ne changent jamais la politique qui a demandé le verrou au départ.
Étape 5 : Retirez l'identité et vérifiez le refus
Le retrait comporte trois parties et seule la première est locale. Supprimez le profil VPN, effacez le certificat utilisateur sous Paramètres, Sécurité, Chiffrement et identifiants, Identifiants utilisateur, puis faites révoquer le numéro de série du certificat par l'émetteur. La suppression locale seule laisse un identifiant que le serveur accepte encore si quelqu'un a gardé le P12.
Vérifiez le résultat au lieu de le supposer. Essayez une connexion avec le profil retiré et confirmez que le serveur la rejette. Un tunnel qui monte encore signifie que vous avez révoqué le mauvais numéro de série ou que le client est retombé silencieusement sur une autre identité installée.
Si vous annulez une importation ratée, réimportez depuis le paquet chiffré d'origine et revérifiez l'empreinte au lieu de réutiliser un fichier de clé déchiffré que vous avez laissé sur le disque.