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 Partition des Hardware Security Moduls (HSM) läuft voll

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.
„Die Partition des Hardware Security Moduls (HSM) läuft voll“ 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

Bei der Wiederherstellung einer Zertifizierungsstelle ist das Zertifizierungsstellen-Zertifikat bei der Rollen-Installation nicht auswählbar

Folgendes Szenario angenommen:

„Bei der Wiederherstellung einer Zertifizierungsstelle ist das Zertifizierungsstellen-Zertifikat bei der Rollen-Installation nicht auswählbar“ weiterlesen

Die Wiederherstellung der Verbindung zum privaten Schlüssel schlägt fehl mit Fehlermeldung "Cannot find object or property. 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)"

Folgendes Szenario angenommen:

Cannot find the certificate and private key for decryption.
CertUtil: -repairstore command FAILED: 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)
CertUtil: Cannot find object or property.
„Die Wiederherstellung der Verbindung zum privaten Schlüssel schlägt fehl mit Fehlermeldung "Cannot find object or property. 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)"“ 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

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

Ereignisquelle:Microsoft-Windows-CertificateServicesClient-CertEnroll
Ereignis-ID:58 (0x825A003A)
Ereignisprotokoll:Application
Ereignistyp:Warning
Ereignistext (englisch):The "%3" algorithm for the "%2" provider was not loaded because initialization failed.
Ereignistext (deutsch):Der "%3"-Algorithmus für den "%2"-Anbieter wurde aufgrund eines Initialisierungsfehlers nicht geladen.
„Details zum Ereignis mit ID 58 der Quelle Microsoft-Windows-CertificateServicesClient-CertEnroll“ weiterlesen

Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "Provider DLL failed to initialize correctly. 0x8009001d (-2146893795 NTE_PROVIDER_DLL_FAIL)."

Folgendes Szenario angenommen:

  • Es ist eine Zertifizierungsstelle im Netzwerk implementiert.
  • Der Zertifizierungsstellen-Dienst startet nicht.
  • Beim Versuch, den Zertifizierungsstellen-Dienst zu starten, erhält man folgende Fehlermeldung:
Provider DLL failed to initialize correctly. 0x8009001d (-2146893795 NTE_PROVIDER_DLL_FAIL).
„Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "Provider DLL failed to initialize correctly. 0x8009001d (-2146893795 NTE_PROVIDER_DLL_FAIL)."“ weiterlesen

Liste der Use Cases für Zertifikate, die bestimmte Cryptographic Service Provider (CSP) oder Key Storage Provider (KSP) benötigen

Mit Windows Server 2008 wurde zusammen mit den NSA Suite B Algorithmen (auch als Cryptography Next Generation, CNG bekannt) mit den Key Storage Providern eine neue, moderne Schnittstelle für die Erzeugung, Speicherung und Verwendung von privaten Schlüsseln im Windows-Ökosystem eingeführt.

In den meisten Fällen spielt es keine Rolle, welche CSP oder KSP für Zertifikate verwendet wird. Einige Anwendungen werden allerdings nicht oder nicht korrekt funktionieren, wenn der falsche Provider gewählt wurde.

Nachfolgend eine Liste mir bekannter Anwendungsfälle für Zertifikate, die nur mit einem bestimmten Cryptographic Service Provider (CSP) oder Key Storage Provider (KSP) zusammenarbeiten.

„Liste der Use Cases für Zertifikate, die bestimmte Cryptographic Service Provider (CSP) oder Key Storage Provider (KSP) benötigen“ weiterlesen

Die Beantragung eines Zertifikats schlägt fehl mit Fehlermeldung "A certificate issued by the certification authority cannot be installed. Cannot find object or property. 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)"

Folgendes Szenario angenommen:

  • Es wird ein Zertifikat von einer Zertifizierungsstelle beantragt.
  • Das Zertifikat wird erfolgreich von der Zertifizierungsstelle ausgestellt.
  • Bei der Installation des Zertifikats auf dem Zielsystem kommt es jedoch zu folgender Fehlermeldung:
A certificate issued by the certification authority cannot be installed. Contact your administrator.
Cannot find object or property. 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)
„Die Beantragung eines Zertifikats schlägt fehl mit Fehlermeldung "A certificate issued by the certification authority cannot be installed. Cannot find object or property. 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)"“ 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

Der Registrierungsdienst für Netzwerkgeräte (NDES) protokolliert die Fehlermeldung "The Network Device Enrollment Service cannot retrieve one of its required certificates (0x80070057). The parameter is incorrect."

Folgendes Szenario angenommen:

  • Ein NDES Server ist im Netzwerk konfiguriert.
  • Bei Aufruf der NDES-Beantragungs-Webseite (mscep) und der NDES-Administrations-Webseite (certsrv/mscep_admin) wird der HTTP-Fehler 500 (Internal Server Error) gemeldet.
  • Es werden die Ereignisse Nr. 2 und 10 im Anwendungs-Ereignisprotokoll hinterlegt:
The Network Device Enrollment Service cannot be started (0x80070057). The parameter is incorrect.
The Network Device Enrollment Service cannot retrieve one of its required certificates (0x80070057). The parameter is incorrect.
„Der Registrierungsdienst für Netzwerkgeräte (NDES) protokolliert die Fehlermeldung "The Network Device Enrollment Service cannot retrieve one of its required certificates (0x80070057). The parameter is incorrect."“ weiterlesen

Importieren eines Zertifikats in eine Smartcard

Manchmal ist es erforderlich, ein Zertifikat, welches einen Software-Schlüssel verwendet, in eine Smartcards zu importieren.

„Importieren eines Zertifikats in eine Smartcard“ weiterlesen