HTTPS (Hypertext Transfer Protocol Secure) es la versión segura de HTTP, en la que el tráfico web se cifra y el sitio se autentica mediante el protocolo TLS.
Cómo funciona HTTPS
HTTPS es HTTP corriente enviado dentro de una conexión TLS, por defecto en el puerto TCP 443 (descrito originalmente en el RFC 2818). Al abrir una dirección https://, el navegador realiza un handshake TLS, comprueba que el certificado digital del servidor es válido para ese dominio y está firmado por una autoridad de certificación de confianza, y después intercambia peticiones y respuestas cifradas. El icono del candado indica que esa comprobación ha sido correcta. HTTP/3 ofrece la misma protección sobre QUIC.
Por qué importa HTTPS
Sin cifrado, cualquiera en la ruta de red (un usuario de una Wi-Fi pública, un router comprometido o un proveedor de internet) puede leer y modificar el tráfico. En 2010 la extensión Firesheep mostró lo fácil que era robar cookies de sesión de sitios sin cifrar en una Wi-Fi compartida. HTTPS protege contraseñas, cookies y datos de formularios e impide inyectar anuncios o malware en las páginas. Desde 2018 Chrome marca las páginas HTTP como «No seguro», y los certificados gratuitos de Let’s Encrypt ayudaron a que HTTPS sea lo habitual en la gran mayoría del tráfico web.
Sin embargo, HTTPS tiene límites:
- Solo demuestra que la conexión es con el dominio de la barra de direcciones; los sitios de phishing también tienen certificados válidos.
- El SSL stripping, demostrado con la herramienta sslstrip en 2009, degrada a los usuarios a HTTP en un ataque de intermediario si el sitio no impone HTTPS.
- No protege los datos una vez que llegan a un servidor o navegador comprometido.
Buenas prácticas
- Servir todas las páginas por HTTPS y redirigir las peticiones HTTP.
- Activar HTTP Strict Transport Security (HSTS, RFC 6797) y valorar la precarga de HSTS.
- Marcar las cookies como Secure y evitar el contenido mixto.
- Los usuarios deben comprobar el nombre del dominio, no solo el candado.