Folgendes Szenario angenommen:
- Eine Zertifizierungsstelle verwendet ein Hardware Security Modul (HSM).
- Die Partition des Hardware Security Moduls füllt sich über die Lebenszeit der Zertifizierungsstelle mit immer mehr Schlüsseln.
- Bei SafeNet Hardware Security Modulen kann dies sogar dazu führen, dass die Partition voll läuft. In Folge dessen werden die Ereignisse 86 und 88 der Zertifizierungsstelle protokolliert.
Dieses Phänomen kann grundsätzlich mit allen verwendeten Hardware Security Modulen auftreten, verursacht bei SafeNet Luna HSMs aber am ehesten sichtbare Probleme, da dort nur begrenzter Speicherplatz für Schlüssel pro Partition zur Verfügung steht.
Ursache und Hintergründe
Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken, um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.
Microsoft Active Directory Certificate Services generiert regelmäßig neue Zertifikate für Zertifizierungsstellen-Austausch ("CA Exchange") (von der gleichnamigen Zertifikatvorlage), welche auch nicht explizit auf einer Zertifizierungsstelle veröffentlicht werden muss.
Wie man sieht, verwenden die "CA Exchange" Zertifkate das Extended Key Usage für "Private Key Arrchival". Dieses sollte – wenn man die Extended Key Usages einer Zertifizierungsstelle einschränkt – immer mit in die Liste der erlaubten Extended Key Usages für das Zertifizierungsstellen-Zertifikat aufgenommen werden, da ansonsten keine Zertifikate für den Zertifizierungsstellen-Austausch erzeugt werden können.
Die "CA Exchange" Zertifikate verwendet die Zertifizierungsstelle für folgende Zwecke:
- Wird die Archivierung privater Schlüssel eingesetzt, kann ein Client den öffentlichen Schlüssel dieses Zertifikats nutzen, um den zu archivierenden privaten Schlüssel sicher an die Zertifizierungsstelle zu übertragen.
- Die Verwaltungskonsole für die Unternehmens-PKI (pkiview.msc) verwendet den Inhalt des "CA Exchange" Zertifikats, um die Sperrlistenverteilungspunkte (CRL Distribution Points, CDP) und den Zugriff auf Stelleninformationen (Authority Information Access, AIA) zu ermitteln und deren Status in der Übersicht anzeigen zu können.
Die RPC/DCOM Schnittstelle der Zertifizierungsstelle bietet die ICertRequest::GetCaCertificate Methode an, welche von allen Benutzern im Netzwerk (Authenticated Users) verwendet werden kann, um das "CA Exchange" Zertifikat abrufen zu können.
Eine entsprechende Abfrage kann auch sehr einfach mit der Windows PowerShell erfolgen:
$ConfigString = "{Hostname-der-CA}\{Common-Name-der-CA}" $CertRequest = New-Object -ComObject CertificateAuthority.Request $CertRequest.GetCACertificate(1, $ConfigString, 0)
Alternativ kann die Abfrage auch per certutil erfolgen:
certutil -config "{Hostname-der-CA>\{Common-Name-der-CA>" -cainfo xchg
Zertifikate für den Zertifizierungsstellen-Austausch haben mit nur einer Woche eine relativ kurze Gültigkeitsdauer, damit die Schlüssel regelmäßig erneuert werden.
Bei der Installation einer Zertifizierungsstelle wird der Key Storage Provider, welcher für das Zertifizierungsstellen-Zertifikat verwendet wird, auch 1:1 für das Zertifizierungsstellen-Austausch-Zertifikat übernommen.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\{Common-Name-der-CA}\EncryptionCSP
Bewertung
Auch wenn mit diesem Zertifikattyp tendenziell vertrauliche Informationen übertragen werden, ist durch den wöchentlichen Wechsel des Zertifikats und somit auch des privaten Schlüssels die Sicherheit auch ohne Hardware Security Modul gewährleistet. Die Schlüssel werden auch nur für die Übertragung der Daten, nicht für deren Speicherung verwendet. Der Wechsel auf einen Software-Provider ist daher ungefährlich und auch sinnvoll.
Umsetzung
Um für die Zertifizierungsstellen-Austausch-Zertifikate wieder auf einen Software-Provider zu wechseln, reicht es, folgenden Kommandozeilenbefehl auf der Zertifizierungsstelle auszuführen:
certutil -setreg CA\EncryptionCSP\Provider "Microsoft Software Key Storage Provider"
Anschließend muss der Zertifizierungsstellen-Dienst neu gestartet werden, damit die Änderungen wirksam werden.
Beim Neustart der Zertifizierungsstelle bitte berücksichtigen, dass es beim SafeNet Key Storage Provider einen bekannten Fehler gibt, welcher beim Neustart des Dienstes zum Fehlercode RPC_S_DUPLICATE_ENDPOINT führen kann. Zwischen Stopp und Start des Dienstes ist ausreichende Wartezeit einzuplanen.
Weiterführende Links:
- Grundlagen manuelle und automatische Zertifikatbeantragung über Lightweight Directory Access Protocol (LDAP) und Remote Procedure Call / Distributed Common Object Model (RPC/DCOM)
- Grundlagen: Cryptographic Service Provider (CSP) und Key Storage Provider (KSP)
- Grundlagen: Einschränken der erweiterten Schlüsselverwendung (Extended Key Usage, EKU) in Zertifizierungsstellen-Zertifikaten
2 Gedanken zu „Die Partition des Hardware Security Moduls (HSM) läuft voll“
Kommentare sind geschlossen.