Wer bereits innerhalb einer PKI gearbeitet hat, weiß wie wichtig ein Key Recovery Agent ist. Dieser Agent ist ein Administrator der für die Wiederherstellung von Zertifikaten zuständig ist. Dieser sollte vertrauenswürdig sein, da er mit sensiblen Daten arbeitet. Meist kann auch nur ein Domänenadmin einen Key Recovery Agent bestimmen.

In diesem Blogeintrag schauen wir uns zunächst an wie man einen Key Recovery Agent erstellt und bereiten im Anschluss die Schlüsselarchivierung vor. Im letzten Teil führen wir dann eine Schlüsselwiederherstellung durch.

Key Recovery Agent erstellen und bestimmen

Um einen Key Recovery Agent zu bestimmen, öffnen wir mit Ausführen (Windows-Taste+R) mmc.exe die Microsoft Management Console

 Microsoft Management Console - mmc.exe

Microsoft Management Console - mmc.exe

Wir fügen mit File > Add/Remove Snap-in… folgende Snap-Ins ein:

  1. Cerificate Template
  2. Certificates
  3. Certification Authority
KRA 2.PNG

Unter Certificate Templates duplizieren wir den Key Recovery Agent und wählen unter Combatibility bei Certification Authority unsere CA Version aus und in Recipient die älteste Windows Version in unserer Umgebung. Unter General geben wir unserem Template einen passenden Namen. Im Tab Security wählen wir mit Add… den gewünschten Nutzer, der für diesen Dienst zuständig sein soll und vergeben ihm die Rechte Read, Write, Enroll. Wir verwenden hier einfachheitshalber den Domänenadmin. Anschließend speichern wir die Einstellungen mit Save.

KRA 3.PNG
KRA 4.PNG
KRA 5.PNG

Nun wechseln wir in der MMC zur Certification Authority und öffnen das Certificate Templates Snap-in.

KRA 6.PNG

Mit Rechtsklick auf Certificate Template klicken wir auf New>Certificate Template to Issue und wählen unser eben erstelltes Key Recovery Agent Template.

KRA 7.PNG

Nun wechseln wir in der MMC zu Certificates und fordern ein neues Zertifikat mit Rechtsklick>All Task>Request New Certificate… an. Hier wählen wir unser Key Recovery Agent Template und klicken auf Enroll

KRA 8.PNG

Jetzt wechseln wir wieder zur CA und bestätigen unter Pending Certificate das Zertifikat

KRA 9.PNG

Wir wählen noch mit Rechtsklick auf der CA die Properties aus und setzen bei Recovery Agents unseren Agenten. Dazu klicken wir auf Archive the key und setzen bei Number of recovery agents to use die Anzahl der erstellten Zertifikate bzw. wie viele Agenten wir erstellt haben und fügen diese mit Add… hinzu.

KRA 10.PNG

Mit OK schließen wir den Vorgang ab. Damit nun der Recovery Agent genutzt werden kann, muss der CA Service neugestartet werden.

KRA 11.PNG

Vorbereitung und Schlüsselarchivierung

Da die normalen Certificate Templates nicht standardmäßig für die Schlüsselarchivierung konfiguriert ist müssen wir für jedes zu archivierende Template ein Duplicate erstellen. Dazu wechseln wir zu mmc>Certificate Templates und duplizieren das Template welches wir verwenden möchten.

Wir wählen wieder unter Combatibility bei Certification Authority unsere CA Version und in Recipient die älteste Windows Version in unserer Umgebung. Unter General geben wir unserem Template einen passenden Namen. Unter Security wählen wir mit Add… den gewünschten Nutzer, der für diesen Dienst zuständig sein soll und vergeben ihm die Rechte Read, Write, Enroll. Unter Request Handling setzen wir einen Haken unter Archive subject’s encryption private key und bestätigen mit OK.

KRA 12.PNG

Zurück in der CA fügen wir wieder mit Rechtsklick auf Certificate Template>New>Certificate Template to Issue das duplizierte Template hinzu.

In Certificates fordern wir erneut ein Zertifikat an - aber diesmal mit dem neuen Template.

KRA 13.PNG

Nun sollte alles geklappt haben. Wir prüfen noch, ob der Schlüssel auch wirklich archiviert wurde, indem wir unter der CA zu Issued Certificates wechseln. Jetzt fügen wir noch mit View>Add/Remove Columns… die Archived Key Spalte ein. Und sehen, dass für unser Zertifikat ein Schlüssel archiviert wurde.

KRA 14.PNG
KRA 15.PNG
KRA 16.PNG

Schlüsselwiederherstellung

Um einen verlorenen Schlüssel wiederherzustellen, müssen wir zunächst die Seriennummer des Zertifikats notieren. Wir doppelklicken dazu das entsprechende Zertifikat und kopieren uns unter Details, die Seriennummer.

KRA 17.PNG

Wir öffnen die PowerShell und geben folgenden Befehl ein: Certutil -getkey <Seriennummer> outputblob. Dieser Befehl erzeugt eine Schlüsseldatei (PKCS #7) für den Key Recovery Agent, der mithilfe seines Zertifikats die Schlüsseldatei entschlüsseln kann.

KRA 18.PNG

Um das Zertifikat wiederherzustellen muss in der PowerShell folgender Befehl eingegeben werden: Certutil -recoverkey outputblob <Dateiname>.pfx

Danach vergeben wir für das Zertifikat noch ein Passwort und bestätigen dieses mit erneuter Eingabe. Wenn alles geklappt hat müssten wir in unserem Pfad die Schlüssel finden können.

KRA 19.PNG

Um das Zertifikat wieder einzubinden, gehen wir wieder in die MMC unter Certificates und fügen mit einem Rechtsklick>All Tasks>Import… die Zertifikatsdatei wieder ein. Wir geben noch das Passwort ein, bestätigen alles und haben erfolgreich unser Zertifikat hinzugefügt.

KRA 20.PNG
KRA 21.PNG
KRA 22.PNG