Aunque muchas veces no nos demos cuenta, cuando escribimos una dirección URL en la barra del navegador, las letras «HTTP» la preceden. Sin embargo, cuando consultamos nuestro banco online o accedemos a páginas que contienen nuestros datos personales, lo más habitual es que veamos las siglas «HTTPS».
Esto no es ni una falta, ni un simple adorno; el protocolo HTTPS tiene como objetivo reforzar la seguridad de la conexión. Concretamente, HTTPS garantiza que nos estamos conectando al sitio que queremos acceder y que no se nos desvía (o que la información que facilitamos no se envía) hacia otro sitio. Es decir, una página web con una conexión HTTPS supone una garantía de seguridad para los usuarios y una fuente de credibilidad para los propietarios.
Actualmente, casi todas las páginas web instalan certificados SSL para facilitar las conexiones seguras (en gran medida también porque Google ha insinuado en repetidas ocasiones que considera el HTTPS como un factor de calidad).
Por suerte, no es necesario ser un virtuoso de la programación web para instalar un certificado SSL y configurar una política HSTS que nos permitan ofrecer la máxima seguridad mediante HTTPS.
¿Por qué usar HTTPS?
El protocolo HTTP ha sido durante mucho tiempo el estándar para acceder a los sitios web. El problema es que, al igual que muchas de las tecnologías primitivas de la web, HTTP resultó ser menos seguro de lo que se pensaba al principio. Los piratas informáticos han ido desarrollando maneras de engañar al navegador de los visitantes.
El HTTPS, en cambio, obstaculiza estas tentativas. Si diseñamos un sitio web que solo funciona con este protocolo, ofreceremos una medida extra de protección. Dicho esto, todavía queda la cuestión de cómo se puede «obligar» a los usuarios a usar solo la versión HTTPS del sitio.
En efecto, una simple redirección se puede eludir haciendo que el navegador crea que ya ha llegado a su destino. Los hackers y sus programas maliciosos a menudo emplean esta técnica: al confundir a los usuarios, pueden falsificar la dirección del sitio y poner en marcha su arsenal de herramientas y estrategias para acceder a los datos personales.
¿Cómo imponer un estándar de seguridad a los visitantes?
Como vemos, no podemos contentarnos con ofrecer una conexión segura a un sitio web. Además, es necesario asegurarse de que los usuarios siempre la usen.
La solución más elegante consiste en imponer la política HSTS (HTTP Strict Transport Security; en castellano, «HTTP con Seguridad de Transporte Estricta»). Se trata de un modo de conexión que obliga a todos los navegadores que acceden al dominio a comunicarse únicamente mediante solicitudes HTTPS.
¿Qué es un certificado SSL?
Un certificado SSL es una especie de clave digital que vincula una organización a un nombre de dominio de internet. Podría compararse con un título de propiedad o un derecho de propiedad de un terreno. Sirve de prueba de que un nombre de dominio está relacionado con una entidad determinada.
Este certificado «Secure Socket Layer» indica a los navegadores web que solo se puede acceder al sitio a través de una conexión segura. Para identificar una página web con un certificado SSL válido, simplemente hace falta mirar la barra de direcciones. Normalmente veremos un símbolo de candado junto con el nombre de la entidad a la que pertenece el certificado y el protocolo HTTPS.
¿Cómo funciona el HSTS?
Como mencionábamos antes, contar con un certificado SSL no es en sí mismo suficiente para garantizar la total seguridad de los visitantes. Podríamos comparar el certificado con tener un guarda en la entrada. Podrá detener casi todas las amenazas que se le presenten en la puerta, pero no podrá hacer mucho si el caco encuentra otra ruta de acceso. El papel del HSTS en este ejemplo sería el de forzar a todos los visitantes a pasar por la garita antes de entrar.
El protocolo HSTS convierte todas las solicitudes no seguras que realice un navegador en solicitudes protegidas por HTTPS. De este modo, los datos intercambiados entre el servidor web y el usuario se protegen mediante cifrado.
Así pues, para implementar esta medida de seguridad son necesarias dos cosas
- Un certificado SSL válido para el nombre de dominio.
- Un encabezado Strict-Transport-Security (encabezado HSTS).
El encabezado es un fichero que se instala en el dominio web y que interpela al navegador desde la primera conexión. Por lo general, le transmite una serie de información y normas que el navegador debe seguir cuando interactúa con el dominio en cuestión. En el caso de un encabezado HSTS, las reglas definen que el navegador no podrá acceder a la versión no segura (en HTTP) del sitio web durante un cierto periodo de tiempo. Este plazo se suele fijar en varios meses o incluso años.
Implementación de HSTS
La puesta en marcha de este protocolo debe hacerse gradualmente. Para empezar, es buena idea establecer el periodo de validez del HSTS en unos pocos minutos, para probar todas las funciones de la página web y garantizar que las sesiones y los datos de los usuarios se gestionan correctamente. A continuación, el plazo se puede extender a una semana para identificar errores menos obvios. Cuando todo funciona sin problemas, la duración se puede establecer en los dos años, por ejemplo.
No hace falta decir que, si por alguna razón dejamos de usar el certificado SSL y la versión HTTPS de la página web ya no es accesible, el protocolo HSTS evitará que los navegadores que habían accedido a la página en el pasado vuelven a entrar. Por eso debemos ir con cuidado y tener siempre un certificado válido.
El HSTS no es una solución infalible contra la piratería o la interceptación de datos. Sigue habiendo formas para eludir estas medidas de seguridad, pero para ponerlas en práctica son necesarios ataques mucho más sofisticados. Además, la implementación de HSTS contribuye significativamente a mejorar la reputación de nuestro sitio web y, en consecuencia, el posicionamiento en los buscadores.