¿Qué es un ataque de diccionario?

Para autenticarse en un sitio web, debe proporcionar un nombre de usuario y una contraseña. Luego, el sitio verifica los detalles de autenticación que ha proporcionado comparándolos con los detalles que ha almacenado en su base de datos. Si los detalles coinciden, se concede el acceso. Si los detalles no coinciden, se deniega el acceso.

Desafortunadamente, las violaciones de datos son una ocurrencia relativamente común. Las violaciones de datos pueden ser un gran problema porque uno de los bits de datos más comúnmente atacados son los datos del usuario, específicamente la lista de nombres de usuario y contraseñas. Si las contraseñas se almacenan tal cual, en texto sin formato, cualquier persona con acceso a la base de datos puede acceder a la cuenta de cualquier otro usuario. Es como si les dieran un llavero con la llave de todas las puertas de un edificio de apartamentos.

Si bien se dedica mucho esfuerzo a prevenir violaciones de datos en primer lugar, se recomienda una estrategia de defensa en profundidad. Específicamente, los consejos de seguridad sostienen que las contraseñas deben codificarse, y solo se debe almacenar el hash de la contraseña. Una función hash es una función unidireccional que siempre convierte la misma entrada en la misma salida. Sin embargo, incluso un cambio menor en la entrada produce una salida completamente diferente. Críticamente, no hay forma de revertir la función y convertir el hash de salida en la entrada original. Lo que puede hacer, sin embargo, es codificar una nueva entrada y ver si la salida coincide con el hash almacenado en la base de datos. Si lo hace, conoce la contraseña coincidente, sin saber nunca la contraseña real.

De manera útil, esto también significa que si un atacante viola la base de datos, no obtiene una lista de contraseñas útiles de inmediato, sino que obtiene hashes en su lugar. Para poder utilizar estos hashes, es necesario descifrarlos.

Descifrar hashes de contraseñas con inteligencia

Descifrar un hash de contraseña es el proceso de averiguar cuál es la contraseña original que representa el hash. Porque no hay forma de revertir la función hash y convertir el hash en la contraseña. La única forma de descifrar un hash es adivinar la contraseña. Un método es utilizar un ataque de fuerza bruta. Esto implica literalmente probar todas las contraseñas posibles. Eso significa empezar desde la “a”, probando cada letra, en ambos casos, y cada número y símbolo. Luego, el atacante debe probar todas las combinaciones de dos caracteres, combinaciones de tres caracteres, etc. El aumento de posibles combinaciones de caracteres es exponencial cada vez que añades un carácter. Esto hace que sea difícil adivinar contraseñas largas de manera eficiente, incluso cuando se utilizan algoritmos de hash rápidos con potentes plataformas de craqueo de GPU.

Se puede ahorrar algo de esfuerzo mirando los requisitos de contraseña del sitio y no probando contraseñas que serían demasiado cortas para permitirlas o que no tienen un número, por ejemplo. Esto ahorraría algo de tiempo y aún encaja en la clase de un ataque de fuerza bruta que intenta todas las contraseñas permitidas. Si bien los ataques de fuerza bruta son lentos, si se les deja el tiempo suficiente con mucha potencia de procesamiento, eventualmente descifrarán cualquier contraseña, ya que se probarán todas las combinaciones posibles.

El problema con los ataques de fuerza bruta es que no son muy inteligentes. Un ataque de diccionario es una variante que está mucho más dirigida. En lugar de simplemente probar cualquier contraseña posible, prueba una lista de contraseñas especificadas. El éxito de este tipo de ataque depende de la lista de contraseñas y del diccionario en cuestión.

Hacer conjeturas informadas

Los diccionarios de contraseñas generalmente se crean a partir de contraseñas previamente descifradas de otras violaciones de datos. Estos diccionarios pueden contener miles o millones de entradas. Esto se basa en el concepto de que las personas son malas para crear contraseñas únicas. Desafortunadamente, la evidencia de las violaciones de datos también muestra que este es el caso. La gente todavía usa variaciones de la palabra "contraseña". Otros temas comunes son los equipos deportivos, nombres de mascotas, nombres de lugares, nombres de empresas, odiar tu trabajo y contraseñas basadas en la fecha. Esto último tiende específicamente a ocurrir cuando las personas se ven obligadas a cambiar sus contraseñas con regularidad.

