Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hsts [2013/06/28 08:31] – [Header-Syntax] bushhsts [2013/06/28 09:38] (aktuell) bush
Zeile 6: Zeile 6:
  
 **Der HSTS-Schutz ist nur dann erforderlich, wenn Webseiten, die eigentlich eine sichere Verbindung erfordern, beim ersten Aufruf mit einer unsicheren Verbindung gerufen werden. Das hat mit auch mit Unwissenheit oder Gleichgültigkeit auf der Nutzer-Seite zu tun.** **Der HSTS-Schutz ist nur dann erforderlich, wenn Webseiten, die eigentlich eine sichere Verbindung erfordern, beim ersten Aufruf mit einer unsicheren Verbindung gerufen werden. Das hat mit auch mit Unwissenheit oder Gleichgültigkeit auf der Nutzer-Seite zu tun.**
 +
 +**Dieser Artikel richtet sich primär an Webserver-Administratoren. Am Ende der Seite werden aber auch für die Nutzer auf der Webclient-Seite einige Tipps für die grundsätzliche Verbesserung der Sicherheit bei Web-Verbindungen gegeben.** 
 +
  
 \\ \\
Zeile 50: Zeile 53:
 <code>strict-transport-security max-age=xxx;includeSubDomains</code> <code>strict-transport-security max-age=xxx;includeSubDomains</code>
  
-Die Gültigkeitsdauer "max-age" sollte sehr groß gewählt werden, möglichst ein Jahr (31536000) oder länger.+Die Gültigkeitsdauer "max-age" sollte sehr groß gewählt werden, möglichst ein Jahr (31536000) oder länger.\\ 
 +Mit dem zusätzlichen Parameter "includeSubDomains" schließt man auch alle Subdomains mit ein.
  
 Ein Original-Header sieht dann z.B. so aus: Ein Original-Header sieht dann z.B. so aus:
Zeile 57: Zeile 61:
 Date                       Fri, 28 Jun 2013 06:10:04 GMT Date                       Fri, 28 Jun 2013 06:10:04 GMT
 Server                     Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/0.9.8t mod_jk/1.2.23 Server                     Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/0.9.8t mod_jk/1.2.23
-Strict-Transport-Security  max-age=31622400+Strict-Transport-Security  max-age=31622400;includeSubDomains
 Last-Modified              Thu, 01 Jan 1970 00:00:00 GMT Last-Modified              Thu, 01 Jan 1970 00:00:00 GMT
 Keep-Alive                 timeout=5, max=100 Keep-Alive                 timeout=5, max=100
Zeile 72: Zeile 76:
   LoadModule headers_module modules/mod_headers.so   LoadModule headers_module modules/mod_headers.so
 2. Der Host muss in extra/httpd-ssl.conf die Header-Anweisung erhalten: 2. Der Host muss in extra/httpd-ssl.conf die Header-Anweisung erhalten:
-  Header always set Strict-Transport-Security "max-age=31536000;includeSubdomains"+<code> 
 +<VirtualHost _default_:443>
  
 +#   SSL Engine Switch:
 +#   Enable/Disable SSL for this virtual host.
 +SSLEngine on
 +
 +# HSTS Headerfür 366 Tage incl. Subdomains
 +Header always set Strict-Transport-Security "max-age=31622400;includeSubDomains"
 +
 +...
 +
 +</VirtualHost>                                  
 +</code>
  
 \\ \\
 +===== Geht's noch sicherer? =====
 +
 +Antwort: Auf jeden Fall!
 +
 +Das vorliegende Verfahren HSTS (darauf wurde oben schon hingewiesen) ist ja darauf angelegt, beim Aufruf einer Webseite dem Webclient mitzuteilen, dass diese Verbindung in Zukunft immer mit HTTPS herzustellen ist, auch wenn der Benutzer nur die unsichere Variante HTTP wählt.
 +
 +Damit ist sofort klar, dass der erste (unsichere!) Verbindungsaufbau von einem Man-in-the-Middle (MitM) abgefangen werden kann. In diesem Fall ist HSTS machtlos, denn der MitM wird die HSTS-Anweisung **garantiert nicht** an den Webclient weiterreichen.
 +
 +Deshalb hier einige Tipps für die Nutzer:
 +  * Achten Sie darauf, dass Sie sensible Verbindungen - dazu gehören grundsätzlich solche, bei denen ein Login erforderlich ist - von vornherein mit HTTPS aufrufen.
 +  * Achten Sie auf das Vorhängeschloss im Adressfeld. Es signalisiert eine verschlüsselte Verbindung.
 +  * Verwenden Sie im sensiblen Umfeld Browser, die HSTS unterstützen. Das Whitepaper in den Quellenangaben [1] am Ende der Seite enthält eine Liste der HSTS-fähigen Browser.
 +  * Nutzen Sie - falls möglich - Browser-AddOns, die sichere Verbindungen erzwingen können. Damit entfällt die problematische Phase des ersten unsicheren Aufrufs, bevor HSTS greift (s. nächstes Kapitel!).
 +
 +\\
 +===== Das Firefox-AddOn "NoScript" =====
 +
 +Das Firefox-AddOn "NoScript" ist primär dazu gedacht, den Nutzer vor unerwünschtem JavaScript zu schützen. Es ist aber auch noch auf einigen weiteren Gebieten der Web-Sicherheit aktiv, z.B. gegen Cross-Site Scripting (CSS) und kann eben auch HSTS gewissermaßen überflüssig machen, indem man an einer bestimmten Stelle Webadressen einträgt, zu denen eine HTTPS-Verbindung erzwungen werden muss.
 +
 +Die zum vorliegenden Thema passende Konfigurationsseite sieht so aus:
 +
 +{{:bilder-netzsicherheit:hsts:noscript.jpg|}}
 +
 +
 +Die Herstellerseite: **http://noscript.net/**
 +
 +
 +Diese Software ist sogar eine Spende wert!
 +
 +
 +
 +
 +\\
 +
 ===== Quellen ===== ===== Quellen =====
  
-https://www.zendas.de/themen/server/hsts_header.html\\ +Zu empfehlen:\\ 
-http://www.securenet.de/fileadmin/papers/HTTP_Strict_Transport_Security_HSTS_Whitepaper.pdf\\ +[1] http://www.securenet.de/fileadmin/papers/HTTP_Strict_Transport_Security_HSTS_Whitepaper.pdf\\ \\ 
-http://blog.securenet.de/2012/11/02/ssl-stripping-die-ignorierte-gefahr/\\ +[2] http://blog.securenet.de/2012/11/02/ssl-stripping-die-ignorierte-gefahr/\\ 
-http://www.securenet.de/fileadmin/papers/HTTP_Strict_Transport_Security_HSTS_Verbreitung.pdf\\ +[3] http://www.securenet.de/fileadmin/papers/HTTP_Strict_Transport_Security_HSTS_Verbreitung.pdf\\ 
-https://www.owasp.org/index.php/HTTP_Strict_Transport_Security\\+[4] https://www.owasp.org/index.php/HTTP_Strict_Transport_Security\\ 
 +[5] https://www.zendas.de/themen/server/hsts_header.html\\
  
  
QR-Code
QR-Code HTTP Strict Transport Security (HSTS) (erstellt für aktuelle Seite)