Perú

Lima,Perú

Seguridad Web: Protocolo de cifrado HSTS

Fecha Publicación:       28 de Febrero de 2021
Fecha Modificación:       07 de Marzo de 2021

 

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.

Precarga de HSTS

HSTS (HTTP Strict Transport Security) es un mecanismo mediante el cual un servidor puede indicar que el navegador debe utilizar una conexión segura cuando se comunica con él. Puede ser una herramienta eficaz para proteger la privacidad y seguridad de los usuarios y sus datos.

Sin embargo, cuando se conecta a un host HSTS por primera vez, el navegador no sabrá si usar o no una conexión segura, porque nunca ha recibido un encabezado HSTS de ese hostEn consecuencia, un atacante de red activo podría evitar que el navegador se conecte de forma segura (y lo que es peor, es posible que el usuario nunca se dé cuenta de que algo anda mal). Para mitigar este ataque, Muchos navegadores (Firefox , Chrome ,etc ) han implementado una lista de hosts que quieren que se aplique HSTS de forma predeterminada.

Para incluirlo en la lista deve usar el Formulario para enviar dominios para su inclusión en la lista de PRECARGA HSTS, Cuando un usuario se conecta a uno de estos hosts por primera vez, el navegador sabrá que debe usar una conexión segura. Si un atacante de la red impide las conexiones seguras al servidor, el navegador no intentará conectarse a través de un protocolo inseguro, manteniendo así la seguridad del usuario.

En resumen, HSTS en combinación con una lista de sitios precargada puede ser una gran herramienta para aumentar la seguridad de los usuarios, pero se debe tener cuidado con la directiva includeSubdomains. Esta función se encuentra actualmente en Firefox Beta , así que descargue una compilación reciente y pruébela.

Fuente: https://blog.mozilla.org/security/2012/11/01/preloading-hsts/ 

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).

Configuración archivo .htaccess para la precargar HSTS

Recuerda tu archivo .htaccess deves respetar el orden para que no tengas problemas  para enviar dominios para su inclusión en la lista de PRECARGA HSTS

RewriteOptions inherit
RewriteEngine On

#Recuerda respeta el orden para que no tengas problemas con 
# 1) diferentes, ahora cuando el cliente dijite sin wwww google asumira con wwww

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.unidadvirtual\.com [NC]
RewriteRule ^(.*)$ https://www.unidadvirtual.com [L,R=301]


# 2)------------Inicio paso para mover un sitio a HTTPS---------------

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST} [L,R=301] 
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
#Fin paso para mover un sitio a HTTPS

Requerimientos: 

Si un sitio envía la directiva preload en un encabezado HSTS, se considera que solicita la inclusión en la lista de precarga.

Para ser aceptado en la lista de precarga de HSTS , su sitio debe cumplir con el siguiente conjunto de requisitos:

  • Entregue un certificado válido.
  • Redirija de HTTP a HTTPS en el mismo host, si está escuchando en el puerto 80.
  • Sirve todos los subdominios a través de HTTPS
    • En particular, debe admitir HTTPS para el www subdominio si existe un registro DNS para ese subdominio.
  • Sirva un encabezado HSTS en el dominio base para solicitudes HTTPS:
    • El max-agedebe ser al menos 31536000segundos (1 año).
    • La directiva includeSubdomains debe ser especificado.
    • La preloaddirectiva debe ser especificado.
    • Si está proporcionando un redireccionamiento adicional desde su sitio HTTPS, ese redireccionamiento aún debe tener el encabezado HSTS (en lugar de la página a la que redirige).

Recomendaciones de implementación

Si su sitio está comprometido con HTTPS y desea precargar HSTS, le sugerimos los siguientes pasos:

  • Examine todos los subdominios (y subdominios anidados) de su sitio y asegúrese de que funcionen correctamente en HTTPS.
  • Agregue el encabezado Strict-Transport-Security a todas las respuestas HTTPS y aumente el nivel max-age en etapas, utilizando los siguientes valores de encabezado:
    • 5 minutos:
      max-age=300; includeSubDomains
    • 1 semana:
      max-age=604800; includeSubDomains
    • 1 mes:
      max-age=2592000; includeSubDomains
  • Durante cada etapa, compruebe si hay páginas rotas y supervise las métricas de su sitio (por ejemplo, tráfico, ingresos). Solucione cualquier problema que surja y luego espere max-age el escenario completo antes de continuar. Por ejemplo, espere un mes en la última etapa.
  • Una vez que esté seguro de que no habrá más problemas, aumente max-age a 2 años y envíe su sitio a la lista de precarga:
    • 2 años, solicitando precarga:
      max-age=63072000; includeSubDomains; preload

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

Implementación HSTS

Implementación HSTS conPHP

// 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();
}

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

Verificar el Encabezado HSTS

Existen unas maneras fáciles de revisar si HSTS está funcionando en su sitio WordPress. Se puede lanzar Google Chrome Devtools, pulse la pestaña  "Network" y vea la pestaña encabezados. 

También se puede escanear su sitio web con una herramienta online gratuita securityheaders.io que le hará saber si el encabezado de seguridad de transporte estricta se está aplicando o no.

Dudas y/o consultas

Si tiene preguntas o solicitudes , puede enviar un correo electrónico aquí utilizando una línea de asunto adecuada y uno de los encargados de la lista de precarga se comunicará pronto.

Eludir la seguridad de transporte estricta de HTTP

Leidas : 274 Veces
Compartir: