Importare un certificato client VPN su Android richiede un paio di minuti. Verificare che sia finito nel posto giusto richiede più tempo, ed è la parte che quasi tutti saltano quando la finestra di installazione dice che è andata bene. Un messaggio di successo significa solo che il file è stato analizzato. Non dice nulla su quale provider detiene la chiave privata né se una copia è ancora nella cartella Downloads.

Passo 1: Leggi il P12 prima che lasci la tua macchina

Parti dal file stesso. Se non riesci a nominare il soggetto, l'emittente e la data di scadenza al suo interno, stai importando qualcosa che non potrai verificare in seguito.

Un pacchetto PKCS#12 di solito trasporta un certificato client, la sua chiave privata e la catena dell'emittente. openssl pkcs12 -in client.p12 -info -noout stampa il MAC e gli algoritmi di cifratura senza riversare materiale della chiave, così vedi se il pacchetto è protetto da password e con quale cifrario. Prosegui con keytool -list -v -keystore client.p12 -storetype PKCS12 per ottenere l'alias, l'impronta SHA-256 e la finestra di validità che confronterai con il telefono.

Invia la password su un canale diverso dal file, oppure consegna il file dentro un flusso di distribuzione gestito che non lasci copie. Una password incollata nello stesso messaggio di chat dell'archivio trasforma due controlli in uno solo.

Passo 2: Installalo nello slot che l'app VPN legge davvero

Su Android 11 fino a 14 stock il percorso passa per Impostazioni, Sicurezza, Crittografia e credenziali, Installa un certificato, poi VPN e certificato utente dell'app. La formulazione e l'annidamento cambiano tra versioni e interfacce dei produttori, quindi segui l'etichetta del tipo di credenziale invece di una posizione di menu memorizzata. In un profilo di lavoro, installa dall'interno del lato lavoro, perché le credenziali non attraversano il confine del profilo.

Non mettere un'identità client nello slot del certificato CA. Quello slot alimenta l'archivio di fiducia dell'utente, e da Android 7 le app ignorano le CA aggiunte dall'utente se la loro configurazione di sicurezza di rete non lo consente, quindi un certificato client lasciato lì non compare mai nel selettore di chiavi della VPN.

Alcuni client VPN non toccano mai l'archivio di sistema e importano il P12 nella propria directory dell'app. È un progetto legittimo, ma cambia ogni passo successivo: la chiave ora vive nella sandbox dell'app ed è esattamente forte quanto quell'app gestisce il proprio archivio. Controlla la documentazione del client prima di dare per scontato che KeyChain sia in gioco.

Passo 3: Dimostra quale provider detiene la chiave

Un'importazione conferma l'analisi, non il supporto hardware. Su Android 12 e successivi, KeyInfo.getSecurityLevel() riporta se una chiave si trova nell'Ambiente di esecuzione fidato, in StrongBox o nel software, e sostituisce la chiamata più vecchia isInsideSecureHardware(). Se il client VPN non mostra quel valore, l'impronta del passo 1 è la tua alternativa. Un certificato ricodificato durante l'importazione non corrisponderà byte per byte, ma la chiave pubblica e il soggetto sì.

Non esportabile non è la stessa cosa di inutilizzabile. Una chiave che non può lasciare il dispositivo può ancora essere usata da qualsiasi app che l'utente autorizzi a selezionare quell'alias, ed è per questo che la richiesta dell'alias è un controllo reale e non una formalità. La documentazione di Android Keystore vale una lettura se prendi quella decisione di progetto.

Poi tieni conto delle copie che hai fatto. Il P12 sul portatile, quello nell'allegato del ticket e quello nel backup del mese scorso sono tutti identità valide finché l'emittente non le revoca. La protezione hardware dell'istanza sul telefono non fa nulla per quelle.

Passo 4: Scopri a chi appartiene il requisito di blocco dello schermo

Tre segreti si confondono qui: il PIN di sblocco del dispositivo, la passphrase della chiave privata e la password dell'account VPN. Una richiesta per uno non è mai una richiesta di reimpostare gli altri, e reimpostare quello sbagliato è il modo in cui le persone si chiudono fuori da un profilo che funzionava bene.

Quando un amministratore del dispositivo o una policy di profilo gestito richiede un blocco, il requisito appartiene a quella policy, non al certificato. adb shell dumpsys device_policy elenca gli amministratori attivi e la qualità della password che impongono, che è il modo più rapido per vedere se un agente MDM è la ragione per cui le tue regole PIN sono cambiate. Rimuovere il certificato non allenterà la policy, e rimuovere la policy è una decisione amministrativa e non un ritocco delle impostazioni.

Aspettati anche un compromesso di usabilità. Se la chiave richiede l'autorizzazione dell'utente, il tunnel non può salire prima del primo sblocco, quindi le sincronizzazioni pianificate e i risvegli remoti falliscono per progetto. Decidilo prima della distribuzione, non dopo.

Evita la scorciatoia di modificare locksettings.db o di rigiocare un vecchio aggiramento per uno schema dimenticato. Quelle routine sono state scritte per build specifiche, possono lasciare l'archivio delle credenziali in uno stato che il framework non si aspetta più, e non cambiano mai la policy che ha chiesto il blocco in primo luogo.

Passo 5: Ritira l'identità e verifica il rifiuto

Il ritiro ha tre parti e solo la prima è locale. Rimuovi il profilo VPN, cancella il certificato utente in Impostazioni, Sicurezza, Crittografia e credenziali, Credenziali utente, poi fai revocare all'emittente il numero di serie del certificato. La cancellazione locale da sola lascia una credenziale che il server accetta ancora se qualcuno ha conservato il P12.

Verifica il risultato invece di darlo per scontato. Prova una connessione con il profilo ritirato e conferma che il server la rifiuta. Un tunnel che sale ancora significa che hai revocato il numero di serie sbagliato o che il client è ricaduto silenziosamente su un'altra identità installata.

Se stai annullando un'importazione fallita, reimporta dal pacchetto cifrato originale e ricontrolla l'impronta invece di riutilizzare un file di chiave decifrato che hai lasciato sul disco.

Articoli correlati