Liste der Use Cases der Zertifikate, für welche die Kompatibilität zu auf elliptischen Kurven (ECC) basierenden Schlüsseln bekannt ist

Mit zunehmend zur Verfügung stehender Rechenleistung steigt auch der Bedarf, stärkere kryptographischer Schlüssel einzusetzen. Oftmals besteht der Bedarf (beispielsweise, weil die Schlüssel per Trusted Platform Modul geschützt werden müssen), in diesem Zug auf elliptischen Kurven (ECC) basierende Schlüssel einzusetzen. Für deren Einsatz ist es essenziell, dass die Kompatibilität zu den vorgesehenen Use Cases sichergestellt ist.

Nachfolgend eine Liste von Use Cases, für welche mir die Kompatibilität bekannt ist.

„Liste der Use Cases der Zertifikate, für welche die Kompatibilität zu auf elliptischen Kurven (ECC) basierenden Schlüsseln bekannt ist“ weiterlesen

Die Beantragung von Zertifikaten mit auf elliptischen Kurven basierenden Schlüsseln schlägt fehl, wenn der Microsoft Platform Crypto Provider verwendet wird

Folgendes Szenario angenommen:

Error: The requested operation is not supported. 0x80090029 (-2146893783 NTE_NOT_SUPPORTED)

Auf Windows Server 2016 wird die Fehlermeldung "No provider was specified for the store or object. 0x80092006 (-2146885626 CRYPT_E_NO_PROVIDER)" ausgegeben bei ansonsten identischem Verhalten.

„Die Beantragung von Zertifikaten mit auf elliptischen Kurven basierenden Schlüsseln schlägt fehl, wenn der Microsoft Platform Crypto Provider verwendet wird“ weiterlesen

Grundlagen: Cryptographic Service Provider (CSP) und Key Storage Provider (KSP)

Seit Windows NT 4.0 gibt es im Rahmen der CryptoAPI die Cryptographic Service Provider (CSP).

Sinn ist, dass sich eine Anwendung nicht um die konkrete Implementierung der Schlüsselverwaltung kümmern muss, sondern dies generischen Betriebssystem-Schnittstellen überlassen kann. Ebenso soll hiermit vermieden werden, dass kryptographische Schlüssel im Sicherheitskontext des Benutzers/der verwendenen Anwendung in den Arbeitsspeicher geladen werden (ein fataler Sicherheitsvorfall, der genau auf diesem Problem basierte war der Heartbleed Vorfall).

Beispielsweise spielt es für die Zertifizierungsstellen-Software technisch keine Rolle, wie ihr privater Schlüssel geschützt ist – ob in Software oder beispielsweise mit einem Hardware Security Modul (HSM). Der Aufruf des privaten Schlüssel ist für die Zertifizierungsstelle immer identisch.

Mit Windows Vista und der Einführung der Cryptography Next Generation (CNG) als Ablöser für die CryptoAPI wurden die Key Storage Provider (KSP) eingeführt.

„Grundlagen: Cryptographic Service Provider (CSP) und Key Storage Provider (KSP)“ weiterlesen

Fehlersuche für die automatische Zertifikatbeantragung (Autoenrollment) via RPC/DCOM

Folgendes Szenario angenommen:

  • Es ist eine Zertifikatvorlage für die automatische Beantragung von Zertifikaten konfiguriert (Autoenrollment).
  • Die Zertifikatvorlage ist auf einer ins Active Directory integrierten Zertifizierungsstelle (Enterprise Certification Authority) veröffentlicht.
  • Die für die automatische Zertifikatbeantragung konfigurierten Benutzer oder Computer beantragen allerdings nicht wie vorgesehen Zertifikate.

Nachfolgend eine Anleitung zur Fehlersuche.

„Fehlersuche für die automatische Zertifikatbeantragung (Autoenrollment) via RPC/DCOM“ weiterlesen

Details zum Ereignis mit ID 85 der Quelle Microsoft-Windows-CertificateServicesClient-CertEnroll

