¿Cómo funciona realmente el ataque de ChopChop contra WEP?

2

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?

    
pregunta programings 16.11.2014 - 14:46
fuente

1 respuesta

1

Respuesta corta

El punto principal para responder a su pregunta es que necesitamos conocer el bit de corte original para poder reconstruir el ICV. Solo si conocemos ese bit original, podemos corregir el paquete modificado para que sea aceptado nuevamente.

Respuesta más larga

AFAIK Creo que supones que

  

A continuación, él / ella "corta" el último byte del mensaje, justo antes del ICV (que también está cifrado en el paquete)

está mal. El atacante no sabe dónde comienza el ICV, simplemente corta el último byte del mensaje cifrado. Sin embargo, no estoy completamente seguro de esto. No importa por el resto de la respuesta de todos modos.

Es importante comenzar la respuesta con dos consideraciones:

  1. Siempre es posible crear un paquete dañado en función de un paquete capturado, que será aceptado por el AP (y, por lo tanto, la suma de comprobación ICV)
  2. El objetivo del ataque ChopChop no es crear un paquete dañado. Su propósito es recrear el paquete original de texto sin formato bit a bit.

No voy a detallar por qué (1) es correcto, lea una guía matemática más por eso. Ahora, aprovechamos los resultados matemáticos del punto (1) para llegar al ataque ChopChop. Imagina el siguiente paquete (data + icv):

0101 = data ; 11 = ICV ; full packet = 0101 11

El ataque chopchop funciona cortando el último bit del paquete (para que obtengamos 0101 1). Por supuesto, este paquete no será aceptado por el AP, ya que no hay forma de que la suma de control de ICV sea correcta. Ahora, el chopchop math muestra que puedo modificar este paquete para que vuelva a ser correcto (por ejemplo, 0101 0). Se ha demostrado matemáticamente que necesitamos el bit de datos original, cortado, para saber cómo tenemos que modificar el paquete para que sea aceptado nuevamente.

Por lo tanto, necesitamos un cálculo que use el bit de texto sin formato cortado como una entrada. Si no conocemos el bit de texto sin formato, no podremos saber cómo modificar el paquete cortado para que su ICV vuelva a ser correcto.

Por lo tanto, comenzamos a adivinar el bit cortado y lo ejecutamos a través del cálculo, adaptamos el ICV y verificamos si el AP lo acepta. Si lo hace, sabemos que hemos adivinado la broca cortada. Si no, intentamos con otro.

En esta respuesta, hice una abstracción del cifrado (trabajé con paquetes de texto sin formato). Sin embargo, debido a la naturaleza del cifrado (asociativo y conmutativo), esto no importa para la lógica subyacente, eso está realmente probado por el punto (1).

    
respondido por el Michael 17.11.2014 - 11:20
fuente

Lea otras preguntas en las etiquetas