Eine Zuordnung von einem Benutzerzertifikat zum dazugehörigen Computer herstellen

Folgendes Szenario angenommen:

  • Ein Computer eines Benutzers wird entwendet oder ist mit einer Malware befallen.
  • Die Integrität von auf dem Computer befindlichen Zertifikaten kann nicht mehr gewährleistet werden.
  • Die Zertifikate der/des Benutzers, welche auf diesem Computer beantragt wurden, müssen widerrufen werden.
  • Man möchte allerdings vermeiden, alle Zertifikate eines Benutzers zu widerrufen.
  • Es muss somit eine Verbindung zwischen den Zertifikaten des Benutzers und des Computers hergestellt werden, auf welchem diese beantragt wurden.

Wurden die Zertifikate per Autoenrollment beantragt, können wir uns zunutze machen, dass ein entsprechendes Attribut Teil der ursprünglichen Zertifikatanforderung war, und dass die Zertifikatanforderung zusammen mit dem Zertifikat in der Zertifizierungsstellen-Datenbank gespeichert wird.

„Eine Zuordnung von einem Benutzerzertifikat zum dazugehörigen Computer herstellen“ weiterlesen

Wiederherstellen von Zertifikaten aus den Daten des SMTP Exit Moduls

Stellt man eine Zertifizierungsstelle nach einem Katastrophenfall aus einer Sicherung (Backup) wieder her, wird man vermutlich feststellen, dass Zertifikate in dem Zeitraum zwischen der letzten Sicherung und dem Ausfall des Systems mit entsprechendem Datenverlust ausgestellt worden.

Diese Zertifikate sind nun nicht in der wiederhergestellten Zertifizierungsstellen-Datenbank gespeichert, somit können sie im Bedarfsfall auch nicht wiederhergestellt werden.

Hat man das SMTP Exit Modul im Einsatz, kann man aus den versendeten E-Mails wenigstens die Seriennummern der Zertifikate ermitteln und diese widerrufen.

„Wiederherstellen von Zertifikaten aus den Daten des SMTP Exit Moduls“ 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

Die "Application Policies" Zertifikaterweiterung

Für welche Zwecke ein digitales Zertifikat verwendet werden darf, wird über die Zertifikaterweiterungen "Key Usage" und "Extended Key Usage" gesteuert.

In der "Extended Key Usage" Zertifikaterweiterung werden die erweiterten Schlüsselverwendungen eingetragen, für welche das Zertifikat verwendet werden darf.

Es gibt jedoch bei von einer Microsoft Zertifizierungsstelle ausgestellten Zertifikaten noch eine weitere Zertifikaterweiterung namens "Anwendungsrichtlinien" (engl. "Application Policies"), die ebenfalls eine der Extended Key Usages Erweiterung sehr ähnliche Liste enthält.

„Die "Application Policies" Zertifikaterweiterung“ weiterlesen

Es werden regelmäßig neue Zertifikate über Autoenrollment beantragt

Folgendes Szenario angenommen:

  • Es ist eine Zertifikatvorlage für die automatische Beantragung und Ausstellung (AutoEnrollment) konfiguriert.
  • Benutzer oder Computer beantragen in regelmäßigen Abständen und lange vor dem definierten Erneuerungszeitraum neue Zertifikate.
„Es werden regelmäßig neue Zertifikate über Autoenrollment beantragt“ weiterlesen

Der Schlüsselalgorithmus von Zertifikatanforderungen wird vom Policy Modul der Zertifizierungsstelle nicht überprüft

Folgendes Szenario angenommen:

  • Es ist eine Zertifikatvorlage für die Verwendung von auf elliptischen Kurven basierenden Schlüsseln konfiguriert (z.B. ECDSA_P256).
  • Als Folge dessen ist eine Mindest-Schlüssellänge von 256 Bit konfiguriert.
  • Es werden dennoch auch Zertifikatanforderungen, die andere ECC-Kurven oder RSA-basierte Schlüssel verwenden, signiert.
„Der Schlüsselalgorithmus von Zertifikatanforderungen wird vom Policy Modul der Zertifizierungsstelle nicht überprüft“ weiterlesen

Von Null auf Enterprise Administrator durch den Registrierungsdienst für Netzwerkgeräte (NDES) – und was dagegen getan werden kann

Nachfolgend möchte ich eine der breiten Öffentlichkeit vielleicht nicht unbedingt bekannte hochgefährliche PKI-Konfiguration vorstellen, die so in Unternehmensnetzwerken wahrscheinlich recht häufig angetroffen werden kann.

Ich zeige auf, wie durch Ausnutzung verschiedener unglücklicher Umstände in der Windows-PKI eine Erhöhung von Rechten, ausgehend von bloßem Netzwerkzugang bis hin zur vollständigen Übernahme des Active Directory möglich ist.

Der initiale Angriffspunkt ist in diesem Beispiel der Registrierungsdienst für Netzwerkgeräte (NDES).

„Von Null auf Enterprise Administrator durch den Registrierungsdienst für Netzwerkgeräte (NDES) – und was dagegen getan werden kann“ weiterlesen

Die Installation einer Zertifizierungsstelle schlägt fehl mit Fehlermeldung "The Certification Authority is already installed."

Folgendes Szenario angenommen:

  • Es wird eine Zertifizierungsstelle installiert.
  • Bei der Installation ist ein Fehler aufgetreten, der einen erneuten Versuch erforderlich gemacht hat.
  • Die Zertifizierungsstellen-Rolle wurde deinstalliert und die Rollen-Konfiguration anschließend erneut versucht.
  • Die Rollenkonfiguration schlägt mit folgender Fehlermeldung fehl:
The Certification Authority is already installed. If you are trying to reinstall the role service, you must first uninstall it.
„Die Installation einer Zertifizierungsstelle schlägt fehl mit Fehlermeldung "The Certification Authority is already installed."“ weiterlesen

Die Installation oder Deinstallation eines Windows-Features schlägt fehl mit Fehlermeldung "The service is configured to not accept any remote shell requests."

Folgendes Szenario angenommen:

  • Eine Windows-Rolle betreffend Active Directory Certificate Services (Zertifzierungsstelle, Registrierungsdienst für Netzwerkgeräte (NDES), Zertifizierungsstellen-Webregistrierung (CAWE), Zertifikatregistrierungs-Webdienste (CEP, CES) oder Onlineresponder (OCSP)) soll installiert oder deinstalliert werden.
  • Die Installation bzw. Deinstallation schlägt fehl mit folgender Fehlermeldung:
The status of the role services on the target machine cannot be determined. Please retry. The error is The WS-Management service cannot process the request. The service is configured to not accept any remote shell requests.
„Die Installation oder Deinstallation eines Windows-Features schlägt fehl mit Fehlermeldung "The service is configured to not accept any remote shell requests."“ weiterlesen

Der Widerruf eines ausgestellten Zertifikats schlägt fehl mit Fehlermeldung "The data is invalid. 0x8007000d (WIN32: 13 ERROR_INVALID_DATA)"

Folgendes Szenario angenommen:

  • Es wird ein Zertifikat über die Kommandozeile widerrufen (certutil -revoke).
  • Der Vorgang schlägt mit folgender Fehlermeldung fehl:
ICertAdmin::RevokeCertificate: The data is invalid. 0x8007000d (WIN32: 13 ERROR_INVALID_DATA)
„Der Widerruf eines ausgestellten Zertifikats schlägt fehl mit Fehlermeldung "The data is invalid. 0x8007000d (WIN32: 13 ERROR_INVALID_DATA)"“ weiterlesen

Behandlung abgelaufener Zertifikate bei der Ausstellung von Zertifikatsperrlisten

Microsoft Active Directory Certificate Services entfernt in der Standardeinstellung die Seriennummern abgelaufener Zertifikate aus den ausgestellten Sperrlisten.

Hierbei gibt es allerdings einige Ausnahmen.

„Behandlung abgelaufener Zertifikate bei der Ausstellung von Zertifikatsperrlisten“ weiterlesen

Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "The system cannot find the file specified. 0x2 (WIN32: 2 ERROR_FILE_NOT_FOUND)"

Folgendes Szenario angenommen:

  • Es wird eine Zertifizierungsstelle installiert.
  • Die Installation verläuft erfolgreich, der Zertifizierungsstellen-Dienst startet aber nicht nach der Installation.
  • Beim Versuch, den Zertifizierungsstellen-Dienst über die Zertifizierungsstellen-Verwaltungskonsole zu starten, erhält man folgende Fehlermeldung:
The system cannot find the file specified. 0x2 (WIN32: 2 ERROR_FILE_NOT_FOUND)
The policy module for a CA is missing or incorrectly registered. To view or change policy module settings, right-click on the CA, click Properties, and then click the Policy Module tab.
„Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "The system cannot find the file specified. 0x2 (WIN32: 2 ERROR_FILE_NOT_FOUND)"“ weiterlesen

Die Beantragung eines Zertifikats schlägt fehl mit Fehlermeldung "The request is missing required signature policy information. 0x80094809 (-2146875383 CERTSRV_E_SIGNATURE_POLICY_REQUIRED)"

Folgendes Szenario angenommen:

  • Ein Benutzer sendet eine Zertifikatanforderung an eine Zertifizierungsstelle.
  • Die Beantragung des Zertifikats schlägt mit folgender Fehlermeldung fehl:
The request is missing required signature policy information. 0x80094809 (-2146875383 CERTSRV_E_SIGNATURE_POLICY_REQUIRED)
Denied by Policy Module
„Die Beantragung eines Zertifikats schlägt fehl mit Fehlermeldung "The request is missing required signature policy information. 0x80094809 (-2146875383 CERTSRV_E_SIGNATURE_POLICY_REQUIRED)"“ weiterlesen

Grundlagen: Konfigurationsdatei für die Zertifizierungsstelle (capolicy.inf)

Die capolicy.inf beinhaltet grundlegende Einstellungen, die vor der Installation einer Zertifizierungsstelle festgelegt werden können oder sollten. Vereinfacht ausgedrückt kann man sagen, dass keine Zertifizierungsstelle ohne sie installiert werden sollte.

„Grundlagen: Konfigurationsdatei für die Zertifizierungsstelle (capolicy.inf)“ weiterlesen

Ein Exit Modul für die Zertifizierungsstelle in C# erstellen

Microsoft Active Directory Certificate Services bietet die Möglichkeit, eigene Policy- und Exitmodule zu entwickeln, um die Funktionalität der Zertifizierungsstelle zu erweitern.

Nachfolgend die notwendigen Schritte, um ein Exit Modul in C# mit Visual Studio 2019 zu erstellen. Das Exit Modul wird ausgestellte Zertifikate in ein konfigurierbares Verzeichnis im Dateisystem schreiben.

„Ein Exit Modul für die Zertifizierungsstelle in C# erstellen“ weiterlesen
de_DEDeutsch