El uso de un diccionario de contraseñas reduce enormemente la cantidad de conjeturas que deben realizarse en comparación con un ataque de fuerza bruta. Los diccionarios de contraseñas también tienden a contener contraseñas cortas y más largas, lo que significa que algunas contraseñas podrían probarse y no se alcanzarían incluso con años o adivinando por fuerza bruta. El enfoque también resulta exitoso. Las estadísticas varían según la violación de datos y el tamaño y la calidad del diccionario utilizado, pero las tasas de éxito pueden superar el 70 %.

Las tasas de éxito se pueden aumentar aún más con algoritmos de manipulación de palabras. Estos algoritmos toman cada palabra en el diccionario de contraseñas y luego la modifican un poco. Estas modificaciones tienden a ser reemplazos de caracteres estándar y agregan números o símbolos finales. Por ejemplo, es común que las personas reemplacen la letra "e" con un "3", una "s" con un "$" o agreguen un signo de exclamación al final. Los algoritmos de manipulación de palabras crean duplicados de cada entrada en el diccionario de contraseñas. Cada duplicado tiene una variación diferente de estos reemplazos de caracteres. Esto aumenta significativamente la cantidad de contraseñas para adivinar y también aumenta la tasa de éxito, en algunos casos por encima del 90%.

Conclusión

Un ataque de diccionario es una variación dirigida de un ataque de fuerza bruta. En lugar de intentar todas las combinaciones de caracteres posibles, se prueba un subconjunto de combinaciones de caracteres. Este subconjunto es una lista de contraseñas que se han encontrado previamente y, si es necesario, se han descifrado en filtraciones de datos pasadas. Esto reduce enormemente la cantidad de conjeturas que se deben realizar al tiempo que cubre las contraseñas que se han usado antes y, en algunos casos, se han visto con frecuencia. Un ataque de diccionario no tiene una tasa de éxito tan alta como un ataque de fuerza bruta. Eso, sin embargo, supone que tiene tiempo y poder de procesamiento ilimitados. Un ataque de diccionario tiende a obtener una tasa de éxito decentemente alta mucho más rápido que un ataque de fuerza bruta. Esto se debe a que no pierde el tiempo en combinaciones de caracteres extremadamente improbables.

Una de las principales cosas que debe hacer al crear una contraseña es asegurarse de que no aparezca en una lista de palabras. Una forma de hacerlo es crear una contraseña compleja, otra es crear una contraseña larga. Generalmente, la mejor opción es crear una contraseña larga compuesta de unas pocas palabras. Es importante que esas palabras no formen una frase real, ya que eso podría adivinarse. Deben ser completamente independientes. Se recomienda que elija una contraseña de más de 10 caracteres con 8 como mínimo absoluto.



Leave a Comment

Cómo clonar un disco duro

Cómo clonar un disco duro

En la era digital moderna, donde los datos son un activo valioso, clonar un disco duro en Windows puede ser un proceso crucial para muchos. Esta guía completa

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Se enfrenta al mensaje de error al iniciar su computadora que dice que el controlador WUDFRd no se pudo cargar en su computadora?

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

¿Tiene el código de error 0x0003 de la experiencia NVIDIA GeForce en su escritorio? En caso afirmativo, lea el blog para descubrir cómo solucionar este error de forma rápida y sencilla.

Cómo quitar una GPU de una PC con Windows en 2023

Cómo quitar una GPU de una PC con Windows en 2023

¿Necesitas quitar la GPU de tu PC? Únase a mí mientras explico cómo quitar una GPU de su PC en esta guía paso a paso.

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

¿Compró un nuevo SSD NVMe M.2 pero no sabe cómo instalarlo? Siga leyendo para aprender cómo instalar un SSD NVMe en una computadora portátil o de escritorio.

¿Qué es una bomba lógica?

¿Qué es una bomba lógica?

Una bomba lógica es un incidente de seguridad en el que un atacante establece una acción retrasada. Sigue leyendo para saber más.

¿Qué es Stuxnet?

¿Qué es Stuxnet?

Stuxnet era un gusano que se propagaba a sí mismo. Fue el primer uso de un arma cibernética y la primera instancia de malware.

¿Qué es un hacker ético?

¿Qué es un hacker ético?

Un hacker ético es un hacker que actúa dentro de los límites de la ley. Sigue leyendo para saber más sobre el tema.

¿Qué es el cifrado simétrico?

¿Qué es el cifrado simétrico?

Hay muchas partes diferentes de la criptografía. Sin embargo, si desea cifrar algunos datos, hay dos tipos de algoritmos que puede usar: simétrico

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

¿Quiere hacer una prueba de estrés de la GPU en su PC con Windows para garantizar un rendimiento confiable para los juegos de alta definición? ¡Lea esta guía de GPU de prueba de estrés ahora!