Kryptowissen.de
Kryptologie, Kryptographie und Kryptoanalyse
OCSP - Online Certificate Status Protocol
Mit Hilfe des Online Certificate Status Protocol (OSCP) kann für eine X.509-Zertifikats bei einem Validierungsdienst abgefragt werden, ob das Zertifikat wiederrufen bzw. gesperrt wurde. Spezifiziert ist das OSCP im RFC 6960.
OSCP Grundlagen
OCSP stellt damit eine Alternative zur Abfrage über Certificate Revocation Lists (CRLs). Wird ein Zertifikat bei einer Certification Authority (CA) gesperrt, dann trägt die CA dieses Zertifikat in die CRL ein. Diese CRLs können aber sehr groß werden, weshalb sie sich nicht für eine schnelle Überprüfung, ob ein Zertifikat sich darin befindet oder nicht, nicht eignet, da die Übermittlung an den Client viel zu viel Zeit einnehmen würde. Hinzu kommt, dass Sperrlisten nicht immer ganz aktuell sind, da sie nur in bestimmten Intervallen erstellt werden.Durch OCSP kann der Status eines Zertifikats ganz einfach durch Anfrage bei einem Server (OCSP-Responder – „OCSP-Antwortdienst“) abgefragt werden. Als Antwort erhält man entweder „good“ (Zertifikat ist nicht gesperrt), „revoked“ (Zertifikat ist gesperrt) oder „unknown“ (Status konnte nicht ermittelt werden). Die Antworten des OSCP-Responder sind digital signiert und können deshalb auf Echtheit und Unverfälschtheit geprüft werden. Angreifer können aber ggf. OCSP-Abfragen blockieren.
Wichtig ist noch zu wissen, dass OSCP nur Auskunft zum Sperrstatus von Zertifikaten eine Auskunft gibt. Es wird keine Korrektheit der Signaturen der Zertifikate, keine Gültigkeitsdauer und auch kein korrekter Verwendungszweck der Zertifikate überprüft.
OSCP testen
Wer testen möchte, ob der benutzte Browser OSCP unterstützt, der kann die nachfolgenden zwei Seiten aufrufen:- https://revoked-demo.pca.dfn.de hat ein ungültiges OCSP-fähiges Zertifikat, falls der Browser OSCP unterstützt, sollte nun eine Fehlermeldung erscheinen
- https://info.pca.dfn.de hat ein gültiges OCSP-fähiges Zertifikat. Die Seite sollte normal aufrufbar sein
Kritik an OCSP
Wie man schon an der Funktionsweise von OCSP erkennen kann, ergibt sich hierbei ein Datenschutzproblem. Der OCSP-Responder bekommt jede Website-Anfrage mit und hätte damit auch die gesamte Suchhistorie einer Person, mit all ihrer vertraulichen Daten auf dem Silbertablett.Darüber hinaus kommt, dass ein Angreifer die OCSP-Kommunikation blockieren könnte. Dies ist insofern problematisch, da falls der Browser keine Antwort vom Server bekommt, dieser einfach davon ausgeht, dass das Zertifikat schon in Ordnung sei. Man spricht in solch einem Fall auch von einem „fail open“ oder einen „soft fail“. Gewünscht wäre hingegen ein „fail close“ bzw. „hard fail“, also das bei einer ausbleibenden Antwort nur eine Fehlermeldung kommen würde. Das wäre in der Tat auch nicht schwer umzusetzen, leider haben Versuche der Browser-Hersteller aber gezeigt, dass das nicht praktikabel wäre. Es gebe eine zu hohe Anzahl an Fehlalarmen, da die OCSP-Infrastruktur einfach nicht in der Qualität vorhanden ist, die für einen reibungslosen Ablauf nötig wäre.
Ein dritter Kritikpunkt ist eine erhöhte Ladegeschwindigkeit, die Anwender verärgern könnte. Die OCSP-Antworte erfordert häufig das Abrufen der verteilten Seitenbestandteile über mehrere Server, die den Seitenaufruf deutlich verzögern können.
All diese Nachteile von OCSP sorgen dafür, dass kein Browser-Hersteller OCSP verpflichtend macht. Google hat sich beispielsweise schon vom Online Certificate Status Protocol verabschiedet.
OCSP Stapling: Der Nachfolger von OCSP
Trotz der aufgeführten Nachteilen ist OCSP aber nicht Tod. Als aktueller Nachfolger wird aktuell das sogenannte OCSP Stapling gehandelt, das auch unter dem Begriff TLS-Zertifikatsstatusabfrage-Erweiterung geläufig ist (siehe hierzu Abschnitt 8 von RFC 6066). Bei OCSP Stapling holt sich der Server in regelmäßigen Abständen selbst von seiner Zertifizierungsstelle eine OCSP-Auskunft mit Zeitstempel. Diese OCSP-Auskunft wir dann wiederum an das Zertifikat mit einer „Heftklammer“ (engl. staple) angehängt. Somit kann ein Browser schnell erkennen, dass der Zertifizierer vor einer noch nicht allzu langen Zeit als „good“ befunden hat.So löst OCSP Stapling das Datenschutz- und das Geschwindigkeitsproblem. Da der Client nicht mehr mit dem Zertifizierer (OCSP-Responder) direkt kommunizieren muss, sondern dies der Webserver selbst übernimmt.
Mit der Zertifikatserweiterung OCSP Must-Staple wird darüber hinaus vorgeschrieben, dass das Zertifikat nur mit einer angehefteten, positiven OCSP-Auskunft gültig ist (siehe hierzu auch RFC 7633). Damit wird die Problematik gelöst, wenn das Zertifikat zwar zurückgerufen wurde, der Angreifer aber im Besitzt des geklauten oder geknackten Schlüssel ist und er ohne OCSP Must-Staple das Zertifikat trotz des Wiederrufs weiterbenutzen kann.
Quellen und Verweise
- https://www.pki.dfn.de/crl/globalocsp/
- https://de.wikipedia.org/wiki/Online_Certificate_Status_Protocol
- c’t 23 vom 28.10.2017 – Ohne Recht auf Widerruf – Warum sich Zertifikate nicht wirklich sperren lassen
Artikel vom 09.12.2017