Grundlagen: Deltasperrlisten

Um ausgestellte Zertifikate vor Ende ihrer Gültigkeitsdauer aus dem Verkehr ziehen zu können, werden Zertifikatsperrlisten (engl. "Certificate Revocation List", CRL) eingesetzt.

Hierbei handelt es sich um eine signierte Liste der Seriennummern von Zertifikaten, die von der Zertifizierungsstelle widerrufen wurden. Die Sperrliste hat ein (in der Regel wenige Tage kurzes) Ablaufdatum und wird von der zugehörigen Zertifizierungsstelle in regelmäßigen Abständen neu ausgestellt und signiert.

Zertifikatsperrlisten können bei einem hohen Volumen widerrufener Zertifikate eine beträchtliche Größe erreichen (als Faustregel kann man mit ca. 5 Megabyte pro 100.000 Einträgen rechnen). Der regelmäßige Download großer Zertifikatsperrlisten durch die Teilnehmer kann eine große Netzwerklast erzeugen. Um dieses Problem zu adressieren gibt es das Konzept der Deltasperrlisten.

Mitunter ist es erforderlich, dass ein von einer Zertifizierungsstelle ausgestelltes Zertifikat bereits vor dessen Ablaufdatum aus dem Verkehr gezogen werden muss. Um dies zu ermöglichen, hält eine Zertifizierungsstelle eine Sperrliste vor. Hierbei handelt es sich um eine signierte Datei mit einem relativ kurzen Ablaufdatum, welches in Kombination mit dem Zertifikat zur Überprüfung der Gültigkeit herangezogen wird.

Funktionsweise

Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken, um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.

Der Gedanke bei Deltasperrlisten ist, die Veröffentlichungsintervalle der (vermeintlich großen) Basissperrliste zu verlängern, sodass diese von den Teilnehmern seltener heruntergeladen werden muss. Änderungen, die sich seit der letzten Veröffentlichung der Basissperrliste ergeben haben, werden in die Deltasperrliste geschrieben, welche in kürzeren Intervallen veröffentlicht werden.

Einer Basissperrliste können somit mehrere Deltasperrlisten zugehörig sein. Bei der Veröffentlichung von Zertifikatsperrlisten hat man die Wahl, die Basissperrliste oder eine neue Deltasperrliste zu veröffentlichen.

Sind Deltasperrlisten aktiv, verfügt die Basissperrliste über eine Erweiterung namens "Freshest CRL", welche die URL für den Download der Deltasperrliste enthält.

Wenn Deltasperrlisten aktiviert sind, ist eine Sperrstatusüberprüfung somit nur möglich, wenn sowohl die Basissperrliste als auch eine dazugehörige Deltasperrliste abrufbar und zeitgültig sind.

Abbildung in den Microsoft Active Directory Certificate Services

Konfiguration

