WEP tiene defensas para este tipo de ataques, por ejemplo un campo para cerciorase de la integridad de los datos, el IC. Para evitar cifrar dos textos con la misma key, se usa un vector de inicialización (iv) para aumentar la llave secreta compartida y generar así una llave RC4 distinta para cada paquete. Sin embargo este tipo de medidas son ejecutadas incorrectamente, como consecuencia de ello la seguridad es baja.
La comprovación de integridad esta implementada mediante el CRC-32 checksum que es linear, con lo que podemos la diferencia de bit entre dos CRCs, o sea q si tomamos un bit del mensaje podemos ajustar la suma de comprovación de manera que en el destino nos diga que el mensaje no ha sido alterado
El vector de inicialización (iv) és un campo de 24 bits que se
envia en la parte del "cleartext" del un mensage, un vector tan pequeño
nos asegura que la llave se va ha repetir en distintos mensages, por ejemplo
un servidor que envia 1500 bytes a 11 Mbps, el espacio del vector se agotará
tras 1500*8/(11*10^6)*2^24 ~ 18000 segundos, 5 horas, este tiempo normalmente
será menor, puesto que los paquetes en ocasiones serán inferiores
a 1500 bytes. Esto permite al atacante que recoja dos textos cifrados con la
misma clave y realizando ataques estadísticos podra recuperar el texto
original. Pues este error aún es mayor si se utiliza la misma llave para
todas las estaciones móviles, esto supondra más colisiones del
vector de inicialización.
Por ejemplo, tenemos una targeta PCMCIA que resetea el vector a 0 cada vez que
la encendemos, y que en cada paquete que mandemos se incrementa a 1, pues si
conetasemos 2 targetas al mismo tiempo y empezaramos a transmitir tambien al
mismo tiempo... ya sabemos dos llaves identicas circulando por la red :), bueno
pues en realidad es aun peor porque el estádar 802.11 dice que el cambio
del vector de inicialización en cada paquete es opcional.
volver