Warum das Kopieren von ca.key auf jeden VPN-Client die CA zerstört
Ein Client prüft das öffentliche Zertifikat der CA; den Schlüssel, der signiert, braucht er nie. Wer ca.key auf jedes Gerät kopiert, gibt die Ausstellungsbefugnis an jeden weiter, der eine Kopie nimmt.
Irgendwo in der Installationsanleitung wird ein Verzeichnis komplett auf jedes Notebook kopiert, weil das einfacher war, als zu entscheiden, welche Dateien dorthin gehören. Dieses Verzeichnis enthält ca.key, und in dem Moment, in dem es ein zweites Gerät erreicht, ist die Zertifizierungsstelle keine Autorität mehr. Jeder Besitzer kann nun Identitäten ausstellen, denen der Rest des Netzes vertraut.
Die Verwirrung lohnt sich einmal aufzulösen, denn die beiden Dateien sehen ähnlich aus und tun das Gegenteil.
Prüfmaterial und Signaturmaterial
Ein Client braucht das öffentliche Zertifikat der CA, um zu prüfen, dass das von einer Gegenstelle vorgelegte Zertifikat von dieser Stelle signiert wurde. Das ist eine Prüfaufgabe und benötigt überhaupt kein Geheimnis. Das Signieren eines Gegenstellen-Zertifikats ist eine andere Aufgabe, die einmal von demjenigen ausgeführt wird, der die CA betreibt, mit dem privaten Schlüssel, der seinen geschützten Speicher nie verlässt. Diese beiden Aufgaben getrennt zu halten, ist der ganze Sinn zweier ausgelieferter Dateien.
Also gehört ca.crt ins Profil und ca.key nirgendwo in dessen Nähe. Die Dateinamen sind eine Konvention, keine Garantie, weshalb der Typ geprüft und nicht aus dem Namen geschlossen werden muss.
Eine Architektur mit einer Zwischen-CA oder einem Online-Ausstellungsdienst ist davon keine Ausnahme. Sie ist der übliche Weg, Signierfähigkeit von Endpunkten fernzuhalten und trotzdem Gerätezertifikate in großem Umfang auszustellen.
Was ein Client mit seinem eigenen Schlüssel beweisen muss
Jedes Gerät erhält sein eigenes Schlüsselpaar und sein eigenes Zertifikat, einmal von der CA signiert. Der Client legt dieses Zertifikat vor und beweist den Besitz des passenden privaten Schlüssels, und der Server entscheidet, ob er ihn annimmt. Das ist die Identität, die widerrufen wird, wenn ein Notebook verloren geht.
Der Kontrast zählt am meisten nach einem Diebstahl. Mit Identitäten pro Gerät wird ein offengelegter Client durch Widerruf oder Entfernen der Gegenstelle beseitigt, und der Rest der Flotte arbeitet weiter.
Ein geleakter Behörden-Schlüssel lässt sich so nicht behandeln. Jedes Zertifikat, das er je signiert hat oder hätte signieren können, wird verdächtig, also ist die Antwort ein Austausch des Vertrauens statt eines einzelnen Widerrufs. Das ist ein Projekt, kein Ticket.
| File | Role | Belongs on |
|---|---|---|
ca.crt | Public certificate used to verify signatures | Every client profile |
ca.key | Private key that issues certificates | Protected CA storage only |
| client key pair | Proves one device's identity | That device alone |
Eine Datei lesen, bevor man sie irgendwohin kopiert
Zwei Befehle sagen Ihnen, welche Art von Objekt Sie in der Hand halten, ohne ein Geheimnis auszugeben. Der erste nennt den Betreff und das CA-Flag eines Zertifikats; der zweite validiert einen Schlüssel und meldet seinen Typ. Führen Sie beide für die Dateien in dem Paket aus, das Sie verteilen wollen. Alles, was sich als privater Schlüssel validiert, gehört nicht in ein Client-Verzeichnis.
openssl x509 -in ca.crt -noout -subject -ext basicConstraints openssl pkey -in ca.key -noout -check
Wenn der zweite Befehl bei einer Datei in einem Client-Paket erfolgreich ist, halten Sie an und behandeln Sie das Paket als kompromittiert. Eine Ausgabe, die sagt, dass ein Schlüssel gültig ist, sagt auch, dass er vorhanden ist, und die Anwesenheit ist das ganze Problem.
Beachten Sie auch die andere Richtung: Ein Client-Profil enthält rechtmäßig den eigenen privaten Schlüssel dieses Clients. Jeden gefundenen Schlüssel zu löschen, bricht die Verbindung, ohne etwas zu verbessern, deshalb muss das Objekt vor dem Entfernen identifiziert werden.
Einen bereits verteilten Schlüssel eindämmen
Gehen Sie nicht davon aus, dass das Löschen der lokalen Kopie die Exposition rückgängig macht. Wer die Datei hatte, kann sie kopiert haben, und die sichere Annahme ist, dass er es getan hat. Folgen Sie dem Incident-Prozess des Betreibers und ersetzen Sie den Vertrauensanker, indem Sie Gerätezertifikate unter einer neuen CA neu ausstellen.
Dann ändern Sie die Paketierung, die das Problem geschaffen hat. Versenden Sie eine Verzeichnisliste mit einer ausdrücklichen Positivliste von Dateien, halten Sie den CA-Schlüssel auf einer Maschine, die nie der Clientflotte beitritt, und notieren Sie, welches System ihn hält.
Muss die Behörde häufig ausstellen, verlegen Sie das Signieren hinter einen Dienst oder eine Zwischenstelle mit engem Umfang und kurzer Gültigkeit. So legt ein künftiger Fehler eine Teilmenge der Ausstellung offen statt die Vertrauenswurzel der gesamten Bereitstellung.