Cryptology Academy · Lección

Ataques de diccionario y tablas arcoíris

Vea cómo las tablas de hashes precalculadas permiten descifrar contraseñas rápidamente y cómo el uso de saltos las neutraliza.

Lección 2 de 413 pasos

Ataques de diccionario y tablas arcoíris es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Ataques de diccionario: descifrado basado en listas de palabras

Un ataque de diccionario no prueba todas las combinaciones posibles; en su lugar, prueba una lista seleccionada de contraseñas probables. Los usuarios reales eligen contraseñas de un vocabulario limitado: palabras comunes, nombres, fechas y frases. Probar una lista de palabras con un millón de contraseñas probables es mucho más rápido que probar todas las cadenas posibles de 8 caracteres (200 billones de combinaciones). Los ataques de diccionario tienen éxito porque las elecciones de contraseñas humanas son predecibles.

rockyou.txt: el conjunto de datos de contraseñas filtradas

En 2009, la red social RockYou sufrió una filtración que expuso 32 millones de contraseñas de usuarios en texto plano. La lista resultante, que ahora se conoce como rockyou.txt, contiene aproximadamente 14 millones de contraseñas únicas y es la primera lista de palabras estándar que se utiliza para descifrar contraseñas. El análisis de rockyou.txt revela que las contraseñas más comunes son 123456, password y variaciones de nombres de pila seguidos de números.

Ataques híbridos: combinación de diccionarios y reglas

Un ataque híbrido amplía una lista de palabras base aplicando reglas de transformación. Una palabra como password se convierte en Password, P@ssword, p4ssword, password1, password123 y cientos de variantes más. El motor de reglas de Hashcat permite especificar exactamente qué transformaciones aplicar: convertir en mayúscula la primera letra, añadir dos dígitos o sustituir letras por símbolos. Esto amplía enormemente la cobertura sin probar cadenas verdaderamente aleatorias.

Ataques basados en reglas y leet speak

Antes se creía que las sustituciones de leet speak (reemplazar letras por números: e=3, a=4, i=1, o=0, s=5) mejoraban la seguridad de las contraseñas. Los programas de descifrado basados en reglas incluyen estas sustituciones como transformaciones estándar. Una contraseña como s3cur1ty se descifra trivialmente a partir de la palabra base security y una regla de sustitución de leet speak. Los programas de descifrado también prueban patrones comunes: añadir !, 123 o el año actual a cualquier palabra del diccionario.

Tablas rainbow: cadenas de hashes precalculadas

Una tabla rainbow es una base de datos precalculada de gran tamaño que asocia valores hash con las contraseñas originales. En lugar de calcular el hash de un candidato y compararlo, el atacante busca el hash en la tabla. Crear la tabla requiere una cantidad enorme de tiempo y almacenamiento, pero cada consulta es instantánea. Las tablas rainbow para MD5 de todas las contraseñas alfanuméricas de 8 caracteres pueden caber en unos pocos terabytes y descifrar cualquier contraseña coincidente en milisegundos.

Intercambio entre tiempo y memoria en las tablas rainbow

Las tablas rainbow representan un intercambio entre tiempo y memoria: se invierte tiempo en calcular la tabla una vez y después se utiliza memoria para acelerar las consultas futuras. La tabla almacena cadenas de hashes: cada cadena comienza con un candidato, calcula su hash, aplica una función de reducción para generar otro candidato y repite el proceso. Almacenar únicamente los extremos de las cadenas permite recuperar contraseñas a partir de hashes mediante un proceso de reconstrucción de cadenas que equilibra el almacenamiento y el cálculo.

El salt inutiliza las tablas rainbow

Un salt es un valor aleatorio que se añade a la contraseña antes de calcular su hash. Como el salt es único para cada usuario, dos usuarios con la misma contraseña producen valores hash diferentes. Esto impide que un atacante precalcule una tabla rainbow para las contraseñas con salt; tendría que crear una tabla independiente para cada valor de salt posible, lo que resulta inviable desde el punto de vista computacional. Añadir un salt es obligatorio en cualquier sistema seguro de almacenamiento de contraseñas.

