Ataques a Redes Inalámbricas - 2 - Desgranando WEP

 Hola a todos :) en la entrada de hoy veremos como funciona el protocolo WEP.

WEP fue diseñado para proporcionar el nivel de seguridad igual al que tiene una red cableada, la cual tampoco es mucho, ya que está limitada a un espacio físico.

WEP tiene varios defectos, lo que lo hace vulnerable a diferentes tipos de ataques. A lo largo de la entrada, vamos a desgranar el protocolo y ver cuales son sus defectos. Una vez entendamos cómo funciona el protocolo y cuales son sus defectos, veremos en otra entrada como realizar ataques a este protocolo de seguridad en redes inalámbricas.

A continuación, veamos la implementación del protocolo WEP:

El cifrado comienza con el texto en claro, el cual queremos cifrar y enviar. WEP realiza un checksum CRC (verificación de redundancia cíclica, recordemos que esta verificación consiste en el resto de una división polinómica, CRC es utilizado normalmente en redes para la verificación del paquete de datos, es decir se utiliza como método de verificación de la integridad de datos). Después de realizar el CRC de los datos, forma un paquete en el que tenemos por un lado el texto en claro y por otro el CRC de comprobación, como podemos ver en el paso 3.

Realización del cálculo de la clave para cifrar:

Lo primero que realiza WEP es concatenar la clave al final de un vector de inicialización (IV). Esta combinación es la entrada para el algoritmo RC4. El cual produce una salida de una secuencia de bits pseudoaleatorios, la cual será del mismo tamaño en bits, que el tamaño del texto + CRC que hemos obtenido en los pasos anteriores.

Para cifrar, WEP realizará una función XOR entre los bits del texto en claro y los bits proporcionados por la salida del algoritmo RC4. El resultado de esta operación será el texto cifrado. Por último, el paquete del texto cifrado será precedido por el IV que se ha utilizado en el algoritmo RC4 junto a la clave. Este ultimo paso de añadir el IV en el paquete de datos, es necesario, ya que debemos de conocerlo para poder hacer el descifrado. Este es el mayor fallo del protocolo WEP.

El proceso para descifrar es el inverso al proceso de cifrado. Cuando se recibe el paquete de datos, este contiene el vector de inicialización (IV). Se utiliza ese IV junto con la clave secreta para volver a generar el mismo flujo de bits pseudoaleatorios que utilizamos para cifrar. En este caso siguiendo las propiedades de la función XOR, volveremos a realizar la operación entre el texto cifrado y el flujo de datos que acabamos de generar. El resultado de dicha operación será el texto en claro. Por último, solo nos quedaría realizar el CRC del texto en claro y comprobar la integridad de los datos.

Bien llegados a este punto ya podemos avistar donde está el problema de este protocolo. El protocolo 802.11, no especifica como se tienen que generar el vector de inicialización (IV). Cada uno de los IVs tienen un valor total de 24 bits. El problema viene con el espacio de secuencias IVs que podemos generar, como cada paquete necesita un IV único para el algoritmo RC4 en unas pocas horas podemos forzar a que se repitan los IVs que ya se han utilizado, ya que, dado el espacio de 24 bits, no vamos a poder generar las suficientes secuencias como para mantener el ritmo de IVs únicos y que nunca se repitan para el algoritmo RC4.

Otro problema que nos encontramos es el problema del intercambio y administración de la clave. WEP proporciona una clave de cifrado simétrica ( es decir una clave que sirve tanto para el cifrado, como para el descifrado), esta clave tiene que intercambiarse entre el emisor y el receptor, pero el protocolo 802.11 no especifica como se debe de intercambiar o llevar a cabo dicho intercambio.

RC4

WEP utiliza el algoritmo RC4 diseñado por RSA. Este algoritmo es mismo que se utiliza por ejemplo en SSL (Secure Sockets Layer). Actualmente se considera a este algoritmo roto, por lo que no es aconsejable su uso, pero en momento en el que se implementó WEP, no era conocida ninguna vulnerabilidad para el algoritmo RC4, por lo que su uso era seguro. El problema de WEP no radica en la implementación del algoritmo RC4, sino en la generación de los IVs, como ya hemos mencionado en los apartados anteriores.

Como WEP puede utilizar claves de 64 y 128 bits, pero necesitamos 24 bits para el IV, en realidad la longitud de las claves es de 40 y 104 bits respectivamente.

Colisión de IVs

Se llama colisión de IV cuando uno de ellos se a reutilizado para otro paquete de datos. Cuando este fenómeno ocurre, la combinación de IV + datos cifrados se repite, por lo que el flujo de bits generado por el algoritmo RC4 se ha repetido.

Como el IV va en claro en el envío de datos, un atacante puede saber si ha habido una colisión si lleva la cuenta de todos los que se han utilizado (esto es posible haciendo una escucha).

Si realizamos una escucha de todos los paquetes, podremos llegar a realizar un ataque conocido como Key Stream Attack. El cual consiste en que, conociendo dos textos cifrados, el XOR entre dichos textos cifrados, nos dará como resultado el mismo que si hiciéramos XOR entre los textos en claro. Por lo tanto, conociendo dos textos cifrados y un texto en claro, podremos averiguar el valor del segundo texto en claro, es decir, podremos descifrar el trafico de WEP.

Ataque de Inyección de paquetes

Una vez que sabemos cual es el key stream (flujo de datos utilizado para cifrar), podemos generar nuestros propios paquetes cifrados. Como WEP permite el reúso de IV, el receptor tiene que aceptar todos los paquetes que utilicen IVs ya utilizados.

Ataque Authentication Spoofing

Si un atacante consigue escuchar el proceso de negociación de autenticación, puede determinar cual es el key stream utilizado en la autenticación para crear su propia respuesta al reto de autenticación, de manera que se consigue autenticar contra el punto de acceso incluso sin tener conocimiento de la clave.

 Ataques de fuerza bruta

Como ya se a mencionado antes, las claves pueden ser de 40 o de 104 bits. El problema está en que muchos de los fabricantes utilizaban generadores de claves los cuales eran débiles a la hora de generar dichas claves debido a las semillas utilizadas en durante el proceso de generación aleatoria de la clave, por lo que una clave de 40 bits generada por un generador débil puede ser crackeada en menos de un minuto.

Llegados a este punto espero que haya quedado claro como funciona el protocolo de cifrado WEP y cuales son sus debilidades, fallos y ataques. En la próxima entrada veremos como realizar un ataque a este tipo de redes inalámbricas.

Un saludo a todos :)

Comentarios

Entradas populares de este blog

Realizando hash con PowerShell

Cracking hashes con Hashcat - 4

Cracking hashes con Hashcat - 2