¿Cómo se descifran las contraseñas?

El acceso no autorizado a una cuenta rara vez se parece a lo que muestran las películas. En la práctica, una contraseña se consigue por una de estas tres vías: se descifra (probando combinaciones una tras otra, por lo general contra una base de hashes de contraseñas robada a un servicio), se roba (al introducirla en una página falsa o mediante un programa malicioso) o se reutiliza (los atacantes toman una clave de una filtración anterior y la prueban en otros servicios, confiando en que la víctima la haya repetido allí). Comprender esta diferencia es fundamental, ya que cada caso requiere una defensa distinta. Este artículo repasa los métodos más habituales y explica qué ayuda frente a cada uno de ellos.

Reutilización de contraseñas filtradas

Cada año se vulneran bases de datos en multitud de servicios, y la información de sus usuarios termina a la venta o difundida en internet. Los atacantes toman las combinaciones de correo electrónico y contraseña obtenidas en una filtración y las prueban de forma automática en bancos, proveedores de correo, tiendas online y redes sociales, una técnica conocida como relleno de credenciales (credential stuffing). No requiere adivinar nada y funciona por un motivo muy sencillo: la gente suele repetir sus claves. En esta situación, ni siquiera una contraseña compleja sirve de nada si se utiliza en varios sitios.

Qué ayuda: usar una contraseña distinta y exclusiva para cada cuenta, de modo que una filtración en un servicio no comprometa ningún otro acceso.

Phishing

Una página de phishing es un clon de un formulario de acceso legítimo situado en una dirección web ligeramente distinta, al que se llega siguiendo un enlace en un correo o mensaje de tono urgente (un supuesto bloqueo de cuenta, un paquete pendiente o una factura impagada). Todo lo que escribas allí va a parar directamente al atacante. La longitud y la complejidad de la clave no marcan ninguna diferencia, ya que es el propio usuario quien la introduce.

Qué ayuda: entrar en las páginas web desde tus propios marcadores y no siguiendo enlaces en mensajes. Utiliza un gestor de contraseñas: solo ofrece autocompletar la clave en la dirección exacta para la que fue guardada, por lo que si el gestor no ofrece nada, tómalo como una advertencia y comprueba minuciosamente la dirección antes de teclear nada a mano. Activa además la autenticación de dos factores, que hace que una contraseña robada no baste por sí sola. Ten en cuenta, no obstante, que los códigos de un solo uso pueden obtenerse mediante phishing igual que las contraseñas. En cambio, las llaves de acceso (passkeys) y las llaves de seguridad física FIDO2 resisten este engaño, ya que solo responden ante el dominio auténtico, una propiedad que el NIST califica como resistencia al phishing.

Malware

Los programas conocidos como ladrones de información (infostealers) copian las contraseñas guardadas en el navegador junto con las cookies de sesión y las transmiten segundos después de ejecutarse, mientras que los registradores de pulsaciones (keyloggers) graban todo lo que se escribe en el teclado. Una cookie de sesión robada puede permitir a un atacante acceder a una cuenta cuya sesión esté abierta sin necesidad de conocer la clave ni de superar el segundo factor. Este tipo de software malicioso suele llegar camuflado en programas pirateados, falsas actualizaciones o archivos adjuntos en correos.

Qué ayuda: instalar programas únicamente desde sitios web oficiales, mantener el sistema y el navegador actualizados y desconfiar por sistema de cualquier archivo adjunto inesperado, aunque nada de esto suponga una garantía absoluta. Si sospechas que un dispositivo se ha infectado, actúa inmediatamente desde otro equipo que sepas que está limpio: cambia las contraseñas, utiliza la opción de cerrar todas las sesiones abiertas en cada servicio y comprueba que el correo de recuperación, el teléfono y los ajustes de autenticación de dos factores sigan bajo tu control. Desinfecta por completo el dispositivo comprometido antes de volver a iniciar sesión en él.

Adivinar contraseñas en el formulario de inicio de sesión

Probar contraseñas directamente en un sitio web es un proceso lento: una plataforma bien protegida impone pausas, bloquea el acceso temporalmente o solicita un captcha tras varios intentos fallidos. Esto hace que insistir sobre una sola cuenta resulte muy ineficiente, por lo que suele recurrirse a la táctica inversa: probar un puñado de las claves más frecuentes (123456, password, qwerty123) contra millones de cuentas distintas, un ataque denominado password spraying. Los intentos dirigidos funcionan de forma similar, pero con datos personales fáciles de hallar en redes sociales: nombres de hijos, mascotas, cumpleaños o el equipo de fútbol favorito.

