EN

Was ist HTTP Strict Transport Security (HSTS)?

HSTS ist eine der Maßnahmen, mit denen die Wahrscheinlichkeit verschiedener passiver und aktiver Angriffe, wie z. B. Man-in-the-Middle (MITM), verringert werden soll. Darüber hinaus dient es dazu, eine sicherere Verbindung zwischen Clients und Servern zu gewährleisten. Lesen Sie unten weiter.

Was ist HSTS?

HTTP Strict Transport Security (HSTS) ist eine Web-Sicherheitsrichtlinie, die sicherstellt, dass Browser sich immer über HTTPS mit Websites verbinden. Sie soll u. a. dafür sorgen, dass Benutzer nicht mehr von HTTP- auf HTTPS-Websites umgeleitet werden müssen und dass solche Umleitungen nicht mehr gesichert sind.

Erreicht wird dies durch den HSTS-Header, den der Server zu Beginn der Verbindung an den Client zurücksendet. Dieser Header teilt dem Browser mit, dass er nach dem ersten Besuch, den HSTS nicht abdeckt, nur noch über HTTPS mit der Website interagieren soll.

Der Strict-Transport-Security-Header verhindert auch, dass die Benutzer die Browserwarnungen über ungültige oder unsichere SSL/TLS-Zertifikate ignorieren.

Wie funktioniert HSTS?

Wenn Benutzer eine Website mit aktivierter HSTS-Richtlinie besuchen, stellen sie in der Regel zunächst eine HTTP-Anfrage an den Server. Je nach Einrichtung gelangen sie dann entweder zu einer HTTP-Version oder, in einem sichereren Szenario, werden vom Server über eine 301-, 302- oder 307-Weiterleitung zur HTTPS-Version der Website umgeleitet. Der Client verbindet sich dann erneut mit der HTTPS-Version der Website.

In diesem Stadium sendet der Server den HTTP Strict-Transport-Security Response Header über die HTTPS-Verbindung. Darüber hinaus enthält der Header verschiedene Parameter für die spätere Verbindung mit der Website. 

In seiner sichersten und empfohlenen Form weist der Header den Browser an, die HSTS-Richtlinie für eine bestimmte Zeit zu speichern, auch bekannt als Max-Age-Richtlinie. In der Regel beträgt dieser Zeitraum mindestens ein Jahr, wird aber in Sekunden angegeben (siehe Beispiel unten). Außerdem wird der Browser angewiesen, die Richtlinie als für alle Unterdomänen der Website geltend zu betrachten und die Website vorzuladen. So sieht der Header in dieser Form aus:

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

Von diesem Moment an werden keine HTTP-Verbindungen zur Website zugelassen. Versucht ein Benutzer, eine Seite oder einen anderen Inhalt über HTTP zu laden, muss der Browser stattdessen eine HTTPS-Anforderung versuchen. Ist dies nicht möglich, ist die Ressource nicht zugänglich, und der Verbindungsversuch wird abgebrochen. Wenn das Zertifikat des Servers nicht vertrauenswürdig ist, muss die Richtlinie außerdem verhindern, dass Benutzer auf die Website oder Anwendung zugreifen.

Der Preload-Parameter soll verhindern, dass beim erstmaligen Besuch der Website eine Sicherheitslücke entsteht. Websites, die mehrere Anforderungen erfüllen, können einen Antrag auf Aufnahme in die Preload-Liste eines Browsers stellen (siehe HSTS-Preload-Liste von Chrome). Wenn ein Browser in die Liste aufgenommen wird, lädt er die HTTPS-Version einer Website bereits beim ersten Zugriffsversuch eines Nutzers. 

Dieser Ansatz hat zwar seine Grenzen, da kaum alle Websites in die Preload-Listen aufgenommen werden können, ist aber eine Möglichkeit, die oben genannte Sicherheitslücke zu schließen.

HSTS-Sicherheitsbewertung

Security Assessment Increase TLS Key Size

CVSS-Vektor: AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N

Wie sicher ist HSTS?

Der HSTS-Header hilft, verschiedene Cyberangriffe zu verhindern. Dazu gehören SSL-Stripping – eine Form des Man-in-the-Middle-Angriffs (MITM), Versuche des Session-Hijacking (auch bekannt als Cookie-Hijacking oder Sidejacking) und verschiedene Downgrade-Angriffe. Dies ist insbesondere dann der Fall, wenn eine Website zu Vorladelisten hinzugefügt wird.

Bestimmte Einschränkungen und Schwachstellen bestehen jedoch auch, wenn die Preload-Option nicht verfügbar ist. Zum Beispiel ist die erste Anfrage an eine Website immer noch anfällig für einen Angriff, wenn ein unsicheres Protokoll verwendet wird, wie z. B. einfaches HTTP, selbst wenn eine Anfrage auf HTTPS umgeleitet wird. Es gibt nur wenige Umgehungsmöglichkeiten für dieses Problem. Eine Möglichkeit, dieses Problem zu lösen, ist die Verwendung von DNS-Einträgen, die die HSTS-Richtlinie deklarieren, und der sichere Zugriff auf diese Einträge über DNSSEC.

Der HSTS-Header kann unabhängig von seiner Einrichtung nicht verhindern, dass betrügerische Domänen verwendet werden, die Benutzer dazu verleiten, sie zu besuchen. Dies kann durch DNS-Spoofing, eine andere Art von MITM, oder durch Angreifer erreicht werden, die Domänennamen verwenden, die dem Domänennamen einer Website sehr ähnlich sind.

