7
Ataque de fuerza bruta De Wikipedia, la enciclopedia libre Saltar a navegación , búsqueda Para otros usos de este término, véase Ataque . La DES Cracking Machine construida por la EFF a un costo de USD 250.000 contiene más de 1800 chips especialmente diseñados y puede romper por fuerza bruta una clave DES en cuestión de días — la fotografía muestra una tarjeta de circuito impreso DES Cracker que contiene varios chips Deep Crack. En criptografía , se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso. Dicho de otro modo, define al procedimiento por el cual a partir del conocimiento del algoritmo de cifrado empleado y de un par texto claro /texto cifrado , se realiza el cifrado (respectivamente, descifrado) de uno de los miembros del par con cada una de las posibles combinaciones de clave, hasta obtener el otro miembro del par. El esfuerzo requerido para que la búsqueda sea exitosa con probabilidad mejor que la par será 2 n − 1 operaciones, donde n es la longitud de la clave (también conocido como el espacio de claves).

Ataque de Fuerza Bruta

Embed Size (px)

Citation preview

Page 1: Ataque de Fuerza Bruta

Ataque de fuerza brutaDe Wikipedia, la enciclopedia libreSaltar a navegación, búsqueda Para otros usos de este término, véase Ataque.

La DES Cracking Machine construida por la EFF a un costo de USD 250.000 contiene más de 1800 chips especialmente diseñados y puede romper por fuerza bruta una clave DES en cuestión de días — la fotografía muestra una tarjeta de circuito impreso DES Cracker que contiene varios chips Deep Crack.

En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso.

Dicho de otro modo, define al procedimiento por el cual a partir del conocimiento del algoritmo de cifrado empleado y de un par texto claro/texto cifrado, se realiza el cifrado (respectivamente, descifrado) de uno de los miembros del par con cada una de las posibles combinaciones de clave, hasta obtener el otro miembro del par. El esfuerzo requerido para que la búsqueda sea exitosa con probabilidad mejor que la par será 2n − 1 operaciones, donde n es la longitud de la clave (también conocido como el espacio de claves).

Otro factor determinante en el coste de realizar un ataque de fuerza bruta es el juego de caracteres que se pueden utilizar en la clave. Contraseñas que sólo utilicen dígitos numéricos serán más fáciles de descifrar que aquellas que incluyen otros caracteres como letras, así como las que están compuestas por menos caracteres serán también más fáciles de descifrar, la complejidad impuesta por la cantidad de caracteres en una contraseña es logarítmica.

Los ataques por fuerza bruta, dado que utilizan el método de prueba y error, son muy costosos en tiempo computacional.

La fuerza bruta suele combinarse con un ataque de diccionario.

Page 2: Ataque de Fuerza Bruta

Ataque de diccionarioDe Wikipedia, la enciclopedia libreSaltar a navegación, búsqueda

Un ataque de diccionario es un método de cracking que consiste en intentar averiguar una contraseña probando todas las palabras del diccionario. Este tipo de ataque suele ser más eficiente que un ataque de fuerza bruta, ya que muchos usuarios suelen utilizar una palabra existente en su lengua como contraseña para que la clave sea fácil de recordar, lo cual no es una práctica recomendable.

Los ataques de diccionario tienen pocas probabilidades de éxito con sistemas que emplean contraseñas fuertes con letras en mayúsculas y minúsculas mezcladas con números y con cualquier otro tipo de símbolos. Sin embargo, para la mayoría de los usuarios recordar contraseñas tan complejas resulta complicado. Existen variantes que comprueban también algunas de las típicas sustituciones (determinadas letras por números, intercambio de dos letras, abreviaciones), así como distintas combinaciones de mayúsculas y minúsculas.

Contenido[ocultar]

1 Consejos prácticos 2 Protección frente a los ataques 3 Ejemplos de herramientas

4 Enlaces externos

[editar] Consejos prácticos

El programa KeePass nos muestra automáticamente la solidez de la contraseña. En este caso la contraseña que se ha utilizado como ejemplo.

Una práctica bastante habitual para usar contraseñas que sean fáciles de recordar y a la vez no sean vulnerables a los ataques de diccionario es tomar las iniciales de todas