Qué ayuda: cualquier contraseña que no sea habitual ni esté construida a partir de información personal; consulta cómo crear una contraseña segura.

Descifrar contraseñas sin conexión a partir de hashes robados

Un servicio bien diseñado no guarda las contraseñas en texto legible, sino en forma de hashes: el resultado de una función unidireccional que impide recuperar la clave original a partir de él. Cuando una base de datos de este tipo se filtra, los atacantes prueban posibles contraseñas calculando y comparando en sus propios equipos los hashes de miles de opciones candidatas. Ningún formulario de inicio de sesión limita la velocidad de los intentos, y el ritmo de cálculo depende de la función criptográfica elegida y de su configuración. En funciones rápidas y obsoletas como MD5, una sola tarjeta gráfica moderna puede comprobar decenas de miles de millones de contraseñas por segundo. En cambio, funciones diseñadas específicamente para contraseñas (como Argon2id, o bcrypt en sistemas más antiguos) son deliberadamente lentas y reducen esa tasa en muchos órdenes de magnitud; por eso son las que indican las recomendaciones actuales de seguridad.

Ataques de diccionario

Las contraseñas candidatas no se eligen al azar. Las herramientas de ataque parten de repertorios de contraseñas reales procedentes de filtraciones previas y de diccionarios de términos y nombres propios; sobre ellos aplican reglas que imitan las costumbres humanas: poner la primera letra en mayúscula, añadir un año o un signo de exclamación al final o sustituir letras por símbolos parecidos. Una contraseña como Summer2024! parece compleja a primera vista y, sin embargo, figura entre las primeras combinaciones que se prueban. La técnica del salado (salting) —añadir un valor aleatorio único a cada contraseña antes de calcular su hash— impide usar tablas precalculadas (llamadas tablas arcoíris o rainbow tables) y descifrar a la vez contraseñas idénticas de varios usuarios, pero no hace que una contraseña predecible sea más difícil de adivinar.

Fuerza bruta

Cuando los diccionarios se agotan, solo queda probar todas las combinaciones posibles, y en una contraseña generada al azar la longitud es el factor decisivo. A modo de ejemplo, supongamos una función de hash rápida y una clave en la que cada carácter se ha elegido de forma independiente y con idéntica probabilidad entre los 94 caracteres ASCII imprimibles (excluyendo el espacio). Existen alrededor de 6 × 1015 contraseñas posibles de 8 caracteres; a un ritmo de diez mil millones de intentos por segundo, comprobarlas todas requeriría cerca de una semana, y en promedio la correcta aparecería en la mitad de ese tiempo. En cambio, para 12 caracteres, probar todas las combinaciones en el mismo equipo llevaría aproximadamente 1,5 millones de años, y para 16 la cifra queda fuera de cualquier comparación razonable. Este es el motivo principal para usar contraseñas largas y generadas al azar: los diccionarios sirven de poco contra ellas y, bajo estas premisas, probar cada combinación no resulta viable en la práctica. Nuestro generador de contraseñas seguras las crea directamente en tu navegador y muestra para cada una una estimación de su entropía en bits.

Qué ayuda: utilizar una contraseña larga y sin ningún patrón humano reconocible, lo que en la práctica implica que haya sido generada al azar. No puedes controlar cómo almacena tus contraseñas cada plataforma, así que ponte en el peor de los casos y utiliza una combinación que resista los intentos de adivinación incluso si el servicio la guarda mediante una función de hash rápida.

Mirar por encima del hombro e ingeniería social

Los métodos más antiguos no requieren tecnología alguna: alguien lee la contraseña mirando por encima del hombro, la copia de una nota adhesiva pegada a la pantalla o la ve mientras compartes tu pantalla en una videollamada; o bien el atacante simplemente te la pide haciéndose pasar por personal de soporte técnico o por un compañero de trabajo, una táctica conocida como ingeniería social. Ningún servicio legítimo te pedirá jamás tu contraseña por teléfono, correo electrónico ni chat.

Qué ayuda: no revelar ni enviar jamás tu contraseña a nadie y no dejarla anotada donde otras personas puedan verla.

Qué significa todo esto

Cada tipo de ataque exige medidas de protección distintas, y tres medidas son especialmente importantes: una clave única para cada cuenta, generada al azar en lugar de inventada, complementada con la autenticación de dos factores (o con una llave de acceso en lugar de contraseña donde el servicio lo permita). Estas pautas no lo resuelven todo (por ejemplo, el robo de una sesión activa), motivo por el cual los consejos sobre programas maliciosos también son fundamentales. Puedes leer más artículos en las guías sobre contraseñas.