2009-06-18 10 views
49

Estaba leyendo algunos artículos sobre sales y hashes de contraseñas y algunas personas mencionaron ataques de arcoíris. ¿Qué es exactamente un ataque de arcoíris y cuáles son los mejores métodos para prevenirlo?¿Qué es exactamente un ataque de arcoíris?

Respuesta

54

El artículo de la wikipedia es un poco difícil de entender. En pocas palabras, puede pensar en una Tabla Arcoiris como un gran diccionario con hashes precalculados y las contraseñas desde las cuales se calcularon.

La diferencia entre Rainbow Tables y otros diccionarios está simplemente en el método de cómo se almacenan las entradas. La tabla Rainbow está optimizada para hashes y contraseñas, y de este modo logra una gran optimización del espacio mientras mantiene una buena velocidad de búsqueda. Pero, en esencia, es solo un diccionario.

Cuando un atacante le roba una larga lista de hash de contraseñas, puede verificar rápidamente si alguno de ellos está en la tabla Rainbow. Para aquellos que sí lo son, Rainbow Table también contendrá la cadena de la que fueron extraídos.

Por supuesto, hay demasiados valores hash para almacenarlos todos en una tabla Rainbow. Entonces, si un hash no está en la tabla en particular, el hacker no tiene suerte. Pero si sus usuarios usan palabras simples en inglés y las ha procesado solo una vez, existe una gran posibilidad de que una buena tabla Rainbow contenga la contraseña.

+2

Aunque no es la opción popular, esto es lo que estaba buscando. Tengo un poco de experiencia con sales y contraseñas de contraseñas, pero por alguna razón no había escuchado sobre el ataque a la mesa arcoíris hasta hoy. Todas estas respuestas realmente ayudaron a aclararlo. Gracias – Dusty

+0

¿Qué quieres decir con "y has hasheado una sola vez"? Puedo entender el valor de la salazón de sus contraseñas, pero ¿qué ganancia puedo obtener recursivamente hashing n-times (como he visto a veces)? – Jeach

+1

@Jeach - Hace que controlar cada contraseña sea más lento que la fuerza bruta, y necesitaría una tabla Rainbow que se haya creado teniendo en cuenta el número exacto de hash recursivos. –

15

Es cuando alguien usa un Rainbow table para descifrar las contraseñas.

Si le preocupa esto, debe usar Salt. También hay un Stack Overlow question que podría ayudar a entender la sal un poco mejor que Wikipedia ...

1

Hablando en términos generales, encripta una gran cantidad de posibles cadenas cortas de texto sin formato (es decir, para contraseñas) y almacena los valores encriptados junto con el texto sin formato. Esto hace que (relativamente) sencillo buscar simplemente el texto sin formato cuando tiene el valor encriptado.

Esto es más útil para contraseñas de contraseña débiles y/o sin sal. Un ejemplo popular es el LAN Manager hash, utilizado por versiones de Windows hasta XP para almacenar contraseñas de usuario.

Tenga en cuenta que una tabla rainbow pre calculada incluso para algo tan simple como el hash LM requiere mucho tiempo de CPU para generar y ocupa bastante espacio (del orden de 10s de gigabytes IIRC).

1

Las tablas del arco iris básicamente permiten que alguien almacene un gran número de hashes precalculados de manera factible.

Esto hace que sea fácil descifrar sus contraseñas hash, ya que en lugar de realizar un montón de funciones hash, el trabajo ya se ha realizado y prácticamente solo tienen que hacer una búsqueda en la base de datos.

La mejor protección contra este tipo de ataque es usar una sal (caracteres aleatorios) en su contraseña. es decir, en lugar de almacenar md5 (contraseña), almacenar md5 (contraseña + sal), o incluso mejor md5 (salt + md5 (contraseña)).

Dado que incluso con las tablas del arcoíris, será casi imposible almacenar todos los hashes salados posibles.

BTW, obviamente tiene que almacenar su sal con su hash para que pueda autenticar al usuario.

2

Tarde para la fiesta, pero también sabía que las tablas del arco iris eran un método de ataque contra las contraseñas hash/sin sal. Sin embargo, en Twitter recientemente se compartió http://codahale.com/how-to-safely-store-a-password/ y, según sus necesidades e inquietudes, es posible que no pueda acceder al almacenamiento seguro de contraseñas.

Espero que esto sea informativo para usted.