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

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

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:

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."".

Weiterführende Links:

Externe Quellen