Seguridad Web: Protocolo de cifrado HSTS

Fecha Publicación:       28 de Febrero de 2021
Fecha Modificación:       01 de Abril de 2023

 

Google implementó de manera formal una política de seguridad llamada HTTP Strict Transport Security (HSTS). Poco después, redes sociales de gran prestigio (Facebook, Twitter, Gmail…) y portales de pago como PayPal, incorporaron HSTS al SSL de sus plataformas. Con esta acción, las empresas multimillonarias enviaban un mensaje al mundo acerca de la importancia de integrar HSTS a un certificado de seguridad.

¿Qué es HSTS?

HTTP Strict Transport Security (HSTS)Se trata de una política de seguridad que le permite a los diferentes sitios web denominarse como un espacio navegable mediante conexiones seguras (HTTPS). El estándar HSTS protege tanto a portales web como a usuarios ante una posible degradación del protocolo y de ataques cibernéticos para secuestrar cookies.

Por consiguiente, si una página web implementa una política HSTS, el navegador automáticamente deberá denegar las conexiones HTTP e impedir que los usuarios aprueben certificados SSL inseguros.

En resumidas palabras; el objetivo de esta política de seguridad es evitar ataques de intermediarios que utilizan SSL.

Hoy día se puede integrar HSTS a un certificado de seguridad sin problemas porque es compatible con casi todos los navegadores que conocemos.

Para obtener más detalles sobre HSTS, consulte RFC 6797 . A continuación, se muestra un ejemplo de un encabezado HSTS válido:

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

NOTA: Recuerda que el encabezado HSTS sólo se debe enviar cuando se usa una conexión segura (HTTPS) y no cuando se utiliza HTTP.

 →  Ir tutorial implementar Certificados SSL gratis

¿Por qué deberías implementar HSTS en el sitio web de tu empresa?

Supongamos que tienes una tienda física, como propietario o encargado del negocio, estamos seguros que nunca cerrarás las puertas de la tienda sin ponerle candado a las puertas. De hecho, no sería extraño que también coloques detectores de metales en la entrada para evitar que entren visitantes con intenciones de llevarse tus productos.

En este sentido, los datos de tus sitios web son tan valiosos como los productos de tu tienda física, de manera que es muy importante mantenerlos seguros bajo candado.

¿Quieres saber la verdad? Bloquear la página web de tu empresa a veces no es suficiente porque hay quienes encuentran la forma de acceder al sitio mediante http: //. En este caso, HSTS exige de manera obligatoria a los visitantes y a las conexiones de aplicaciones usar HTTPS.

Por lo tanto, al  integrar HSTS a un certificado de seguridad o tener instalado un encabezado Strict-Transport-Security en tu navegador, hará que sea prácticamente imposible que los usuarios con aspiraciones de robar los datos de tu sitio web recopilen información.

Implementación HSTS

 → Concepto e implementación en wikipedia Seguridad de transporte estricta HTTP

Implementación HSTS con htaccess

Para este paso necesitas acceso al servidor web mediante FTP o el administrador de archivos de tu hosting, ya que requiere editar el archivo htaccess de tu web.

Una vez edites el archivo puedes agregar los encabezados de seguridad HTTP con el siguiente código:

<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
Header set X-Frame-Options DENY
Header set Referrer-Policy: no-referrer-when-downgrade
</ifModule>

Implementación HSTS con PHP

// Use HTTP Strict Transport Security to force client to use secure connections only
$use_sts = true;

// iis sets HTTPS to 'off' for non-SSL requests
if ($use_sts && isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
    header('Strict-Transport-Security: max-age=10886400; includeSubDomains; preload');
} elseif ($use_sts) {
    header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true, 301);
    // we are in cleartext at the moment, prevent further execution and output
    die();
}

Comprobar encabezados HSTS de tu web

Existen varias herramientas online para chequear este aspecto.

 → En este caso utilizaré la herramienta gratuita de Security Headers para comprobar mediante la URL de la web que efectivamente están bien configurados los encabezados de seguridad, prestando especial atención a si aparece verificado “Strict-Transport-Security” como puedes ver a continuación.

Formulario para enviar dominios para su inclusión en la lista de PRECARGA HSTS

Enviar su sitio a hstspreload.org para asegurarse de que esté precargado correctamente (es decir, para obtener la protección completa de la configuración deseada).

NOTA : si tiene problemas con el formulario de PRECARGA HSTS   puede incluir la directiva  (includeSubdomains y preload)

Implementación HSTS con htaccess agregando directiva  (includeSubdomains y preload)

<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000; includeSubdomains;preload" env=HTTPS
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
Header set X-Frame-Options DENY
Header set Referrer-Policy: no-referrer-when-downgrade
</ifModule>

Consulte las pautas de seguridad web de Mozilla y las páginas de Google Web Fundamentals sobre seguridad para obtener consejos más concretos sobre la implementación de HTTPS.

Formulario de Eliminación

 Ir a Formulario de Eliminación HSTS 

Desactivar HSTS para WordPress

Se puede añadir, por ejemplo, esta directiva en el archivo functions.php de su tema:

add_action( 'send_headers', 'add_header_xua' );
function add_header_xua() {
header( 'Strict-Transport-Security: max-age=0;' );
}

Borrar el caché HSTS en tu navegador

  1. En Chrome, teclear chrome://net-internals/#hsts
  2. Introducir el nombre de dominio en el campo texto de la sección "Delete domain security policies"
  3. Hacer clic en el botón Delete
  4. Introducir el nombre de dominio en el campo texto de la sección "Query HSTS"
  5. Hacer clic en el botón Query
  6. La respuesta debe ser "Not found" (no encontrado)
  7. Con Safari, comenzar por cerrar el navegador
  8. Borrar el archivo ~/Library/Cookies/HSTS.plist
  9. Volver a abrir Safari
  10. Con Firefox, cierra todas las pestañas
  11. Abrir el menú de Firefox y hacer clic en Historial / Mostrar el Historial.
  12. Buscar la página de la que quieres eliminar las preferencias HSTS
  13. Efectuar un clic derecho en una de las entradas que le corresponden
  14. Seleccionar Olvidar este sitio
Articulo : 2708 - Veces Leidas
Compartir Articulo: