A lo largo del tiempo, a medida que el internet se ha expandido y los avances tecnológicos nos sorprenden día tras día, los agentes maliciosos también han innovado para estar a la par con las medidas de seguridad que implementamos en nuestros sitios web.
Por esta razón, las medidas de seguridad son un factor de extrema importancia que debe gestionarse con rapidez para garantizar la protección de nuestro sitio web, así como la de nuestros usuarios y sus datos.
Aunque es casi indispensable que un sitio web cuente con un certificado de seguridad SSL, todavía hay algunas webs que mantienen su versión sin certificado visible al público. El acceso libre al sitio web sin el certificado ni el cifrado de seguridad abre las puertas a usuarios malintencionados.
Es por ello que en este artículo vamos a definir qué es HSTS, cómo funciona y cómo podemos activarlo en nuestros sitios web.
Tabla de contenidos
¿Qué es HSTS?
Es probable que no hayamos podido leer anteriormente las siglas HSTS o “HTTP Strict Transport Security”, pues se trata de una política de seguridad web que ayuda a proteger a todos los sitios web contra ciertos tipos de ataques, como el secuestro de cookies y ataques de intermediarios (o también conocidos como Man-in-the-Middle – MITM, por sus siglas en inglés).
Estos ataques son especialmente peligrosos, ya que se trata de un tipo de ciberataque en el que un atacante intercepta y altera en gran medida la comunicación entre dos partes que creen que se están comunicando de forma directa entre ellas. El atacante se sitúa en medio de la conversación y puede espiar, modificar o robar la información que se transmite.
Es bajo este escenario que actúa la política de seguridad HSTS la cual asegura que las conexiones entre el navegador del usuario y el servidor web se realicen siempre a través de HTTPS, lo que significa que las comunicaciones están cifradas y protegidas.
¿Para qué sirve HSTS o Strict-Transport-Security?
La política de seguridad HSTS se desempeña varias funciones y sobre todo bajo varias circunstancias.
Forzar el uso de HTTPS: HSTS garantiza que todas las conexiones a un sitio web se realicen siempre a través de HTTPS, un protocolo seguro que cifra la comunicación entre el navegador y el servidor. Esto ayuda a proteger los datos sensibles transmitidos, como contraseñas y datos personales.
Evitar el secuestro de cookies: toda la información temporal que almacena el navegador al momento que visitamos un sitio web es conocido como las cookies de sesión. Estas cookies pueden ser robadas si se transmiten a través de una conexión HTTP. HSTS por su parte, evita que las cookies sean enviadas a través de conexiones no seguras, protegiendo así las sesiones de los usuarios.
Mejorar la seguridad de la red: HSTS se encarga de “obligar” a los navegadores a utilizar el protocolo cifrado HTTPS, lo que significa que ayuda a crear un entorno web más seguro en general. De esta manera, también se incentiva a los administradores y dueños de sitios web a configurar correctamente sus certificados SSL y aplicar configuraciones de seguridad.
Protección automática: cuando visitamos un sitio web, una vez que nuestro navegador recibe el encabezado HSTS, este recuerda la política para el dominio especificado y automáticamente fuerza el uso de HTTPS en futuras conexiones, incluso si el usuario intenta acceder al sitio mediante HTTP.
Reducción de riesgos de configuración errónea: los usuarios que accidentalmente escriben “http://” en lugar de “https://” serán redirigidos automáticamente a la versión segura del sitio con el SSL activo.
Mejora de la confianza del usuario: al implementar la política de seguridad HSTS, los sitios web muestran un compromiso con la seguridad de los datos de sus usuarios, lo que se traduce como una muestra de confianza y la reputación del sitio a cara de los usuarios.
¿Cómo funciona HSTS?
Al definir varias circunstancias de para qué sirve la política de seguridad HSTS tenemos una idea general de como funciona; sin embargo, especifiquemos por medio de varios puntos como funciona exactamente.
Encabezado de respuesta HSTS: cuando visitamos un sitio web que tiene HSTS habilitado desde nuestro navegador, el servidor responde con un encabezado especial llamado “Strict-Transport-Security”. Este encabezado le dice al navegador que solo debe interactuar con el sitio usando el protocolo HTTPS durante un período de tiempo especificado (por ejemplo, max-age=31536000 para 1 año).
Redirección forzada a HTTPS: continuando con el punto anterior, una vez que el navegador recibe y procesa el encabezado HSTS, cualquier intento futuro de conectarse al sitio web mediante el protocolo HTTP es convertido a HTTPS de forma automática por el navegador. Esto incluye tanto las visitas directas como las redirecciones internas del sitio web.
Protección contra ataques Man-in-the-Middle (MITM): Con HSTS habilitado, todas las conexiones desde el navegador del usuario hacia el sitio web serán redirigidas automáticamente al protocolo HTTPS, que está cifrado.
Los ataques MITM ocurren cuando un atacante intercepta el tráfico no cifrado (HTTP). Sin embargo, con HSTS, todo el tráfico está cifrado, lo que dificulta enormemente estos ataques.
HSTS impide de forma directa que los atacantes intercepten y manipulen la comunicación, garantizando que las conexiones se realicen siempre mediante HTTPS.
¿Cómo usar en mi web HSTS?
Para poder implementar el protocolo de seguridad HSTS su configuración puede variar según sea el ambiente bajo el que se encuentre desarrollado nuestro sitio web.
Bien sea un CMS en línea, administrado desde un hosting web como WordPress o un desarrollo a medida, muy probablemente varios de estos servicios ya incluyan esta política entre sus apartados de seguridad.
Podemos validar si nuestro sitio web ya cuenta con HSTS activo desde el siguiente sitio web.
(Visita el sitio web haciendo clic en la imagen ↑)
Solo bastará con colocar la URL de nuestro sitio web para validar si HSTS se encuentra configurado correctamente.
De no ser el caso, el mismo sitio web que hemos usado para hacer la consulta nos deja indicaciones claras de cuáles son los requisitos que debemos cumplir para que el protocolo HSTS se ejecute como debe ser.
Considerando estos requisitos vamos a repasarlos a continuación:
Contar con un certificado SSL
El primer requisito fundamental probablemente ya lo tenemos cubierto, ya que hoy en día contar con un certificado de seguridad SSL activo en nuestro sitio web es un paso inicial estándar al comenzar un proyecto web, además de ser un procedimiento sencillo.
Un certificado SSL asegura que la conexión de todos los visitantes a nuestro sitio web sea privada y segura. Así, podemos garantizar a los usuarios que, si es necesario manejar información sensible, pueden confiar en que sus datos estarán cifrados.
Existen múltiples servicios en internet que ofrecen certificados de seguridad, tanto gratuitos como de pago. Además, si tienes un plan de hosting con Webempresa, tendrás garantizados los SSL en los dominios que utilices.
Redireccionar todas las URLs a HTTPS
Si ya contamos con nuestro certificado SSL activo, configurado y funcionando correctamente, podemos proceder a cumplir el segundo requisito para activar HSTS: establecer que todas las URLs de nuestro sitio web redirijan a su versión HTTPS.
Para configurar estas redirecciones, generalmente editamos el archivo .htaccess correspondiente al sitio web. Sin embargo, dependiendo del CMS, puede que esta acción no sea posible o que el CMS ofrezca opciones integradas para modificar este archivo.
Por eso, te recomendamos consultar nuestra guía disponible, donde abordamos los posibles casos y los ajustes necesarios según corresponda.
(Visita el sitio web haciendo clic en la imagen ↑)
Si ya contamos con nuestro certificado SSL activo, configurado y funcionando correctamente, podemos proceder a cumplir el segundo requisito para activar HSTS: establecer que todas las URLs de nuestro sitio web redirijan a su versión HTTPS.
Para configurar estas redirecciones, generalmente editamos el archivo .htaccess correspondiente al sitio web. Sin embargo, dependiendo del CMS, puede que esta acción no sea posible o que el CMS ofrezca opciones integradas para modificar este archivo.
Por eso, te recomendamos consultar nuestra guía disponible, donde abordamos los posibles casos y los ajustes necesarios según corresponda.
Las redirecciones deben aplicarse no solo al dominio principal, sino también a todos los subdominios. Asegúrate de que todos los subdominios de tu sitio web también redirijan a su versión HTTPS. En particular, si tenemos un subdominio “www”, es necesario que pueda soportar HTTPS para ese subdominio si existe un registro DNS para él.
Otro punto que vale la pena destacar es que la precarga de HSTS se aplica a todos los subdominios existentes independientemente de su uso, incluyendo aquellos subdominios internos que no son accesibles públicamente.
Añadir cabecera en .htaccess
El requisito final corresponde el añadir la cabecera HSTS a nuestro archivo .htaccess, la sintaxis de la cabecera puede variar según el servidor donde queramos hacer la implementación sea Apache o Nginx.
En Apache:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
En Nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
Para editar el archivo .htaccess es necesario que tengamos acceso a él por medio de un cliente FTP o bien el administrador de archivos que nos ofrece el panel de gestión de nuestro hosting web, para fines de este ejemplo lo mostraremos desde WePanel.
Desde la vista de WePanel vamos a ubicar la opción de “Administrador de Archivos”
Ya en la vista del listado de directorios debemos ubicar el que corresponde a nuestro sitio web, en su raíz debemos encontrar el archivo .htaccess, el cual podemos editarlo directamente haciendo clic derecho sobre el y escogiendo la opción de “Editar”.
Una vez agregada la cabecera en nuestro archivo .htaccess solo bastará con guardar y cerrar para que quede configurado el protocolo HSTS.
Es muy importante destacar que, si al incluir la cabecera HSTS encontramos algún error de visualización o funcionamiento en nuestro sitio web, debemos retirarla inmediatamente para verificar que su sintaxis sea correcta.
Por otro lado, si hemos agregado la cabecera HSTS, cumplimos con los requisitos, pero aún así no parece estar funcionando, lo ideal es comunicar este comportamiento al soporte de nuestro proveedor de hosting web.
Ellos podrán evaluar la situación y determinar qué puede estar ocurriendo. En algunos casos, la activación completa del protocolo HSTS requiere aprobación y configuración previa por parte del servidor, lo cual no podemos realizar como usuarios convencionales.
Las características de esta cabecera son las siguientes:
Es necesario configurar la cabecera HSTS para que tenga una duración mínima de 1 año (max-age=31536000). Esto indica a los navegadores que deben acceder al sitio solo a través de HTTPS durante al menos ese periodo de tiempo.
Se incluye la directiva “includeSubDomains” en la cabecera HSTS para asegurar que todos los subdominios también usen HTTPS.
También se agrega la directiva “preload” para que nuestro sitio pueda ser añadido a la lista de precarga HSTS. Esto permite a los navegadores saber que deben usar HTTPS para el dominio y todos sus subdominios incluso en la primera visita.
Consideraciones al usar HSTS en mi web
El implementar la política de seguridad HSTS en nuestro sitio web es una práctica recomendada para mejorar la seguridad, pero hay algunas consideraciones que vale la pena destacar.
Validar certificados SSL: debemos asegurarnos que para el correcto funcionamiento del protocolo HSTS de que todos los certificados SSL se encuentren debidamente instalados y configurados, y que además cubran todos los subdominios.
Redes restringidas: algunos usuarios pueden encontrarse bajo entornos de red restrictivos, estos pueden bloquear el acceso al protocolo HTTPS, lo que podría causar problemas de accesibilidad si por su parte el protocolo HSTS se encuentra habilitado.
Navegadores antiguos: si bien en la actualidad más del 90% de los navegadores actuales son compatibles con HSTS, hay algunos navegadores antiguos que no soportan este protocolo, para mayor información podemos echarle un vistazo al siguiente cuadro comparativo.
(Visita el sitio web haciendo clic en la imagen ↑)
Impacto de HSTS en el SEO
Otro de los aspectos importantes que debemos abordar es como al configurar la política de seguridad HSTS puede tener efectos positivos en el SEO de nuestro sitio web.
Confianza del usuario: aunque pueda parecer obvio, sin duda cualquier sitio web que puedan ofrecer la percepción de ser más seguros son más confiables para los usuarios, lo que puede aumentar el tiempo de permanencia y reducir las tasas de rebote, factores que pueden influir en el posicionamiento SEO.
Protección contra ataques: al mantener nuestro sitio web protegido contra ataques de intermediarios y secuestros de cookies, el protocolo HSTS contribuye a mantener la integridad y disponibilidad del sitio, evitando posibles penalizaciones por seguridad.
Señal de posicionamiento: Google por su parte, ha confirmado que cualquier sitio con HTTPS es bien percibido para ser posicionado de manera más efectiva. Usar HSTS asegura que todas las conexiones a nuestro sitio sean a través de HTTPS, reforzando la percepción ya mencionada de seguridad.
Acceso rápido: por lo general, los sitios que utilizan el protocolo HTTPS suelen cargar más rápido gracias al uso de HTTP/2, lo que también puede mejorar la experiencia del usuario y, por ende, el SEO.
Redirección automática: HSTS evita que se pueda consultar a versiones HTTP e HTTPS de las mismas páginas, lo que puede ayudar a prevenir problemas de contenido duplicado.
Lista de pre-carga: si nuestro dominio activo está en la lista de pre-carga HSTS, los navegadores que soportan esta lista siempre intentarán conectarse a nuestro sitio usando el protocolo HTTPS desde la primera visita, mejorando la seguridad y la experiencia del usuario desde el principio.
Conclusión
El protocolo HSTS es una capa extra de seguridad que no debe pasar desapercibida, ya que en la actualidad seguramente muchos sitios webs no están usando sus beneficios y sin saberlo ya cuentan con parte de los requisitos para su uso como por ejemplo contar con un certificado de seguridad o redireccionar todo el contenido servido en HTTP a HTTPS.
Por su parte, al usar HSTS nos ayuda a garantizar que todas las conexiones se realicen a través de una conexión segura HTTPS. De esta manera, no solo protege a los usuarios, sino que también puede tener un impacto positivo en el posicionamiento del sitio web al mejorar la confianza del usuario, asegurar la preferencia de Google por sitios con el protocolo HTTPS y evitar problemas de contenido duplicado.
Si ya contamos con un certificado de seguridad SSL y deseamos blindar aún más la seguridad de nuestro sitio web, el uso de HSTS es sin duda una implementación que resulta indispensable hoy en día.
También te puede interesar:
- Certificado SSL gratis
con Let’s Encrypt - Tutorial seguridad en WordPress Guía completa (2024)
- Cómo forzar https desde el archivo .htaccess
- ¿Cuál es la diferencia entre HTTP y HTTPs?
- Cabecera X-Content-Type-Options, problemas de Seguridad
- 15 Consejos de seguridad en WooCommerce
¿Te ha resultado útil este artículo?
Equipo de soporte WordPress y Woocommerce en Webempresa.