Ereignisquelle:Microsoft-Windows-CertificateServicesClient-CertEnroll
Ereignis-ID:85 (0x825A0055)
Ereignisprotokoll:Application
Ereignistyp:Warning
Ereignistext (englisch):Certificate enrollment for %1 for the %2 template could not perform attestation due to an error with the cryptographic hardware using the provider: %3. Request Id: %4.%5
Ereignistext (deutsch):Von der Zertifikatregistrierung für "%1" für die %2-Vorlage konnte kein Nachweis durchgeführt werden, da ein Fehler mit der Kryptografiehardware mit dem Anbieter %3 aufgetreten ist. Anforderungs-ID: %4.%5
„Details zum Ereignis mit ID 85 der Quelle Microsoft-Windows-CertificateServicesClient-CertEnroll“ weiterlesen

Details zum Ereignis mit ID 86 der Quelle Microsoft-Windows-CertificateServicesClient-CertEnroll

Ereignisquelle:Microsoft-Windows-CertificateServicesClient-CertEnroll
Ereignis-ID:86 (0xC25A0056)
Ereignisprotokoll:Application
Ereignistyp:Error
Ereignistext (englisch):SCEP Certificate enrollment initialization for %1 via %2 failed: %3 Method: %4 Stage: %5 %6
Ereignistext (deutsch):Fehler bei der Initialisierung der SCEP-Zertifikatregistrierung für %1 über %2: %3 Methode: %4 Phase: %5 %6
„Details zum Ereignis mit ID 86 der Quelle Microsoft-Windows-CertificateServicesClient-CertEnroll“ weiterlesen

Konfigurieren der Trusted Platform Module (TPM) Key Attestation

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 Nichtexportierbarkeit des Schlüssels – auch mit Werkzeugen wie mimikatz – gegeben.

Auf den Ersten Blick ist allerdings nicht ersichtlich, dass nicht garantiert werden kann, dass auch wirklich ein TPM zum Einsatz kommt. Zwar wird keine Beantragung über die Microsoft Management Console oder AutoEnrollment möglich sein, wenn der Computer über kein TPM verfügt.

Es handelt sich jedoch bei der Konfiguration in der Zertifikatvorlage lediglich um eine Voreinstellung für den Client. Die Zertifizierungsstelle wird bei Beantragung nicht explizit prüfen, ob auch wirklich ein Trusted Platform Modul verwendet wurde.

Um sicherzustellen, dass der private Schlüssel einer Zertifikatanforderung wirklich mit einem Trusted Platform Modul geschützt wurde verbleibt also nur die TPM Key Attestation.

„Konfigurieren der Trusted Platform Module (TPM) Key Attestation“ weiterlesen

Beantragen eines durch ein Trusted Platform Modul (TPM) geschütztes Zertifikat – ohne ein TPM zu besitzen

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 Nichtexportierbarkeit des Schlüssels – auch mit Werkzeugen wie mimikatz – gegeben.

Auf den Ersten Blick ist allerdings nicht ersichtlich, dass nicht garantiert werden kann, dass auch wirklich ein TPM zum Einsatz kommt. Zwar wird keine Beantragung über die Microsoft Management Console oder AutoEnrollment möglich sein, wenn der Computer über kein TPM verfügt.

Es handelt sich jedoch bei der Konfiguration in der Zertifikatvorlage lediglich um eine Voreinstellung für den Client. Die Zertifizierungsstelle wird bei Beantragung nicht explizit prüfen, ob auch wirklich ein Trusted Platform Modul verwendet wurde.

Somit können – wenn die Zertifikatbeantragung abseits der MMC erfolgt, beliebige Parameter für den privaten Schlüssel verwendet werden.

„Beantragen eines durch ein Trusted Platform Modul (TPM) geschütztes Zertifikat – ohne ein TPM zu besitzen“ weiterlesen

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