MD5 sin salt: descifrado instantáneo

Muchas aplicaciones web antiguas almacenaban las contraseñas como hashes MD5 sin salt. El MD5 de la cadena password es 5f4dcc3b5aa765d61d8327deb882cf99, un valor fijo. Cualquiera que haya visto este hash antes, o que lo busque en una base de datos precalculada, conoce inmediatamente la contraseña. Sitios como CrackStation mantienen miles de millones de hashes MD5 y SHA-1 precalculados. Las contraseñas comunes sin salt se descifran en menos de un segundo.

Have I Been Pwned

Have I Been Pwned (HIBP), creado por el investigador de seguridad Troy Hunt, recopila hashes de contraseñas procedentes de importantes filtraciones de datos. Los usuarios pueden comprobar si su dirección de correo electrónico o su contraseña ha aparecido en una filtración. Los desarrolladores pueden utilizar la API de HIBP para comprobar contraseñas candidatas frente a 850 millones de hashes filtrados mediante un modelo de k-anonimato: los primeros 5 caracteres hexadecimales del hash SHA-1 se envían a la API, que devuelve los sufijos coincidentes sin que el servidor conozca el hash completo.

Credential stuffing con listas de contraseñas filtradas

Los ataques de credential stuffing toman pares de nombre de usuario y contraseña de una filtración y los prueban en otros servicios. Como muchos usuarios reutilizan sus contraseñas en distintos sitios, una filtración en un sitio con poca seguridad proporciona credenciales válidas para objetivos de gran valor, como servicios bancarios y de correo electrónico. Las herramientas automatizadas envían miles de intentos de inicio de sesión por segundo a varios servicios. La limitación de tasa y la autenticación multifactor son las principales defensas contra el credential stuffing.

Defensa: hashing adaptativo con salt

El almacenamiento seguro de contraseñas combina el uso de salt con una función hash lenta y adaptativa. bcrypt, Argon2 y scrypt están diseñados para ser costosos desde el punto de vista computacional y tardan milisegundos por hash, en lugar de microsegundos. Esto reduce el rendimiento del atacante de miles de millones de intentos por segundo a miles. El parámetro de coste puede aumentarse a medida que el hardware se vuelve más rápido, manteniendo un requisito de trabajo constante. Estos algoritmos son el estándar actual para el almacenamiento de contraseñas.

Salt frente a tablas rainbow

¿Por qué añadir un salt aleatorio y único a cada contraseña antes de calcular su hash inutiliza los ataques con tablas rainbow precalculadas?

Ataques de diccionario y tablas rainbow: conclusiones clave

Los ataques de diccionario prueban contraseñas probables en lugar de todas las combinaciones. rockyou.txt proporciona 14 millones de ejemplos del mundo real. Los ataques híbridos y basados en reglas amplían las listas de palabras con transformaciones. Las tablas rainbow permiten consultar instantáneamente los hashes sin salt. Añadir un salt inutiliza las tablas rainbow porque hace que cada hash sea único. HIBP comprueba si las contraseñas aparecen en filtraciones conocidas. Las funciones hash adaptativas, como bcrypt y Argon2, son necesarias para un almacenamiento seguro.

Gratis para empezar

Aprende Cryptology Academy con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
67
Lecciones
261

Preguntas frecuentes

¿La lección «Ataques de diccionario y tablas arcoíris» es gratis?

Sí — el texto completo de «Ataques de diccionario y tablas arcoíris» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Ataques de diccionario y tablas arcoíris»?

Vea cómo las tablas de hashes precalculadas permiten descifrar contraseñas rápidamente y cómo el uso de saltos las neutraliza. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Ataques de diccionario y tablas arcoíris»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Cómo funcionan los ataques de fuerza bruta
  2. Ataques de diccionario y tablas arcoíris
  3. Por qué importa la longitud de las claves criptográficas
  4. Limitación de solicitudes y bloqueo de cuentas
← Volver a Cryptology Academy