Schließlich kann HSTS auch Angriffe auf das TLS-Protokoll selbst nicht verhindern. Angriffe wie BEAST und CRIME zielen auf Schwachstellen ab, die in bestimmten Versionen oder Implementierungen von TLS enthalten sind, und werden von dieser Richtlinie nicht erfasst.

Präventionsleitfaden für SSL/TLS-Schwachstellen

Leitfaden

Erfahren Sie, wie Sie verschiedene Arten von SSL/TLS-Schwachstellen erkennen und verhindern können.

Mehr erfahren

Wie aktiviert man HSTS?

Nachfolgend finden Sie Beispiele für die Aktivierung von HSTS auf verschiedenen Plattformen. 

Es ist wichtig zu beachten, dass bei der Bereitstellung die HSTS-Richtlinie auf der Basisdomäne (manchmal auch Root-Domäne genannt, obwohl es einen Unterschied gibt) deklariert werden sollte. In unserem Fall wäre das https://crashtest-security.com/ anstelle von https://www.crashtest-security.com/

Um Subdomains abzudecken, sollte die Richtlinie includeSubDomains verwendet werden. Damit dies jedoch funktioniert, müssen alle mit der Basisdomain verbundenen Subdomains natürlich auch HTTPS unterstützen.

Verwenden Sie die folgenden Anleitungen, um den richtigen Header zu setzen und HSTS zu aktivieren.

Let’s Encrypt

Mit Let’s Encrypt ist es ganz einfach, HSTS zu aktivieren. Wenn Sie ein neues Zertifikat erstellen, fügen Sie einfach das Flag -HSTS hinzu. Wenn Ihre Zertifikate bereits von Let’s Encrypt erstellt wurden, führen Sie einfach denselben Befehl aus und wählen Sie als erste Option „Attempt to reinstall this existing certificate“. Dadurch wird Ihr Zertifikat wiederverwendet und die HSTS-Klammerung aktiviert.

certbot run -d [DOMAIN] --staple-ocsp --hsts

nginx

Bei Nginx müssen Sie Ihre SSL-Konfiguration aktualisieren, die sich normalerweise in /etc/nginx/nginx.conf, /etc/nginx/sited-enabled/yoursite.com (Ubuntu / Debian) oder /etc/nginx/conf.d/nginx.conf (RHEL / CentOS) befindet, um den richtigen Header mit den add_header-Direktiven einzufügen:

server {
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; ";
 
        listen   443;
        server_name example.org;
 
        root /usr/share/nginx/www;
        index index.html index.htm;
 
        ssl on;
        ssl_certificate /etc/nginx/ssl/example.org/server.crt;
        ssl_certificate_key /etc/nginx/ssl/example.org/server.key;
 
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/ssl/private/ca-certs.pem;
}

Strikte Transportsicherheit Apache

Bei Apache müssen Sie Ihre SSL-Konfiguration aktualisieren, damit sie die richtigen Header-Direktiven enthält. Fügen Sie dies der Konfiguration des virtuellen Hosts in /etc/apache2/sites-enabled/domain.conf oder /etc/httpd/sites-enabled/domain.conf hinzu:

<IfModule mod_ssl.c>
    SSLStaplingCache shmcb:/tmp/stapling_cache(128000)
    <VirtualHost *:443>
            Header always set Strict-Transport-Security "max-age=31536000"
 
            ServerAdmin webmaster@localhost
            ServerName example.com
            DocumentRoot /var/www
 
            SSLEngine on
 
            SSLCertificateFile /etc/apache2/ssl/example.com/apache.crt
            SSLCertificateKeyFile /etc/apache2/ssl/example.com/apache.key
 
            SSLCACertificateFile /etc/ssl/ca-certs.pem
            SSLUseStapling on
    </VirtualHost>
</IfModule>

FAQs

Was bedeutet HSTS?

HSTS steht für HTTP Strict Transport Security. Diese Web-Sicherheitsrichtlinie garantiert, dass Clients nur auf die HTTPS-Version einer Website zugreifen und nicht auf die HTTP-Version. Sie dient als Schutz gegen Man-in-the-Middle-Angriffe wie SSL-Stripping, Downgrade-Angriffe und mehr.

Bietet HSTS vollständige Sicherheit?

Nein, HSTS hat seine Grenzen. Wenn eine Website beispielsweise nicht in der Vorladeliste eines Browsers enthalten ist, sind die Benutzer beim ersten Besuch der Website immer noch anfällig für einen Angriff. HSTS kann auch nicht vor Angriffen auf das SSL/TLS-Protokoll schützen. Dennoch bietet HSTS eine sehr hohe Sicherheit und schränkt die Möglichkeit von Angriffen auf direkte HTTP-Verbindungen erheblich ein.

Get a quick security report for your website for free now

We are analyzing https://example.com
Scanning target https://example.com
Scan status: In progress
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Date: 30/11/2023
Crashtest Security Suite will be checking for:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Complete your scan request
Please fill in your details receive the
quick security audit by email.
Security specialist is analyzing your scan report.
То verify your identity please provide your phone/mobile:
Thank you.
We have received your request.
As soon as your security audit is ready, we will notify you.