Signiertes VPN-Profil auf dem iPhone installieren? Lesen Sie die Nutzlasten
Ein signiertes Profil beweist, wer es gepackt hat, nicht was es installiert. Gehen Sie Umschlag, jede Nutzlast und jedes Zertifikat durch, bevor Sie einem VPN oder einer Root-CA vertrauen.
Profile erscheinen in den Einstellungen mit einem Namen, einem Unterzeichner und einer Schaltfläche Installieren, und die Unterzeichnerzeile ist der Teil, den die meisten lesen. Diese Zeile beantwortet eine Frage: Wer hat diese Einstellungen nach den Regeln der Signaturprüfung gepackt. Sie sagt nicht, dass die VPN-Nutzlast auf das Gateway Ihres Arbeitgebers zeigt oder dass ein eingebettetes Stammzertifikat in Ihren TLS-Vertrauensspeicher gehört. Die folgende Anleitung öffnet das Paket in der Reihenfolge, in der das Gerät es anwendet.
Beginnen Sie mit dem Umschlag: Wer hat dieses Profil signiert
Unter iOS erscheint das Profil unter Einstellungen, Allgemein, VPN und Geräteverwaltung, wobei der Unterzeichner über der Schaltfläche Installieren steht. Lesen Sie diesen Namen, bevor Sie etwas antippen, und fragen Sie, ob es die Organisation ist, von der Sie Einstellungen erwartet haben. Eine gültige Signatur einer Partei, die Sie nicht kennen, bleibt eine gültige Signatur, und sie autorisiert deren Konfiguration statt Ihrer. Derselbe Bildschirm sagt Ihnen auch, ob das Profil überhaupt signiert ist.
Haben Sie die Datei auf einem Mac, prüfen Sie sie, bevor sie das Telefon erreicht. Das Sicherheitswerkzeug dekodiert den CMS-Umschlag und gibt die plist aus, die das Gerät lesen wird, also denselben Inhalt ohne eine Schaltfläche Installieren im Weg. Apples Dokumentation zu erzwungener Konfiguration beschreibt Signieren als Herkunftsprüfung, und genau das ist der Umfang, der hier beschrieben wird.
security cms -D -i corp-vpn.mobileconfig -o corp-vpn.plist
plutil -p corp-vpn.plist
Halten Sie hier an, wenn der Unterzeichner nicht der erwartete ist oder wenn die Datei unsigniert ist und über einen Kanal kam, der nicht für sie bürgen kann. Nichts später in dieser Anleitung macht einen nicht vertrauenswürdigen Umschlag vertrauenswürdig.
Öffnen Sie jede Nutzlast und benennen Sie, was sie installiert
Ein Profil ist ein Container, und der interessante Teil ist PayloadContent das Array darin. Jeder Eintrag trägt einen PayloadType , der angibt, was das Gerät installiert: eine verwaltete VPN-Konfiguration, eine PKCS#12-Identität, ein Stammzertifikat oder eine Verwaltungsregistrierung. Geben Sie die Typen aus, bevor Sie eine der Einstellungen lesen.
plutil -extract PayloadContent xml1 -o - corp-vpn.plist |
grep -E 'PayloadType|PayloadDisplayName'
Eine VPN-Nutzlast benennt eine Verbindung: Serveradresse, Authentifizierungsmethode und möglicherweise eine Regel pro App oder bei Bedarf. Eine Identitätsnutzlast liefert die Client-Anmeldedaten, die diese Verbindung vorzeigt. Eine Stammzertifikat-Nutzlast fügt einen Vertrauensanker hinzu, und eine Verwaltungsnutzlast übergibt die laufende Kontrolle an einen Server. Das sind vier verschiedene Verpflichtungen, und die Signatur deckt das Paket ab, statt für jede einzeln zu bürgen. Lesen Sie sie in dieser Reihenfolge, denn das VPN ist ohne die Identität nutzlos, und die Identität bedeutet wenig, wenn man nicht weiß, wer sie ausgestellt hat.
Kennwortschutz der Datei ist wieder eine eigene Eigenschaft. Ein verschlüsseltes Paket verbirgt den Inhalt vor jemandem ohne das Kennwort; es entscheidet nicht, ob Sie autorisieren sollten, was darin ist. Behandeln Sie das Kennwort als Zustellmechanismus, nicht als Prüfung.
Verfolgen Sie die Zertifikate bis zu der Verbindung, die sie nutzt
Listen Sie die Zertifikate im Paket auf und ordnen Sie jedes einer Aufgabe zu. Das Client-Zertifikat weist dieses Gerät gegenüber dem Gateway aus, die CA, die es ausgestellt hat, gehört in die Vertrauenskette dieser Verbindung, und ein Stamm, der für einen Proxy oder einen internen Dienst installiert wurde, ist nicht automatisch ein Anker für jede HTTPS-Seite. Unter iOS bleibt ein von Hand installierter Stamm für TLS nicht vertrauenswürdig, bis Sie ihn unter Einstellungen, Info, Einstellungen für Zertifikatsvertrauen aktivieren, während ein von der Verwaltung gelieferter Stamm ohne diesen Schritt vertraut wird. Genau deshalb ist der Zweck der Nutzlast wichtig.
openssl pkcs7 -inform DER -in corp-vpn.mobileconfig -print_certs -noout
security find-certificate -a -c "Corp Root" -p | openssl x509 -noout -subject -dates
Ein Anbieter, der Ihren Verkehr trägt, ist aus diesem Grund nicht der TLS-Endpunkt jeder Website, die Sie besuchen. Abfangen braucht den Verkehrsweg und einen Vertrauensanker, den die Anwendung akzeptiert, und ein Profil mit einem Zertifikat beweist keines von beidem. Fragen Sie, welche Verbindung das Zertifikat nutzt und welche Anwendungen es akzeptieren, statt anzunehmen, die Installation des Profils entschlüssele alles.
Nach der Installation: prüfen, und wissen, was das Entfernen bewirkt
Sobald das Profil installiert ist, bestätigen Sie es vom Gerät aus und nicht aus der heruntergeladenen Datei. Der Einstellungsbildschirm listet das installierte Profil, seinen Unterzeichner und seine Nutzlasten auf, und der VPN-Bildschirm zeigt, ob die Verbindung wie beabsichtigt konfiguriert ist. Das Löschen der heruntergeladenen Datei entfernt nichts; die installierte Konfiguration ist ein eigenes Objekt.
profiles show -type configuration
scutil --nc list
Enthält das Profil eine Verwaltungsregistrierung, lesen Sie die Folgen des Entfernens vor der Installation, nicht danach. Das Entfernen dieser Registrierung nimmt die zugehörigen Konfigurationen mit und kann verwaltete Apps entfernen, je nachdem, wie das Gerät registriert wurde. Das ist kein Reparaturschritt, den man versucht, wenn ein Zertifikat falsch aussieht. Fragen Sie den Administrator, welche Nutzlast das Problem besitzt, bevor Sie etwas entfernen.
Die Anleitung endet mit vier getrennten Antworten: wer das Paket signiert hat, welche Nutzlasten es installiert, welche Identität und welches Vertrauen jede Verbindung nutzt und was das Entfernen mitnehmen würde. Halten Sie sie getrennt, und ein signiertes Profil wird zu einer geprüften Entscheidung statt zu einem grünen Häkchen.