Configurar la función de seguridad de transporte estricta HTTP (HSTS)
La seguridad de transporte estricta de HTTP (HSTS) ayuda a proteger los sitios web contra diversos ataques, como la eliminación de SSL, el secuestro de cookie y la degradación del protocolo. Con HSTS, un servidor puede imponer el uso de una conexión HTTPS para todas las comunicaciones con un cliente. Es decir, solo se puede acceder al sitio mediante HTTPS.
Los dispositivos NetScaler admiten HSTS como una opción incorporada en los perfiles SSL y los servidores virtuales SSL. Se requiere soporte para HSTS para la certificación A+ de SSL Labs.
Habilite HSTS en un perfil front-end SSL o en un servidor virtual SSL. Si habilita los perfiles SSL, debe habilitar HSTS en un perfil SSL en lugar de habilitarlo en un servidor virtual SSL.
Especifique el tiempo (en segundos) durante el que un explorador web no debe aceptar conexiones no cifradas. Utilice el parámetro maxage
para especificar que el HSTS estará en vigor durante ese período para ese cliente. De forma predeterminada, el encabezado HSTS se aplica solo al dominio raíz. Puede especificar si se deben incluir los subdominios. Por ejemplo, puede especificar que solo se pueda acceder a los subdominios de www.example.com, como www.abc.example.com y www.xyx.example.com, mediante HTTPS estableciendo el parámetro IncludeSubdomains
en YES. Los subdominios deben admitir HTTPS. Sin embargo, no es necesario que cada uno de ellos tenga habilitado el HSTS.
Si accede a algún sitio web que admita HSTS, el encabezado de respuesta del servidor contiene una entrada similar a la siguiente:
El cliente almacena esta información durante el tiempo especificado en el parámetro max-age. Para solicitudes posteriores a ese sitio web, el cliente comprueba si hay una entrada HSTS en su memoria. Si se encuentra una entrada, solo accede a ese sitio web mediante HTTPS. Por ejemplo, si establece el parámetro maxage
en 31536000, el explorador web recordará utilizar únicamente HTTPS para acceder al dominio durante un año.
Puede configurar HSTS en el momento de crear un perfil SSL o un servidor virtual SSL mediante el comando add. También puede configurar HSTS en un perfil SSL o servidor virtual SSL existente modificándolo mediante el comando set.
Configurar HSTS mediante la CLI
En la línea de comandos, escriba:
add ssl vserver <vServerName> -maxage <positive_integer> -IncludeSubdomains ( YES | NO)
set ssl vserver <vServerName> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
O BIEN:
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-->
En los siguientes ejemplos, el cliente debe acceder al sitio web y sus subdominios durante 157 680 000 segundos solo mediante HTTPS.
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-->
Configurar HSTS mediante la GUI
- Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
- Seleccione un servidor virtual de tipo SSL y haga clic en Modificar.
Realice los siguientes pasos si el perfil SSL predeterminado está habilitado en el dispositivo.
-
Seleccione un perfil SSL y haga clic en Modificar.
-
En Configuración básica, haga clic en el icono del lápiz para modificar la configuración. Desplácese hacia abajo y seleccione HSTS e Incluir subdominios.
Realice los siguientes pasos si el perfil SSL predeterminado no está habilitado en el dispositivo.
-
En Configuración avanzada, seleccione Parámetros SSL.
-
Seleccione HSTS e Incluir subdominios.
Función de precarga de HSTS
Un encabezado HSTS protege la aplicación web al impedir que los exploradores web establezcan conexiones sin cifrar a un dominio. Sin embargo, si un usuario accede al sitio web por primera vez, el explorador web aún no ha visto el encabezado del HSTS. Un atacante podría apoderarse de la conexión antes de que el servidor web pueda decirle al explorador web que utilice HTTPS.
Para solucionar este problema, el dispositivo NetScaler admite agregar una precarga de HSTS en el encabezado de respuesta HTTP. Para incluir la precarga, debe establecer el parámetro preload
en el servidor virtual SSL o el perfil SSL en SÍ. A continuación, el dispositivo incluye la precarga en el encabezado de respuesta HTTP para el cliente. Puede configurar esta función mediante la CLI y la GUI. Para obtener más información sobre la precarga de HSTS, consulte https://hstspreload.org/.
Los siguientes son ejemplos de encabezados HSTS válidos con precarga:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
<!--NeedCopy-->
Strict-Transport-Security: max-age=63072000; preload
<!--NeedCopy-->
Configurar la precarga de HSTS mediante la CLI
En la línea de comandos, escriba:
add ssl vserver <vServerName> -maxage <positive_integer> -preload ( YES | NO )
set ssl vserver <vServerName> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
O BIEN:
add ssl profile <name> -maxage <positive_integer> -IncludeSubdomains ( YES | NO ) -preload ( YES | NO )
set ssl profile <name> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
Configurar la precarga de HSTS mediante la GUI
Realice los siguientes pasos si el perfil SSL predeterminado está habilitado en el dispositivo.
-
Vaya a Sistema > Perfiles > Perfiles SSL. Seleccione un perfil SSL y haga clic en Modificar.
-
En Configuración básica, haga clic en el icono del lápiz para modificar la configuración. Desplácese hacia abajo y seleccione HSTS y Precarga.
Realice los siguientes pasos si el perfil SSL predeterminado no está habilitado en el dispositivo.
- Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
-
Seleccione un servidor virtual de tipo SSL y haga clic en Modificar.
-
En Configuración avanzada, seleccione Parámetros SSL.
-
Seleccione HSTS y Precarga.
Caso de uso
El usuario 1 quiere visitar algunos sitios web de forma segura mediante un explorador web. El sitio exemple.com ofrece una experiencia de navegación segura a sus clientes.
El usuario 1 tiene una cuenta en exemple.com y realiza transacciones con regularidad a través de este sitio web. El usuario1 necesita transferir dinero a un amigo y accede a exemple.com escribiendo www.exemple.com en un explorador web. El explorador web convierte la URL en http://www.exemple.com. El explorador web detecta el nombre exemple.com y se comunica con el servidor DNS para obtener la dirección IP del servidor host. El explorador web contacta con la dirección IP mediante el puerto 80. El sitio web del banco redirige la solicitud a https://www.exemple.com. Se realiza un protocolo de enlace SSL que da como resultado el establecimiento de una conexión SSL. El candado de la URL cambia a verde y aparece bloqueado. El usuario 1 ahora puede introducir las credenciales para realizar una transacción.
Ejemplo de problema
Incluso si un sitio web activa HTTPS, es posible que un cliente intente conectarse a través de HTTP. El sitio web puede redirigir la solicitud a HTTPS, pero esta redirección no es segura porque un atacante puede capturar la información del usuario o redirigirlo a un sitio web falso. Por ejemplo, un intermediario puede interceptar la solicitud de resolución de exemple.com y enviar al usuario1 su propia dirección IP de servidor. Cuando se realiza una solicitud a esta dirección IP en el puerto 80, el intermediario puede redirigir al usuario1 a un sitio web con un nombre similar en el puerto 443. Por ejemplo: https://www.example.com (observe el ligero cambio de ortografía). Es posible que el usuario 1 no note la discrepancia (example.com en lugar de exemple.com) e introduzca las credenciales.
Solución
Realice los siguientes pasos en el dispositivo NetScaler para proteger su sitio web contra los ataques. En el símbolo del CLI, escriba:
add ssl profile sample-profile -maxage 63072000 -IncludeSubdomains YES -preload YES
set ssl profile sample-profile -HSTS ENABLED
<!--NeedCopy-->
Como el HSTS está habilitado, el dispositivo incluye la precarga en la respuesta HTTP al cliente. Además, el HSTS estará en vigor durante el tiempo especificado y también se incluyen los subdominios. Como resultado, solo se aceptan conexiones HTTPS de un cliente.