Page 3: Ataque de Fuerza Bruta

las palabras de una oración que tenga algún significado especial para nosotros. Por ejemplo, si tomamos la frase "Mi primera bicicleta fue una BH210 que me regaló mi abuelo Francisco", la contraseña resultante sería la siguiente: MpbfuBH210qmrmaF. Esta contraseña mezcla letras y números, que con sus 16 caracteres es relativamente larga, y sería bastante difícil de romper mediante un ataque de fuerza bruta, suponiendo que el algoritmo de cifrado elegido sea lo suficientemente seguro. Sin embargo, para el usuario en cuestión seguramente sea bastante fácil de recordar.

Otra solución habitual para no tener que memorizar un número elevado de contraseñas complejas es utilizar un gestor de contraseñas. Estos programas también nos pueden ayudar a generar contraseñas seguras.

[editar] Protección frente a los ataques

Una forma sencilla de proteger un sistema contra los ataques de fuerza bruta o los ataques de diccionario es establecer un número máximo de tentativas. De esta forma se bloquea el sistema automáticamente después de un número de intentos infructuosos predeterminado. Un ejemplo de este tipo de sistema de protección es el mecanismo empleado en las tarjetas SIM que se bloquean automáticamente tras tres intentos fallidos al introducir el código PIN.

[editar] Ejemplos de herramientas

A continuación se listan algunas de las herramientas más populares para llevar a cabo ataques de diccionario.

Nota: las herramientas que se listan a continuación no son necesariamente usadas con fines ilícitos. Los administradores de sistemas las suelen utilizar para comprobar qué usuarios no están empleando contraseñas lo suficientemente seguras y de esta forma poder avisarles.

Crack de Alec Muffett John the Ripper L0phtCrack Cain

¿Qué son los Rainbow Tables?

Algunos lectores me expresaron que los ataques por diccionario usualmente estaban limitados a una serie claves "débiles" que los usuarios no deberían usar. Eso es cierto solo en parte, ya que depende del tipo de diccionario que se use, y es precisamente aquí en donde entra la definición de los "Rainbow Tables".

Los "Rainbow Tables", son un conjunto de tablas de "hashing" muy extensas, en las que se utilizan todo tipo de combinaciones de caracteres especiales junto con una serie de claves de acceso comunes convirtiéndolas en no tan comunes. Imaginemos una de las claves mas inseguras que se puede utilizar como por ejemplo "administrator", y reemplacemos simplemente la vocal "a" por el símbolo " @ ". Obtendríamos como resultado " @ dministr @ tor" lo que ya empieza a ser una clave algo más compleja de adivinar. Así podemos seguir cambiando la "o" por un cero, la "i" por un uno o una L, etc...

Page 4: Ataque de Fuerza Bruta

Ya vamos entendiendo el porqué del uso de la palabra "rainbow" (en castellano arcoiris), debido a que la idea es producir una gran cantidad de combinaciones de "hashes" que utilicen inclusive caracteres especiales, así como se combinan los diferentes colores del arcoiris para producir cualquier color visible.

Los Rainbow Tables tienen un solo problema, puede llegar a tener tamaños superiores a los 2 GigaBytes, por lo que normalmente no se encuentran versiones de los mismos en Internet como en el caso de los diccionarios de "hashing" simples, por lo que son utilizados casi siempre en el equipo del atacante una vez que tiene los hash en su poder. Sin embargo, puedes bajar un generador de "Rainbows Tables" para comprobar la eficiencia de las claves y los métodos de defensa que utilizas aqui.

Cómo en el artículo anterior la mejor técnica de prevención consiste en el "Salting" o uso del "Salt Key" que como también mencionamos consiste en agregar a las claves antes de calcular los "hash" un prefijo o sufijo que deberá agregarse cada vez que se quiera verificar la autenticidad de la misma.

¿Qué son los Rainbow Tables?

Algunos lectores me expresaron que los ataques por diccionario usualmente estaban limitados a una serie claves "débiles" que los usuarios no deberían usar. Eso es cierto solo en parte, ya que depende del tipo de diccionario que se use, y es precisamente aquí en donde entra la definición de los "Rainbow Tables".

