HSTS – ¿Qué es y Cómo Utilizarlo en tu Sitio Web?

Categorias: Certificados SSL

HSTS - ¿Qué es y Cómo Utilizarlo en tu Sitio Web?

HSTS son las siglas de HTTP Strict-Transport-Security y se trata de una capa extra de seguridad para cualquier website que quiera utilizarlo. Está ligado si o si a un certificado de seguridad SSL. Te explicamos cómo funciona y la forma de implementarlo en tu web.

Si tienes un sitio web, ya te habrás dado cuenta que en los últimos años la seguridad es cada vez más importante.

Desde 2018 los navegadores web muestran como «no seguras» las webs que no tengan instalado un certificado de seguridad SSL, algo que por cierto, Hostinet ofrece de manera gratuita en todos sus alojamientos web.

El certificado SSL no es otra cosa que un método de cifrado y se utiliza para cifrar el contenido que se envía desde un ordenador o cualquier otro dispositivo, al servidor y viceversa.

Esto significa, por ejemplo, que cuando ponemos nuestro usuario y contraseña para acceder a una web, si hay «alguien escuchando» no verá nuestros datos privados porque estarán cifrados, sólo verá un montón de letras, números y símbolos sin sentido.

El problema es que algunos sitios web, aunque tengan el certificado SSL activado y configurado, se sigue teniendo acceso al sitio seguro y cifrado y al sitio seguro y no cifrado:

http://midominio.info (No Crifrado)
https://midominio.info (Cifrado y seguro)

 

Para solucionar esto sólo hay que hacer una redirección en el sitio web, para que todo aquel que acceda por http://… sea redirigido hacia el sitio seguro https://….

Pero esta redirección puede ser utilizada por un atacante para intentar engañar al usuario en lo que se conoce como un ataque de Man in the Middle, que significa, literalmente «Hombre en el Medio».

El ejemplo más típico es el de la cafetería o sitio público con Wifi gratis. Tu llegas con tu teléfono y se conecta al Wifi gratis de la cafetería, pero en realidad se ha conectado a un acceso creado por un hacker que hace de «proveedor wifi».