Folgendes Szenario angenommen:

  • Es wird für einen Benutzer oder einen Computer ein Zertifikat von einer Zertifizierungsstelle über die Verwaltungskonsole für Zertifikate (certlm.msc oder certmgr.msc) beantragt.
  • Autoenrollment beantragt kein Zertifikat von der gewünschten Zertifikatvorlage, obwohl es aktiviert ist und die Berechtigungen entsprechend gesetzt sind.
  • Die gewünschte Zertifikatvorlage wird bei manueller Beantragung über die Microsoft Management Konsole (MMC) nicht angezeigt. Aktiviert man das Kontrollkästchen "Show all templates", wird für die gewünschte Zertifikatvorlage folgende Fehlermeldung angezeigt:
Cannot find object or property.
Can not find a valid CSP in the local machine.
„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."“ weiterlesen

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.

„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“ weiterlesen

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

Folgendes Szenario angenommen:

  • Es ist eine Zertifikatvorlage für die Verwendung des Microsoft Platform Crypto Provider konfiguriert, sodass der bei der Beantragung des Zertifikats erzeugte private Schlüssel mit einem Trusted Platform Module (TPM) geschützt ist.
  • Die Beantragung von Zertifikaten schlägt jedoch mit folgender Fehlermeldung fehl:
An error occurred while enrolling for a certificate.
A certificate request could not be created.
Url: CA02.intra.adcslabor.de\ADCS Labor Issuing CA 1
Error: The requested operation is not supported. 0x80090029 (-2146893783 NTE_NOT_SUPPORTED)
„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)"“ weiterlesen

Die Ausstellungsrichtlinien (Issuance Policies) für Trusted Platform (TPM) Key Attestation in ein Zertifizierungsstellen-Zertifikat aufnehmen

Installiert man eine ausstellende Zertifizierungsstelle (Issuing CA) und beantragt nicht explizit eine Ausstellungsrichtlinie (Issuance Policy) beinhaltet das resultierende Zertifizierungsstellen-Zertifikat keine Ausstellungsrichtlinien.

Möchte man die Ausstellungsrichtlinien (Issuance Policies) für Trusted Platform (TPM) Key Attestation in das Zertifizierungsstellen-Zertifikat aufnehmen, muss wie folgt vorgegangen werden.

„Die Ausstellungsrichtlinien (Issuance Policies) für Trusted Platform (TPM) Key Attestation in ein Zertifizierungsstellen-Zertifikat aufnehmen“ weiterlesen

Ermitteln und Exportieren eines Trusted Platform Module (TPM) Endorsement Zertifikats

Möchte man die Trusted Platform Module (TPM) Key Attestation verwenden, hat man die Option, das TPM unter Anderem über das Endorsement-Zertifikat (EkCert) zu attestieren. Nachfolgend wird beschrieben, wie man an diese Information herankommt.

„Ermitteln und Exportieren eines Trusted Platform Module (TPM) Endorsement Zertifikats“ weiterlesen

Die Prüfsumme (Hash) eines Trusted Platform (TPM) Endorsement Key ermitteln

Möchte man die Trusted Platform Module (TPM) Key Attestation verwenden, hat man die Option, das TPM unter Anderem über den Endorsement-Key (EkPub) zu attestieren. Nachfolgend wird beschrieben, wie man an diese Information herankommt.

„Die Prüfsumme (Hash) eines Trusted Platform (TPM) Endorsement Key ermitteln“ weiterlesen

Erstellen einer virtuellen Smartcard in einem Hyper-V Gastsystem

Für Testumgebungen ist es oft hilfreich, mit Smartcards arbeiten zu können. Nachfolgend eine kurze Anleitung, wie eine virtuelle Smartcard in einem Hyper-V Gast mit Hilfe eines virtualisierten Trusted Platform Moduls (TPM) eingerichtet werden kann.

„Erstellen einer virtuellen Smartcard in einem Hyper-V Gastsystem“ weiterlesen