05 febrero 2012

Crackeando un password WPA con las computadoras mas poderosas del mundo



El algoritmo de seguridad WPA (Wi-Fi Protected access) es un protocolo que surgió en 1999 para remplazar al algoritmo WEP. Debido a que este ultimo, tiene muchas fallas de seguridad, al grado de que para crackear un password protegido por WEP se pueden utilizar métodos estadísticos que capturar paquetes y comparan la información, de este modo es bastante rápido y sencillo obtener el password. No existe ningún método que pueda proteger un password con algoritmo WEP; aún haciendo la red invisible y activando el mac filtering un hacker mediocre tardaría menos de 12 hrs en obtener dicho password.

Cuando se creó WPA se removieron todas las vulnerabilidades relacionadas con la transferencia de paquetes, haciendo que ningún método estadístico pueda agilizar el crackeo. Así que la única manera de obtener un password protegido por WPA es adivinándolo, pero no de uno en uno, el método más famoso es el llamado dictionary attack el cual consiste en utilizar diccionarios que incluyen miles de palabras y passwords comunes, para tratar de comprobar si alguna de esas combinaciones es el password buscado. Sin embargo, es obvio que un password como h1dK:l87u-z jamas podrá ser encontrado por medio de dictionary attack Así que la única manera de obtenerlo es por la técnica de brute force, es decir, por fuerza bruta; lo que quiere decir que la computadora trataría de probar todas las combinaciones posibles.

La clave del protocolo WPA puede contener letras mayúsculas y minúsculas ( $ 26 + 26 $ posibilidades) los diez dígitos ( $ 10 $ posibilidades) y $ 32 $ símbolos especiales, es decir $ 26 + 26 + 10 + 32 = 94 $ posibilidades por cada posición. Supongamos que deseamos obtener un password de $ 10 $ caracteres por medio de brute force, esto equivaldría a $ 94 \cdot 94 \cdot 94 \cdot 94 \cdot 94 \cdot 94 \cdot 94 \cdot 94 \cdot 94 \cdot 94 = 94 ^{10} $ posibles passwords.


Una computadora personal promedio puede probar hasta 500 passwords por segundo, pero suponiendo que hemos ahorrado todo el año para armar nuestra super computadora y compramos un procesador Intel Core i7 a 4.1 ghz y una tarjetas de gráficos NVidia GeForce GTX 295 (480 CUDA Cores), entonces podríamos probar hasta 25,000 passwords por segundo. Haciendo los cálculos $ \frac{94^{10}}{25,000} = 2.154 x 10^{15} $ segundos que equivalen a $ 6.83 x 10^7 $ años, nadie planea vivir tantos años.

Las corporaciones y la mayoría de los negocios contratan compañías especializadas en auditorias, estas compañías se dedican a asegurar los datos, passwords, etc. de los negocios; cuando se trata de asegurar las redes de Wi-Fi estas compañías siempre recomiendan utilizar el protocolo WPA utilizando passwords que no se encuentren en diccionarios y con una longitud de al menos 10 caracteres (como pudimos observar anteriormente, no es nada practico atacar estos passwords por medio de brute force).


Supongamos que una persona que no sabe absolutamente nada de protocolos de seguridad, ni de longitud de password, etc. instala en su departamento su módem con un password con protocolo WPA de 8 caracteres utilizando sólo números (lo mínimo que se puede son 8 caracteres). Entonces, nosotros programaríamos nuestra computadora para que sólo trate de adivinar la contraseña utilizando números, con lo que sólo tendríamos que probar $ 10 \cdot 10 \cdot 10 \cdot 10 \cdot 10 \cdot 10 \cdot 10 \cdot 10 = 10^8 $ posibilidades, con una computadora promedio (500 passwords por segundo) tardaríamos $ \frac{10^8}{500} = 200,000 $ segundos $ = 2.314 $ días (una tarea no tan complicada), si utilizamos la super computadora que armamos (25,000 passwords por segundo) tardaríamos $ \frac{10^8}{25000} = 4000 $ segundos que equivales a $ 1.1 $ horas (algo fácil)

Sin embargo, si somos realistas, es poco probable encontrar un módem con un password que sólo utiliza números y de longitud igual a 8 caracteres. Así que para hacer efectivo el ataque a WPA por medio de brute force necesitamos una super computadora (pero una verdadera super computadora). Así que supongamos que nos han prestado la computadora más poderosa del mundo, la K Computer , capas de procesar 10.51 petaflops por segundo, es decir 10,510,000,000,000 passwords por segundo (nada mal para ser un hardware de 1.25 mil millones de dolares) Así que el password de 10 dígitos utilizando los 94 caracteres tardaría $ \frac{94^{10}}{1.051 x 10^{13}} = 5.125 x 10^6 $ segundos, que equivalen a $ 59.317 $ días (algo bastante razonable para ser la mejor computadora del mundo).

A pesar de una clave de 10 dígitos es vulnerable a la computadora mas potente del mundo, una clave de 63 dígitos no lo es (WPA soporta claves de hasta 63 caracteres). Supongamos que se pone a nuestra disposición las 10 computadoras más poderosas del mundo:


