¿Que es una/un ataque Rainbow Table (tabla arco iris)?

Publicado el 04 octubre 2010 por Juan Rodriguez @subinet


Buen día y buen Lunes a todos amigos y amigas, estoy preparando un post sobre el Evento al que asistí este pasado Jueves con vídeos y fotografías incluidas y que estuvo genial CheckPoint 2010, pero mientras os voy dejando por aquí algo mas sobre seguridad, hoy les hablo de las Rainbow Table (Tabla Arco Iris) de la que ya vimos algo por encima aquí.

Una Rainbow Table suele utilizarse para romper contraseñas que se han cifrado en un hash. Las Tablas de arco iris son un conjunto enorme de hashes precalculados para combinarlos con casi todos los posibles caracteres especiales, letras y símbolos. Los ataques de contraseña que utilizan métodos de fuerza bruta para romper contraseñas pueden calcular los valores hash sobre la marcha, pero con el uso de las Rainbow Table, los datos de todo el conjunto de los valores hash están fácilmente disponibles en la memoria de acceso aleatorio (RAM).

El tamaño del archivo de la tabla del Rainbow Table depende de si desea cargar los valores hash de las letras justas, letras y números, o todos los caracteres. El tamaño del archivo puede ser una consideración importante debido a la gran cantidad de datos contenidos en las Rainbow Table. Una Rainbow Table puede requerir varios gigabytes de espacio de almacenamiento. Las Rainbow Table grandes pueden contener miles de millones de hashes.

Las Rainbow Table son específicas de los caracteres utilizados en la contraseña que se agrieta y la longitud de la contraseña. Esto significa que si una contraseña es demasiado larga o utiliza un carácter que no está en la Rainbow Table, entonces no puede ser rota con la tabla específica.

Los atacantes suelen utilizar las Rainbow Table en grandes bases de datos de hashes de contraseñas robadas. No es práctico para que los atacantes utilicen Rainbow Table en la misma máquina comprometida, porque es más fácil de usar un software de restablecer la contraseña. Una posible defensa contra los ataques de la Rainbow Table es contraseñas almacenadas “salting”.

Salting es una técnica para que sea difícil descubrir contraseñas a través de la incorporación de un prefijo especial. Un administrador de contraseñas mediante la adición de salting de una cadena aleatoria de caracteres para las contraseñas antes del hashing.

A menos que el atacante conozca el valor de la salt que se elimina, no será capaz de revelar la contraseña de verdad. Tratando de romper una contraseña con salt aumenta el tiempo y la complejidad requerida, es de esperar a gran escala que sea poco práctico. El uso de salting también se le hacen otros ataques por contraseña, tales como ataques de diccionario y fuerza bruta, que requieren más tiempo para romper hashes.