Grundlagen: Automatic Certificate Management Environment (ACME)

Das ACME Protokoll wurde von den Betreibern vom Projekt Let’s Encrypt entworfen, um die Ausstellung von Webserver-Zertifikaten zu automatisieren. Es ist spezifiziert in RFC 8555.

Zielstellung ist, den Vorgang des beweisens des Besitzes der DNS Ressource (IP-Adressen können aktuell nicht identifiziert werden, ist künftig aber geplant), jedoch nicht der Person oder Organisation die dahinter steht, zu automatisieren, um anschließend ohne menschliche Interaktion ein Webserver-Zertifikat beziehen zu können.

„Grundlagen: Automatic Certificate Management Environment (ACME)“ weiterlesen

Grundlagen: Elliptische Kurven in Hinsicht auf ihre Verwendung in der Public Key Infrastruktur

Mit Windows Vista und Windows Server 2008 wurde die Cryptography API: Next Generation (CNG) in die Windows Systeme eingeführt.

Unter diesem Begriff wird eine Sammlung moderner kryptographischen Funktionen verstanden. Unter Anderem ermöglicht die CNG die Verwendung von Zertifikaten, welche auf elliptischen Kurven (auch Elliptic Curve Cryptography, ECC genannt) basierende Schlüssel verwenden, mit der Microsoft Zertifizierungsstelle und dem Windows Betriebssystem.

„Grundlagen: Elliptische Kurven in Hinsicht auf ihre Verwendung in der Public Key Infrastruktur“ weiterlesen

Das Datenbankschema der Zertifizierungsstellen-Datenbank

Möchte man Abfragen gegen die Zertifizierungsstellen-Datenbank formulieren, muss man zuerst wissen, wonach man suchen möchte.

Es gibt die Möglichkeit, das Datenbankschema der Zertifizierungsstellen-Datenbank ausgeben zu lassen.

„Das Datenbankschema der Zertifizierungsstellen-Datenbank“ weiterlesen

Grundlagen: Die Key Usage Zertifikaterweiterung

Zertifikaterweiterungen wurden mit der Version 3 des X.509 Standards eingeführt. Die Key Usage Erweiterung ist eine optionale Zertifikaterweiterung, die im RFC 5280 definiert ist und dazu dient, die erlaubten Verwendungszwecke für einen Schlüssel zu begrenzen.

„Grundlagen: Die Key Usage Zertifikaterweiterung“ 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

Grundlagen Onlineresponder (Online Certificate Status Protocol, OCSP)

Zertifikate verfügen in der Regel über die Erweiterung "CRL Distribution Points", anhand derer einer Anwendung mitgeteilt wird, wo die zum Zertifikat zugehörige Zertifikatsperrliste (Certificate Revocation List, CRL) zu finden ist.

Diese gleicht einem Telefonbuch: In ihr finden sich alle Seriennummern von von der Zertifizierungsstelle zurückgerufenen (und noch zeitgültigen) Zertifikaten. Jede Anwendung, die den Sperrstatus überprüft, muss die gesamte Sperrliste herunterladen und auswerten.

Mit zunehmender Größe wird dieses Verfahren immer ineffizienter. Als Faustregel gilt, dass 100.000 zurückgerufene Zertifikate bereits ca. 5 MB Dateigröße für die Sperrliste entsprechen.

Hierfür wurde das Online Certificate Status Protocol (OCSP) entwickelt: Es gleicht einer Auskunft, bei der Anwendungen den Sperrstatus für einzelne Zertifikate anfragen können, und somit der Bedarf entfällt, die gesamte CRL herunterladen zu müssen. OCSP ist im RFC 6960 spezifiziert.

„Grundlagen Onlineresponder (Online Certificate Status Protocol, OCSP)“ weiterlesen

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

Die capolicy.inf beinhaltet grundlegende Einstellungen, die vor der Installation einer Zertifizierungstelle 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

Grundlagen: Enroll on Behalf of (EOBO)

Nachfolgend eine Beschreibung der Enroll on Behalf Of Funktion sowie Abgrenzung zu anderen Methoden, Zertifikate zu beantragen.

„Grundlagen: Enroll on Behalf of (EOBO)“ weiterlesen

Grundlagen: Einschränkung der Pfadlänge (Path Length Constraint)

Der Ende 2008 vorgeführte Angriff auf den MD5 Signaturalgorithmus konnte nur deshalb zur Erstellung eines nutzbaren gefälschten Zertifizierungsstellen-Zertifikats verwendet werden, da die angegriffene Zertifizierungsstelle keine Einschränkung der Pfadlänge konfiguriert hatte.