Así que cuando te conectas a un sitio web la información pasa antes por el equipo de hacker que se encargará de que la conexión no sea cifrada (http://…), por supuesto, para poder recopilar los datos sin cifrar, aunque te redirija hacia la web que tu hayas elegido.

Para evitar estos problemas, existe la política de seguridad HSTS. Veamos cómo funciona y cómo


Hosting Genérico


Qué es HSTS y Para Qué Sirve

Como hemos comentado antes, HSTS son las siglas de «HTTP Strict Transport Security» y su función, básicamente, es muy sencilla.

En pocas palabras se trata de un rechazar cualquier conexión al servidor que no sea https://…, es decir, que o se conecta a través del certificado SSL/TLS o la conexión es denegada por el servidor.

De esta forma, aunque un hacker esté realizando un ataque de man in the middle, exista una mala configuración en la web o el certificado SSL haya caducado, será imposible conectarse al servidor.

Es un poco drástico pero tremendamente efectivo. O te conectas por https o te conectas por https, no hay otra opción.

Así nos aseguramos, nosotros como propietarios del website, que cualquier conexión sea segura y cifrada.

Si se intenta acceder desde una conexión no segura (http), no saldrá el aviso del navegador como que el sitio no es seguro, simplemente será rechazado y no se podrá conectar.

 

Cómo Añadir HSTS en mi Web

Si quieres añadir el protocolo de seguridad en tu sitio web, es necesario añadir algunas cosas en el archivo .htaccess, así que lo más inteligente es hacer una copia de seguridad antes de modificarlo.

Si usas algún CMS y has instalado algún plugin, módulo o complemento de seguridad, es posible que ya estés usando HTST en tu sitio, así que lo primero es comprobarlo.

Para comprobarlo, puedes usar la siguiente web: https://hstspreload.org/

Solo tienes que poner tu nombre de dominio y buscarlo, si no está configurado, así te lo indicará la web.

hsts negativo - HTTPS

En esta misma web, un poco más abajo te indica lo necesario para que HSTS esté bien configurado en tu website y los requisitos son los siguiente:

Tener un certificado SSL instalado en el dominio

Esto es fácil en Hostinet. En todos los hosting que ofrecemos puedes emitir un certificado gratuito SSL de Let’s Encrypt.

 

Redirigir todas las URLs desde HTTP hacía HTTPS

Esto puedes hacerlo de varias formas, lo mejor es añadir un código en el archivo .htaccess, como por ejemplo este, cambiando el dominio por tu dominio, claro:

RewriteEngine On
 RewriteCond %{SERVER_PORT} 80
 RewriteRule ^(.*)$ https://midominio.info/$1 [R,L]

 

Si usas Plesk, aquí tienes una guía para forzar la redirección HTTPS:

 

Añadir una cabecera (header) HSTS

Por último tienes que añadir la cabecera HSTS en el archivo .htaccess de tu hosting.

Esta cabecera tiene que tener ciertas normas. Por ejemplo que el valor mínimo sea de 2 meses, debe incluir los subdominios, añadir la directiva «preload» (precarga) y si hay alguna otra redirección, esta debe incluir también el encabezado HSTS.

Esto puede ser algo confuso, pero aquí tienes un ejemplo que puedes copiar y pegar. Sería el siguiente:

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

 

Esto sería un ejemplo de cómo quedaría todo en un archivo .htaccess:

ejemplo hsts archivo htaccess - SSL/TLS

 

Una vez hayas guardado los cambios , puedes volver a hacer la prueba en la web que hemos indicado y verás que te indicará que HSTS está correctamente implementado en la web.

hsts positivo - SSL/TLS

Un apunte más, la página hstspreload.org es un página de precarga HSTS, y es para que los navegadores web sepan que esta URL sólo debe servirse desde HTTPS/HSTS.

Esto es así porque HSTS no afecta a la primera visita que realiza en navegador, después de esa primera visita se determina el tiempo que HSTS estará activa por lo que hemos puesto en la cabecera: max-age=31536000.

31536000 son los segundos que tiene un año, esto lo puede modificar si quieres, una vez realizada esta primera visita, el navegador sólo aceptará las conexiones por https.

Esta primera visita puede ser aprovechada por un atacante, aunque es muy improbable, así que desde esta web puedes añadir tu sitio web para evitar esto, ya que la añades a una especie de lista blanca HSTS y los navegadores web la tendrán en cuenta.

Ya depende de ti si quieres añadirla o no en esta lista blanca HSTS:

preload url hsts - SSL/TLS

 

Si usas Plesk, debes acceder a la opción de Security > SSL/TLS Certificates y en la parte izquierda verás una opción para activar o desactivar HSTS.

Plesk - Activar HSTS

Aunque web de precarga  que te hemos indicado te dará un error, ya que por ahora, desde Plesk no se puede añadir la directiva preload.

No obstante, un poco más abajo tienes un checker SSL y si lo pulsas hará un extenso análisis y ahí te indicará que la cabecera HSTS está añadida, aunque no puedas hacer el preload, pero esto último no es imprescindible.

plesk-hsts-verificacion activada

Cosas a Tener en Cuenta

Como verás cada vez más la seguridad está más presente en Internet, tanto en sitios web, correos electrónicos, apps…

Esto es así porque cada vez hay más peligros y atacantes, así que se trata de una guerra continua.

Añadir HSTS en tu web añade una capa extra de seguridad, pero si algo falla el certificado o la configuración del sitio los usuarios no podrán acceder a ella, ni siquiera ignorando las advertencias del navegador web.

Se comenta que Google tiene en cuenta HSTS para el posicionamiento web de su buscador y que en un futuro, es posible que, de la mismo forma que obligaron a todos a usar los certificados SSL, harán lo mismo con HSTS, pero no hay nada confirmado.

Hace poco escribimos un post sobre las cabeceras seguras que puedes utilizar, por si te interesa securizar aun más tu website:

 

Hosting SSD con IP Española

Hosting SSD NVMe