Saltar al contenido principal

Ataques de tablas arcoíris - Descifrado de contraseñas hasheadas

Lectura de 2 min aprox.

Una tabla arcoíris (rainbow table) es una tabla precalculada que se utiliza para invertir la búsqueda de la contraseña original a partir de un valor hash. Al crear de antemano una tabla de correspondencia entre una gran cantidad de contraseñas y sus valores hash, se puede identificar rápidamente la contraseña original cotejándola con un hash filtrado. Es un método de ataque eficiente que aprovecha el equilibrio entre tiempo y espacio, y a fecha de 2025 sigue siendo una amenaza vigente contra los sistemas que usan hashes rápidos como MD5 o SHA-1.

Casos de uso reales

«Cuando investigamos los hashes de contraseñas de una base de datos filtrada, descubrimos que se usaban hashes MD5 sin sal, y una tabla arcoíris recuperó alrededor del 70 % de las contraseñas en cuestión de minutos. Migrar a bcrypt es una prioridad urgente.»

Cómo funcionan las tablas arcoíris

Contraseña en texto plano
Función hash
Función de reducción
Repetir la cadena
Almacenar solo los puntos inicial y final

Cómo funcionan las tablas arcoíris y ejemplos numéricos

Una tabla arcoíris almacena cadenas creadas aplicando alternadamente una función de reducción y una función hash. Una tabla arcoíris MD5 para una contraseña de 8 caracteres de letras minúsculas y dígitos (unas 2,8 billones de combinaciones) se puede construir con unos 460 GB, y el descifrado se completa en cuestión de minutos. Por otro lado, para una contraseña de 12 caracteres con letras mayúsculas y minúsculas, dígitos y símbolos, el tamaño de la tabla se dispara a cientos de petabytes, lo que la hace prácticamente imposible de construir. Es decir, basta con aumentar la longitud y la variedad de caracteres de la contraseña para que la eficacia de un ataque con tabla arcoíris disminuya drásticamente.libros sobre descifrado de contraseñas (Amazon) permiten profundizar en los detalles técnicos.

Contramedidas frente a las tablas arcoíris

La contramedida más eficaz es añadir una sal (datos aleatorios) a la contraseña antes de aplicarle el hash. Cuando se añade una sal, incluso contraseñas idénticas generan valores hash distintos para cada usuario, lo que inutiliza las tablas precalculadas. En el almacenamiento moderno de contraseñas, los algoritmos de hash como bcrypt y Argon2, que añaden una sal automáticamente y permiten ajustar el coste de cálculo, son el estándar. Los desarrolladores de servicios no deben usar hashes rápidos como MD5 o SHA-1 para almacenar contraseñas.

Defensas del lado del usuario

Una contraseña aleatoria de 16 caracteres o más tiene una probabilidad astronómicamente baja de estar incluida en una tabla arcoíris, lo que le otorga una gran resistencia frente a este ataque. Aumentar la entropía de una contraseña es la mejor defensa contra cualquier ataque sin conexión.libros sobre protección de contraseñas (Amazon) también son una referencia útil.

Términos relacionados

¿Te resultó útil este artículo?

XHatena