“Mi estilo, es el arte de luchar sin luchar”

Fuerza Bruta

2008-01-19 00:26:59-06

Ciencia y Tecnologia

Aun un poco pensativo sobre el amigo Bobby, he decidido escribir un poco de ciencia informática, nada nuevo, es solo un pequeño análisis sobre el asunto de los PINs y las limitaciones reales de la fuerza Bruta.

Nadie tendrá problema en ver las contraseñas como un conjunto de caracteres, estos se resuelven para una maquina especifica en su conjunto conocido, digamos ASCII o ISO 8859-1. El primero puede representar un total de 256 caracteres, el segundo 377.

Ocuparemos para este pequeño estudio el estándar ASCII, pues es sencillo y se representa en su totalidad con 256 caracteres que es justamente 2^8 (cosa que me facilita los Calculos). Sin embargo, dentro de este conjunto de caracteres hay dos que nunca apareceran en una contraseña El caracter Nulo (00H) y el retorno de carro (0DH) pues no son caracteres validos en una contraseña, hay otro que no seria muy común ver una contraseña el salto de linea (0AH) pues es un carácter de control amplia e innecesariamente usado en sistemas Operativos Windows, sin embargo, en Sistemas tipo Unix es un carácter valido.

Entonces dejaremos solo 254 caracteres para las operaciones, esto es para todos los propósitos, aunque algunos identificadores de contraseñas no soportaran mas que los caracteres imprimibles (20H-7EH coff, coff 32 a 126 decimal) observaremos este caso particular mas adelante. empecemos a calcular según el tamaño de la contraseña.

Numero de contraseñas
Tamaño de contraseña contraseñas posibles
0 1
1 254
2 64516
3 16387064
4  4162314256
5  1057227821024
6  268535866540096
7  68208110101184384
8  17324859965700833536
 Suma   17393337673075145131

La formula es sencilla tomamos la extensión de nuestro alfabeto base (254 caracteres distintos) y lo elevamos a la potencia correspondiente a la longitud de la contraseña, entonces cada columna de la derecha (salvo la ultima) es el resultado de la siguiente formula (254) ^ i, donde i es el valor de la columna izquierda. al final es necesario sumar las cantidades para abarcar todas las posibles contraseñas con longitud 0 a 8.

Esos son muchas contraseñas, suponiendo que las deseamos guardar todas ellas en un archivo de texto, esto en algún sistema "Unix Like" así solo requeriremos guardar el retorno de carro adicional a los caracteres de la contraseña, así regresemos a lo básico cada carácter en el sistema ASCII se guarda en un Byte

Espacio Requerido
Longitud Passwords posibles * (longitud +1) BYTES
0 1 * (0 +1)  1
1 254 * (1 +1)  508
2 64516 * (2 +1) 193548
3 16387064 * (3 +1) 65548256
4 4162314256 * (4 +1) 20811571280
5 1057227821024 * (5 +1) 6343366926144
6 268535866540096 * (6 +1) 1879751065780672
7 68208110101184384 * (7 +1) 545664880809475072
8 17324859965700833536 * (8 +1) 155923739691307501824
Total en Bytes 156471290687426803757


Observemos la suma total (156,471,290,687,426,803,757)  sabemos que un Gigabyte (2 ^ 30) son aproximadamente 1,073,741,824 Bytes y un TeraByte (2 ^ 40) son 1,099,511,627,776 Bytes. Entonces tendríamos aproximadamente 142,309,809.86 TeraBytes necesarios para guardar todas las contraseñas posibles. ufff!!! apenas mi disco duro ;) .

Siendo honestos, CREO que el 98% de todas las contraseñas usadas se encuentra solo en en intervalo de 20H a 7EH, son como 94 caracteres, esto reduce considerablemente la magnitud de los cálculos.

veamos:

Solo caracteres imprimibles
Tamaño Contraseña Contraseñas posibles
0 1
1 94
2 8836
3 830584
4 78074896
5 7339040224
6 689869781056
7 64847759419264
8 6095689385410816
Total 6161234432565771

Seguimos el mismo procedimiento para generar la segunda tabla

Espacio requerido
Longitud Passwords*(longitud+1) Bytes
0 1 * (0 +1) 1
1 94 * (1 +1) 188
2 8836 * (2 +1) 26508
3 830584 * (3 +1) 3322336
4 78074896 * (4 +1) 390374480
5 7339040224 * (5 +1) 44034241344
6 689869781056 * (6 +1) 4829088467392
7 64847759419264 * (7 +1) 518782075354112
8 6095689385410816 * (8 +1) 54861204468697344
total 55384860060483705


