Seit Windows 8 ist es möglich, dass private Schlüssel für Zertifikate mit einem – sofern vorhanden – Trusted Platform Modul (TPM) geschützt werden. Dadurch ist eine echte Nichtexportierbarkeit des Schlüssels gegeben.
Nachfolgend wird der Prozess zur Einrichtung einer Zertifikatvorlage, die ein Trusted Platform Modul verwendet, beschrieben.
Die nachfolgend beschriebene Konfiguration deiner Zertifikatvorlage zur Verwendung des Microsoft Platform Crypto Provider ist lediglich eine Voreinstellung für den beantragenden Client. Es kann durch die Zertifizierungsstelle nicht garantiert werden, dass der Antragsteller tatsächlich ein Trusted Platform Modul verwendet. Um dieses Sicherheitsniveau zu erreichen, muss zusätzlich die TPM Key Attestation verwendet werden.
Privater Schlüssel darf nicht als exportierbar konfiguriert sein
In der Karteikarte "Request Handling" muss sichergestellt sein, dass die Option "Allow private key to be exported" nicht aktiviert ist. Der Microsoft Platform Crypto Provider unterstützt keinen Schlüsselexport. Ist die Option aktiviert, werden Zertifikatanforderungen fehlschlagen (siehe Artikel "Die Beantragung eines Trusted Platform Module (TPM) geschützten Zertifikats schägt fehl mit Fehlermeldung "The requested operation is not supported. 0x80090029 (-2146893783 NTE_NOT_SUPPORTED)"").
Konfigurieren des Key Storage Provider
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.
In den meisten Fällen wird man beim Öffnen der Karteikarte "Cryptography" feststellen, dass der Microsoft Platform Crypto Provider – trotz korrekter Konfiguration der Kompatibilitätseinstellungen der Zertifikatvorlage – nicht zur Verfügung steht. Dies ist darin begründet, dass nur Key Storage Provider angezeigt werden, welche auf dem aktuellen System vorhanden und nutzbar sind.
Hat der Computer, auf dem die Managementkonsole für die Verwaltung von Zertifikatvorlagen ausgeführt wird, kein Trusted Platform Modul, ist folgerichtig auch keine Auswahl des entsprechenden KSP möglich.
Es gibt verschiedene Wege, dieses Problem zu umgehen:
- Installation der Remote Server Administration Tools (RSAT) auf einem Computer (vorzugsweise eine Privileged Admin Workstation (PAW)) mit Trusted Platform Modul und Konfiguration der Zertifikatvorlage von dort (siehe hierzu auch Artikel "Remoteserver-Verwaltungstools für Active Directory Certificate Services auf Windows 10 ab Version 1809 installieren").
- Bearbeiten des pKIDefaultCSPs Attributes mittels certutil.
- Bearbeiten des pKIDefaultCSPs Attributes mittels Windows PowerShell.
- Bearbeiten des pKIDefaultCSPs Attributes mittels ADSI Editor.
Bearbeiten des pKIDefaultCSPs Attributes mittels Windows PowerShell
Die Liste der Key Storage Provider ist im LDAP-Objekt der Zertifikatvorlage im Attribut pKDefaultCSPs hinterlegt. Dort kann er mit der Windows PowerShell (ActiveDirectory Modul) verändert werden.
Der aktuelle Wert kann mit folgendem Befehl angezeigt werden:
Get-ADObject "CN=ADCSLaborUserTPM,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=intra,DC=adcslabor,DC=de" -Properties pKIDefaultCSPs
Wird das Attribut nicht angezeigt, kann dies daran liegen, dass es in der Standardeinstellung leer, also nicht definiert ist.
Mit den folgenden beiden Befehlen kann der Inhalt des Attributes verändert werden. Es muss der "Microsoft Platform Crypto Provider" konfiguriert werden:
$CSPs=@("1,Microsoft Platform Crypto Provider") Set-ADObject "CN=ADCSLaborUserTPM,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=intra,DC=adcslabor,DC=de" -Replace @{pKIDefaultCSPs=$CSPs}
Zur Kontrolle kann man durch erneutes Abfragen des Wertes die Änderung sicherstellen.
Bitte beachten, dass das pKIDefaultCSPs Attribut durch die Verwaltungskonsole für Zertifikatvorlagen überschrieben werden kann. Daher muss nach jeder Änderung der Zertifikatvorlage kontrolliert werden, ob das Attribut wieder korrekt gesetzt ist.
Bearbeiten des pKIDefaultCSPs Attributes mittels ADSI Editor
Die Veränderung ist analog auch über den ADSI Editor möglich. Die Informationen sind in der "Configuration" Partition der Gesamtstruktur zu finden.
Es werden keine Zertifikate beantragt, wenn kein TPM vorhanden ist
Auf Systemen, die nicht über ein Trusted Platform Modul verfügen, wird keine Zertifikatbeantragung vorgenommen. Möchte man diese Systeme ebenfalls mit Zertifikaten bedienen, kann zusätzlich ein Software Key Storage Provider als zweiter Eintrag hinterlegt werden.
Siehe hierzu Artikel "Die Beantragung eines Zertifikats ist nicht möglich, da die Zertifikatvorlage nicht angezeigt wird. Die Fehlermeldung lautet "Can not find a valid CSP in the local machine."".
6 Gedanken zu „Konfigurieren einer Zertifikatvorlage für die Verwendung des Microsoft Platform Crypto Provider, um Schutz des privaten Schlüssels durch ein Trusted Platform Module (TPM) zu ermöglichen“
Kommentare sind geschlossen.