Mehr Privacy für den Nutzer: OCSP-Stapling

[Update 20.5.2016: Fehlerhafter Hinweis auf SSLCACertificateFile für Apache entfernt.]

Zertifikate für Webserver enthalten die URL eines OCSP-Responders, der von der Zertifizierungsstelle betrieben wird. Viele Webbrowser wie z.B. Firefox oder Internet Explorer (aber nicht Google Chrome) führen beim Aufrufen einer https-Webseite mit dieser URL eine Prüfung durch, ob das Zertifikat gesperrt wurde. Hierzu stellen sie nach dem Verbindungsaufbau mit der Webseite eine weitere Anfrage an den OCSP-Responder, dessen URL im Serverzertifikat enthalten ist.

ocsp

Ablauf eines Webseitenaufrufs inklusive OCSP-Abfrage

Dieses Verhalten offenbart dem Betreiber des OCSP-Responders, von welcher IP-Adresse welcher Webserver aufgerufen wurden. Selbstverständlich werden auf den OCSP-Respondern der DFN-PKI keine IP-Adressen geloggt. Für Zertifikate aus anderen PKIs ist das Logging-Verhalten der zugehörigen OCSP-Responder aber nicht einfach zu klären.

Ein weiterer Nachteil ist die erhöhte Latenz durch den zusätzlichen Verbindungsaufbau zum OCSP-Responder.

Zur Lösung dieses Problems gibt es seit einiger Zeit ein Verfahren namens OCSP-Stapling, standardisiert in http://tools.ietf.org/html/rfc6066

ocsp_stapling_angewandt

Ablauf eines Webseitenaufrufs mit OCSP-Stapling

Beim OCSP-Stapling bezieht der Webserver regelmäßig (z.B. jede Stunde) vom OCSP-Responder eine OCSP-Antwort über sein eigenes Zertifikat, und schickt diese direkt im initialen TLS-Handshake zum Webbrowser des Nutzers. Damit muss der Webbrowser des Nutzers keine Verbindung zum OCSP-Responder aufnehmen.

Da die OCSP-Antwort immer vom OCSP-Responder signiert ist und diese Signatur vom Webbrowser verifiziert wird, ist die Sicherheit des Verfahrens gewährleistet.

OCSP-Stapling ist ein Feature, das die Software des Webservers unterstützen muss, und das teilweise separat konfiguriert werden muss. Es wird z.B. von folgender Software unterstützt:

  • Microsoft IIS ab Version 8.0
  • Apache ab 2.3.3
  • nginx ab 1.3.7

In Microsoft IIS ist OCSP-Stapling per Default aktiviert, es ist keine Konfiguration notwendig. In Apache lässt es sich sehr einfach einschalten:

SSLStaplingCache shmcb:/tmp/stapling_cache(102400)
SSLUseStapling on
SSLStaplingReturnResponderErrors off

Bedingungen für die Nutzung im Apache:

  • Das socache_shmcb-Modul muss geladen sein.
  • SSLStaplingCache muss außerhalb eines VirtualHost gesetzt werden.
  • Der Server muss den OCSP-Responder erreichen können (Ausgehende Verbindung in der Firewall, evtl. DNS).

Ob ein Server so konfiguriert ist, dass OCSP-Stapling genutzt wird, kann entweder mit den Test-Werkzeugen von SSL Labs geprüft werden, oder aber direkt mit openssl:

# openssl s_client -connect www.example.org:443 -status
CONNECTED(00000003)
depth=3 C = DE, O = Test, CN = Test Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
OCSP response:
======================================
OCSP Response Data:
OCSP Response Status: successful (0x0)
Response Type: Basic OCSP Response
[...]

Es ist zu empfehlen, wo immer möglich OCSP-Stapling zu aktivieren, da es für alle Beteiligten nur Vorteile bietet.

(jbr, 04.03.2015)