Die Konfiguration der Sperrlistengültigkeit ist in der Registrierung unter folgendem Pfad abgebildet:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\{Name-der-Zertifizierungsstelle>
Registry-WertStandardwert
CRLPeriodUnits1
CRLPeriodWeeks
CRLOverlapUnits0
CRLOverlapPeriodHours
CRLDeltaPeriodUnits1
CRLDeltaPeriodDays
CRLDeltaOverlapUnits0
CRLDeltaOverlapPeriodMinutes

Standardwerte

Installiert man eine Microsoft-Zertifizierungsstelle mit Standardeinstellungen, sind Deltasperrlisten automatisch mit folgenden Einstellungen aktiviert:

SperrlisteParameterExplizit konfigurierter WertEffektiver Wert
BasissperrlisteGültigkeit1 Woche1 Woche
BasissperrlisteÜberlappungszeitraum0 Stunden12 Stunden
DeltasperrlisteGültigkeit1 Tag1 Tag
DeltasperrlisteÜberlappungszeitraum0 Minuten12 Stunden

Wie man sieht sind die Werte für die Überlappungszeiträume jeweils auf 0 gesetzt. Das bedeutet aber nicht, dass die Sperrlistenüberlappung damit aktiviert ist. Vielmehr wendet die Zertifizierungsstelle Standardwerte von 12 Stunden an. Damit ergeben sich in der Standardeinstellung folgende Gültigkeitszeiträume:

  • Die Basissperrliste ist 180 Stunden (1 Woche + 12 Stunden) gültig und wird 12 Stunden vor Ablauf erneuert.
  • Die Deltasperrliste ist 36 Stunden (1 Tag + 12 Stunden) gültig und wird 12 Stunden vor Ablauf erneuert.

Die Microsoft-Zertifizierungsstelle setzt das Ausstellungsdatum der Sperrlisten jeweils 10 Minuten in die Vergangenheit. Ebenso wird das Enddatum um 10 Minuten verlängert. Dieses Vorgehen soll eventuellen Problemen mit der Zeitsynchronisierung zwischen den Teilnehmern vorbeugen.

Zur Sinnhaftigkeit von Deltasperrlisten

Die meisten Unternehmen werden nie in die Verlegenheit kommen, derart viele Zertifikate zu widerrufen, dass es ohne Deltasperrlisten zu nennenswerten Lastsituationen kommen könnte. De facto haben die meisten Unternehmen nicht einmal einen belastbaren Zertifikatsperrprozess implementiert.

Die Verwendung von Deltasperrlisten kann (aufgrund ihrer in der Regel sehr kurzen Gültigkeitszeiträumen) einen Sicherheitsvorteil bieten, da Zertifikatsperrungen sehr schnell effektiv werden.

Es sollte jedoch beachtet werden, dass der Zeitraum für Notfallmaßnahmen wie der Etablierung einer Notfallsperrliste im Falle eines Ausfalls der Zertifizierungsstelle oder des Hardware Security Moduls durch die Verwendung von Deltasperrlisten gleichermaßen drastisch verkürzt werden.

Somit ist die Entscheidung für oder wider Deltasperrlisten letztendlich von den eingesetzten Use Cases abhängig. Man kann jedoch sagen, dass die Anforderung der Betreibbarkeit (der Betriebsstabilität) in der Regel Vorrang vor eventuellen kurzfristig effektiv werdenden Zertifikatsperrungen haben wird.

Eine Alternative zu Deltasperrlisten kann der Einsatz eines Onlineresponders (OCSP) sein. Dieser Dienst eignet sich jedoch ausschließlich zur Effizienzverbesserung.

Deaktivieren von Deltasperrlisten

In vielen Fällen kann es sinnvoll sein, die Deltasperrlisten zu deaktivieren und dafür lieber mit größeren Überlappungszeiträumen der Basissperrliste zu arbeiten.

Deaktivieren über die Registrierung

Setzt man die "CRLDeltaPeriodUnits" in der Registry auf den Wert 0 und startet anschließend die Zertifizierungsstelle neu, wird sie keine Deltasperrlisten mehr ausstellen.

certutil -setreg CA\CRLDeltaPeriodUnits 0
net stop certsvc
net start certsvc

Es ist ratsam, direkt eine neue Basissperrliste auszustellen, welche nicht mehr auf eine Deltasperrliste verweist, d.h. keine "Freshest CRL" Erweiterung mehr besitzt.

certutil -crl

Das Deaktivieren der Deltasperrlisten über die Registry hat jedoch den Nachteil, dass es Probleme mit bei den Teilnehmern zwischengespeicherten Zertifikatsperrlisten geben kann. Diese verwenden unter Umständen noch die alte Basissperrliste weiter, bis diese abläuft, können jedoch nicht mehr auf eine dazugehörige gültige Deltasperrliste mehr zugreifen, da diese nicht mehr ausgestellt werden.

Daher ist es ratsam, Deltasperrlisten immer über die Zertifizierungsstellen-Managementkonsole zu deaktivieren.

Deaktivieren über die Zertifizierungsstellen-Managementkonsole

In der Zertifizierungsstellen-Managementkonsole können Deltasperrlisten per Rechtsklick auf den Ordner der widerrufenen Zertifikate konfiguriert werden.

Entfernt man dort das Kontrollkästchen bei "Publish Delta CRLs", stellt die Zertifizierungsstelle ab diesem Moment keine neuen Deltasperrlisten mehr aus.

Hinter den Kulissen passiert jedoch noch zusätzlich etwas. Die Zertifizierungsstelle stellt umgehend eine neue Basissperrliste (im Bild links) aus, welche keine "Freshest CRL" Erweiterung mehr beinhaltet. Zusätzlich wird jedoch ein letztes Mal eine Deltasperrliste (im Bild rechts) ausgestellt, welche das gleiche Ablaufdatum wie die Basissperrliste aufweist.

Auf diese Weise wird verhindert, dass Teilnehmer auf die zuvor beschriebene inkonsistente Situation treffen und nicht mehr imstande sind, Zertifikate auf ihren Sperrstatus überprüfen zu können.

Weiterführende Links:

Externe Quellen

de_DEDeutsch