Cómo hacen los ciberdelincuentes para descifrar tu contraseña en una hora

Casi seis de cada diez contraseñas se pueden descifrar en menos de una hora con una tarjeta gráfica moderna o servicios en la nube. Analizamos cómo es posible y qué hacer al respecto.

Aunque el Día Mundial de las Contraseñas, que se celebra anualmente el primer jueves de mayo, ya ha pasado, nuestra fascinación (y esperamos que también la tuya) por la seguridad de las contraseñas se mantiene intacta. En lugar de analizar contraseñas artificiales de “prueba” creadas para estudios de laboratorio, nos quedamos en el mundo real, examinando contraseñas reales filtradas en la dark web. Los resultados fueron alarmantes: el 59 % de estas contraseñas se podrían descifrar en menos de una hora, y todo lo que se necesita es una tarjeta gráfica moderna y un poco de conocimiento técnico.

En la publicación de hoy explicamos cómo los ciberdelincuentes descifran contraseñas y cómo combatirles (aviso de spoiler: usa protección fiable y analiza automáticamente tus contraseñas en busca de filtraciones).

La forma habitual de descifrar contraseñas

Primero, aclaremos lo que queremos decir con “descifrar una contraseña”. Estamos hablando de descifrar el hash de la contraseña, una secuencia única de caracteres que representa la contraseña. Las empresas suelen almacenar las contraseñas de los usuarios de una de estas tres maneras:

  • Texto sin formato. Esta es la forma más simple y clara: supongamos que la contraseña de un usuario es qwerty12345, entonces se almacena en el servidor de la empresa como qwerty12345. Si se produce una filtración de datos, el cibercriminal solo necesita introducir la contraseña con el nombre de usuario correspondiente para iniciar sesión. Eso es, por supuesto, si no hay autenticación de dos factores (2FA), pero incluso entonces, los ciberdelincuentes a veces pueden interceptar contraseñas de un solo uso.
  • Este método utiliza algoritmos hash como MD5 y SHA-1 para transformar cada contraseña en un valor hash único en la forma de una cadena de caracteres de longitud fija, que se almacena en el servidor. Cuando el usuario introduce su contraseña, el sistema convierte la secuencia de caracteres de entrada en un hash y la compara con la almacenada en el servidor. Si coinciden, la contraseña es correcta. Aquí hay un ejemplo: si tu contraseña es qwerty12345, “traducida” a SHA-1 se verá así: 4e17a448e043206801b95de317e07c839770c8b8. Los piratas informáticos que obtengan este hash tendrían que descifrarlo de nuevo a qwerty12345 (esta es la parte de “descifrado de contraseñas”), por ejemplo, mediante el uso de tablas arcoíris. Luego, se puede usar una contraseña descifrada para acceder no solo al servicio vulnerado, sino también a otras cuentas donde se utilizó la misma contraseña.
  • Hash con sal. Este método, que nada tiene que ver con un plato sabroso de comida, añade una secuencia aleatoria de datos, conocida como sal, a cada contraseña antes del hash. Una sal puede ser estática o generada dinámicamente. Una secuencia de contraseña + sal se introduce en el algoritmo, lo que da como resultado un hash diferente. Por lo tanto, las tablas arcoíris pre-calculadas se vuelven inútiles para los piratas informáticos. El uso de este método de almacenamiento de contraseñas las hace mucho más difíciles de descifrar.

Para nuestro estudio, formamos una base de datos de 193 millones de contraseñas filtradas en texto sin formato. ¿De dónde las hemos sacado? Tienes que saber dónde buscar. Las encontramos en la dark web, donde estos “tesoros” a menudo se ofrecen de forma gratuita. Usamos esta base de datos para analizar las contraseñas de los usuarios en busca de posibles filtraciones, pero no te preocupes, no almacenamos ni vemos ninguna contraseña. Puedes leer más sobre la estructura interna del almacén de contraseñas en nuestra solución Kaspersky Password Manager y cómo, sin conocer tus contraseñas, las comparamos con las filtradas.

El coste del descifrado de contraseñas

Las GPU modernas son la mejor herramienta para analizar la seguridad de una contraseña. Por ejemplo, la RTX 4090 junto con la herramienta de recuperación de contraseñas hashcat logra una tasa de 164 000 millones de hashes por segundo (GH/s) para hashes MD5 salados.

Imaginemos una contraseña de 8 caracteres con letras latinas (todas en minúsculas o mayúsculas) y dígitos (36 caracteres posibles por posición). El número de posibles combinaciones únicas es de 2,8 billones (calculado elevando 36 a la potencia de ocho). Una CPU potente con una potencia de procesamiento de 6,7 GigaHashes por segundo (GH/s) podría aplicar fuerza bruta a dicha contraseña en siete minutos. Pero la RTX 4090 lo logra en tan solo 17 segundos.

