OCSP (Online Certificate Status Protocol) ist ein Protokoll, das die Überprüfung des Status eines SSL-Zertifikats ermöglicht. Dieser Standard beschreibt die Kommunikation zwischen dem Dienstserver und dem System des Empfängers von Zertifizierungsleistungen. OCSP legt sowohl die Struktur und das Format der Anfrage zum Zertifikatstatus als auch die Form der Antwort fest, die das Ergebnis der Überprüfung enthält. Nur ein „korrekter“ Status bedeutet, dass das Zertifikat von einer Stelle ausgestellt wurde, die den OCSP-Dienst nutzt.
Inhaltsverzeichnis
Alle SSL-Zertifikate haben eine bestimmte Gültigkeitsdauer. Sie werden maximal für zwei Jahre ausgestellt und gelten während dieses Zeitraums als gültig. Die Ungültigmachung (Widerruf) eines Zertifikats kann jedoch in bestimmten Situationen notwendig sein – zum Beispiel, wenn die im Zertifikat enthaltenen Daten veraltet sind oder wenn der private Schlüssel kompromittiert wurde. Sobald ein Zertifikat widerrufen wird, müssen alle Nutzer, die es verwenden, darüber informiert werden. Wenn etwa eine Bank das SSL-Zertifikat für ihre Login-Seite widerruft, müssen alle Kunden darüber Kenntnis erhalten. Derzeit kann diese Information auf zwei Arten übermittelt werden – mithilfe von CRL-Listen oder über das OCSP-Protokoll.
OCSP ist ein Protokoll, bei dem eine Anfrage zum Zertifikatstatus vom Client an den Server der zuständigen Zertifizierungsstelle (CA, Certificate Authority) gesendet wird. Die Antwort enthält den jeweiligen SSL-Zertifikatstatus. Ein „korrekter“ Status bedeutet, dass das Zertifikat während seiner Gültigkeitsdauer nicht widerrufen wurde und weiterhin gültig ist. Der Status „widerrufen“ umfasst sowohl tatsächlich widerrufene als auch ausgesetzte SSL-Zertifikate. Im Falle einer Aussetzung kann das Zertifikat wieder aktiviert werden und wird dann erneut als gültig betrachtet. Der letzte Status ist „unbekannt“ – er zeigt an, dass der OCSP-Responder keine Informationen zu dem in der Anfrage genannten Zertifikat finden konnte. In der Regel tritt dieser Status auf, wenn der geprüfte Zertifikatsaussteller von dem betreffenden OCSP-Server nicht unterstützt wird.
Um eine Anfrage an den OCSP-Server zu senden, muss der Client dessen Adresse kennen. Diese kann direkt aus dem betreffenden SSL-Zertifikat entnommen werden. Die Anfragen zum Zertifikatstatus müssen an die in der AIA-Erweiterung (Authority Information Access) hinterlegte Adresse gerichtet werden, welche aus einer Sequenz der Felder „accessMethod“ und „accessLocation“ besteht. Das Feld „accessMethod“ beschreibt Format und Typ der Daten – einer der zulässigen Werte zeigt an, dass der Status mithilfe des OCSP-Protokolls überprüft werden kann. Das Feld „accessLocation“ enthält die konkrete Adresse des OCSP-Servers, unter der der Zertifikatsaussteller den Dienst bereitstellt. An genau diese Adresse ist die Anfrage zum Status des zu überprüfenden Zertifikats zu richten. OCSP verwendet für den Datenaustausch zum SSL-Zertifikatstatus das HTTP-Protokoll. Dieser Standard erlaubt zwar auch die Verwendung anderer Protokolle, doch ist HTTP derzeit die gebräuchlichste Form der Kommunikation.
Das OCSP-Protokoll kann in vier von fünf am häufigsten verwendeten Webbrowsern zur Überprüfung des SSL-Zertifikatstatus eingesetzt werden. Einzig Chrome verwendet standardmäßig keine OCSP-Abfragen, sondern sogenannte „CRLSets“. In anderen gängigen Browsern (Internet Explorer, Firefox, Opera und Safari) ist die Statusüberprüfung mithilfe von OCSP möglich, allerdings funktioniert dies in jedem Browser etwas anders. So wechselt Internet Explorer zum Beispiel auf CRLs zurück, wenn der OCSP-Server nicht erreichbar ist, während Firefox ausschließlich das Online Certificate Status Protocol verwendet.