Según entiendo, el ataque de ChopChop contra WEP, cuyo objetivo es descifrar un paquete sin necesidad de conocer la clave WEP, es el siguiente:
Primero, el atacante toma un mensaje de texto cifrado de la secuencia de RF, dirigido al AP objetivo. A continuación, "corta" el último byte del mensaje, justo antes del ICV (que también está cifrado en el paquete), y lo reemplaza con un valor aleatorio en el rango de 01 a FA. Luego, el atacante encuentra la posición de un byte cambiado en el ICV y la calcula como correcta (porque es CRC-32 lineal), por lo que el paquete modificado tendrá una suma de comprobación ICV correcta cuando el AP lo verifique durante el proceso de descifrado.
Los paquetes ahora se inyectan en el AP. El atacante escucha el tráfico de difusión para ver si el paquete (solicitud de ARP, en la mayoría de los casos) se retransmite nuevamente.
No puedo entender, si la suma de comprobación siempre es correcta (el atacante lo calcula para que coincida con el byte de texto simple cambiado en el texto cifrado justo antes de la inyección de paquetes en el AP), cómo el AP sabe que el byte modificado es en realidad ¿incorrecto y no coincide con el texto simple?
El AP descifrará el paquete (el último byte en texto sin formato será ignorado por el algoritmo de descifrado, ya está en texto sin formato), luego calculará la suma de comprobación del texto sin formato y verá si coincide con el valor ICV descifrado. Y siempre coincidirá, porque el atacante lo calcula justo antes de la inyección del paquete en el AP. Entonces, ¿el AP nunca rechazará el paquete?
¿Cómo determina nuestro AP que el paquete con el byte invertido está dañado?