I profili arrivano in Impostazioni con un nome, un firmatario e un pulsante Installa, e la riga del firmatario è la parte che quasi tutti leggono. Quella riga risponde a una domanda: chi ha confezionato queste impostazioni, secondo le regole di verifica della firma. Non dice che il payload VPN punta al gateway della tua azienda, né che un certificato radice incorporato appartenga al tuo archivio di fiducia TLS. La guida che segue apre il pacchetto nell'ordine in cui il dispositivo lo applicherà.

Parti dalla busta: chi ha firmato questo profilo

Su iOS il profilo compare in Impostazioni, Generali, VPN e Gestione dispositivi, con il firmatario mostrato sopra il pulsante Installa. Leggi quel nome prima di toccare qualsiasi cosa e chiediti se è l'organizzazione da cui ti aspettavi di ricevere impostazioni. Una firma valida di una parte che non riconosci resta una firma valida, e autorizza la loro configurazione, non la tua. La stessa schermata ti dice anche se il profilo è firmato o no.

Se hai il file su un Mac, ispezionalo prima che arrivi al telefono. Lo strumento di sicurezza decodifica la busta CMS e stampa il plist che il dispositivo leggerà, cioè lo stesso contenuto senza un pulsante Installa di mezzo. La documentazione Apple sull'applicazione forzata della configurazione descrive la firma come convalida dell'origine, che è esattamente l'ambito di cui si parla qui.

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

Fermati qui se il firmatario non è chi ti aspettavi, o se il file non è firmato ed è arrivato attraverso un canale che non può garantirlo. Nulla, più avanti in questa guida, rende affidabile una busta non attendibile.

Apri ogni payload e nomina ciò che installa

Un profilo è un contenitore, e la parte interessante è l'array PayloadContent al suo interno. Ogni voce porta un PayloadType che dice cosa installerà il dispositivo: una configurazione VPN gestita, un'identità PKCS#12, un certificato radice o un'iscrizione alla gestione. Stampa i tipi prima di leggere qualsiasi impostazione.

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

Un payload VPN nomina una connessione: indirizzo del server, metodo di autenticazione e magari una regola per app o su richiesta. Un payload di identità fornisce la credenziale client che quella connessione presenterà. Un payload di certificato radice aggiunge un'ancora di fiducia, e un payload di gestione consegna il controllo continuo a un server. Sono quattro impegni diversi, e la firma copre il pacchetto invece di garantire ciascuno separatamente. Leggili in quest'ordine, perché la VPN è inutile senza l'identità e l'identità significa poco senza sapere chi l'ha emessa.

La protezione con password sul file è ancora un'altra proprietà. Un pacchetto cifrato nasconde il contenuto a chi non ha la password; non decide se dovresti autorizzare ciò che c'è dentro. Tratta la password come un meccanismo di consegna, non come una revisione.

Risali dai certificati alla connessione che li usa

Elenca i certificati nel pacchetto e abbina ciascuno a un compito. Il certificato client identifica questo dispositivo verso il gateway, la CA che l'ha emesso appartiene alla catena di fiducia di quella connessione, e una radice installata per un proxy o un servizio interno non è automaticamente un'ancora per ogni sito HTTPS. Su iOS una radice installata a mano resta non attendibile per TLS finché non la abiliti in Impostazioni, Generali, Info, Impostazioni attendibilità certificati, mentre una radice consegnata dalla gestione è attendibile senza quel passaggio. È proprio questa differenza a rendere importante lo scopo del payload.

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 fornitore che trasporta il tuo traffico non è, per questo motivo, l'endpoint TLS di ogni sito che visiti. L'intercettazione richiede il percorso del traffico e un'ancora di fiducia che l'applicazione accetti, e un profilo che porta un solo certificato non dimostra né l'una né l'altra. Chiedi quale connessione usa il certificato e quali applicazioni lo accetteranno, invece di dare per scontato che installare il profilo decifri tutto.

Dopo l'installazione: verifica e sappi cosa fa la rimozione

Una volta installato il profilo, confermalo dal dispositivo invece che dal file scaricato. La schermata delle impostazioni elenca il profilo installato, il suo firmatario e i suoi payload, e la schermata VPN mostra se la connessione è configurata come previsto. Eliminare il file scaricato non rimuove nulla; la configurazione installata è un oggetto separato.

profiles show -type configuration
scutil --nc list

Se il profilo include un'iscrizione alla gestione, leggi le conseguenze della rimozione prima di installarlo, non dopo. Rimuovere quell'iscrizione porta via le configurazioni associate e può rimuovere app gestite, a seconda di come è stato iscritto il dispositivo. Non è un passaggio di riparazione da provare quando un certificato sembra sbagliato. Chiedi all'amministratore quale payload possiede il problema prima di rimuovere qualsiasi cosa.

La guida termina con quattro risposte separate: chi ha firmato il pacchetto, quali payload installa, quale identità e fiducia usa ogni connessione, e cosa porterebbe via la rimozione. Tienile separate e un profilo firmato diventa una decisione esaminata invece di un segno di spunta verde.

Articoli correlati