Stavo leggendo il Here Come The ⊕ Ninjas documento sull'attacco BEAST scoperto da Thai Duong & Juliano Rizzo. Ci sono due punti che non riesco a capire.
Alla sezione 5 - Applicazione: Decrittografia delle richieste HTTPS , spiegano passo dopo passo a rendere possibile questo attacco.
Mi concentrerò sui passaggi 3 e 4:
(riprodotto qui come testo semplice. Il rendering di Lattice è a pagina 7 del documento. )
Passaggio 3
Let IV be the last ciphertext block that Mallory captures, e.g., IV is Cn after step 2. Mallory computes Pi = IV XOR C2 XOR Pguess, where Pguess = P/1.1\r\nW[i]. Mallory appends Pi to the existing request, e.g., Pi is appended to the request body (this is the last assumption.) Alice’s browser would compute Ci Ek(IV XOR Pi) and send Ci to server.
Passaggio 4
Mallory captures Ci. If Ci = C3, he knows that X is equal to W[i]. Otherwise he increases i and goes back to step 3.
Significa che Mallory cattura C1
e confronta il blocco crittografato C1
= C3
? Perché IV è usato per essere XOR con P1
quindi perché parlano di Ci
come può essere C1
, C2
, C3
.. Cn
quando può essere solo C1
?
In realtà questa riflessione proviene da questo:
Pi
viene aggiunto al corpo della richiesta - > il corpo della richiesta di una richiesta HTTP? Non ha senso inserirlo nel corpo della richiesta! Il significato IV è usato solo con il blocco P1
.
Quindi qual è il punto di mettere Pi
nel corpo della richiesta?