scheible.it - Tobias Scheible
HTTPS Sicherheit
Montag, 18. Juli 2016
0 Kommentare

HTTP Strict-Transport-Security – HTTPS absichern

Die Absicherung der Kommunikation einer Website per Hypertext Transfer Protocol Secure (HTTPS) sollte eigentlich Standard sein. Trotz Verschlüsselung gibt es Angriffsszenarien auf HTTPS. Der HTTP Strict-Transport-Security Header, kurz HSTS Header, hilft hierbei einige Schwachstellen auszumerzen und so die Website sicherer zu machen.

Ist eine Website per HTTP und HTTPS erreichbar, kann ein Angreifer beispielsweise versuchen, dass sein Opfer in einer Phising E-Mail auf einen präparierten Link klickt und so zur http-Variante gelangt. Dadurch würde eine unverschlüsselte Kommunikation stattfinden. Mit dem HTTP Strict-Transport-Security http-Header kann eine HTTPS-Verbindung immer erzwungen werden.

Wenn eine Website zum ersten Mal über HTTPS aufgerufen wird und der Header Strict-Transport-Security ausgeliefert wird, speichert der Webbrowser diese Informationen ab. Dadurch werden zukünftige Versuche, die Website per HTTP zu laden, automatisch auf HTTPS umgeleitet.

Zwei Parameter sind dafür von besonderem Interesse. Der erste Wert definiert die Ablaufzeit in Sekunden (= Timeout). Wann immer der Header Strict-Transport-Security an den Browser übermittelt wird, aktualisiert er die Ablaufzeit für diese Website. Dadurch können Websites diese Informationen aktualisieren und verhindern, dass der Timeout abläuft. Wenn die im Header Strict-Transport-Security angegebene Ablaufzeit verstrichen ist, wird der nächste Versuch, die Website über HTTP zu laden, wie gewohnt durchgeführt, anstatt automatisch über HTTPS. Mit dem Parameter includeSubDomains wird der Webbrowser angewiesen, HSTS auch auf Subdomains anzuwenden.

Strict-Transport-Security: max-age=EXPIRE-TIME
Strict-Transport-Security: max-age=EXPIRE-TIME; includeSubDomains

HTTP Strict-Transport-Security in der .htaccess aktivieren

Bevor der Header hinzugefügt wird, sollte als Erstes die Funktionsfähigkeit der HTTPS-Verbindung (https://www.ssllabs.com/ssltest/) getestet werden. Mit dem folgenden Befehl in der .htaccess-Datei wird der Apache Webserver angewiesen, den HSTS-Header an den Browser zu senden:

Header always append Strict-Transport-Security "max-age=31536000; includeSubDomains" 

Deaktivierung des HSTS-Headers

Im Prinzip sollte niemals eine Seite nur noch per HTTP erreichbar sein. Dies kann jedoch passieren, wenn zum Beispiel nach einem Serverumzug kein gültiges HTTPS-Zertifikat mehr zur Verfügung steht. Dann kommt es zu einem Fehler, da der Webbrowser durch den HSTS-Header Eintrag die HTTPS-Verbindung erzwingt.

Im Nachhinein gibt es keine Möglichkeit, die Einträge in den Webbrowsern der Besucher zu löschen. Hierbei handelt es sich um eine Sicherheitsfunktion, da die Möglichkeit zur Löschung ansonsten auch von einem Angreifer genutzt werden könnte.

Sollte es notwendig sein, Strict Transport Security zu deaktivieren, wird das Setzen des Max-Age auf 0 (über eine https-Verbindung) sofort den Strict-Transport-Security-Header ablaufen lassen und den Zugriff über http ermöglichen. Dies muss allerdings vorab erfolgen, solange eine HTTPS-Verbindung besteht. Wenn ein Besucher in diesem Zeitraum die Seite nicht erneut besucht, kommt es danach aber trotzdem zu einem Fehler.

Header always append Strict-Transport-Security: "max-age=0"

Über Tobias Scheible

Tobias Scheible

Ich arbeite als wissenschaftlicher Mitarbeiter an der Hochschule Albstadt-Sigmaringen. Dort bin ich in den Bereichen IT-Sicherheit und IT-Forensik tätig. Darüber hinaus beschäftige ich mich seit 2001 mit der Planung und Umsetzung von individuellen Web-Anwendungen. Mein Wissen teile ich gerne hier in meinem Blog, bei Vorträgen und auf Workshops.

Alle Blog-Artikel Über mich Facebook Twitter Xing

Kommentare

Es wurde noch kein Kommentar abgegeben.

Schreibe einen Kommentar!

Hilfe zum Kommentieren

Um kommentieren zu können, geben sie bitte mindestens ihren Namen und ihre E-Mail-Adresse an. Bitte nutzen Sie die Kommentarfunktion nicht dazu, andere zu beleidigen oder Spam zu verbreiten. Trolle und Spammer sind hier unerwünscht! Unangemessene Kommentare, die zum Beispiel gegen geltendes Recht verstoßen oder eine Gefährdung anderer Besucher darstellen, werden gelöscht oder angepasst.

Name: Ihr Name, der oberhalb des Kommentars steht, gerne auch Ihren echten Namen, das erleichtert die Kommunikation für alle. Sollte ein Spam-Keyword als Name verwendet werden, kann dieses entfernt oder korrigiert werden.

E-Mail: Ihre E-Mail Adresse dient zur Identifizierung weiterer Kommentare und sie haben die Möglichkeit, ein Avatar-Bild zu verwenden. Dazu müssen Sie mit Ihrer E-Mail Adresse bei Gravatar angemeldet sein. Die E-Mail Adresse wird natürlich nicht veröffentlicht und nicht weitergegeben.

Website: Hier können Sie ihren eigenen Blog bzw. ihre eigene Website eintragen, dadurch wird Ihr Name und Ihr Avatar-Bild verlinkt. Werden rein kommerzielle Angebote offensichtlich beworben, setze ich den Link auf nofollow und unangemessene werden einfach entfernt.

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <hr> <big> <small> <sub> <sup> <u>

Ihre E-Mailadresse wird nicht veröffentlicht. Mit dem Absenden anerkennen Sie die Datenschutzerklärung des Blogs.

nach oben