BEAST alcuni fraintendimenti

2

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?

    
posta mpgn 29.03.2015 - 15:15
fonte

1 risposta

1

Sì Pi è aggiunto al corpo; (re) leggi il paragrafo con l'etichetta Privilegio Blockwise nella parte superiore della pagina. Ricorda HTTP e quindi HTTPS è un protocollo di streaming; se fai una richiesta per caricare dire 100 gigabytes di video non compresso probabilmente non lo farai in un solo passaggio. Per ridare un po 'più finemente:

  • Passaggio 1 Il codice di Mallory causa qualcosa nel browser di Alice per aprire una connessione e iniziare una richiesta. Formatta l'intestazione della richiesta HTTP più la parte iniziale del corpo (che in realtà potrebbe essere vuota), oltre a un HMAC e padding non rilevanti per l'attacco, formando il primo record di dati bloccato come P1 .. Pn , criptato a C1 .. n e invia quei blocchi. Per l'esempio, il blocco P3 (crittografato su C3 ) contiene un valore noto ad eccezione di un byte di cookie che Mallory vuole indovinare.

  • Passaggio 2 Mallory cattura C1 .. Cn

  • Passaggio 3A Forme di Mallory Pi = (IV=Cn) xor C2 xor Pguess (un valore indovinato per P3).

  • Passaggio 3B Il codice di Mallory dice il qualcosa Pi è il blocco successivo del corpo della richiesta. Crea quindi un secondo record di dati che inizia con Pi (o se preferisci, P2001 significa il primo blocco del secondo record) più altre cose di cui non ci interessa, lo crittografa utilizzando IV (o IV2 per il secondo record) = Cn , producendo Ci .. ignored (o C2001 .. C200x ). Mallory cattura questi.

    Se Pguess era corretto ( Pguess = P3 ) quindi il blocco Ci/C2001 crittografato da Cn xor (Cn xor C2 xor Pguess=P3) è uguale al blocco C3 crittografato da C2 xor P3 .

Tuttavia, a meno che tu non abbia sistemi molto vecchi (e probabilmente orribilmente pericolosi), non puoi più sfruttare BEST, perché praticamente tutti hanno implementato la frammentazione dei dati per bloccarlo. Vedi link .

(PS: Quel documento è PDF, non LaTeX. Ma non fa alcuna differenza per il significato.)

    
risposta data 27.06.2015 - 11:07
fonte

Leggi altre domande sui tag