Esta es la razón por la que muchos sitios exigen contraseñas de al menos 8 caracteres

Las contraseñas cortas y simples se pueden descifrar en cuestión de segundos, pero las largas y complejas pueden llevar trillones de años.

Eso es lo que indica la firma de ciberseguridad Hive Systems, que ha publicado un estudio sobre el tiempo que se tarda en descifrar contraseñas en función de su longitud y complejidad.

¿Cómo es el proceso de descifrado de contraseñas?

Para el estudio, Hive Systems realizó pruebas para determinar la rapidez con la que un ciberdelincuente «medio» — es decir, alguien que utiliza su propio ordenador de sobremesa con «una tarjeta gráfica de gama alta» — puede descifrar contraseñas de diferentes longitudes y complejidades.

Los investigadores de la empresa explican cómo es el proceso de cifrado y descifrado de las contraseñas. Comienza con un proceso llamado «hash», un algoritmo que utilizan los servidores para ocultar las contraseñas de los usuarios y que estas no se almacenen de manera visible.

Si eliges como contraseña la palabra «password» (¡mala idea), una función de hash popular como MD5 producirá la siguiente cadena de caracteres: “5f4dcc3b5aa765d61d8327deb882cf99.” La idea es que si alguien acceder al servidor y obtiene la lista de contraseñas almacenadas, sólo verá una mezcla de letras y números, que es el resultado de la función de hash.

El resultado de un hash es irreversible, porque se crean con algoritmos unidireccionales. Es decir, a partir de un hash no puedes deducir cuál es la contraseña original.

Pero los ciberdelincuentes pueden hacer listas de todas las combinaciones posibles de caracteres y, a continuación, hacer un hash de esas combinaciones. De esa forma, los atacantes sólo tienen que buscar las coincidencias de los hash de las contraseñas con su lista para determinar las contraseñas originales.

Descifrando contraseñas en 2022

Una contraseña de 8 caracteres — con una buena mezcla de números, letras mayúsculas, minúsculas y símbolos — podía ser descifrada en 8 horas en 2018.

Esto se debe a que, en 2018, se consideraba que un ciberdelincuente medio podía utilizar una tarjeta RTX 2080, con una capacidad para calcular 37.000 millones de hash por segundo.

Tiempo que requiere calcular hashes MD5 según la complejidad con RTX 2080 GPU

Sin embargo, en 2022, es posible utilizar la potencia de los proveedores de cloud computing para reducir el tiempo a solo 39 minutos.

Por ejemplo, el alquiler de 8 GPUs NVIDIA A100 Tensor Core en Amazon («p4d.24xlarge») cuesta sólo 32,77 dólares por hora. Con esta potencia, es posible calcular 523.500 millones de hash por segundo.

Incluso con el poder del cloud, descifrar una contraseña de 18 caracteres — que utiliza una mezcla de números, letras minúsculas/mayúsculas y símbolos — podría llevar hasta 438 billones de años según Hive Systems.

Tiempo que requiere calcular hashes MD5 según la complejidad con Amazon (8 x A100 GPUs)

Aunque las GPUs pueden generar hashes MD5 muy rápidamente, otras funciones de hash hacen el proceso lento por diseño.

Aunque todavía hay un número sorprendente de sitios que utilizan MD5, hay una tendencia a hacer hash de las contraseñas con bcrypt y, para esta función, los tiempos aumentan considerablemente, como se puede ver en esta tabla.

Tiempo que requiere calcular hashes bcrypt según la complejidad con RTX 3090 GPU

Tiempo que requiere calcular hashes bcrypt según la complejidad con Amazon (8 x A100 GPUs)

Conclusiones

El estudio ha revisado los robos de contraseñas desde 2007 hasta la actualidad publicadas a través de HaveIBeenPwned, para ver qué han intentado descifrar los atacantes y si eso ha cambiado con el tiempo.

En general, los inicios de sesión en sitios web que a la gente probablemente le importan menos, como foros y restaurantes, utilizaban y siguen utilizando MD5 y SHA-1. Eso es un problema importante, porque la mayoría de la gente reutiliza las mismas contraseñas en sitios más sensibles como bancos online, trámites con la administración pública, e-mail o redes sociales.

Las soluciones de almacenamiento de contraseñas como LastPass, 1Password y Bitwarden utilizan un enfoque de hash llamado PBKDF2 con un hash fuerte alternativo a MD5 llamado SHA-256. Mirando los tiempos de hashing con una GPU RTX 3090, se obtienen estos tiempos.

Tiempo que requiere calcular hashes PBKDF2 según la complejidad con RTX 3090 GPU

En definitiva, la mejor forma de prevenir que averigüen tu contraseña es utilizar contraseñas largas y complicadas que tardan mucho tiempo en descifrarse. Por ello, se suele requerir contraseñas de, al menos, 8 caracteres con una combinación de letras mayúsculas/minúsculas, números y símbolos.

No obstante, la tendencia en las empresas empieza a ser pedir a sus empleados que utilicen frases, en lugar de palabras, como contraseñas, para así aumentar la longitud de las mismas, así como utilizar el doble factor de autenticación para que necesites, además de la contraseña, otro token de seguridad.

Por cierto, aunque sea una obviedad, el informe también recomienda encarecidamente no reutilizar contraseñas para varios sitios web. Si lo haces y consiguen descifrar tu contraseña para un sitio web, todas tus cuentas estarán en peligro.