Las tablas arcoíris eran un recurso utilizado para descifrar las funciones hash criptográficas y descubrir contraseñas en texto plano mediante una base de datos de autenticación precalculada . Estas soluciones empleaban un algoritmo para buscar la información necesaria para descifrar rápidamente los hashes de las contraseñas. Si bien los algoritmos modernos de salting y hash de contraseñas han dejado obsoleta en gran medida la tabla arcoíris, existen muchas aplicaciones que no utilizan estas herramientas tan accesibles y, en su lugar, recurren a contraseñas con hash simple por pereza o falta de atención a detalles importantes.
La idea de usar tablas arcoíris u otros métodos de descifrado de hashes proviene del uso de hashes de contraseñas en bases de datos de autenticación. Cualquier sistema que utilice contraseñas para la autenticación debe almacenarlas de una forma u otra. En el peor de los casos, el desarrollador de la aplicación almacena las contraseñas en texto plano, lo que deja las contraseñas de todos los usuarios registrados extremadamente vulnerables al acceso no autorizado por parte de hackers o incluso administradores internos del sistema. Si bien esta mala práctica se conoce desde hace décadas, sigue siendo común en las aplicaciones en línea.
Una práctica ligeramente inútil que algunos programadores realizan es realizar un único cálculo hash de la contraseña. Existen algoritmos de hash comunes que convierten las contraseñas en lo que parecen ser cadenas de caracteres aleatorias, pero en realidad son muy fáciles de aplicar ingeniería inversa con una tabla arcoíris. Al autenticarse en un sistema, la contraseña que se introduce se ha procesado utilizando el mismo algoritmo que se utilizó para almacenarla en la base de datos. Si los hashes coinciden, la autenticación se realiza correctamente. Aquí es donde entra en juego una tabla arcoíris.
Una tabla arcoíris almacena todos los hashes unidireccionales de contraseñas de texto plano, desde 1 carácter hasta 7 u 8 caracteres. (Una tabla arcoíris de 8 caracteres para un algoritmo de hash simple ocupará hasta 32 petabytes de espacio en la base de datos). Cuando un hacker roba un caché de hashes de contraseñas simples, puede consultar el valor del hash en la tabla arcoíris para encontrar la contraseña de texto plano.
Con la llegada del salting de contraseñas de hasta 32 caracteres, las tablas arcoíris ya no existen para realizar este tipo de búsquedas (Fuente: Las tablas arcoíris han muerto ). Más importante aún, muchos binarios estándar realizan un hash iterativo de contraseñas. Esto consiste en que una contraseña con salting se somete a un hash repetido un número determinado de veces, y el valor hash final, por ejemplo, del hash número 764 de la contraseña original, se almacena en la base de datos para su posterior comparación al autenticarse en la aplicación. Las tablas arcoíris no pueden descifrar estas contraseñas.
Cuando los hackers roban un caché de contraseñas, pueden determinar rápidamente si estas fueron salteadas y hasheadas N veces, usando una tabla arcoíris para buscar las 100 contraseñas principales. Si encuentran una coincidencia, pueden trabajar a la inversa para determinar si los programadores fueron perezosos y no las saltearon ni las hashearon iterativamente, o ambas cosas. Con demasiada frecuencia, los desarrolladores se han saltado estos pasos importantes, por lo que ahora los hackers obtienen sus contraseñas mediante ingeniería inversa en una simple tabla arcoíris.
Las tablas arcoíris son una forma rápida y eficaz de descifrar contraseñas sin sal y con un solo hash. Si desarrolla una aplicación en su PYME, asegúrese de preguntar cómo se almacenan las contraseñas. Pregunte al desarrollador el tamaño de su SALT (8 es pequeño, 32 caracteres son suficientes) y luego pregunte cuántas iteraciones realiza en las contraseñas antes de almacenar el valor hash. LastPass realiza el hash de contraseñas más de 100,000 veces en la contraseña maestra. Esto puede ser excesivo para su organización, pero debería requerir entre unos cientos y miles.
Las funciones comunes de salting y hash incluyen: “ Argon2 , scrypt , bcrypt y PBKDF2 ”.
Haga lo que haga, considere esto como un requisito fundamental en el desarrollo de su aplicación. Si no puede integrar el SSO en su esquema de contraseñas y necesita almacenar hashes de contraseñas, deberá aplicar sal y hashear iterativamente su base de datos de contraseñas utilizando las herramientas mencionadas en este artículo.
Fuentes:
Lecturas adicionales:
Cómo proteger su sitio web contra las filtraciones de datos
Cifrado, hash y salting: ¿cuál es la diferencia?
Términos relacionados:
Descubra y comparta las últimas tendencias, consejos y mejores prácticas en ciberseguridad, junto con nuevas amenazas a las que debe prestar atención.
Autora: Katie Boquetti | Editorial: Craig Taylor Editorial de Craig Taylor: Lo sabemos desde hace tiempo...
LEER MÁS
Autora: Katie Boquetti | Editorial: Craig Taylor Editorial de Craig Taylor: Un CAPTCHA debería comprobar si...
LEER MÁSObtenga una visión más clara de los riesgos humanos, con un enfoque positivo que supera las pruebas de phishing tradicionales.
