En criptoanálisis y seguridad informática , un ataque de diccionario es un ataque que utiliza un subconjunto restringido de un espacio de claves para vencer un mecanismo de cifrado o autenticación tratando de determinar su clave de descifrado o frase de contraseña , a veces probando miles o millones de posibilidades probables [ 1 ] que a menudo se obtienen de listas de brechas de seguridad pasadas.
Técnica
Un ataque de diccionario se basa en probar todas las cadenas de una lista predefinida. Originalmente, estos ataques utilizaban palabras encontradas en un diccionario (de ahí la expresión « ataque de diccionario» ); [ 2 ] sin embargo, ahora existen listas mucho más extensas disponibles en Internet que contienen cientos de millones de contraseñas recuperadas de filtraciones de datos anteriores. [ 3 ] También existe software de cracking que puede utilizar dichas listas y producir variaciones comunes, como sustituir números por letras de aspecto similar . Un ataque de diccionario solo prueba aquellas posibilidades que se consideran más probables de éxito. Los ataques de diccionario suelen tener éxito porque muchas personas tienden a elegir contraseñas cortas que son palabras comunes o contraseñas habituales; o variantes obtenidas, por ejemplo, añadiendo un dígito o un signo de puntuación, que son fácilmente detectadas por la generación de patrones del software de cracking moderno. Un enfoque más seguro es generar aleatoriamente una contraseña larga (15 letras o más) o una frase de contraseña de varias palabras , utilizando un programa gestor de contraseñas o escribiendo una contraseña manualmente.
Los ataques de diccionario pueden ser disuadidos por el administrador del servidor utilizando un algoritmo de hash computacionalmente más costoso. Bcrypt , scrypt y Argon2 son ejemplos de funciones intensivas en recursos que requieren una potencia de cálculo significativa para su procesamiento, [ 4 ] lo que permite grandes mejoras en la seguridad contra ataques de diccionario. Si bien otras funciones de hash, como SHA y MD5 , son mucho más rápidas y menos costosas de calcular, aún pueden reforzarse aplicándolas varias veces a una cadena de entrada mediante un proceso llamado estiramiento de clave . Un atacante tendría que saber aproximadamente cuántas veces se aplicó la función para que un ataque de diccionario fuera factible.
Ataque de diccionario precalculado/Ataque de tabla arcoíris
Es posible lograr un equilibrio entre tiempo y espacio mediante el cálculo previo de una lista de hashes de palabras de diccionario y su almacenamiento en una base de datos, utilizando el hash como clave . Esto requiere un tiempo de preparación considerable, pero permite ejecutar el ataque con mayor rapidez. Los requisitos de almacenamiento para las tablas precalculadas representaban un coste importante, pero ahora son menos problemáticos debido al bajo coste del almacenamiento en disco . Los ataques de diccionario precalculados son especialmente efectivos cuando se trata de descifrar un gran número de contraseñas. El diccionario precalculado solo necesita generarse una vez, y una vez completado, los hashes de las contraseñas pueden consultarse casi instantáneamente en cualquier momento para encontrar la contraseña correspondiente. Un enfoque más sofisticado implica el uso de tablas arcoíris , que reducen los requisitos de almacenamiento a costa de tiempos de búsqueda ligeramente más largos. Consulte LM hash para ver un ejemplo de un sistema de autenticación comprometido por este tipo de ataque.
Los ataques de diccionario precalculados, o "ataques de tabla arcoíris", pueden ser frustrados mediante el uso de sal , una técnica que obliga a recalcular el diccionario hash para cada contraseña buscada, lo que hace inviable el precalculo , siempre que el número de posibles valores de sal sea suficientemente grande. [ 5 ]
Software de ataque de diccionario
Véase también
- Ataque de fuerza bruta
- Recopilación de direcciones de correo electrónico
- Serie de diccionarios intercontinentales , una base de datos lingüística en línea.
- Función de derivación de clave
- Estiramientos clave
- descifrado de contraseñas
- Seguridad de la contraseña
Referencias
- ↑ Junghyun Nam; Juryon Paik; Hyun-kyu Kang; Ung Kim; Dongho Won (1 de marzo de 2009). "Un ataque de diccionario fuera de línea a un protocolo simple de intercambio de claves entre tres partes". IEEE Communications Letters . 13 (3): 205– 207. Bibcode : 2009IComL..13..205N . doi : 10.1109/LCOMM.2009.081609 . ISSN 1089-7798 .
- ↑ Jeff Atwood. "Ataques al diccionario 101" .
- ↑ Lista de CrackStation . Por ejemplo, con más de 1.400 millones de palabras.
- ↑ "Algoritmos de estiramiento de claves: fundamentos, algoritmos y técnicas" . Bootcamp Security . 29 de septiembre de 2024.
- ↑ "CAPEC - CAPEC-55: Descifrado de contraseñas de tablas arcoíris (versión 3.5)" . capec.mitre.org . Consultado el 12 de septiembre de 2021 .
Enlaces externos
- RFC 2828 – Glosario de seguridad en Internet
- RFC 4949 – Glosario de seguridad en Internet, versión 2
- El Servicio Secreto de EE. UU. utilizó un ataque de diccionario distribuido contra las claves de cifrado que protegían la contraseña del sospechoso.
- Pruebas de fuerza bruta (OWASP-AT-004) Archivado el 14/01/2020 en Wayback Machine
- ataques criptográficos