Ab Apache Version 2.4 (in Debian Jessie enthalten) wird OCSP Stapling unterstützt. OCSP steht für Online Certificate Status Protocol. Damit kann die Gültigkeit eines Zertifikates abgefragt werden. Das ganze sieht in der Praxis dann so aus, dass wenn ein Nutzer eine Webseite über HTTPS aufruft, der Webbrowser dann eine im Zertifikat enthaltene OCSP Responder Adresse abfragt um festzustellen, ob das Zertifikat noch gültig ist. Das ist natürlich für die Sicherheit gut, hat aber zwei Nachteile:
- Die OCSP Responder Server werden beim Verbindungsaufbau zusätzlich abgefragt, das führt je nach Auslastung und Verfügbarkeit des Responders zu einer Verzögerung
- Der OCSP Responder Server bekommt mit, welche Webseite von welcher IP-Adresse aufgerufen wird
Ob die OCSP Responder letzteres nun loggen oder nicht ist nicht immer eindeutig zu klären, deswegen gehe ich davon aus, dass das im Zweifel so ist.
Abhilfe bringt OCSP Stapling. Dabei fragt der Webserver selbst regelmäßig den OCSP Responder für seine Zertifikate ab und behält diese Information in einem Zwischenspeicher. Beim Verbindungsaufbau sendet er dann die OCSP Antwort gleich mit. Da es sich hierbei um eine komplett signierte Kommunikation handelt, vom OCSP Responder über den Webserver bis hin zum Browser und der Browser die Signatur überprüft ist die Antwort verifiziert und der Browser muss keine Verbindung mehr zum OCSP Responder aufnehmen.
In Apache ist das ganze recht einfach eingerichtet. Ich habe einfach unter /etc/apache2/conf.d/ eine Datei OCSP_Stapling.conf angelegt mit dem folgenden Inhalt:
SSLUseStapling on SSLStaplingCache 'shmcb:/tmp/stapling-cache(102400)' SSLStaplingReturnResponderErrors off |
Dabei ist wichtig, dass der SSLStaplingCache außerhalb eines vhosts definiert wird. Prüfen kann man das ganze dann bei dem von mir gern genommenen SSL Server Test von Qualys. Da sieht das dann bei Erfolg so aus:
Weitere Informationen zu dem Thema:
- Online Certificate Status Protocol bei Wikipedia
- Mehr Privacy für den Nutzer: OCSP-Stapling im DFN-PKI Blog
Hallo Jan Vonde
vielen Dank für Ihren Blogeintrag für das OCSP Stapling.
Ich werde mal schauen, dass ich das ebenfalls bei mir so umsetzen kann.
(https://www.ssllabs.com/ssltest/analyze.html?d=testssl1.2axels-company.de&hideResults=on)
Gleich danach gibt es noch 2 weitere Setting die bei Ihnen aktiv sind. Könnten Sie mir evtl. einen Tipp geben, wie ich diese noch scharf geschaltet kriege ?
Strict Transport Security (HSTS) No => Yes
Public Key Pinning (HPKP) No => Yes
Danke und Gruß
Axel
Moin Axel,
* HSTS: https://blog.pregos.info/2014/01/31/hsts-was-es-ist-wie-es-funktioniert-und-wie-man-es-in-apache-einrichtet/
* HPKP: https://blog.pregos.info/2015/02/23/http-public-key-pinning-hpkp-erklaerung-und-einrichtung/
Viele Grüße,
Jan :-)
Hallo Jan,
danke für Deine schnelle Antwort! Ich habe gerade gesehen, dass OCSP Stapling erst ab Apache 2.3.x funktioniert. Da muss ich dann mal schauen. Bald gibt es aber den 2.4er Apache, dann wird dann besser!
Gibt es eigentlich bei Dir auch die Möglichkeit Kommentare zu abonnieren und auch neue Posts per Mail informiert zu werden?
Danke Axel
Hallo Axel,
welche Distribution in welcher Version setzt Du denn ein (lsb_release -a)? In Debian Jessie ist Apache 2.4 bereits enthalten.
Ich habe in der Sidebar mal die beiden Links zum Posts- und Kommentar-Feed verlinkt. Die kannst Du mit Deinem Feedreader abbonieren. Thunderbird hat das ja auch integriert zum Beispiel. Eine Emailbenachrichtigung existiert nicht.
Viele Grüße,
Jan