Los "Rainbow Tables", son un conjunto de tablas de "hashing" muy extensas, en las que se utilizan todo tipo de combinaciones de caracteres especiales junto con una serie de claves de acceso comunes convirtiéndolas en no tan comunes. Imaginemos una de las claves mas inseguras que se puede utilizar como por ejemplo "administrator", y reemplacemos simplemente la vocal "a" por el símbolo " @ ". Obtendríamos como resultado " @ dministr @ tor" lo que ya empieza a ser una clave algo más compleja de adivinar. Así podemos seguir cambiando la "o" por un cero, la "i" por un uno o una L, etc...

Ya vamos entendiendo el porqué del uso de la palabra "rainbow" (en castellano arcoiris), debido a que la idea es producir una gran cantidad de combinaciones de "hashes" que utilicen inclusive caracteres especiales, así como se combinan los diferentes colores del arcoiris para producir cualquier color visible.

Los Rainbow Tables tienen un solo problema, puede llegar a tener tamaños superiores a los 2 GigaBytes, por lo que normalmente no se encuentran versiones de los mismos en Internet como en el caso de los diccionarios de "hashing" simples, por lo que son utilizados casi siempre en el equipo del atacante una vez que tiene los hash en su poder. Sin embargo, puedes bajar un generador de "Rainbows Tables" para comprobar la eficiencia de las claves y los métodos de defensa que utilizas aqui.

Cómo en el artículo anterior la mejor técnica de prevención consiste en el "Salting" o uso del "Salt Key" que como también mencionamos consiste en agregar a las claves antes de calcular los "hash" un prefijo o sufijo que deberá agregarse cada vez que se quiera verificar la autenticidad de la misma.

Una Rainbow Table suele utilizarse para romper contraseñas que se han cifrado en

un hash. Las Tablas de arco iris son un conjunto enorme de hashes precalculados

para combinarlos con casi todos los posibles caracteres especiales, letras y

símbolos. Los ataques de contraseña que utilizan métodos de fuerza bruta para romper

contraseñas pueden calcular los valores hash sobre la marcha, pero con el uso de las

Rainbow Table, los datos de todo el conjunto de los valores hash están fácilmente

disponibles en la memoria de acceso aleatorio (RAM).

Page 5: Ataque de Fuerza Bruta

El tamaño del archivo de la tabla del Rainbow Table depende de si desea cargar los

valores hash de las letras justas, letras y números, o todos los caracteres. El tamaño del

archivo puede ser una consideración importante debido a la gran cantidad de datos

contenidos en las Rainbow Table. Una Rainbow Table puede requerir varios gigabytes

de espacio de almacenamiento. Las Rainbow Table grandes pueden contener miles

de millones de hashes.

Las Rainbow Table son específicas de los caracteres utilizados en la contraseña que se

agrieta y la longitud de la contraseña. Esto significa que si una contraseña es demasiado

larga o utiliza un carácter que no está en la Rainbow Table, entonces no puede ser

rota con la tabla específica.

Los atacantes suelen utilizar las Rainbow Table en grandes bases de datos de hashes

de contraseñas robadas. No es práctico para que los atacantes utilicen Rainbow Table

en la misma máquina comprometida, porque es más fácil de usar un software de

restablecer la contraseña. Una posible defensa contra los ataques de la Rainbow Table

es contraseñas almacenadas “salting”.

Salting es una técnica para que sea difícil descubrir contraseñas a través de la

incorporación de un prefijo especial. Un administrador de contraseñas mediante la

adición de salting de una cadena aleatoria de caracteres para las contraseñas antes

del hashing.

A menos que el atacante conozca el valor de la salt que se elimina, no será capaz de

revelar la contraseña de verdad. Tratando de romper una contraseña con salt aumenta

el tiempo y la complejidad requerida, es de esperar a gran escala que sea poco

práctico. El uso de salting también se le hacen otros ataques por contraseña, tales como

ataques de diccionario y fuerza bruta, que requieren más tiempo para romper hashes.