Recientemente, en una conferencia en Oslo, se demostró que es posible romper contraseñas de 8 caracteres en un período de 5 horas y media.
En una conferencia realizada en Noruega, se presentó un cluster de 25 AMD Radeon con GPU donde mediante la herramienta Hashcat pudo observarse una capacidad de cómputo de 348.000 millones de intentos por segundo sobre contraseñas con hashing NTLM y 63.000 millones de pruebas sobre claves con hashing mediante SHA-1. NTLM es un protocolo de Microsoft que provee autenticación, integridad y seguridad a los usuarios. Asimismo, SHA-1 es una función criptográfica de hashing utilizada en gran medida por aplicaciones y diferentes protocolos.
¿Cómo se realiza el descifrado de la contraseña?
Existen dos mecanismos conocidos que son utilizados para quebrar una contraseña. El primero de ellos es mediante ataques de fuerza bruta y el otro es mediante ataques de diccionario. El ataque de fuerza bruta consiste en probar posibles contraseñas realizando el proceso de hashing sobre cada intento y comparando contra el hashing de referencia (corresponde a la clave que se vulnera). En el caso de ataques de diccionario, se cuenta con tablas previamente computadas con claves comunes o frecuentemente utilizadas. Este tipo de ataque suele ser más rápido ya que no es necesario computar el hashing en cada uno de los intentos y apela a que en muchos casos los usuarios utilizan contraseñas simples.
Debido a que la tecnología de hoy en día es capaz de elevar las tasas de pruebas a valores muy altos, los especialistas en criptografía han diseñado algoritmos de hashing conocidos como “lentos”. De esta forma el tiempo del proceso de hashing es mayor y dificulta los ataques a los ciberdelincuentes en los ataques de fuerza bruta. No obstante, el cómputo extra necesario para los algoritmos de hashing “lentos” es casi imperceptible para los usuarios que hagan uso de los mismos. Sin embargo, mediante el sistema antes descripto, se demostró que tienen un gran impacto sobre las técnicas de de fuerza bruta disminuyendo en gran medida el rendimiento. Específicamente, el sistema posee un rendimiento de 77 millones de intentos por segundo sobre md5crypt, 364.000 sobre sha512crypt y apenas 71.000 intentos por segundo sobre bcrypt.
¿Qué se debe hacer?
Es importante comenzar a considerar que es necesario utilizar mecanismos de hashing más complejos. Aquellos servicios que se encuentran en Internet y puedan ser susceptibles a ataques de fuerza bruta deben considerar la utilización de algoritmos de hashing más complejos para disminuir la posibilidad de un ataque exitoso. Asimismo, en el pasado, hemos hablado sobre el descubrimiento de una contraseña de seis caracteres en 4 segundos. Sin embargo, en la actualidad, los usuarios deben considerar, en lo posible, la utilización de contraseñas de 10 caracteres o más debido a la capacidad de procesamiento existente. Asimismo, en la medida de lo posible, se deben utilizar diferentes contraseñas para cada servicio que se utilice. Según nuestros estudios, las contraseñas siguen siendo el punto débil de los usuarios, por lo que recomendamos la lectura de nuestro post ¿Qué hacer con tantas contraseñas? para obtener más información al respecto.
Fernando Catoira
Analista de Seguridad