22 de julio de 2008

Hacking Wireless (I)

(Lo prometido es deuda...)

La comodidad que las redes inalámbricas han aportado a nuestra vida está fuera de toda duda, su presencia en organismos públicos, poblaciones de difícil acceso, grandes eventos, empresas y sobre todo en el ámbito doméstico ha facilitado el acceso sin cables a Internet a millones de personas. En su concepción teórica las Redes Wifi tratan de ser tan seguras como lo es una red cableada, en ayuda de esta concepción nacieron los sistemas de cifrado WEP y posteriormente WPA.

Figura 1: Formato de trama IEEE 802.11

WEP, un sueño frustrado

Wired Equivalent Protocol (WEP) fue desarrollado en 1997 con el objetivo de ofrecer un grado de privacidad equivalente al que se tiene en una red con cables. El estándar IEE 802.11 incorporó desde el principio un campo en la capa MAC para indicar si se utiliza cifrado (WEP) o no (Figura 1). Este estándar ofrecía los siguientes servicios de seguridad

- Autenticación: Por clave compartida o Abierta, que es el estándar 802.11 consistente en autenticar todas las peticiones que reciben.
- Confidencialidad: Mediante la utilización del algoritmo RC4, WEP se basa en el cifrado por flujo simétrico de claves. Es decir, para que el cifrado / descifrado ocurra ambos extremos deben compartir la clave de cifrado.
- Integridad: Mediante la inclusión de redundancia ICV (Integrity Check Value) calculada con los algoritmos estándar CRC-32 y cifrada con WEP.

Pues bien, el Listado 1 muestra como romper este cifrado (Figura 2) en unos pocos pasos. ¿Cómo es posible? Si analizamos el funcionamiento de WEP, este estándar utiliza el algoritmo RC4, la operación de cifrado consiste en la realización del “or exclusive” de la corriente de claves con la corriente de bits. La clave está formada por la clave simétrica (la misma para todas las tramas, y la misma usada en la fase de autenticación) y el vector de inicialización (variable para cada trama, pero de 24 bits). La combinación de clave y vector (en adelante, IV) logra cifrar cada trama con una clave distinta a pesar de emplear una clave simétrica fija. IV es transmitido en claro junto con los datos cifrados para que el receptor pueda obtener la clave de cifrado. Si entendemos esto comenzaremos a ver problemas, si tengo una parte de la combinación usada para cifrar en claro y la otra es fija, es solo cuestión de tiempo el averiguar la fija. Además, los IV son de 24 bits, eso nos da como máximo 26.777.216 valores, esto puede generarse en unas pocas horas en cualquier red Wifi con un tráfico moderado.

El Listado 1 muestra todo esto en 5 sencillos pasos, en 1) y 2) tan solo escuchamos todo lo que hay en la red por el interfaz ath0 (podría ser otro, según nuestro caso), el 0 indica que recibamos paquetes de todos los canales (primero hay que detectar la wifi que nos interesa) y el 1 que nos quedaremos con los IV, que al fin y al cabo es lo que nos interesa. prueba será el archivo donde todo esto se guarde. Con estos pasos hemos obtenido la información de la red que queremos atacar, apuntamos el channel y el nombre de la red (ESSID) y centramos nuestro ataque en ella comenzando de nuevo (podemos seguir haciéndolo para todos los canales y realizar el ataque sobre prueba, pero si estáis en una gran ciudad como es mi caso, no es aconsejable esnifar paquetes de 15 redes distintas) En el paso 3) esnifamos paquetes del canal de la red que nos interesa (en nuestro caso el 10) indicando como identificador de la red GigA (esto cambia de una red a otra). Ahora solo tenemos que sentarnos y esperar como suben los IV. Normalmente son necesarios 250.000 para llegar al paso 5 y obtener nuestra preciada contraseña (Figura 2). Las redes más duras de romper nos harán llegar a los 500.000, pero sigue siendo cuestión de tiempo.
Listado 1: WEP roto en 5 pasos.
(Continuará...)

0 comentarios: