Falsches VPN-Zertifikat widerrufen? Wiederherstellungsoptionen und Grenzen
Ermitteln Sie Aussteller, Seriennummer und Grundcode, bevor Sie die CA anfassen. Dauerhafter Widerruf, Zertifikatssperre und eine Zulassungspause sind drei Reparaturen.
Jemand hat ein Zertifikat in der CA-Konsole widerrufen, und nun kann ein Benutzer sich nicht verbinden. Der erste Instinkt ist, den Rückgängig-Knopf zu suchen, und für die meisten PKIs gibt es ihn nicht: Der Widerruf ist eine erklärte Tatsache über eine Seriennummer, und der unterstützte Weg zurück ist ein neues Zertifikat, kein umgekehrter Datensatz. Arbeiten Sie die folgenden Prüfungen der Reihe nach ab, denn welche Reparatur erlaubt ist, hängt vom Grundcode und davon ab, ob der Schlüssel jemals offengelegt wurde.
Identifizieren Sie das Zertifikat, nicht die Person
Gängige Namen wiederholen sich. Ein Benutzer, der sich im letzten Quartal erneut registriert hat, kann zwei Zertifikate mit demselben CN und unterschiedlichen Seriennummern besitzen, und der Widerruf des einen lässt das andere weiter funktionieren. Stellen Sie zuerst das genaue Objekt fest:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
Notieren Sie die Seriennummer, den Aussteller, das Widerrufsdatum und den in der CRL vermerkten Grund. Bestätigen Sie dann, welche Geräte diese Seriennummer vorlegen, denn ein widerrufenes Zertifikat kann noch auf einem Laptop, einem Telefon und einem Ersatzrouter installiert sein, und ein Ersatz, der nur eines davon erreicht, erzeugt einen zweiten Vorfall.
Eine schnelle Verhaltensprüfung bestätigt den Zustand, ohne etwas zu ändern:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
Meldet sie das Zertifikat als widerrufen, stimmen CRL und Client überein; prüft sie sauber, ist der Client in Ihrer Hand nicht der widerrufene, und die Suche geht weiter.
Prüfen Sie, ob die CA eine Sperre oder einen dauerhaften Widerruf verwendet hat
RFC 5280 definiert certificateHold als vorübergehenden Zustand und removeFromCRL als das Signal, das ihn freigibt. Dieser Lebenszyklus ist real, aber er ist kein allgemeiner Rückgängig-Knopf. Das Lesen des Grundcodes sagt Ihnen, ob der Aussteller jemals eine Freigabe unterstützen wollte.
Die Falle ist die Annahme, eine vorübergehende Absicht bedeute einen vorübergehenden Datensatz. Trägt der CA-Eintrag keyCompromise oder cessationOfOperation, ist das Zertifikat dauerhaft widerrufen, egal was die Person, die den Knopf drückte, beabsichtigte. Umgekehrt ist ein Eintrag mit certificateHold auf einer CA, die keine Sperrfreigabe implementiert, praktisch dauerhaft, weil nichts jemals die Freigabe veröffentlichen wird.
OpenSSL-basierte CAs veranschaulichen die Grenze. Der Befehl ca akzeptiert -crl_reason-Werte, darunter certificateHold und removeFromCRL, erzeugt aber keine Delta-CRLs — die OpenSSL-CA-Dokumentation nennt diese Einschränkung für ihre CRL-Ausgabe. Eine vollständige CRL, die die Seriennummer einfach auslässt, ist ein anderes Veröffentlichungsmodell als ein Delta, das sagt "dieser Eintrag ist freigegeben", daher erzeugt das Einfügen von removeFromCRL in eine OpenSSL-basierte VPN-CA nicht die standarddefinierte Freigabe.
Wenn der Schlüssel offengelegt worden sein könnte, ersetzen Sie ihn
Ein widerrufenes Zertifikat ist die Aussage, dass diesem Schlüssel möglicherweise nicht mehr vertraut werden kann. War der Widerruf inhaltlich korrekt — Laptop verloren, Schlüssel auf ein freigegebenes Laufwerk kopiert, privater Schlüssel in ein Ticket eingefügt —, dann kehrt die Wiederherstellung desselben Zertifikats eine Sicherheitsentscheidung um, die wie vorgesehen funktionierte.
Stellen Sie über den Registrierungsprozess ein neues Schlüsselpaar aus, verteilen Sie das neue Profil und lassen Sie die alte Seriennummer für ihre gesamte Lebensdauer widerrufen. Aktualisieren Sie alles, was Identität über Seriennummer oder Fingerabdruck festnagelt, einschließlich Zulassungslisten, Geräteinventaren und Überwachung, die ein bestimmtes Zertifikat erwartet.
Das Bequemlichkeitsargument für die Wiederherstellung des alten ist real, sollte aber ausdrücklich beantwortet werden und nicht stillschweigend. "Der Benutzer braucht heute Zugang" ist ein Grund, die Ausstellung zu beschleunigen, kein Grund, den Widerruf eines Schlüssels aufzuheben, für den Sie nicht Rechenschaft ablegen können.
War es ein administrativer Fehler, ersetzen Sie kontrolliert
Wenn der Widerruf schlicht falsch war und der Schlüssel nie offengelegt wurde, ist die Reparatur immer noch ein kontrollierter Ersatz und keine Bearbeitung. Verwenden Sie den unterstützten Prozess des Ausstellers, halten Sie Seriennummer und Ausstellungshistorie intakt, und vermeiden Sie die zwei verlockenden Abkürzungen: das Statuszeichen in index.txt von R zurück auf V zu drehen und die Ausstellungszeile zu löschen, damit ein neues Zertifikat die Seriennummer wiederverwenden kann.
Auf einer OpenSSL-CA ist die Datenbank tabulatorgetrennt und leicht falsch zu lesen, was das Bearbeiten von Hand attraktiv macht:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
Lesen Sie sie, schreiben Sie sie nicht. Das Bearbeiten der Datei ändert die nächste CRL ohne jeden Prüfpfad, und jede zweite CA-Instanz oder Sicherung, die die ursprüngliche Zeile noch enthält, wird ihr später widersprechen.
Veröffentlichen Sie nach der Ausstellung des Ersatzes eine frische CRL über den normalen Mechanismus und lassen Sie die Clients sie abholen. Eine CRL zu entfernen, ihre Lebensdauer auf null zu verkürzen oder die Widerrufsprüfung im Clientprofil zu deaktivieren, repariert einen Benutzer, indem jeder andere Widerruf geschwächt wird, den die CA jemals veröffentlicht hat.
Bestätigen Sie eine frische Zulassung und bewahren Sie den Datensatz auf
Testen Sie mit einer neuen Verbindung, nicht mit der Sitzung, die bereits offen war. Ein laufender Tunnel führt die Zulassungsprüfungen eines frischen Handshakes möglicherweise nicht erneut aus, und CRL-Caches bedeuten, dass ein Client sich weiter verbinden kann, bis er aktualisiert. Trennen Sie, verbinden Sie erneut, und bestätigen Sie im Serverprotokoll, welche Seriennummer zugelassen wurde.
Halten Sie fest, was geschah, solange es noch frisch ist: welche Seriennummer widerrufen wurde, von wem, mit welchem Grund, welcher Ersatz ausgestellt wurde und wann die CRL erneut veröffentlicht wurde. Dieser Datensatz ermöglicht die nächste Widerrufsprüfung und ist zugleich der Beleg dafür, dass der Fehler behandelt und nicht verborgen wurde.
Nutzen Sie für kurze Aussetzungen künftig einen Zulassungspausenmechanismus, falls die Bereitstellung einen hat — ein Konto, das in der Identitätsschicht deaktiviert wird, eine entfernte Gruppenmitgliedschaft, ein zurückgehaltenes Clientprofil. Das hält eine vorübergehende Richtlinienentscheidung getrennt von der Frage, ob ein ausgestelltes Zertifikat noch vertrauenswürdig ist, und genau diese Unterscheidung ging beim ersten Mal verloren.