Crackear WPA de modems Infinitum

Como ejercicio mental estuve pensando en el tiempo y costo que tomaría crackear la contraseña de mi router Infinitum que tiene cifrado WPA en modo PSK y la contraseña viene escrita en 10 caracteres hexadecimales en la etiqueta del aparato. Cabe recordar que antes de 2012 todos venían con cifrado WEP de 40 bits.

Para algunas marcas de estos modems, como Thomson y Huawei, existen herramientas disponibles al público (Router Keygen) que permiten calcular la contraseña sin mayor esfuerzo, esto se debe a que sus contraseñas por defecto vienen derivadas del BSSID (MAC Address del router). También existen otros ataques fáciles de realizar para routers con el protocolo WPS (muchos Infinitum lo traen), una herramienta para esto es reaver.

Para los casos en los que esto no funciona y la única opción es la fuerza bruta nos enfrentamos a dos cosas: (1) tenemos que obtener un handshake entre el modem y un cliente (tablet, laptop, etc.) conectado y (2) tratar de encontrar la clave a través de ese handshake. Para la primera parte se puede hacer un ataque con aircrack. Para la segunda parte vamos a suponer que ya tenemos nuestro handshake propio capturado, que contiene el Pairwise Master Key (PMK), y de donde vamos a recuperar la contraseña WPA original (ver nota final).

Existen dos herramientas principales para hacer lo más rápido posible el cálculo de PMKs, la primera es coWPAtty y la segunda pyrit. La ventaja de pyrit es que funciona sobre tarjetas gráficas (en la página vienen los benchmarks de PMK/segundo por modelo de tarjeta). En Amazon EC2 podemos rentar instancias de GPU y según alguien que ya hizo las pruebas llegó hasta 50,000 PKM/segundo, con un costo de $2.10 dólares por hora. En una hora se pueden calcular un total de 180 millones de PMK (aprox 2^{27.42}).

Si quisiéramos realmente probar todas las claves posibles, que en este caso son 2^{40}, nos tomaría con una sola instancia un total de 6,109 horas a un costo de $12,821 dólares. No quiere decir que nos tardaríamos meses porque este proceso es completamente paralelizable y con 36 instancias simultáneas en una semana se hace el cracking total.

Podemos concluir que es un costo demasiado elevado y aunque no es una seguridad perfecta está muy fuera del alcance de un cracker de medio pelo pero no para un gobierno. Este análisis también sugiere el tiempo/costo necesario para crackear una contraseña TrueCrypt de 8 caracteres alfanuméricos, que es equivalente a una de 41.3 bits (log_2(36^8)), sólo tomaría poco más del doble de tiempo y recursos. Así que si la NSA quisiera podría cracker fácil una contraseña así y por eso TrueCrypt recomienda contraseñas de 20 caracteres, para al menos lograr una seguridad de 103 bits.

Nota: El handshake WPA contiene la contraseña pero no en texto plano, lo que contiene es la derivación de esa llave (Pairwise Master Keys) a partir del algoritmo PBKDF2. Dicho pronto y mal para WPA se aplica 4096 veces SHA1 sobre la contraseña y utiliza como salt el SSID (nombre de la red), por lo que probar una clave no es tan trivial como calcular sólo un SHA1, además que el salt evita tener tablas universales precalculadas.

Los comentarios están cerrados.