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
Publicar un comentario