Unterstützung für strikte HTTP-Transportsicherheit (HSTS) konfigurieren
HTTP Strict Transport Security (HSTS) schützt Websites vor verschiedenen Angriffen wie SSL-Stripping, Cookie-Hijacking und Protokoll-Downgrade. Mit HSTS kann ein Server die Verwendung einer HTTPS-Verbindung für die gesamte Kommunikation mit einem Client erzwingen. Das heißt, auf die Site kann nur mit HTTPS zugegriffen werden.
NetScaler-Appliances unterstützen HSTS als integrierte Option in SSL-Profilen und virtuellen SSL-Servern. Für die A+-Zertifizierung von SSL Labs ist Unterstützung für HSTS erforderlich.
Aktivieren Sie HSTS in einem SSL-Frontend-Profil oder auf einem virtuellen SSL-Server. Wenn Sie SSL-Profile aktivieren, müssen Sie HSTS für ein SSL-Profil aktivieren, anstatt es auf einem virtuellen SSL-Server zu aktivieren.
Geben Sie die Zeit (in Sekunden) an, für die ein Browser keine unverschlüsselten Verbindungen akzeptieren darf. Verwenden Sie den Parameter maxage
, um anzugeben, dass HSTS für diesen Client für diese Dauer in Kraft ist. Standardmäßig gilt der HSTS-Header nur für die Stammdomäne. Sie können angeben, ob Unterdomänen enthalten sein müssen. Sie können beispielsweise angeben, dass auf Unterdomänen für www.example.com, wie www.abc.example.com und www.xyx.example.com, nur über HTTPS zugegriffen werden kann, indem Sie den Parameter IncludeSubdomains
auf YES setzen. Die Unterdomänen müssen HTTPS unterstützen. HSTS muss jedoch nicht jeweils aktiviert sein.
Wenn Sie auf Websites zugreifen, die HSTS unterstützen, enthält der Antwort-Header des Servers einen Eintrag ähnlich dem folgenden:
Der Client speichert diese Informationen für die im Parameter max-age angegebene Zeit. Bei nachfolgenden Anfragen an diese Website überprüft der Client seinen Speicher auf einen HSTS-Eintrag. Wenn ein Eintrag gefunden wird, greift er nur über HTTPS auf diese Website zu. Wenn Sie den Parameter maxage
beispielsweise auf 31536000 setzen, erinnert sich der Browser ein Jahr lang daran, nur HTTPS für den Zugriff auf die Domäne zu verwenden.
Sie können HSTS zum Zeitpunkt der Erstellung eines SSL-Profils oder eines virtuellen SSL-Servers mithilfe des Befehls add konfigurieren. Sie können HSTS auch auf einem vorhandenen SSL-Profil oder einem virtuellen SSL-Server konfigurieren, indem Sie es mit dem Befehl set ändern.
Konfigurieren Sie HSTS mit der CLI
Geben Sie in der Befehlszeile Folgendes ein:
add ssl vserver <vServerName> -maxage <positive_integer> -IncludeSubdomains ( YES | NO)
set ssl vserver <vServerName> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
ODER
add ssl profile <name> -maxage <positive_integer> -IncludeSubdomains ( YES | NO )
set ssl profile <name> -HSTS ( ENABLED | DISABLED )
Arguments
HSTS
State of HTTP Strict Transport Security (HSTS) on an SSL virtual server or SSL profile. Using HSTS, a server can enforce the use of an HTTPS connection for all communication with a client.
Possible values: ENABLED, DISABLED
Default: DISABLED
maxage
Set the maximum time, in seconds, in the strict transport security (STS) header during which the client must send only HTTPS requests to the server.
Default: 0
Minimum: 0
Maximum: 4294967294
IncludeSubdomains
Enable HSTS for subdomains. If set to Yes, a client must send only HTTPS requests for subdomains.
Possible values: YES, NO
Default: NO
<!--NeedCopy-->
In den folgenden Beispielen muss der Client nur 157.680.000 Sekunden lang auf die Website und ihre Unterdomänen zugreifen, indem er HTTPS verwendet.
add ssl vserver VS-SSL –maxage 157680000 –IncludeSubdomain YES
set ssl vserver VS-SSL –HSTS ENABLED
<!--NeedCopy-->
add sslProfile hstsprofile –maxage 157680000 –IncludeSubdomain YES
set sslProfile hstsprofile –HSTS ENABLED
<!--NeedCopy-->
Konfiguration von HSTS über die GUI
- Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
- Wählen Sie einen virtuellen Server vom Typ SSL aus und klicken Sie auf Bearbeiten.
Führen Sie die folgenden Schritte aus, wenn das Standard-SSL-Profil auf der Appliance aktiviert ist.
-
Wählen Sie ein SSL-Profil aus und klicken Sie auf Bearbeiten.
-
Klicken Sie in den Grundeinstellungenauf das Stiftsymbol, um die Einstellungen zu bearbeiten. Scrollen Sie nach unten und wählen Sie HSTS und Unterdomänen einschließen.
Führen Sie die folgenden Schritte aus, wenn das Standard-SSL-Profil auf der Appliance nicht aktiviert ist.
-
Wählen Sie in den erweiterten EinstellungenSSL-Parameteraus.
-
Wählen Sie HSTS und Unterdomänen einschließen aus.
Unterstützung für HSTS-Preload
Ein HSTS-Header schützt die Webanwendung, indem er verhindert, dass Browser unverschlüsselte Verbindungen zu einer Domäne herstellen. Wenn ein Benutzer jedoch zum ersten Mal auf die Website zugreift, hat der Browser den HSTS-Header noch nicht gesehen. Ein Angreifer könnte die Verbindung übernehmen, bevor der Webserver den Browser anweisen kann, HTTPS zu verwenden.
Um dieses Problem zu beheben, unterstützt die NetScaler Appliance das Hinzufügen eines HSTS-Preloads im HTTP-Antwortheader. Um die Vorabladung einzubeziehen, müssen Sie den Parameter preload
im virtuellen SSL-Server oder im SSL-Profil auf YES setzen. Die Appliance schließt dann die Vorlast in den HTTP-Antwort-Header für den Client ein. Sie können diese Funktion sowohl mit der CLI als auch mit der GUI konfigurieren. Weitere Hinweise zum HSTS-Vorladen finden Sie unter https://hstspreload.org/.
Im Folgenden finden Sie Beispiele für gültige HSTS-Header mit Preload:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
<!--NeedCopy-->
Strict-Transport-Security: max-age=63072000; preload
<!--NeedCopy-->
Konfigurieren der HSTS-Vorlast über die CLI
Geben Sie in der Befehlszeile Folgendes ein:
add ssl vserver <vServerName> -maxage <positive_integer> -preload ( YES | NO )
set ssl vserver <vServerName> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
ODER
add ssl profile <name> -maxage <positive_integer> -IncludeSubdomains ( YES | NO ) -preload ( YES | NO )
set ssl profile <name> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
Konfigurieren der HSTS-Vorlast über die GUI
Führen Sie die folgenden Schritte aus, wenn das Standard-SSL-Profil auf der Appliance aktiviert ist.
-
Navigieren Sie zu System > Profile > SSL-Profile. Wählen Sie ein SSL-Profil aus und klicken Sie auf Bearbeiten.
-
Klicken Sie in den Grundeinstellungenauf das Stiftsymbol, um die Einstellungen zu bearbeiten. Scrollen Sie nach unten und wählen Sie HSTS und Preload.
Führen Sie die folgenden Schritte aus, wenn das Standard-SSL-Profil auf der Appliance nicht aktiviert ist.
- Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
-
Wählen Sie einen virtuellen Server vom Typ SSL aus und klicken Sie auf Bearbeiten.
-
Wählen Sie in den erweiterten EinstellungenSSL-Parameteraus.
-
Wählen Sie HSTS und Preloadaus.
Anwendungsfall
User1 möchte einige Websites sicher mit einem Webbrowser besuchen. Die Website exemple.com bietet ihren Kunden ein sicheres Surferlebnis.
User1 hat ein Konto bei exemple.com und tätigt regelmäßig Transaktionen über diese Website. User1 muss Geld an einen Freund überweisen und greift auf exemple.com zu, indem er www.exemple.com in einem Webbrowser eingibt. Der Browser konvertiert die URL in http://www.exemple.com. Der Browser erkennt den Namen exemple.com und kommuniziert mit dem DNS-Server, um die IP-Adresse für den Hostserver abzurufen. Der Browser kontaktiert die IP-Adresse über Port 80. Die Bank-Website leitet die Anfrage weiter an https://www.exemple.com. Ein SSL-Handshake wird ausgeführt, der zum Aufbau einer SSL-Verbindung führt. Das Vorhängeschloss in der URL wird grün und wird als gesperrt angezeigt. User1 kann jetzt die Anmeldeinformationen eingeben, um eine Transaktion durchzuführen.
Problemszenario
Selbst wenn eine Website HTTPS aktiviert, versucht ein Client möglicherweise immer noch, eine Verbindung über HTTP herzustellen. Die Website kann die Anfrage an HTTPS umleiten, aber diese Umleitung ist unsicher, da ein Angreifer die Benutzerinformationen abfangen oder den Benutzer auf eine gefälschte Website umleiten kann. Ein Man-in-the-Middle kann beispielsweise die Auflösungsanfrage für exemple.com abfangen und User1 seine eigene Server-IP-Adresse senden. Wenn eine Anfrage an diese IP-Adresse auf Port 80 gestellt wird, kann der Man-in-the-Middle User1 auf eine ähnlich benannte Website auf Port 443 umleiten, z. B. https://www.example.com (beachten Sie die geringfügige Änderung der Schreibweise). User1 bemerkt die Diskrepanz möglicherweise nicht (example.com statt exemple.com) und gibt die Anmeldeinformationen ein.
Lösung
Führen Sie die folgenden Schritte auf der NetScaler Appliance aus, um Ihre Website vor Angriffen zu schützen. Geben Sie an der CLI-Eingabeaufforderung Folgendes ein:
add ssl profile sample-profile -maxage 63072000 -IncludeSubdomains YES -preload YES
set ssl profile sample-profile -HSTS ENABLED
<!--NeedCopy-->
Da HSTS aktiviert ist, nimmt die Appliance den Preload in die HTTP-Antwort an den Client auf. Außerdem ist HSTS für die angegebene Dauer in Kraft und Unterdomänen sind ebenfalls enthalten. Daher werden nur HTTPS-Verbindungen von einem Client akzeptiert.