Die Einschränkung der Pfadlänge ist im RFC 5280 beschrieben. Die Idee dahinter ist, dass in der "Basic Constraints" Erweiterung eines Zertifizierungsstellen-Zertifikats die maximale Tiefe der Zertifizierungsstellen-Hierarchie hinterlegt wird.

„Grundlagen: Einschränkung der Pfadlänge (Path Length Constraint)“ weiterlesen

Grundlagen Registrierungsdienst für Netzwerkgeräte (Network Device Enrollment Service, NDES)

Das Simple Certificate Enrollment Protocol (SCEP) wurde in den frühen 2000er Jahren von Verisign für Cisco entwickelt, um eine vereinfachte Methode zum Beantragen von Zertifikaten verwenden zu können. Zuvor musste für Netzwerkgeräte manuell eine Zertifikatanforderung auf jedem Gerät erzeugt, zu einer Zertifizierungsstelle übermittelt und anschließend das ausgestellte Zertifikat wieder manuell auf dem entsprechenden Gerät installiert werden.

„Grundlagen Registrierungsdienst für Netzwerkgeräte (Network Device Enrollment Service, NDES)“ weiterlesen

Beschreibung der verschiedenen Zertifikat-Formate

X.509 Zertifikate sind grundsätzlich im Distinguished Encoding Rules (DER) Format kodiert. Hierbei handelt es sich um ein binäres, maschinenlesbares Format.

DER-kodierte Zertifikate können jedoch mit dem BASE64 Verfahren auch in ein textbasiertes Format überführt werden, sodass sie beispielsweise in einem E-Mail Body übertragen werden können. BASE64 umschließt hierbei das DER-kodierte Format, d.h. das Zertifikat ist und bleibt in jedem Fall DER-kodiert.

„Beschreibung der verschiedenen Zertifikat-Formate“ weiterlesen

Grundlagen: Schlüsselalgorithmen, Signaturalgorithmen und Signaturhashalgorithmen

Bei der Planung einer Public Key Infrastruktur kommt die Frage auf, welche kryptographischen Algorithmen diese verwenden sollte.

Die wichtigsten Grundlagen werden nachfolgend erläutert.

„Grundlagen: Schlüsselalgorithmen, Signaturalgorithmen und Signaturhashalgorithmen“ weiterlesen

Grundlagen: Auffinden von Zertifikaten und Validierung des Zertifizierungspfades

Um feststellen zu können, ob ein Zertifikat von einer als vertrauenswürdig eingestuften Zertifizierungsstelle ausgestellt wurde, muss eine Vertrauenskette (engl. Trust Chain) gebildet werden. Hierfür müssen alle Zertifikate in der Kette ermittelt und überprüft werden. Die Microsoft CryptoAPI bildet alle möglichen Zertifikatketten und liefert diejenigen mit der höchsten Qualität an die anfragende Anwendung zurück.

„Grundlagen: Auffinden von Zertifikaten und Validierung des Zertifizierungspfades“ weiterlesen

Grundlagen: Überprüfung des Sperrstatus von Zertifikaten

Soll ein gültiges, noch nicht abgelaufenes Zertifikat aus dem Verkehr gezogen werden, muss es widerrufen werden. Hierfür pflegen die Zertifizierungsstellen entsprechende Sperrlisten, in welchen die digitalen Fingerabdrücke der widerrufenen Zertifikate aufgelistet sind. Sie müssen bei der Gültigkeitsprüfung abgefragt werden.

„Grundlagen: Überprüfung des Sperrstatus von Zertifikaten“ weiterlesen

Verwenden von HTTP über Transport Layer Security (HTTPS) für die Sperrlistenverteilungspunkte (CDP) und den Onlineresponder (OCSP)

In Hinsicht auf die Gestaltung der Infrastruktur zur Bereitstellung der Sperrinformationen – also der Sperrlistenverteilungspunkte (CRL Distribution Point, CSP) sowie der Online Responder (Online Certificate Status Protocol, OCSP) kommt die Frage auf, ob man diese über Secure Sockets Layer (SSL) bzw. Transport Layer Security (TLS) "absichern" sollte.

„Verwenden von HTTP über Transport Layer Security (HTTPS) für die Sperrlistenverteilungspunkte (CDP) und den Onlineresponder (OCSP)“ weiterlesen