55,384,860,060,483,705 Bytes son aproximadamente 50,372.238 TeraBytes sigue siendo mucho espacio, digamos  entonces que no lo vamos a guardar, pero vamos entonces a generar cada contraseña, La velocidad es dependiente de la maquina, si donde se van a probar las contraseñas son dentro de la maquina o en un Server remoto, CREO posible todo este proceso en 1/2 segundo. Teniamos 6,161,234,432,565,771 posibles contraseñas entre dos 3080617216282885.5 segundos, ahora a minutos, esto es 51,343,620,271,381.425 minutos, ahora a horas, 855,727,004,523.02375 horas, a dias 35655291855.12599 dias, esto transformado a años serian 97,685,731.11 años

Entonces, Como funcionan los programas que atacan fuerza Bruta, bueno atacan el eslabón mas débil , la accion humana, las contraseñas comunes suelen ser nombres de personas, objetos, fechas, sucesiones numericas simples o significativas, por ejemplo, si tu contraseña fuera de 3 digitos existe una gran probabilidad de que sea 007, 666,123, 321 y otras por el estilo. Con estas palabras se crean diccionarios que se usan para "ataques de Diccionario".

Noten que solo calcule contraseñas con una extension maxima de 8 caracteres esto solo para ejemplificar, la idea de hacer todos estos calculos la tome de un profesor que nos planteo un problema que tenia que ver con algo asi.

Saludos.

Nota si encuentran errores en los calculos, mencionenlo por que todo lo hice a mano.

Permalink: http://www.mononeurona.org/users/entry/vendaval/1069


Comments Comentblogs:
1.- saidjose saidjose wrote:

Exelente explicación me aclareste un poco mas el panorama de como hacen los craques para craquear contraseñas

Gracias Vendaval

2008-01-23 12:58:42-06

New Comentblog

Captcha



Login



Remember me:
vendaval
Alberto Rodriguez Sanchez Estudiante de Ingenieria en Computacion en la UAM-A, programo en C, C#, Python y Haskell. Uso Debian GNU/Linux, Mac-OS X, OpenSolaris, NetBSD y Win2. Pienso especializarme en computo cientifico y criptografia que son mis grandes pasiones.

Tambien pienso que la programacion computacional es un Arte y que un programa de computadora puede llegar a ser realmente bello si cumple con algunas caracteristicas, prefiero la Sintaxis Avanzada en los programas por que muestra un dominio del lenguaje y un buen grado de abstraccion.

NetBSD, C, Enlightenment y VI(M) son mis SO, Lenguaje de programación, manejador de ventanas y editor favoritos.

Por el Momento me dedico a desarrollar Hardware Criptografico (De alto rendimiento, espero) sobre FPGAs. Practico Limalama y JKD (soy seguidor de la filosofía de Bruce Lee) y tambien escribo con cierta regularidad en este blog.

"Se como el agua, pero piensa como el fuego"
alchemy corn pop cryptography dark side education hacking humor ladies mathematics music my life nanoblogging no more triviality programming martial arts
Powered by:
Despabilando la MonoNeurona.org
Livechat

<-Nombre
vendaval wrote:
Con una mentira suele irse muy lejos, pero sin esperanzas de volver
on 24/7/08

asarch wrote:
Simon. De preferencia ponle una nalga pa' que llame la atencion
on 25/6/08

vendaval wrote:
hola roberto, lo mejor seria poner lo que quieres comunicarnos como una noticia en portada
on 28/3/08

roberto wrote:
como envio un email a todos los miembros de mononeurona
on 26/3/08

vendaval wrote:
pienso que debria crear una version viva para ms necesidades
on 28/1/08

asarch wrote:
O tambien en: http://www.openbsd.org/ en la forma más pura que puedas encontrar en la red
on 26/1/08

¿Qué estuve haciendo?
Saludando desde el Cyber de la esquina, por ahora no tengo internet =(
1 day, 10 hours ago
buscando noticias
5 days, 21 hours ago
comprando tiempo aire por internet, grax teosho
1 week, 3 days ago
no me di cuanta y estaba en como borrador
1 week, 5 days ago
http://mononeurona.o rg/users/entry/venda val/1487
1 week, 5 days ago
Dicen que en las noches es travesti
2 weeks, 1 day ago
yo oi que era narco, anexo al cartel del pacifico
2 weeks, 2 days ago
=(
2 weeks, 3 days ago
Incluir codigo en los blogs es muy engorroso y mas si es programacion web.
2 weeks, 4 days ago
En comunion con el Metal gracias a "paranoid" de black sabbath
2 weeks, 5 days ago
Galerias
FirefoxjEdit.orgGimpOpenOffice.orgHacker
Top
Colectivo MonoNeurona.org © 2002-2008.