¿Sabes qué son las tablas arcoíris y cuál es su uso en criptografía? El almacenamiento y la gestión de contraseñas son tareas muy usuales en programación, ya que muchas aplicaciones cuentan con servicios de registro e inicio de sesión. Para guardar las contraseñas de los usuarios de forma segura en las bases de datos de una aplicación, lo que se hace es generar y almacenar la función hash de la misma. No obstante, este procedimiento se debe hacer correctamente para que la información se guarde de forma verdaderamente confidencial.
Para ello, es necesario escoger un tipo de función hash que sea especial para contraseñas y, además, prever que los usuarios no elijan términos demasiado fáciles, como «hola«, «1234«, «0000«, etc., ya que estos son imposibles de defender de un ataque de fuerza bruta. Además, existen otros tipos de ciberataques criptográficos, como el que presentaremos a continuación. En este post, te explicaremos qué son las tablas arcoíris, cómo pueden usarlas los atacantes y qué métodos de defensa existen.
¿Qué son las tablas arcoíris?
Las tablas arcoíris son un método para almacenar hashes de contraseñas (que pueden ser largas y complejas), las cuales se pueden obtenerse en diccionarios y bases de datos filtradas de internet. Para entender qué son las tablas arcoíris, debes comprender que esta técnica permite acceder a cálculos que se han almacenado previamente en estas tablas, lo cual ahorra tiempo y memoria a la hora de hacer un ciberataque.
Una tabla arcoíris hash cuenta con hashes de contraseñas que se han calculado de manera previa y se han almacenados en el caché de un ordenador, lo cual se utiliza como recurso para ejecutar ataques de diccionario y encontrar la contraseña de un usuario a partir de los términos localizados en listas de palabras con contraseñas comunes o datos filtrados.
El término tabla arcoíris o rainbow table lo introdujo por primera vez el Dr. Philippe Oechslin y hace referencia a la forma en la que una función de reducción se utiliza para aumentar la tasa de éxito de un ciberataque de fuerza bruta. Tiempo después de su creación, el Dr. Oechslin comenzó a incluir colores para la explicación del concepto, a partir de su conferencia en el evento Crypto 2003.
Compensación espacio-tiempo
Para aprender qué son las tablas arcoíris y cómo surgieron, es necesario aprender en qué consiste la compensación espacio-tiempo.
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaEl concepto de compensación espacio-tiempo o memoria-tiempo lo introdujo en el año 1980 Martin Hellman, pero luego fue mejorado por Ron Rivest (uno de los creadores del algoritmo RSA) y, posteriormente, por Philippe Oechslin.
Este concepto se refiere a la posibilidad de intercambiar un mayor uso de espacio o memoria (RAM o HDD) por una disminución significativa en el tiempo de operación. En el caso de lo que son las tablas arcoíris, la compensación espacio-tiempo se refiere a un sacrificio en el almacenamiento de datos que se usa para una tarea, con el fin de reducir el tiempo en el que se ejecutan los cálculos de un programa.
¿Cómo protegerse de un ataque de tablas arcoíris?
Ahora sabes qué son las tablas arcoíris y cómo se utilizan para agilizar el proceso de un ciberataque criptográfico. Aunque este método puede ser efectivo para adivinar la clave de un usuario, existen técnicas que impiden que esta práctica funcione y que son relativamente fáciles de aplicar.
El principal sistema de defensa en contra de un ataque de tablas de arcoíris se conoce como salting y se usa con frecuencia en criptografía para proteger los datos confidenciales de los usuarios.
Salting
El salting es una práctica en criptografía que consiste en agregarle una cadena de datos aleatorios a la contraseña de un usuario antes de elaborar su función hash. De este modo, el atacante tendría que conocer dichos datos y, además, la contraseña del usuario, para poder encontrar el mismo código hash.
Este método no sirve para proteger contraseñas demasiado fáciles, ya que estas pueden encontrarse por medio de ataques de fuerza bruta. Tampoco aumentan la seguridad de aquellas contraseñas que son suficientemente complejas y seguras de por sí. Por lo tanto, se puede decir que este método protege, sobre todo, a aquellos usuarios que escogen contraseñas de dificultad intermedia y que, además, suelen reutilizarla en varias de sus cuentas.
Algunos sistemas criptográficos incluyen siempre el salting antes de generar los códigos hash de las contraseñas que se almacenan en una base de datos, con lo cual se consigue que sea imposible ejecutar un ataque con lo que son las tablas arcoíris.