Si bien una GPU de alta gama cuesta un poco menos de 2000 USD, incluso los atacantes que no puedan conseguir una, pueden alquilar fácilmente la potencia informática por unos pocos dólares la hora. Pero, ¿y si alquilan una docena de RTX 4090 a la vez? Eso tendría suficiente potencia para procesar filtraciones masivas de bases de datos de hash con facilidad.

El 59 % de las contraseñas se pueden descifrar en menos de una hora

Probamos la seguridad de la contraseña con algoritmos de fuerza bruta y de adivinación inteligente. Si bien la fuerza bruta repite todas las combinaciones posibles de caracteres en orden hasta que encuentra una coincidencia, los algoritmos de adivinación inteligente se entrenan con un conjunto de datos de contraseñas para calcular la frecuencia de varias combinaciones de caracteres y hacer selecciones desde las combinaciones más comunes hasta las más raras. Puedes leer más sobre los algoritmos usados en la versión completa de nuestra investigación en Securelist.

Los resultados fueron desconcertantes: un asombroso 45 % de los 193 millones de contraseñas reales que analizamos (¡es decir, 87 millones de contraseñas!) podrían descifrarse con el algoritmo inteligente en menos de un minuto, el 59 % en una hora, el 67 % en un mes, y solo el 23 % de las contraseñas podrían considerarse realmente seguras, ya que se requiere más de un año para descifrarlas.

Tiempo de descifrado Porcentaje de contraseñas que se pueden descifrar con el método dado
Fuerza bruta Adivinación inteligente
Menos de un minuto 10 % 45 %
De un minuto a una hora +10 % (20 %) +14 % (59 %)
De una hora a un día +6 % (26 %) +8 % (67 %)
De un día a un mes +9 % (35 %) +6 % (73 %)
De un mes a un año +10 % (45 %) +4 % (77 %)
Más de un año +55 % (100 %) +23 % (100 %)

Es importante tener en cuenta que descifrar todas las contraseñas de la base de datos no lleva mucho más tiempo que descifrar solo una (!). En cada iteración, habiendo calculado el hash para la siguiente combinación de caracteres, el atacante comprueba si existe el mismo en la base de datos general. Si es así, la contraseña en cuestión se marca como “descifrada”, después de lo cual el algoritmo continúa adivinando otras contraseñas.

Por qué los algoritmos de adivinación inteligente son tan efectivos

Los humanos son predecibles. Rara vez escogemos contraseñas verdaderamente aleatorias, y nuestros intentos de generarlas palidecen en comparación con las máquinas. Usamos frases, fechas, nombres y patrones comunes, precisamente lo que aprovechan los algoritmos de descifrado inteligente.

Además, el cerebro humano es tal que si le pides a un conjunto de personas que elija un número entre uno y cien, la mayoría escogerá… ¡los mismos números! El canal de YouTube Veritasium encuestó a más de 200 000 personas y descubrió que los números más populares son 7, 37, 42, 69, 73 y 77.

Resultados de la encuesta de Veritasium.

Resultados de la encuesta de Veritasium. Fuente.

Incluso cuando probamos cadenas de caracteres aleatorias, solemos usar las teclas en el medio del teclado. Se descubrió que alrededor del 57 % de todas las contraseñas que analizamos contenían una palabra del diccionario o una combinación de símbolos frecuentes. Es preocupante que el 51 % de estas contraseñas se pueden descifrar en menos de un minuto, el 67 % en menos de una hora y solo el 12 % tardó más de un año. Sin embargo, al menos solo unas pocas contraseñas consistían en una única palabra del diccionario (que podría descifrarse en un minuto). Consulta la publicación de Securelist para obtener más información sobre los patrones de contraseña que encontramos.

Los algoritmos inteligentes simplifican el trabajo de la mayoría de las contraseñas que contienen secuencias de diccionario. E incluso detectan sustituciones de caracteres, por lo que escribir “pa$$word” en lugar de “password” o “@dmin” en lugar de “admin” no hará que la contraseña sea mucho más segura. El uso de palabras y secuencias de números populares es igualmente arriesgado. En el 4 % de las contraseñas que examinamos, apareció lo siguiente en alguna parte:

  • 12345
  • 123456
  • amor
  • 12345678
  • 123456789
  • admin
  • equipo
  • qwer
  • 54321
  • contraseña

Recomendaciones

Las conclusiones de nuestro estudio práctico:

  • Muchas contraseñas de usuario no son lo suficientemente seguras; el 59 % de ellas se pueden descifrar en una hora.
  • El uso de palabras significativas, nombres y secuencias de caracteres estándar en tu contraseña reduce considerablemente el tiempo de adivinación de la contraseña.
  • La contraseña menos segura es aquella que consta completamente de números o solo palabras.

Para mantener tus cuentas seguras, ten en cuenta las siguientes recomendaciones sencillas:

Consejos