- Tabla arco iris
-
Las tablas Rainbow son tablas de consulta que ofrecen un compromiso entre tiempo y espacio para obtener claves en texto simple a partir del resultado de una función de hash.
Contenido
Hash
Hash es una función que se aplica a un archivo de cualquier tipo, ya sea documentos, fotos, música,... y de la cual se obtiene una clave que representa de manera única a ese archivo.
Este método se utiliza mucho en las descargas de Internet para comprobar la integridad del archivo, es decir, poder comprobar si en la descarga del fichero ha habido algún tipo de error. Para ello se comprueba a ver si el hash obtenido del fichero es igual tanto al principio de la descarga (normalmente los autores de los archivos suelen indicarlo) como al final.
Las funciones Hash más importantes son:
Funcionamiento
A continuación se explica mediante un ejemplo el funcionamiento de las Tablas Rainbow. El ejemplo consiste en averiguar cuál es la contraseña que produce el hash re3xes
- Lo primero consiste en aplicar la reducción (aplicar una función hash pero en sentido contrario) que se utilizó por última vez en la tabla y comprobar si la contraseña obtenida aparece en la última columna de la tabla (paso 1).
- Si no resulta (en nuestro caso, rambo no aparece en la tabla) se vuelve a repetir el proceso, pero en este caso con las dos últimas reducciones (paso 2).
- Si en este proceso se fallara de nuevo, se volvería a repetir el proceso pero aplicando 3 reducciones, después 4 reducciones y así hasta que se encontrase la contraseña. En el caso de no ser así, el ataque habría fracasado.
- Si el proceso ha sido positivo (paso 3, en este caso linux23 aparece en la tabla al final de la cadena), la contraseña se recupera en el principio de la cadena que produce linux23. Aquí nos encontramos con passwd al principio de la cadena almacenada en la tabla.
- En este punto (paso 4) se genera una cadena y en cada iteración se compara el hash con el que queremos obtener. En este caso nos encontramos con el hash re3xes en la cadena. Por tanto la contraseña actual (cultura) genera este hash que es la que se busca.
Es importante saber que las tablas rainbow son creadas a partir de una función de hash específica, por ejemplo, para romper los hashes de MD5 necesitaremos unas tablas rainbow basadas en hashes de MD5 y para SHA, tablas rainbow SHA.
Esta técnica fue desarrollada por Philippe Oechslin como un método basado en el compromiso espacio-tiempo o tiempo-memoria.
Aplicaciones
Los programas que utilizan las tablas rainbow siempre han de utilizarse como auditoria de tus contraseñas en lo que se llama hacking ético.
Un ejemplo de herramienta que utiliza estas tablas es el programa Ophcrack, el cual permite crackear las contraseñas de Windows. Para evitar que aplicaciones como esta no rompan contraseñas tan fácilmente, es aconsejable utilizar Salts.
Salts
En criptografía, se denomina salt a un fragmento aleatorio (caracteres, números...) que se le añade a un hash dado para conseguir que si dos usuarios generan una misma contraseña, su hash no sea idéntico y con ello evitar problemas de seguridad.
Las sales también ayudan contra las tablas rainbow ya que extienden la longitud y con ello la complejidad de la contraseña.
Recomendaciones
- Desactivar los hashes LM de Windows.
- Utilizar Salts.
- Utilizar contraseñas complejas.
A la hora de crear contraseñas, es importante que se visite esta página y se lean las importantes recomendaciones que hay en ella.
Enlaces externos
Rainbow Crack página donde se puede descargar el programa para crear Tablas Rainbow.
Tablas Rainbow aquí se pueden descargar tablas creadas, las cuales pueden llegar a ocupar 80 GB.
Ophcrack programa para poder utilizar las Tablas Rainbow.
Wikimedia foundation. 2010.