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.
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:
- Genera contraseñas seguras con Kaspersky Password Manager.
- Si decides crear una contraseña por tu cuenta, usa frases de contraseña mnemotécnicas en lugar de combinaciones de palabras significativas, nombres o secuencias de diccionario.
- Nunca uses las mismas contraseñas en diferentes sitios, ya que no todas las empresas almacenan los datos de los usuarios de forma segura.
- Nunca guardes las contraseñas en los navegadores.
- Mantén tus contraseñas almacenadas de forma segura en un administrador de contraseñas y crea una contraseña principal a prueba de descifrado.
- Comprueba qué tan segura es tu contraseña con el Comprobador de contraseñas o directamente en Kaspersky Password Manager. Identificará contraseñas poco seguras y duplicadas, comparará todas tus contraseñas con bases de datos vulneradas y te avisará si se encuentra una coincidencia.
- Utiliza Kaspersky Premium para supervisar continuamente en segundo plano todas las cuentas vinculadas a tus teléfonos o direcciones de correo electrónico, y a los de tus familiares, en busca de filtraciones de datos.
- Activa la 2FA siempre que sea posible. Por cierto, Kaspersky Password Manager también te permite guardar tokens de 2FA y generar códigos de un solo uso.