HSTS - HTTP Strict Transport Security

Immer mehr Webseiten werden aus Gründen des Datenschutzes über HTTPS ausgeliefert. Allerdings kann dabei ein Angreifer über eine man-in-the-middle attack dem Anwender die selbe Seite auch via HTTP weiterleiten. Der Browser des Anwenders hat ohne HTTPS keine Möglichkeit, die Echtheit der Seite zu überprüfen. Alle Daten würden in der Folge bis zum Angreifer unverschlüsselt übertragen.
Um dieses Szenario zu verhindern, bietet sich der Einsatz des Protokolls HSTS an. Das Protokoll hinterlässt beim ersten Aufruf einer Webseite via HTTPS einen Eintrag im Browser des Anwenders, wie lange er mindestens auf eine Auslieferung via HTTPS statt HTTP bestehen sollte. Dazu muss man dem Webserver lediglich anweisen, einen zusätzlichen Header auszuliefern:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Der Wert von einem Jahr (31536000 Sekunden) für die Dauer eines Eintrages im Browser entspricht der allgemein üblichen Empfehlung.

Unter Apache, kann man diesen Header über die Anweisung

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

an beliebiger Stelle konfigurieren. Wir würden dafür jedoch den Kontext "virtual host" empfehlen, um den Überblick zu behalten. Falls nicht bereits geschehen, muss dazu noch das Modul "mod_headers" mit dem Kommando

a2enmod headers

eingeschaltet werden. Anschließend sollte man jedoch darauf achten, dass die Webseiten auf jeden Fall dauerhaft über HTTPS ausgeliefert werden können, da es keine Möglichkeit gibt einen einmal erzeugten Eintrag im Browser eines Anwenders vom Webserver aus wieder zurückzusetzen!