¿Romper WPA/WPA2 con GPUs? ¡Chorradas y más chorradas!

En primer lugar, decir que es desalentador el tono con el que algunos lectores de este blog hacen llegar sus comentarios. Les insto a que moderen sus formas ya que este pretende ser un foro de discusión técnica, donde argumentos y datos se superpongan a insultos y ofensas, que no tienen cabida. Dicho esto, me gustaría contestar uno a uno los comentarios realizados durante este fin de semana sobre el post de seguridad WPA anterior que ha aparecido recientemente en menéame.net.

Por lo que respecta al usuario Anónimo que afirma que el cálculo ha sido realizado para el caso peor, es decir aquel en el que la “Primary Master Key” (PMK) se encuentra al final de nuestro diccionario, estoy totalmente de acuerdo: se debería considerar el caso medio. Los cálculos reflejan el coste de computar las “Rainbow Tables” (tablas hash precomputadas) para un ESSID y una PSK concreta, obteniendo un ratio mas desalentador (300 p/s) del propuesto inicialmente en el post (400 p/s, y ya dije que fui benévolo) según el estudio realizado en el proyecto final de carrera adjunto [Seguridad en Redes 802.11, PDF, 5MB]. Para ello se compararon los dos algoritmos que actualmente pueden realizar ataques de fuerza bruta a WPA/WPA2: Cowpatty y Aircrack-ng, utilizando para ello diversos procesadores.

Los resultados obtenidos fueron que en un Intel 3 Ghz Core Duo se llegaron a computar un ratio máximo de 300 palabras por segundo, por lo que recalculando tendríamos que para el caso medio, utilizando un alfabeto de 100 caracteres (mayúsculas, minúsculas, números y símbolos) y una PSK de 8 caracteres, un espectro de (100)^8 = 10.000.000.000.000.000 posibles palabras del lenguaje. Multiplicando por 100 la capacidad de cálculo anteriormente comentada (300 palabras/seg.), según dice el fabricante del software:

“With the latest version of Elcomsoft Distributed Password Recovery, it is now possible to crack WPA and WPA2 protection on Wi-Fi networks up to 100 times quicker with the use of massively parallel computational power of the newest NVIDIA chips. Elcomsoft Distributed Password Recovery only needs a few packets intercepted (with any network sniffer that can export data in tcpdump format) in order to perform the attack.” [Referencia]

tardaríamos 10569,930661255 años en el peor de los casos y 5284,965330627 años en el caso medio. Como se puede ver los resultados todavía son mas desalentadores que los comentados en el post inicial.

Ahora supongamos que tenemos una granja de 1000 tarjetas NVIDIA GFORCE y que dividimos el espacio de palabras a calcular repartido en todas ellas. Se tardaría 10,5 años en el peor de los casos y 5,2 años en el caso medio, lo que parece acercarse a valores temporales manejables. No obstante, todos estos cálculos se habían realizado para el mejor de los casos, es decir que el usuario hubiera utilizado una PSK de 8 caracteres. Aumentar tan sólo en 1 la longitud de la contraseña multiplica por un factor de 100 el tiempo necesario para la recuperación, por lo que con sólo 12 caracteres el tiempo necesario tanto en el peor como en el caso medio se dispara de nuevo. Ni cabe tiene que decir que si seguimos aumentando el tamaño de la PSK obtenemos tiempos de recuperación inmanejables.

Por lo que respecta a los comentarios de ValaV afirmado que consigue un incremento “de unas 5000 – 1000 tests por segundo, a 50 millones”, pueden ocurrir dos cosas: que estés confundiendo de protocolo de seguridad (esos cálculos se asemejan más a ataques estadísticos WEP), o que estés utilizando tablas precomputadas, las cuales dudo que lleguen a 50 millones como afirmas. A eso hay que añadir que esas tablas solo son válidas para un ESSID concreto, por lo que no sirven para un ataque genérico.

