HTTP Strict-Transport-Security

von Thomas Lange

Die IETF hat Ende 2012 mit HTTP-Strict-Transport-Security (RFC 6797) einen neuen Internetstandard verabschiedet, der Useragents mitteilen soll, dass die Kommunikation mit einer Webseite nur über verschlüsselte und zertifizierte TLS-Verbindungen abgewickelt werden soll. Damit soll verhindert werden, dass der Benutzer beim ersten Verbindungsaufbau zur unverschlüsselten Version von einem Man-In-The-Middle attackiert werden kann, der die Weiterleitung zur verschlüsselten HTTPS-Version verhindert und somit die Verbindung manipulieren kann. Der Benutzer tippt nämlich in der Regel nur den Domainnamen ohne Protokoll in die Adressleiste seines Browsers und ist somit über die erste unverschlüsselte Verbindung angreifbar.

Wenn ein Webseitenbetreiber den Useragents mitteilen möchte, dass diese nur noch verschlüsselte und beglaubigte Verbindungen zur Webseite aufbauen sollen, dann setzt dieser im HTTP Response-Header der verschlüsselten Version den HSTS-Header mit einer Ablaufzeit, der dann vom Useragent zwischengespeichert wird. Wenn der Benutzer nun das nächste mal den Domainnamen ohne Protokoll in die Adressleiste seines Browser eingibt (oder einem Link auf einer Webseite folgt der auf die unverschlüsselte Version zeigt) dann baut der Useragent sofort eine verschlüsselte Verbindung zur Webseite auf.

Um den HSTS-Header in der Apache-Konfiguration eines VirtualHosts setzen zu können wird das aktivierte Modul mod_headers benötigt. Danach kann man in Apache-Konfigurationen folgendermaßen den HSTS-Header setzen:

Header always set Strict-Transport-Security "max-age=15552000"
Der Verfasser

Hi. Mein Name ist Thomas und ich bin nicht gut im Schreiben von Vorstellungen. Ich mag die IT und liebe es mit GNU\Linux zu arbeiten. Auf diesem Blog gibt es Beiträge über die verschiedensten Dinge, die mich beschäftigen oder interessieren (dieses Blogsystem ist eine Eigenentwicklung). Deine Fragen, Ergänzungen und Korrekturen zu Inhalten kannst du mir gerne per Mail mitteilen. 😊