Een VPN-certificaat op Android importeren en de sleutel verifiëren
Importeer een P12 op Android, bevestig welke provider de sleutel heeft en zoek uit wie de eis voor schermvergrendeling echt bezit.
Een VPN-clientcertificaat importeren op Android kost een paar minuten. Controleren of het op de juiste plek is beland duurt langer, en dat is het deel dat de meeste mensen overslaan zodra de installatiedialoog succes meldt. Een succesmelding betekent alleen dat het bestand is geparseerd. Ze zegt niets over welke provider de privésleutel heeft of er nog een kopie in je map Downloads staat.
Stap 1: Lees de P12 voordat hij je machine verlaat
Begin bij het bestand zelf. Als je het subject, de uitgever en de vervaldatum erin niet kunt benoemen, importeer je iets wat je later niet kunt verifiëren.
Een PKCS#12-bundel bevat meestal een clientcertificaat, de bijbehorende privésleutel en de uitgeversketen. openssl pkcs12 -in client.p12 -info -noout drukt de MAC en de versleutelingsalgoritmen af zonder sleutelmateriaal weg te schrijven, zodat je ziet of de bundel met een wachtwoord is beveiligd en met welke cipher. Laat keytool -list -v -keystore client.p12 -storetype PKCS12 volgen om de alias, de SHA-256-vingerafdruk en het geldigheidsvenster te krijgen dat je met de telefoon vergelijkt.
Stuur het wachtwoord via een ander kanaal dan het bestand, of geef het bestand door in een beheerde distributiestroom die geen kopie achterlaat. Een wachtwoord dat in hetzelfde chatbericht als het archief wordt geplakt, maakt van twee controles één.
Stap 2: Installeer het in de sleuf die de VPN-app echt leest
Op stock-Android 11 tot 14 loopt het pad via Instellingen, Beveiliging, Versleuteling en inloggegevens, Certificaat installeren, daarna VPN en app-gebruikerscertificaat. De formulering en het nesten verschuiven tussen releases en fabrikantenschillen, dus volg het label van het type inloggegevens in plaats van een uit het hoofd geleerde menupositie. In een werkprofiel installeer je van binnen de werkzijde, omdat inloggegevens de profielgrens niet overschrijden.
Zet geen clientidentiteit in de CA-certificaatsleuf. Die sleuf voedt de vertrouwensopslag van de gebruiker, en sinds Android 7 negeren apps door de gebruiker toegevoegde CA's tenzij hun netwerkbeveiligingsconfiguratie dat toestaat, dus een clientcertificaat dat daar staat, verschijnt nooit in de VPN-sleutelkiezer.
Sommige VPN-clients raken de systeemopslag nooit aan en importeren de P12 in hun eigen app-map. Dat is een legitiem ontwerp, maar het verandert elke latere stap: de sleutel leeft nu onder de sandbox van de app en is precies zo sterk als die app met zijn eigen opslag omgaat. Controleer de documentatie van de client voordat je aanneemt dat KeyChain in het spel is.
Stap 3: Bewijs welke provider de sleutel heeft
Een import bevestigt het parsen, niet de hardwareondersteuning. Op Android 12 en later meldt KeyInfo.getSecurityLevel() of een sleutel in de Trusted Execution Environment, in StrongBox of in software zit, en het vervangt de oudere isInsideSecureHardware()-aanroep. Als de VPN-client die waarde niet toont, is de vingerafdruk uit stap 1 je terugvaloptie. Een certificaat dat tijdens de import opnieuw wordt gecodeerd, komt niet byte voor byte overeen, maar de publieke sleutel en het subject wel.
Niet-exporteerbaar is niet hetzelfde als onbruikbaar. Een sleutel die het apparaat niet kan verlaten, kan nog steeds worden gebruikt door elke app die de gebruiker toestemming geeft om die alias te kiezen, en daarom is de aliasvraag een echte controle en geen formaliteit. De Android Keystore-documentatie is een keer lezen waard als je die ontwerpbeslissing neemt.
Reken dan met de kopieën die je hebt gemaakt. De P12 op je laptop, die in de ticketbijlage en die in de back-up van vorige maand zijn allemaal nog geldige identiteiten tot de uitgever ze intrekt. De hardwarebescherming van het exemplaar op de telefoon doet niets voor die.
Stap 4: Zoek uit wie de eis voor schermvergrendeling bezit
Hier raken drie geheimen door elkaar: de ontgrendel-PIN van het apparaat, de wachtwoordzin van de privésleutel en het wachtwoord van het VPN-account. Een vraag om één is nooit een verzoek om de andere te resetten, en de verkeerde resetten is hoe mensen zichzelf buitensluiten van een profiel dat prima werkte.
Wanneer een apparaatbeheerder of een beleid voor een beheerd profiel een vergrendeling eist, hoort de eis bij dat beleid, niet bij het certificaat. adb shell dumpsys device_policy somt de actieve beheerders en de wachtwoordkwaliteit die zij afdwingen op, wat de snelste manier is om te zien of een MDM-agent de reden is dat je PIN-regels zijn veranderd. Het certificaat verwijderen versoepelt het beleid niet, en het beleid verwijderen is een administratieve beslissing en geen instellingsaanpassing.
Verwacht ook een compromis in bruikbaarheid. Als de sleutel gebruikersautorisatie vereist, kan de tunnel niet omhoog voordat het apparaat voor het eerst is ontgrendeld, dus geplande synchronisaties en remote wake-ups mislukken per ontwerp. Beslis dat vóór de uitrol, niet erna.
Vermijd de sluiproute om locksettings.db te bewerken of een oude omweg voor een vergeten patroon opnieuw af te spelen. Die routines zijn voor specifieke builds geschreven, ze kunnen de inloggegevensopslag achterlaten in een staat die het framework niet meer verwacht, en ze veranderen nooit het beleid dat de vergrendeling oorspronkelijk eiste.
Stap 5: Trek de identiteit in en verifieer de weigering
Intrekken heeft drie delen en alleen het eerste is lokaal. Verwijder het VPN-profiel, verwijder het gebruikerscertificaat onder Instellingen, Beveiliging, Versleuteling en inloggegevens, Gebruikersgegevens, en laat de uitgever daarna het serienummer van het certificaat intrekken. Alleen het lokale verwijderen laat inloggegevens achter die de server nog accepteert als iemand de P12 heeft bewaard.
Verifieer het resultaat in plaats van het aan te nemen. Probeer een verbinding met het ingetrokken profiel en bevestig dat de server die weigert. Een tunnel die nog omhoog komt, betekent dat je het verkeerde serienummer hebt ingetrokken of dat de client stilletjes is teruggevallen op een andere geïnstalleerde identiteit.
Als je een mislukte import terugdraait, importeer dan opnieuw uit de oorspronkelijke versleutelde bundel en controleer de vingerafdruk opnieuw in plaats van een ontsleuteld sleutelbestand te hergebruiken dat je op schijf hebt laten staan.