Rank

Computer/Year Vendor

Rmax

1

K computer, SPARC64 VIIIfx 2.0GHz, Tofu interconnect / 2011 Fujitsu

10510

2

NUDT YH MPP, Xeon X5670 6C 2.93 GHz, NVIDIA 2050 / 2010 NUDT

2566

3

Cray XT5-HE Opteron 6-core 2.6 GHz / 2009 Cray Inc.

1759

4

Dawning TC3600 Blade System, Xeon X5650 6C 2.66GHz, Infiniband QDR, NVIDIA 2050 / 2010 Dawning

1271

5

HP ProLiant SL390s G7 Xeon 6C X5670, Nvidia GPU, Linux/Windows / 2010 NEC/HP

1192

6

Cray XE6, Opteron 6136 8C 2.40GHz, Custom / 2011 Cray Inc.

1110

7

SGI Altix ICE 8200EX/8400EX, Xeon HT QC 3.0/Xeon 5570/5670 2.93 Ghz, Infiniband / 2011 SGI

1088

8

Cray XE6, Opteron 6172 12C 2.10GHz, Custom / 2010 Cray Inc.

1054

9

Bull bullx super-node S6010/S6030 / 2010 Bull

1050

10

BladeCenter QS22/LS21 Cluster, PowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz, Voltaire Infiniband / 2009 IBM

1042


TOTAL

22642


Entonces podríamos procesar un total de 22,642,000,000,000 passwords por segundo, ahora supongamos que es un password de 12 digitos. Entonces tardaríamos $ \frac{94^{12}}{2.2642 x 10^{13}} = 2.101 x 10^{10} $ segundos, equivalente a 666.22 años (un numero del demonio, no?). Ahora supongamos que la supervivencia de la raza humana depende de descifrar dicho código, así que se pone a nuestra disposición las 100 computadoras más poderosas del mundo, eso equivale a 47009.87 petaflops por segundo, es decir a 47,009,870,000,000 passwords por segundo. Así que para obtener el password de 12 dígitos tardaríamos $ \frac{94^{12}}{4.7009 x 10^{13}} = 1.012 x 10^{10} $ segundos, equivalente a $ 320.9 $ años (la humanidad estaría perdida).

Como hemos podido observar, crackear una contraseña con algoritmo de seguridad WPA/WPA2 (No hay ninguna diferencia en atacar una contraseña WPA a una de WPA2 por brute force) no es tarea sencilla ni para las mejores computadoras del mundo. Así que si el ataque no es por medio de diccionarios, lo mejor es no intentar hacer un brute force pues llevaría años completar el ataque (si es que el mundo sigue existiendo).

Lecturas aconsejadas

Crackear un password WEP

Crackear WEP que utiliza mac filtering

Calculadora para determinar el tiempo en crackear WPA

Información sobre las vulnerabilidades de WEP

Crackeando una WPA por dictionary attack

Las 100 computadoras más poderosas del mundo


9 comentarios:

  1. hola q tal con reaver y el backtrack 5

    ResponderBorrar
  2. El reaver utiliza una vulnerabilidad de WPS (herramienta para facilitar la configuracion de WPA), no todos los modem son vulnerables

    ResponderBorrar
  3. muy buena su informacion amigo. lo que al final no entendí fué de que con cual de los dos métodos es mas facil o es mas rapido para obtener una clave wap?

    ResponderBorrar
  4. wow!!!! no hay q esperar tantos anos para encontrar el password ya que las tecnologias avanzan y creo q en menos de 3 anos ya habra algun metodo efectivo que sacara el password en 5 minutos y habra q diseñar otro sistema para evitar eso saludos!!!

    ResponderBorrar
  5. saludos excelente tema, le falta ampliar existe nuevos métodos y vulnerabilidades, que si te hacen tardar mas tiempo, pro no es imposible...

    ResponderBorrar
    Respuestas
    1. Efectivamente, se han desarrollado nuevas tecnologías para crackear ALGUNOS WPA con TKIP, pero aun faltan metodos para CCMP particularmente WPA2 con CCMP

      Borrar
  6. Muy buenos calculos jeje, interesante, mejor usare el reaver (: saludos y paso el dato ;)

    ResponderBorrar
  7. Muy interesante y muy cierto, brute force no es viable me encantan estos temas

    ResponderBorrar
  8. pero si la humanidad dependiera en descifrar el codigo de 12 caracteres, haciendo lo posible seria hacer unas 100 replicas de la mejores computadoras a cada una, si las ponen a trabajar todas a la vez serian los 320.9 años sobre las 100 computadoras nuevas.

    osea 320.9 / 100 = 3.2 años (algo mas razonable)

    pero va a tardar menos de 3 años porque es poco probable que la contraseña se encuentre entre las ultimas, es decir, algo como: zzzzzzzzzzzz

    o algo asi pero demorara menos de 3 años

    ResponderBorrar