Tiempo y valor para hackear una contraseña
por Aixa Chaves
Los detalles
En 2012 tener una contraseña de 10 caracteres con números, minúsculas y mayúsculas era bastante recomendable, los hackers podían tardar 106 años en averiguarla por métodos de fuerza bruta.
En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso.
Hoy en día, la cosa ha cambiado mucho. La potencia de las tarjetas gráficas con las que es posible acelerar el proceso ha crecido de forma extraordinaria, acortando considerablemente el tiempo para averiguar una contraseña. De hecho, asusta saber que esa misma contraseña de 10 caracteres con minúsculas, mayúsculas y números, caería en 3 semanas en el año 2022. En caso de usar sólo minúsculas y mayúsculas serían 3 días, cuando sólo sean minúsculas en 4 minutos y si fueran números en 0 minutos.
Entre más corta (menos caracteres) y débil (sin caracteres especiales) sea una contraseña, esos tiempos se van reduciendo drásticamente desde un par de horas a 0 minutos (inmediato).
Los datos se basan en cuánto tiempo le tomaría a un hacker de presupuesto de consumidor descifrar el hash de su contraseña usando una computadora de escritorio, antes se consideraba con una tarjeta gráfica de primer nivel, ahora contratando poder de procesamiento gráfico en la nube.
Las conclusiones son evidentes, lo que entonces creíamos que era una contraseña fuerte quizás no lo sea tanto ahora.
La empresa de ciberseguridad Hive Systems lleva tiempo elaborando estos estudios, y en los últimos años se ha podido ver cómo efectivamente la recomendación es cada vez más exigente para los que crean nuevas contraseñas.
Como indican en Hive Systems, las modernas tarjetas gráficas siguen siendo una buena forma de tratar de «romper» contraseñas, pero si uno realmente quiere acortar tiempos, lo ideal es romperlas «en la nube».
De hecho, todos los datos utilizados aquí se refieren a ese método. Los tiempos para el año 2022 se basan en el uso de 8 tarjetas gráficas NVIDIA A100 Tensor Core GPUs en la plataforma Amazon Web Services a través de sus instancias P4 de EC2.
El costo de alquilar una hora de esas instancias es de 32,77 dólares, pero claro, se podrían combinar varias. Esos tiempos son además los máximos posibles, es muy probable que acabáramos antes si usáramos más instancias o de mayor poder.
Si no quieres gastar tanto, no pasa nada: servicios como «vast.ai» permiten alquilar 8 tarjetas gráficas RTX 3090 por 5,80 dólares la hora —el precio varía según la demanda—, y con ellas también es posible hacer ataques de fuerza bruta realmente potentes. Suponemos que en pocos meses se ofrecerán las 4090, que son unas bestias rompiendo contraseñas, y multiplican por dos o más el rendimiento de las 3090 en estos escenarios.
Eso deja claro que un hacker motivado (y con fondos) puede acabar rompiendo contraseñas que creíamos razonablemente fuertes.
La fuerza relativa de una contraseña contra un intento de descifrado de fuerza bruta dependerá de la longitud y la complejidad de la contraseña.
De hecho, lo de usar números, mayúsculas y minúsculas ya no es suficiente, ahora es imprescindible:
1) Usar una contraseña de al menos 12 caracteres o más. En las condiciones presentes, tomaría 200 años descifrarla.
2) Usar además caracteres especiales para crear contraseñas mucho más fuertes. Aumentaría el tiempo de descifrado a 3.000 años.
Adicionalmente:
3) Usar un gestor de contraseñas confiable como la aplicación el Autenticador de Google
4) Usar un sistema de autenticación en dos pasos (2FA). Excelente opción si se encuentra dentro del país, porque la mayoría de estos sistemas utilizan mensajes de texto SMS para enviar el código de autenticación, sin embargo, si sale del país va a necesitar de un servicio de itinerancia (roaming – red telefónica) para poder acceder a dicho mensaje. Aunque no es usual, existe la posibilidad de que algunas plataformas le ofrezcan la opción de enviar por correo el código, en cuyo caso, bastará con que cuente con Internet vía Wi-Fi.
Un poco de contexto
Antes los datos se estimaban en el tiempo que le tomaría a un hacker de presupuesto de consumidor descifrar el «hash de su contraseña» usando una computadora de escritorio con una tarjeta gráfica de primer nivel. Ahora las mejoras en la potencia de procesamiento y la posibilidad de contratar más poder en la nube facilitan considerablemente la tarea del descifrado.
En el contexto de las contraseñas, un «hash» es una versión codificada de texto que se puede reproducir si sabe qué software de hash se utilizó. En otras palabras, si hago un hash de la palabra «contraseña» usando el software de hashing MD5, el hash de salida es «5f4dcc3b5aa765d61d8327deb882cf99». Ahora, si codifica la palabra «contraseña» con el software de hash MD5, también obtendrá «5f4dcc3b5aa765d61d8327deb882cf99».
Ambos sabemos en secreto que la palabra «contraseña» es nuestro código secreto, pero cualquier otra persona que nos mire solo ve «5f4dcc3b5aa765d61d8327deb882cf99». Por esta razón, las contraseñas que se usan en los sitios web se almacenan en servidores como hash en lugar de texto sin formato como «contraseña», de modo que, si alguien las ve dentro o fuera de la organización, en teoría no sabría la contraseña real.
No puedes hacer lo contrario. Un resumen de hash como «5f4dcc3b5aa765d61d8327deb882cf99» no se puede calcular a la inversa para generar la palabra «contraseña» que se usó para crearlo. Este enfoque unidireccional para las funciones hash es por diseño. Entonces, ¿cómo los piratas informáticos que roban hashes de sitios web finalmente terminan con una lista de contraseñas de la vida real?
Los piratas informáticos resuelven este problema descifrando las contraseñas. En este contexto, descifrar significa hacer una lista de todas las combinaciones de caracteres en su teclado y luego codificarlas como hash. Al encontrar coincidencias entre esta lista y los hashes de las contraseñas robadas, los piratas informáticos pueden descubrir su verdadera contraseña, permitiéndoles iniciar sesión en sus sitios web favoritos. Y si usa la misma contraseña en varios sitios, se encontrará en un mal momento.
Originalmente, las tarjetas gráficas, también llamadas como GPU (Unidad de Procesamiento Gráfico), se crearon para hacer que las imágenes, los videos y los juegos se carguen más rápido en la pantalla de su computadora. Resulta que también son excelentes para extraer criptomonedas y calcular hashes.
Por otro lado, disponemos de una herramienta popular para hashing que se llama Hashcat, antes de código propietario, hoy de código abierto, que se anuncia como «Recuperación Avanzada de Contraseñas» en su plataforma web. Hashcat incluye funciones hash, como MD5, al tiempo que le permite usarlas rápidamente y ver qué tan rápido fue capaz de hacerlo.
Es posible, para los expertos en recuperación de contraseñas, probar su hardware en ejercicios reales de hashing, registrar sus resultados y compartirlos como métricas de rendimiento o puntos de referencia, con otros expertos en ciberseguridad.
Porque, así como el hardware prospera, también avanzan los procesos de hashing, no sería justo actualizar uno y no el otro.
Es cierto que las tarjetas gráficas o GPU actuales pueden generar hashes MD5 muy rápidamente, pero este estándar para codificar contraseñas debería estar en desuso desde hace un tiempo. Ya hay otras funciones de hash que hacen que el proceso sea más lento por diseño, es decir, mejores, utilizando el mismo poder de procesamiento. Por ejemplo, actualmente hay un gran contingente de servidores que codifica sus contraseñas con bcrypt, mientras que, otras soluciones de almacenamiento de contraseñas utilizan un enfoque hash llamado PBKDF2 (una función de derivación de claves) con una alternativa hash fuerte llamada SHA-256; ambos estándares superan considerablemente bien al MD5.
Sin embargo, todavía hay una cantidad sorprendente de servidores, tanto en la esfera pública como en la privada, que continúan utilizando MD5 y SHA-1, por eso, es mejor curarse en salud y establecer una contraseña fuerte de al menos 12 caracteres.
El mayor problema consiste en el escenario donde los usuarios reutilizan las mismas contraseñas para sus inicios de sesión como banca, gobierno, instituciones, empresas, mensajería privada, correo electrónico, redes sociales, entretenimiento, foros, periódicos, restaurantes y etc. Porque bastará encontrar los servidores más vulnerables en la codificación de contraseñas (hash MD5) para descifrar cual es la contraseña (texto) y poder utilizarla cómodamente en los otros servicios, aún cuando sus servidores tengan funciones hash más avanzadas, el texto de la contraseña ya se conoce.
Referencias:
Javier Pastor – Xataka.
Hive Systems.
Detalles: Enero 2023.
Autor: Canal iSocial50.