HTTPS y TLS: cómo funciona realmente el candado de su navegador
El icono del candado en su navegador significa más de lo que cree, y menos de lo que quizás supone. Un desglose técnico pero accesible.
Tabla de contenidos
Qué es HTTPS y qué no es
Cuando visita un sitio web y ve https:// en la barra de direcciones junto con un icono de candado, está viendo HTTPS, que en inglés significa "HyperText Transfer Protocol Secure" (protocolo seguro de transferencia de hipertexto). Significa que la conexión entre su navegador y el servidor web está cifrada.
Pero esto es lo que sorprende a la mayoría de la gente: HTTPS no significa que el sitio web sea confiable ni legítimo. Un sitio de phishing puede usar HTTPS, y a menudo lo hace. El candado solo le indica que su conexión a ese servidor está cifrada, no que el servidor pertenezca a quien usted cree.
HTTPS se basa en TLS (Transport Layer Security), un protocolo criptográfico. TLS reemplazó al antiguo protocolo SSL, aunque los términos todavía se usan indistintamente. Si alguien habla de un "certificado SSL", casi con seguridad se refiere a un certificado TLS.
El handshake de TLS: cómo se establece una conexión segura
Cada vez que su navegador se conecta a un sitio web HTTPS, realiza un handshake de TLS en milisegundos. Esto es lo que ocurre:
- Client Hello: su navegador envía un mensaje al servidor con las versiones de TLS y los conjuntos de cifrado que admite.
- Server Hello: el servidor responde, selecciona la versión de TLS y el conjunto de cifrado acordados, y envía su certificado digital.
- Verificación del certificado: su navegador comprueba el certificado frente a una lista de Autoridades de Certificación (CA) de confianza integradas en su sistema operativo y navegador. Verifica que el certificado sea válido, que no haya caducado y que se haya emitido para el dominio correcto.
- Intercambio de claves: el navegador y el servidor realizan un intercambio de claves (usando algoritmos como ECDHE) para derivar una clave de sesión compartida, sin transmitir nunca la clave en sí a través de la red.
- Comienza la comunicación cifrada: todos los datos posteriores se cifran de forma simétrica usando la clave de sesión.
La parte brillante: aunque alguien grabara cada paquete de su handshake de TLS, no podría derivar la clave de sesión; esto es la confidencialidad futura (forward secrecy).
¿Qué es un certificado TLS?
Un certificado TLS es un documento digital que demuestra la identidad de un servidor. Contiene:
- El nombre de dominio para el que se emitió
- La clave pública del servidor
- La Autoridad de Certificación emisora
- Una fecha de caducidad
- Una firma digital de la CA
Las Autoridades de Certificación son organizaciones de confianza encargadas de verificar que un dominio esté controlado por quien afirma ser su propietario. Existen tres niveles de validación:
- Validación de dominio (DV): la CA confirma que usted controla el dominio. Rápido y económico (a menudo gratuito mediante Let's Encrypt). Sin verificación de identidad.
- Validación de organización (OV): la CA verifica que la organización existe y es propietaria del dominio. Más confianza, más proceso.
- Validación extendida (EV): verificación rigurosa de la entidad legal. Antes mostraba un nombre de empresa en verde en los navegadores; la mayoría de los navegadores han retirado este indicador visual.
Para la mayoría de los propósitos, los certificados DV (como los de Let's Encrypt) proporcionan un cifrado fuerte. El nivel de validación no afecta a la fuerza del cifrado, solo a cuánta verificación de identidad se realizó.
Contra qué protege TLS
TLS proporciona tres propiedades de seguridad:
- Confidencialidad: los datos están cifrados y son ilegibles para cualquiera que intercepte el tráfico.
- Integridad: un MAC (código de autenticación de mensaje) garantiza que los datos no puedan modificarse en tránsito sin que se detecte.
- Autenticación: el certificado demuestra que está hablando con el servidor correcto (suponiendo que confíe en la cadena de CA).
Esto hace que TLS sea muy eficaz contra la escucha pasiva: alguien que esté a la escucha en una red wifi pública no puede leer su tráfico HTTPS.
Contra qué NO protege TLS
- Dispositivos comprometidos: si hay malware instalado en su dispositivo, puede interceptar los datos antes de que se cifren o después de que se descifren.
- Sitios web maliciosos con certificados válidos: un certificado legítimo en un sitio fraudulento significa que su tráfico hacia el sitio de la estafa está cifrado, pero le siguen estafando.
- Compromiso de una Autoridad de Certificación: si una CA es hackeada o emite certificados fraudulentos, los atacantes pueden suplantar sitios legítimos. Esto ha ocurrido históricamente (por ejemplo, DigiNotar en 2011).
- El contenido en el servidor: TLS protege los datos en tránsito únicamente. Lo que el servidor haga con sus datos tras recibirlos es algo completamente aparte.
Versiones de TLS y por qué importan
No todas las versiones de TLS son iguales:
- TLS 1.0 y 1.1: obsoletas. Con vulnerabilidades conocidas. Ningún navegador moderno las acepta.
- TLS 1.2: ampliamente compatible, en general segura con una configuración correcta.
- TLS 1.3: la mejor versión actual. Handshake más rápido, eliminación de conjuntos de cifrado heredados, confidencialidad futura obligatoria. Úsela si está configurando un servidor.
Puede comprobar qué versión de TLS usa un sitio haciendo clic en el candado de su navegador y viendo los detalles del certificado, o usando herramientas como el test de servidor de SSL Labs (ssllabs.com/ssltest).
Conclusiones prácticas
- Asegúrese siempre de que los sitios que manejan datos sensibles (banca, compras, cuentas) usen HTTPS: busque el candado
- No dé por hecho que un sitio con candado esté a salvo del fraude: verifique el dominio con cuidado
- HTTPS no protege sus datos una vez que llegan al servidor
- Use SSL Labs para auditar la configuración TLS de su propio sitio web
- Prefiera los sitios que admitan TLS 1.3 y que tengan cabeceras HSTS configuradas (que fuerzan las conexiones HTTPS)