Aclarando el concepto HTTPS. ¿Es atacable?

Aunque navegar por Internet está a la orden del día, un alto porcentaje de los usuarios de la red no conocen los riesgos existentes. La navegación web es la más usada habitualmente, a través del protocolo HTTP, pero... ¿cómo de seguro es HTTPS?.

  • ¿Qué es HTTPS?
Es un protocolo basado en HTTP* que cifra la conexión entre el cliente y el servidor (puerto 443). Este protocolo no garantiza nada más que un cifrado P2P al establecer la conexión web, no garantiza una seguridad superior a esta.

* saber más sobre HTTP en wikipedia


  • Diferencia con HTTP
Imaginemos que nos autenticamos en un sitio web. HTTP envía el mensaje plano, es decir, en texto comprensible por un humano, de tal modo que si alguien intercepta ese mensaje podrá descubrir el usuario y la contraseña simplemente analizando el paquete.

En cambio, si usamos HTTPS toda la mensajería que se intercambia cliente-servidor va cifrada mediante un protocolo SSL o TLS mediante un conjunto de claves y certificados. Si algun atacante captura y analiza el mensaje podrá verlo pero, al ir cifrado, el contenido será incomprensible sin conocer el descifrado.

El cifrado por claves asimétricas se basa en una clave privada (solo conocerá el dispositivo ) y una pública (que conocerá la otra parte de la conexión). De este modo se cifran y descifran los datos.

Para conocer más a fondo el cifrado de llaves: wikipedia



Como servidor, para que el candado aparezca en color verde (lo que para muchos es seguridad absoluta) sólo necesita con tener un certificado SSL o TLS firmado por una Autoridad Certificadora de confianza. Este mero requisito no es algo complejo ya que por una pequeña cantidad de dinero se puede conseguir. Por tanto el candado no es para nada algo que nos de confianza absolita.

  • Ataques usuales a HTTPS
Phishing: mecanismo por el cuál el usuario es engañado y, en este caso, intercambia datos con un sitio web que imita ser el sitio web original pero en realidad es una web falsa hecha por un atacante.

SSLStrip (y otras vulnerabilidades de SSL): esta herramienta permite introducir una máquina en la conexión. La paquetería del usuario es recibida por el atacante, que la analiza y se la devuelve al servidor, y viceversa. En este caso la máquina del atacante establece una conexión HTTP con el cliente (por eso puede analizar sus paquetes) y una conexión HTTPS con el servidor.

Troyanos o malware: se basan en cambios en DNS o redireccionamientos para ataques phishing o similares.

  • Solución
Se ha instaurado HSTS ya en los servidores web más importantes y grandes del mundo.

HSTS es un protocolo que garantiza una conexión HTTPS desde ambos lados. Gracias a este protocolo, el MITM dado en el apartado anterior con SSLStrip y otras vulnerabilidades se solucionarían.

Su implementación juega con un token que revisa la conexión HTTPS en los dos puntos de la conexión.

Pese a ser una solución moderna, ya existe una forma "sencilla" de romperlo, jugar con el NTP para hacer caducar el token usando la misma conexión, para de este modo realizar el MITM. A estas herramientas se les denomina SSLStrip2 y Delorean.

  • ¿Cómo sé entonces si un servidor es de confianza?
Esto no es para nada simple. Lo que está claro que no te debes conectar ni registrar datos en lugares de poca confianza y debes tener tu equipo securizado. Que no te engañen mediante links falsos, emails o SMS que parezcan originales y te pidan un registro inmediato.

Consulta el certificado de ese servidor, que esté firmado por quien se supone que debe estar firmado y que es un certificado que parezca original.

Comentarios