Comprobar una contraseña sin enviarla

Fundamentos

Comprobarla en bases de filtraciones suena a contradicción: para comprobarla hay que enviarla. Este es el truco que lo evita.

«Comprueba tu contraseña en las bases de filtraciones» suena a trampa: para saber si una contraseña está en una base, en principio habría que enviarla. El truco que lo evita se ideó hace tiempo y es lo bastante elegante como para repasarlo entero.

Tres pasos

  1. La contraseña se convierte en hash en tu equipo

    En el navegador, sin una sola petición de red. Un hash es una cadena de cuarenta caracteres de la que no se recupera la contraseña.

  2. Al servidor van solo los cinco primeros caracteres

    No el hash entero, sino su principio. Es demasiado poco para identificar una contraseña: decenas de miles de hashes distintos comparten ese comienzo.

  3. El servidor devuelve toda la lista coincidente

    Todos los hashes de su base que empiezan por esos cinco caracteres. La comparación ocurre después en tu navegador, entre los recibidos.

1de ~30 000
Es lo que el servidor averigua de tu contraseña

Ve una petición de cinco caracteres y devuelve la lista completa. Cuál de las treinta mil es la tuya — o si alguna lo es — no llega a saberlo: la comparación ocurre tras la respuesta, en tu lado.

Qué sí ve el servidor

Qué¿Lo ve?
Tu contraseñaNo
El hash completo de tu contraseñaNo
Los cinco primeros caracteres del hashSí — pero eso abarca miles de contraseñas
Tu dirección IP y la hora de la peticiónSí — como en cualquier petición
Si la contraseña apareció en la baseNo — la comparación ocurre en tu lado
Cuántas veces has comprobadoSí — por el número de peticiones
El truco protege la contraseña, no el hecho de haber usado el servicio. Son cosas distintas, y lo segundo no lo oculta.

Qué hacer con el resultado

Que una contraseña aparezca significa una cosa: está en bases públicas y se prueba automáticamente en cientos de sitios. Da igual cómo llegó ahí ni lo compleja que pareciera.

  • Cámbiala en todos los sitios donde la usaste, no solo donde te acuerdes.
  • Empieza por el correo — por él se recupera todo lo demás.
  • No intentes «arreglarla» añadiendo un carácter: las variantes se generan automáticamente.

Que no aparezca no significa que sea segura. Las bases están incompletas y una filtración reciente tarda en llegar: esto comprueba un compromiso conocido, no certifica robustez. Qué hace fuerte a una contraseña está en entropía.

Copiado