¿Cuánto tiempo tardan los hackers en descifrar los algoritmos modernos de hash?

Aunque las contraseñas siguen siendo la primera línea de defensa para proteger las cuentas de usuario contra accesos no autorizados, los métodos para crear contraseñas seguras y protegerlas evolucionan constantemente. Por ejemplo, las recomendaciones de contraseñas de NIST ahora priorizan la longitud sobre la complejidad. Sin embargo, el hashing sigue siendo imprescindible. Incluso las frases de contraseña largas y seguras deben ser hasheadas para evitar que se expongan completamente en caso de una brecha de datos, y nunca deben almacenarse en texto plano.
Este artículo analiza cómo los atacantes cibernéticos intentan descifrar contraseñas hasheadas, explora los algoritmos de hash más comunes y sus limitaciones, y discute las medidas que puedes tomar para proteger tus contraseñas hasheadas, sin importar qué algoritmo utilices.
Técnicas modernas de descifrado de contraseñas
Los actores malintencionados tienen a su disposición una variedad de herramientas y métodos para descifrar contraseñas hasheadas. Algunos de los métodos más utilizados incluyen ataques de fuerza bruta, ataques de diccionario, ataques híbridos y ataques de máscara.
Ataques de fuerza bruta
Un ataque de fuerza bruta implica intentos sistemáticos y exhaustivos para obtener acceso a una cuenta. Los atacantes emplean herramientas especializadas para probar variaciones de contraseñas hasta descubrir una combinación funcional. Aunque no es un método sofisticado, los ataques de fuerza bruta son altamente efectivos cuando se utilizan software de descifrado de contraseñas y hardware de computación potente, como unidades de procesamiento gráfico (GPUs).
Ataque de diccionario
Como su nombre lo indica, un ataque de diccionario extrae sistemáticamente palabras de un diccionario para probar variaciones de contraseñas hasta encontrar una combinación funcional. El contenido del diccionario puede incluir palabras comunes, listas específicas de palabras, combinaciones de palabras, así como derivaciones y permutaciones con caracteres alfanuméricos y no alfanuméricos (por ejemplo, reemplazar una “a” con un “@”). Los ataques de diccionario también pueden incluir contraseñas previamente filtradas o frases clave expuestas en brechas de datos.
Ataques híbridos
Un ataque híbrido combina métodos de fuerza bruta con ataques basados en diccionarios para lograr mayor agilidad y eficacia. Por ejemplo, un atacante puede usar una lista de palabras de diccionario con credenciales comúnmente usadas e integrar técnicas que incluyen combinaciones de caracteres numéricos y no alfanuméricos.
Ataques de máscara
En algunos casos, los atacantes pueden conocer patrones o parámetros específicos de contraseñas. Este conocimiento les permite usar ataques de máscara para reducir el número de iteraciones y intentos en sus esfuerzos de descifrado. Los ataques de máscara usan fuerza bruta para probar contraseñas que coinciden con un patrón específico (por ejemplo, ocho caracteres, comienza con una letra mayúscula y termina con un número o carácter especial).
Cómo los algoritmos de hash protegen contra los métodos de descifrado
Los algoritmos de hash son fundamentales en una variedad de aplicaciones de seguridad, desde la monitorización de la integridad de archivos hasta las firmas digitales y el almacenamiento de contraseñas. Aunque no son un método de seguridad infalible, el hashing es mucho mejor que almacenar contraseñas en texto plano. Con contraseñas hasheadas, puedes garantizar que, incluso si los atacantes cibernéticos obtienen acceso a las bases de datos de contraseñas, no puedan leerlas ni explotarlas fácilmente.
Por diseño, el hashing dificulta significativamente la capacidad de un atacante para descifrar contraseñas, actuando como un elemento disuasorio crítico al hacer que el descifrado sea tan intensivo en tiempo y recursos que los atacantes probablemente cambien su enfoque a objetivos más fáciles.
¿Pueden los hackers descifrar algoritmos de hash?
Dado que los algoritmos de hash son funciones unidireccionales, el único método para comprometer contraseñas hasheadas es mediante técnicas de fuerza bruta. Los atacantes cibernéticos emplean hardware especializado, como GPUs, y software de descifrado (por ejemplo, Hashcat, L0phtcrack, John The Ripper) para ejecutar ataques de fuerza bruta a gran escala, probando típicamente millones o miles de millones de combinaciones a la vez.
Incluso con estas herramientas sofisticadas, los tiempos de descifrado pueden variar significativamente según el algoritmo de hash utilizado y la longitud/combinación de caracteres de la contraseña. Por ejemplo, las contraseñas largas y complejas pueden tardar miles de años en descifrarse, mientras que las cortas y simples pueden ser descifradas de inmediato.
A continuación se presentan algunos puntos de referencia de descifrado encontrados por investigadores de Specops utilizando una GPU Nvidia RTX 4090 y el software Hashcat:
MD5
Aunque alguna vez fue considerado un algoritmo de hash de grado industrial, MD5 ahora se considera criptográficamente deficiente debido a sus diversas vulnerabilidades de seguridad; sin embargo, sigue siendo uno de los algoritmos de hash más utilizados. Por ejemplo, el popular CMS WordPress aún usa MD5 de forma predeterminada; esto representa aproximadamente el 43.7% de los sitios web impulsados por CMS.
Con GPUs y software de descifrado fácilmente disponibles, los atacantes pueden descifrar instantáneamente contraseñas numéricas de 13 caracteres o menos protegidas por el hash de 128 bits de MD5; por otro lado, una contraseña de 11 caracteres compuesta por números, caracteres en mayúsculas/minúsculas y símbolos tardaría 26,500 años.
SHA256
El algoritmo de hash SHA256 pertenece al grupo de funciones de hash Seguro 2 (SHA-2) diseñadas por la Agencia de Seguridad Nacional (NSA) y lanzadas por el Instituto Nacional de Estándares y Tecnología (NIST). Como una actualización del algoritmo SHA-1 defectuoso, SHA256 se considera un algoritmo robusto y altamente seguro, adecuado para las aplicaciones de seguridad actuales.
Cuando se usa con contraseñas largas y complejas, SHA256 es casi impenetrable mediante métodos de fuerza bruta: una contraseña hasheada de 11 caracteres con SHA256, que incluye números, caracteres en mayúsculas/minúsculas y símbolos, toma 2,052 años en descifrarse usando GPUs y software de descifrado. Sin embargo, los atacantes pueden descifrar instantáneamente contraseñas hasheadas con SHA256 de nueve caracteres que solo consisten en números o caracteres en minúscula.
Bcrypt
Los expertos en seguridad consideran que tanto SHA256 como bcrypt son algoritmos de hash suficientemente fuertes para aplicaciones de seguridad modernas. Sin embargo, a diferencia de SHA256, bcrypt refuerza su mecanismo de hashing empleando salting: al agregar un fragmento de datos aleatorios a cada hash de contraseña para garantizar su unicidad, bcrypt hace que las contraseñas sean altamente resistentes a intentos de diccionario o fuerza bruta. Además, bcrypt emplea un factor de costo que determina el número de iteraciones para ejecutar el algoritmo.
Esta combinación de salting y factor de costo hace que bcrypt sea extremadamente resistente a ataques de diccionario y fuerza bruta. Un atacante cibernético que utilice GPUs y software de descifrado tardaría 27,154 años en descifrar una contraseña de ocho caracteres compuesta por números, letras en mayúsculas/minúsculas y símbolos hasheada con bcrypt. Sin embargo, las contraseñas de bcrypt que solo contienen números o minúsculas y tienen menos de ocho caracteres son triviales de descifrar, demorando entre unas pocas horas y unos segundos.
Cómo evaden los hackers los algoritmos de hash?
Independientemente del algoritmo de hash, la vulnerabilidad común son las contraseñas cortas y simples. Las contraseñas largas y complejas que incorporan números, letras en mayúsculas y minúsculas, y símbolos son la fórmula ideal para la fuerza y resiliencia de las contraseñas. Sin embargo, la reutilización de contraseñas sigue siendo un problema significativo; una sola contraseña compartida, sin importar cuán fuerte sea, almacenada en texto plano en un sitio web o servicio mal asegurado, puede dar a los atacantes acceso a cuentas sensibles.
En consecuencia, es más probable que los atacantes obtengan credenciales filtradas y listas de contraseñas expuestas del internet oscuro que intenten descifrar contraseñas largas y complejas protegidas con algoritmos modernos de hashing. Descifrar una contraseña larga hasheada con bcrypt es prácticamente imposible, incluso con hardware y software diseñados para ese propósito. Pero usar una contraseña comprometida conocida es instantáneo y efectivo.
Para proteger tu organización contra contraseñas comprometidas, Specops Password Policy escanea continuamente tu Active Directory contra una base de datos en constante crecimiento de más de 4 mil millones de contraseñas únicas comprometidas. Contáctanos para una prueba gratuita.