BEAST algunos malentendidos

2

Estaba leyendo el Aquí viene el El documento ⊕ Ninjas sobre el ataque BEAST descubierto por Thai Duong & Juliano Rizzo. Hay dos puntos que no puedo entender.

En la sección 5 - Aplicación: descifrado de solicitudes HTTPS , explican paso a paso para hacer posible este ataque.

Me centraré en el Paso 3 y en el Paso 4:
(Se reproduce como texto simple aquí. Una mejor La representación de LaTeX se encuentra en la página 7 del documento. )

Paso 3

  

Sea IV el último bloque de texto cifrado que Mallory captura, por ejemplo, IV es   Cn después del paso 2. Mallory calcula Pi = IV XOR C2 XOR Pguess, donde Pguess =   P / 1.1 \ r \ nW [i]. Mallory agrega Pi a la solicitud existente, por ejemplo,   Pi se adjunta al cuerpo de la solicitud (este es el último supuesto).   El navegador de Alice calcularía Ci Ek (IV XOR Pi) y enviaría Ci al servidor.

Paso 4

  

Mallory captura Ci. Si Ci = C3, sabe que X es igual a W [i].   De lo contrario, aumenta i y vuelve al paso 3.

¿Lo que significa que Mallory captura C1 y compara el bloque cifrado C1 = C3 ? Debido a que IV se usa para ser XOR con P1 , ¿por qué hablan de Ci como puede ser C1 , C2 , C3 .. Cn cuando solo puede ser C1 ?

De hecho, esta reflexión viene de esto:

Pi se adjunta al cuerpo de la solicitud - > ¿El cuerpo de la solicitud de una solicitud HTTP? No tiene sentido poner esto en el cuerpo de solicitud! El significado IV solo se usa con el bloque P1 .

Entonces, ¿qué sentido tiene poner Pi en el cuerpo de la solicitud?

    
pregunta mpgn 29.03.2015 - 15:15
fuente

1 respuesta

1

Sí, Pi se anexa al cuerpo; (re) lea el párrafo etiquetado Privilegio Blockwise en la parte superior de la página. Recuerde HTTP y, por lo tanto, HTTPS es un protocolo de flujo; Si realiza una solicitud para cargar un video sin comprimir de 100 gigabytes, probablemente no lo haga en un solo paso. Para replantear un poco más finamente:

  • Paso 1 El código de Mallory hace que algo en el navegador de Alice abra una conexión y comience una solicitud. Formatea el encabezado de solicitud HTTP más la parte inicial del cuerpo (que en realidad podría estar vacía), más un HMAC y un relleno no relevantes para el ataque, formando el primer registro de datos bloqueado como P1 .. Pn , los cifra a C1 .. n y envía esos bloques. Para el ejemplo, el bloque P3 (cifrado a C3 ) contiene un valor conocido, excepto un byte de cookie que Mallory quiere adivinar.

  • El paso 2 Mallory captura C1 .. Cn

  • Paso 3A Mallory forma Pi = (IV=Cn) xor C2 xor Pguess (un valor calculado para P3).

  • El

    Paso 3B del código de Mallory le dice que algo Pi es el siguiente bloque del cuerpo de la solicitud. Por lo tanto, crea un segundo registro de datos que comienza con Pi (o si lo prefiere, P2001 significa el primer bloque del segundo registro) más otras cosas que no nos interesan, las cifra usando IV (o IV2 para el segundo registro) = Cn , produciendo Ci .. ignored (o C2001 .. C200x ). Mallory captura estos.

    Si Pguess era correcto ( Pguess = P3 ) entonces el bloque Ci/C2001 cifrado desde Cn xor (Cn xor C2 xor Pguess=P3) es el mismo que el bloque C3 cifrado de C2 xor P3 .

Sin embargo, a menos que tenga sistemas muy antiguos (y probablemente horriblemente inseguros), ya no puede explotar BEAST, porque prácticamente todos han implementado la fragmentación de datos para bloquearla. Consulte enlace .

(PS: Ese documento es PDF, no LaTeX. Pero no hace ninguna diferencia en el significado.)

    
respondido por el dave_thompson_085 27.06.2015 - 11:07
fuente

Lea otras preguntas en las etiquetas