9 de octubre de 2010

Ataques por Diccionario (2): ¿Que son lo "Rainbow Tables" o Tablas de Arcoiris?

Debido al interés que ha creado el anterior artículo "Ataques por Diccionario (Dictionary Attack) ¿Como prevenirlos?" he llegado a la conclusión de que es necesario explicar un término que tienen mucho que ver con los tipos de ataques mencionados en el artículo: ¿Qué son los Rainbow Tables?

Algunos lectores me expresaron que los ataques por diccionario usualmente estaban limitados a una serie claves "débiles" que los usuarios no deberían usar. Eso es cierto solo en parte, ya que depende del tipo de diccionario que se use, y es precisamente aquí en donde entra la definición de los "Rainbow Tables".

Los "Rainbow Tables", son un conjunto de tablas de "hashing" muy extensas, en las que se utilizan todo tipo de combinaciones de caracteres especiales junto con una serie de claves de acceso comunes convirtiéndolas en no tan comunes. Imaginemos una de las claves mas inseguras que se puede utilizar como por ejemplo "administrator", y reemplacemos simplemente la vocal "a" por el símbolo "@". Obtendríamos como resultado "@dministr@tor" lo que ya empieza a ser una clave algo más compleja de adivinar. Así podemos seguir cambiando la "o" por un cero, la "i" por un uno o una L, etc...

Ya vamos entendiendo el porqué del uso de la palabra "rainbow" (en castellano arcoiris), debido a que la idea es producir una gran cantidad de combinaciones de "hashes" que utilicen inclusive caracteres especiales, así como se combinan los diferentes colores del arcoiris para producir cualquier color visible.

Los Rainbow Tables tienen un solo problema, puede llegar a tener tamaños superiores a los 2 GigaBytes, por lo que normalmente no se encuentran versiones de los mismos en Internet como en el caso de los diccionarios de "hashing" simples, por lo que son utilizados casi siempre en el equipo del atacante una vez que tiene los hash en su poder. Sin embargo, puedes bajar un generador de "Rainbows Tables" para comprobar la eficiencia de las claves y los métodos de defensa que utilizas aqui.

Cómo en el artículo anterior la mejor técnica de prevención consiste en el "Salting" o uso del "Salt Key" que como también mencionamos consiste en agregar a las claves antes de calcular los "hash" un prefijo o sufijo que deberá agregarse cada vez que se quiera verificar la autenticidad de la misma.

Hasta la siguiente...
\backslash


No hay comentarios.:

Entradas populares