Actualizado para explicar mejor lo que está pasando después de hacer referencia al el documento original.
Ya que se trata de cifrado de bloque y el atacante está engañando al usuario para que envíe las solicitudes, el atacante puede obligar a las solicitudes a 1) tener un bloque completo de relleno y 2) tener un bloque donde se encuentra un byte específico de la cookie secreta fin. Como el descifrado de cifrado de bloque es el mismo por bloque en una sola secuencia, el atacante toma todo el bloque de relleno y lo reemplaza por el bloque completo que termina con el byte de cookie específico y luego lo envía al servidor. Si se acepta, el atacante sabe que el último byte del bloque de cookies descifrado a 00000111
, que (a través de algunos cálculos matemáticos en los valores cifrados) le permite al atacante calcular el byte no cifrado de la cookie. Si no funciona (que no lo hará 255 veces de 256), entonces el atacante debe obligar al usuario a enviar una solicitud completamente nueva (lo que significa una ronda de cifrado completamente diferente, por lo que tendrá una redacción completamente diferente). valores cifrados, incluso si se trata de los mismos datos sin cifrar). Solo después de que se acepte, el atacante cambiará los valores, y lo que cambiará solo será la parte de la cookie que se encuentra en el último byte del bloque que está intercambiando.
Publicación anterior:
Dado que hay 2 8 = 256 valores diferentes, un byte puede ser, y como el atacante no puede predecir cuál será la salida, debe adivinar hasta que el último byte tenga uno. valor que es válido, es decir, un valor de 7.
Por la naturaleza de la operación XOR, si una entrada es estática, entonces hay exactamente un valor para la otra entrada que producirá una salida deseada. Entonces, si c 7 es 01010101
, solo un e 7 de 01010010
dará como resultado 00000111
. El atacante no puede saber c 7 , pero puede cambiar e 7 (ya que ese es solo el valor del byte en la solicitud) hasta que el servidor no lo sepa. devolver un error.