“Pobrecito Hablador” comenta “deja de pensar en ataques de fuerza bruta que ya no se usan desde hace 20 años”. No voy a comentar tal afirmación, pero sí que me gustaría que comentara cómo realizar un ataque criptológico a RC4 (WPA) o AES (WPA2) sin el uso de la fuerza bruta; quizá estemos ante un nuevo “Bruce Schneier”. Es relevante indicar que con unos simples paquetes capturados de la red no es posible obtener la PSK, dado que lo único que se consigue es la PTK temporal, que no te serviría de mucho ya que que se regenera para cada sesión (se necesita el Handshake). Te aconsejo pegues un vistazo a la serie de posts sobre WPA.

Por lo que respecta a los comentarios de Heffeque, que dice que se aplican datos falsos e ignoran detalles, respeto su opinión pero en ningún momento presenta información que contradiga lo analizado en el post. El calculo CPU:GPU que indicado está basado en la información que la empresa fabricante del software ha dado, para mí “Phising Comercial”, término que parece que ha levantado ampollas.

En relación con este aspecto, cuando una empresa realiza afirmaciones demasiado aventuradas, desde mi punto de vista, sobre una tecnología ampliamente extendida tirando por tierra al grupo de trabajo de IEEE 802.11i, para mi es un Phising en toda regla. Tratando de vender un producto que permite reducir en tiempo de recuperación de la PSK de WPA/WPA2 pero que dista mucho de las afirmaciones que algunas publicaciones han reflejado “WiFi encryption cracked by Russians using Nvidia graphics cards“, me parece apropiado utilizar este término cuando lo que se pretende es “Pescar Clientes”.

Por último, agradezco a todos los comentaristas sus intervenciones (a pesar, en algunos casos, de las formas utilizadas), e insto a los lectores a que tras leer la serie de entradas sobre seguridad en WPA publicados en este mismo blog, aporten argumentos de peso que permitan mostrar que estoy equivocado, o que al contrario estoy en lo cierto y esto no es más que una estrategia comercial apoyada (no intencionadamente, en cualquier caso) por varios medios de comunicación.

