Anda di halaman 1dari 5

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á 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.


Ataque de diccionario
De Wikipedia, la enciclopedia libre
Saltar 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
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...
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).

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.

Anda mungkin juga menyukai