Comments

  1. Vuelvo a repetirte lo de ayer…
    10.000.000.000.000.000 es suponiendo que los usuarios usen mayusculas, minusculas, numeros y caracteres especiales. Lo normal, es que el usuario comun, ponga 8 caracteres, y en minusculas, o como mucho con algun numero.
    Aun en el peor caso, tendriamos esas 10^16 posibilidades, que a razón de 50 millones de comprobaciones por segundo, darian ~2150 dias, en el peor de los casos, teniendo que comprobar todas y cada una de ellas.
    Pero, el usuario usa minusculas + numeros, y como no le gusta escribir pone solo 8 caracteres, (29+10)^8 = 5.352.009.260.481, y yo utilizo mi flamante nuevo procesador con un Duron a 600 y 2 GTX280 en SLI (Min 1000 Millones por segundo).
    El tiempo necesario serian 90 minutos comprobandolas todas!

    5.352.009.260.481 / 1.000.000.000 / 60 =~ 90

    ahora imaginate que la contraseña es abaco555, en 15 minutos le estas robando la wifi al vecino…
    Obviamebnte yo no hablo de entornos empresariales, donde ya deberian estar usando Radius o contraseñas de 80 caracteres, hablo de tu en tu casa, cuantos caracteres tiene la contraseña de la wifi de tu casa?

  2. ValaV, el problema son esos 50 millones de comprobaciones por segundo que comentas, que es un cálculo no real en WPA/WPA2, a no ser que dispongas de gigantescas tablas precomputadas para tu SSID (y aún así, dudo que puedas llegar a esos niveles).

    Por otro lado, estoy de acuerdo en que en los cálculos se asume una cierta complejidad de la clave, y que cualquier clave trivial es fácil de obtener, como es probablemente la de muchos usuarios domésticos (que de todas formas, aún muchos utilizan WEP). En ese sentido, el software de Elcomsoft sí que supone una ventaja significativa, aunque el error está en exagerar esa mejora hasta el punto que permite considerar WPA2 como un protocolo no seguro.

    Ya que lo preguntas, la clave de mi casa es una frase de más de 20 caracteres que incluye mayúsculas, minúsculas, números y algún símbolo.

  3. Y la Mia.
    Los 50 millones los he comprobado yo (8600m GT), no con el algoritmo de WPA, otros mas simples. Pero sigue estando ahi, es solo ciestion que nvidia saque las GTX240 de la hostia puta en TRI-SLI (>>– esto ya lo hay). y caeran. Nadie dice que el protocolo no sea seguro, como siempre, la inseguridad viene de los usuarios (e ISP, no olvidemos que telefonica sigue mandando sus routers WLAN_XX, que de tantos apuros me sacan).

  4. Estoy de acuerdo en que la inseguridad viene de los usuarios, aunque es el diseño de WPA lo que lo hace especialmente fuerte frente a ataques de fuerza bruta. Para acabar con esta “discusión”, de hackin9, Wi-Fi security – WEP, WPA and WPA2:

    “WPA/WPA2 weaknesses

    While a number of minor weaknesses have been discovered in WPA/WPA2 since their release, none of them are too dangerous provided simple security recommendations are followed. The most practical vulnerability is the attack against WPA/WPA2’s PSK key. As already mentioned, the PSK provides an alternative to 802.1x PMK generation using an authentication server. It is a string of 256 bits or a passphrase of 8 to 63 characters used to generate such a string using a known algorithm:

    PSK = PMK = PBKDF2(password, SSID, SSID length, 4096, 256)

    , where PBKDF2 is a method used in PKCS#5, 4096 is the number of hashes and 256 is the length of the output. The PTK is derived from the PMK using the 4-Way Handshake and all information used to calculate its value is transmitted in plain text.

    The strength of PTK therefore relies only on the PMK value, which for PSK effectively means the strength of the passphrase. As indicated by Robert Moskowitz, the second message of the 4-Way Handshake could be subjected to both dictionary and brute force offline attacks.

    The cowpatty utility was created to exploit this flaw, and its source code was used and improved by Christophe Devine in Aircrack to allow PSK dictionary and brute force attacks on WPA.

    The protocol design (4096 hashes for each password attempt) means that a brute force attack is very slow (just a few hundred passwords per second with the latest single processor). The PMK cannot be pre-computed since the passphrase is additionally scrambled based on the ESSID. A good non-dictionary passphrase (at least 20 characters) should be chosen to effectively protect from this flaw.

    To perform this attack, the attacker must capture the 4-Way Handshake messages by passively monitoring the wireless network or using the deauthentication attack (as described earlier) to speed up the process.

    […]”

  5. Pues siento contradecirte ValaV pero yo soy un usuario medio bajo, muy muy bajo. Tan bajo que no sabia ponerle contraseña a mi router. Lo que hice fue llamar a Jazztel (mi compañia) para que me explicara como hacerlo. Ellos me proporcionaron ya la clave y le pusieron la contraseña a mi router. Consecuencia:

    Me encuentro con una contraseña que incluye mayusculas, minusculas y numeros. En total 12 si mal no recuerdo.

    Es decir, usuarios como yo, que no sabemos practicamente nada, nos ponen la contraseña mas o menos segura y solo tenemos que apuntarla. Lo que hace que la gran mayoria de usuarios sin ninguna experiencia esten como yo, mas o menos, bien protegidos frente a tu teoria.

    Lo que no quita que algun listo solo haya puesto la que tu dices. Pero ese no es un usuario como yo puesto que fue capaz de arreglarselas solo.

  6. Lo primero, felicitarte, Roberto, tanto por el tono, como por la gramática y por tus excelentes conocimientos. Y luego darte las gracias por alertar sobre este posible caso de phising. Por último, he de reconocer que en mi Wifi la contraseña es de 9 caracteres alfanuméricos… Y soy un poco más experto que el usuario medio… así que la apreciación que ha hecho VALAV no me parece tan descaminada. Aunque sólo sea aplicable a un limitado número de casos…

  7. Manuel Benet, “just a few hundred passwords per second with the latest single processor”, el problema es que ahora no se usan 1 sinlge processor, se pueden llegar a utilizaar 6 “Cores”, eses, a few hundred se multiplica hasta llegar a los millones. el problema sigue ahi.

    p11951: Enhorabuena para ti por preocuparte y para Jazztell por ayudarte, por mi experiencia, a los usuarios no les itneresa complicarse la vida, saben que la tienen apuntada debajo del router (los que lo saben…), y el ISP te dice que no te pueden ayudarte a hacer configuraciones del usuario.

  8. ValaV, una de las primeras cosas que comenté en el post es que la gran vulnerabilidad de WPA no es la gran capacidad de calculo de la que hace gala el software de esta empresa, sino los usuario sque puedan utilizar contraseñas débiles (pertenezcan a un diccionario por ejemplo). Lo que no se puede afirmar tan a la ligera es que has conseguido romper el cifrado de WPA/WPA2 pq es una gran ofensa al equipo de ingenieros del grupo de trabajo IEEE 802.11i. Evidentemente si tu contraseña es “mipassword” podrá ser recuperada puesto que es fácil que pertenezca a un diccionario.

    Un protocolo de seguridad podría considerarse como roto si consigues barrer todas las palabras del lenguaje posibles para el alfabeto manejado por el sistema. Es por eso que si esta empresa afirma que ha roto el cifrado WPA/WPA2, mis calculos han ido orientados a calcular todas las posibles combinaciones.

    Te aseguro que pese a que mi contraseña sea solo de 8 caracteres si tiene la suficiente complejidad no la recuperas en un tiempo razonable con un GRID de tarjetas gráficas.

  9. Pues yo no se vosotros pero a mi las 2 últimas veces que me han enviado un router alguna compañía me traía ya la contraseña puesta con mayúsculas, minúsculas y números (sin caracteres especiales).
    Si alguien es tan imbécil de querer poner de contraseña 12345, para empezar no sabrá ponerla en el router y tampoco necesitará modificarla porque la mayoría de routers ya vienen con una buena clave puesta.
    Esperemos que telefónica siga enviando sus WLAN_xx.

  10. Estoy de acuerdo con Roberto, para decir “Hemos roto WPA” tienes que tener, o bien una vulnerabilidad en el algoritmo criptográfico o bien un nuevo método que te permite cubrir todas las posibles combinaciones de passwords en un tiempo razonable (como pasó con otros conocidos algoritmos, que la evolución de la capacidad de cómputo los destrozó).

    Es cierto que se pueden calcular Rainbow tables que aceleran mucho ese cálculo, pero requiere dos cosas, la primera es conocer de antemano el SSID (como ya ha comentado Roberto), y la segunda es que la clave se encuentre presente en algún diccionario. Esto quiere decir que necesitas una mala configuración del usuario, si este te pone una clave que no esté en un diccionario, con una buena longitud y cambia su SSID para que no sea uno de esos típicos que hay por ahí, la aproximación del Rainbow tables acaba siendo igual que un ataque por fuerza bruta clásico, en la que todos los cálculos realizados por Roberto Amado son perfectamente válidos.

    En resumen, simplemente que la afirmación de “Hemos roto WPA” es un poco pretenciosa para lo que se ha conseguido, que si bien es un aumento increible en el número de claves por minuto (y doy mi enhorabuena por el trabajo realizado), no es suficiente para hacer tal afirmación y, como dice Roberto, menosprecia el trabajo realizado por el grupo de trabajo IEEE 802.11i.

  11. Mygor, ten cuidado con las contraseñas que vienen por defecto, aunque parezcan buenas, en ocasiones se ha descubierto que el ISP generaba la contraseña de forma determinista a partir de cierta información del router, con lo que si es posible recuperar dicha información se podría obtener la clave de cifrado.

    Concretamente, recuerdo hace algún tiempo como un ISP español (sin aportar más datos, que lo busque cada uno si quiere) generaba las claves de cifrado Wifi en función de la MAC del dispositivo, por lo que simplemente con observar el tráfico Wifi podias obtener la MAC, que te daba la mayoría de los bits de la clave. Luego los que quedaban (que eran muy poquitos) solo tenías que hacer una fuerza bruta de cuestión de muy pocos minutos para recuperar la clave.

    Yo recomiendo, aunque la clave del ISP parezca fuerte, que se cambie y se ponga una de la misma complejidad pero diferente, solo por si acaso, llamadme paranóico.

  12. Estoy de acuerdo contigo en que WPA NO está roto. Y que su comunicado es para darse fama. Yo solo queria dejar constancia, que CUDA permite algo que antes era impensable, realizar un ataque de “fuerza bruta” a WPA en un tiempo prudencial.

  13. el caso es que es que empieza a ser un hecho el poder romper claves WPA con la GPU..

    y leemos otra vez el titulo…

    “¿Romper claves WPA/WPA2 usando la GPU? ¡chorradas y más chorradas!”

    soy el unico el que ve prepotencia y arrogancia ¿? encima lo recalca con “mas chorradas” !!!

    ala !!! venga !!!

  14. Anónimo, para romper claves WPA no hace falta una GPU, con un PC más bien normalito vale; todo depende de que la clave sea suficientemente sencilla o de que dispongas de suficientes años. Comprendo que el título te pueda parecer prepotente y arrogante, pero es al fin y al cabo tu opinión, que respetamos pero no compartimos; como suele decirse, nunca llueve a gusto de todos.

    [Actualización 17:30h: Me doy cuenta de que el título “Romper claves WPA/WPA2 usando la GPU? ¡chorradas y más chorradas!” debería ser efectivamente “Romper WPA/WPA2 con GPUs? ¡chorradas y más chorradas!”, que era el título de la primera entrada (y que he modificado posteriormente). Asumo el error y doy la razón (en parte) a tu comentario, aunque no totalmente.]

    En cualquier caso, por si lo dicho hasta ahora no era suficiente, lo siguiente es de Bruce Schneier:

    Speeding up WiFi Hacking with Hardware Accelerators

    Elcomsoft is claiming that the WPA protocol is dead, just because they can speed up brute-force cracking by 100 times using a hardware accelerator. Why exactly is this news? Yes, weak passwords are weak — we already know that. And strong WPA passwords are still strong. This seems like yet another blatant attempt to grab some press attention with a half-baked cryptanalytic result.

    Que es básicamente lo mismo que se ha dicho hasta ahora en este blog.

  15. Anónimo, evidentemente CUDA es un gran trabajo, si la evolución de los equipos informáticos nos llevaría a que la fortaleza de WPA/WPA2 fuera suficiente hasta dentro de X años, con esta nueva técnica estamos acotando este número de años, si es que preveemos que el crecimiento de la potencia de cálculo de las GPU va a crecer de la misma forma que lo están haciendo las CPU (que no digo ni que sí ni que no).

    Lo único que decimos al respecto es que la afirmación de los desarrolladores de la herramienta es un poco sensacionalista, porque no es cierto que hayan roto WPA, sigue sin ser computacionalmente factible romper una clave en un tiempo y con unos recursos razonables si ha sido correctamente elegida y la red Wifi correctamente configurada. Además, como dice Manolo Benet, no lo decimos solo nosotros, lo dice el Señor Bruce Schneier, que evidentemente es una eminencia en el mundo de la seguridad.

    El título del artículo no es prepotencia ni arrogancia, simplemente era un título que en principio pretendía ser un resumen de lo que se iba a leer en el artículo (osea, un no rotundo a la afirmación “WPA está muerto”, escrita en tono coloquial y cercano, o eso pensabamos) pero no por ello deja de ser totalmente cierto. Por contra el “y más chorradas” (y esto no lo he comentado con el autor, que el mismo me corrija si no es así) es por las que se han dicho a raíz del post inicial, que sin duda estaremos de acuerdo en que han sido muchas.

  16. Muy interesante la discusión generada en estos dos posts. No voy a decir que comparto la tesis de Roberto, porque parecería que lo hago por ser compañero, pero lo que si aprecio es que, una vez liberadas las dosis correspondientes de adrenalina a base de frases tajantes y expresiones “coloquiales”, lo que decís unos y otros no es muy diferente.

    Como no especialista, lo resumiría en: Elcomsoft ha dicho que habia invalidado el uso de WPA porque, usando GPU’s es capaz de romper contraseñas “no-suficientemente-complejas” por fuerza bruta. Roberto et al. dicen que esto no invalida WPA porque esa aproximación no da tiempos razonables para contraseñas razonablemente complejas.

    ¿Puedo sacar esta conclusión?

  17. Perfectamente mjuan.

  18. No estuvo mal para ser lunes, no?

  19. Y dos meses y medio despues del ultimo comentario, y despues de haberme leido y releido las dos paginas de este hilo, a mi, como persona no experta en infomatica siendo un simple usuario del tres al cuarto que solo buscaba informacion para poder reventar la clave de mi vecino y asi ahorrarme unos eurillos, solo me queda una cosa clara y que es una verdad irrefutable: la razon que tenia el tio que dijo por primera vez aquello de “en fin Serafin, mas corre el galgo que el mastin pero si el camino es largo mas corre el mastin que el galgo, no obstante, los dos corren bastante”. Y con esta brillante conclusion damos por cerrado ya del todo este hilo para no complicar mas la cosa.

    PD.- Jeje! ahora vas y lo cascas.

  20. Hola Peter curiosa aportación, si lo que pretendes es revisar el nivel de seguridad WiFi de tus conciudadanos te remito al documento siguiente: https://www.securityartwork.es/wp-content/uploads/2008/10/seguridad-en-redes-80211.pdf donde puedes obtener toda la información que deseas de una forma clara y con ejemplos de uso.

    Un saludo.

  21. Hola a todos, independientemente del debate que se estuvo llevando en este post, les puedo asegurar que me ha servido mucho de ayuda ambos. No les puedo dar una conclusion, pues estaria abundando de mas! Estoy buscando algun programa o procedimiento para romper la clave al Wireless de mi vecino, pero he aprendido un poco sobre el funcionamiento de los diversos tipos de encriptacion.
    Aunque si puedo agregar, que despues de casi un año de haber iniciado este post, las cosas deben haber avanzado tanto hasta llegar al punto de que todo sea mas facil y/o rapido de conseguir.

  22. Bueno, ya he leido bastante sobre este tema, y mi pregunta es la siguiente… cual es el programa mas comodo de utilizar para encontrar una contraseña WPA2-PSK… tengo win 7 y el programa Airowizard beta… pero cuando le pongo a correr sale la pantallita negra y desaparece y nada de nada.. tampoco entiendo como utilizar el airng..o lo que sea.. ahora tengo el ELCOMSOFT 1,0,0133 full.. pero me dice Invalid hash string.. y nada de nada..sigo tratando de encontrar un experto que diga de un programa que realmente lo haga fácil de utilizar y de entender…

    Gracias.

    H

  23. A ver, al señor ValaV le hacen chirivitas los ceros con su 8800GT, ni más ni menos que 50 mil millones de PMKs/s y lo peor es que parece que los demás se lo creen.

    A fecha de hoy con Pyrit y una Ati de gama alta prodremos procesar algunos cientos de miles de PMK/s, lo cual aunque parezca una mejoría sustancial sigue siendo miserable si nos proponemos revisar todos los caracteres posibles.

    Otra cosa es que los usuarios los utilicen en sus claves, o se utilice la fuerza bruta a lo tonto.

  24. Suscribo tus palabras al 100% jping, un saludo y gracias por tus comentarios.

Trackbacks

  1. […] Comentarios « Irresponsabilidad Corporativa y Mal Gobierno | Home | ¿Romper WPA/WPA2 con GPUs? ¡Chorradas y más chorradas! » ¿Romper WPA/WPA2 con GPUs? ¡Chorradas! Por Roberto Amado, 17 de Octubre de 2008 […]