MAC's and Forgery

3

Sto seguendo un corso sulla sicurezza delle informazioni e ho molte domande senza risposta!

Ho appreso che la crittografia non garantisce l'autenticazione, il che ha senso per me, ma tutti gli esempi nella lezione e quelli che ho trovato su Google mi sembrano molto artificiali o teorici. Ad esempio, un esempio era che l'utente malintenzionato poteva modificare alcuni bit nel testo cifrato per aumentare o diminuire la quantità di denaro che è necessario trasferire. Ma come dovrebbe qualcuno conoscere la posizione esatta dei bit che rappresentano questa quantità? Qualcuno potrebbe fornire un esempio più realistico o spiegare perché questo è realistico?

Una seconda domanda riguarda l'autenticazione con le funzioni hash. Per esempio quando scarico linux mint, lo verifichi con md5 (perché la gente usa ancora md5, anche se è considerata completamente danneggiata?). Quindi, se qualcuno facesse un attacco MITM e inoltrasse una distribuzione malevola a me, lo noterei. Ma lascia supporre che l'avversario possa trovare una collisione in una di quelle funzioni di hash sicure. Quindi non lo aiuta, perché vuole modificare la distribuzione in un modo speciale, non solo trovare un'altra immagine ISO che abbia lo stesso valore hash di quello fornito, giusto?

So che ci sono già molte domande su questo argomento, ma non ho trovato un collegamento che mi soddisfi: -)

    
posta ph0t3k 09.08.2016 - 15:08
fonte

3 risposte

1

But how should anyone know the exact position of the bits representing this amount?

Dobbiamo supporre che lo facciano. Cioè, il sistema dovrebbe essere sicuro anche se capita di conoscere il formato.

Per i protocolli comuni, come HTTP, è facile vedere che tutti sanno cosa è dove. I dati specifici del sito potrebbero cambiare, ma se l'utente malintenzionato può creare un account per se stesso, possono vedere il traffico legittimo. Anche per i protocolli meno comuni, di solito non possiamo proteggere completamente le specifiche del protocollo da un utente malintenzionato. Per ragioni di interoperabilità, potrebbe effettivamente essere pubblico o disponibile per denaro. Oppure alcuni addetti ai lavori potrebbero trapelarlo, ecc. Chiunque lavori con il protocollo o i sistemi che lo utilizzano sarebbe in grado di scoprire quale sia il formato.

Piuttosto che mantenere segreto l'intero protocollo, è più semplice se la sicurezza si basa solo sulla sicurezza delle chiavi.

So if anyone would make a MITM attack and forward a malicious distribution to me, I would notice it.

Bene, forse. A meno che tu non abbia ottenuto l'hash dallo stesso server dell'immagine di installazione, dove l'hacker potrebbe ovviamente modificarli entrambi. Un hash puro non è molto di autenticazione, dal momento che chiunque può calcolare un hash valido per un file modificato. È necessario utilizzare un sistema di firma (chiave pubblica) per verificare i download del software. (O meglio, per verificare gli hash.)

Per quanto riguarda le collisioni, la creazione di una collisione potrebbe essere difficile se sai che i dati di origine sono due righe nel pentametro giambico, ma come dice @zlk, un file ISO probabilmente ha molto spazio extra con cui lavorare per creare la collisione. Cioè, se il programma di installazione di base può essere modificato senza che tu te ne accorga, non importa molto se alcuni pacchetti opzionali nell'immagine vengono eliminati dal cestino per realizzarlo.

    
risposta data 09.08.2016 - 16:49
fonte
0

Crittografia: il motivo per cui la crittografia non è l'autenticazione è perché ciascuna parte non ha un modo per determinare con chi sta parlando senza autenticazione. In base all'esempio, l'autore dell'attacco potrebbe impersonare una parte e trasferire interamente i soldi su un altro account.

Funzioni hash: md5 è rotto, ma è ancora difficile creare un file contraffatto che può essere utilizzato al posto di quello originale. Detto questo, un iso è uno dei formati di file più facili da falsificare perché l'attaccante può aggiungere dati arbitrari per generare l'hash in collisione senza rompere il formato del file.

Inoltre, molti luoghi pubblicano gli hash sha1 e sha2. Usa quelli invece, preferibilmente gli hash sha2.

    
risposta data 09.08.2016 - 16:13
fonte
0

In primo luogo, la proprietà di cui stai parlando in entrambi i casi non è in realtà autenticazione, ma integrità. Un MAC fornisce sia l'autenticazione che il controllo di integrità, ma nelle istanze specifiche che hai citato, è l'integrità che è in discussione.

Per l'esempio di un utilizzo di un MAC per la crittografia autenticata, l'esempio che citi è vero ... Quando i dati crittografati hanno una struttura ben nota (come spesso accade) e il testo in chiaro è noto, i bit del testo cifrato (o la IV) può essere modificata per cambiare il messaggio decrittografato. Un attacco molto più comune contro la crittografia non autenticata, tuttavia, è un attacco oracle di padding contro le cifrature in modalità blocco. che può portare alla completa perdita di riservatezza. La corretta protezione dell'integrità del testo cifrato con un MAC in una costruzione cifrata-poi-MAC può eliminare completamente la possibilità di questi attacchi.

Per il secondo esempio di MD5, il motivo per cui MD5 è ancora utilizzato è principalmente l'inerzia. È implementato in molti luoghi, è stato usato per decenni, ed è difficile motivare il cambiamento, anche se SHA-2 è sicuramente migliore. Detto questo, non c'è nessun attacco pratico qui. MD5 è rotto rispetto agli attacchi di collisione, ma ciò di cui hai bisogno per questo particolare attacco non è una collisione, ma una seconda pre-immagine. Questo è molto più difficile, perché mentre con una collisione ti interessa solo trovare due ingressi, due ingressi qualsiasi, che producono un singolo output, con un secondo attacco pre-immagine sia il primo input (il file legittimato) che l'output (l'hash di quel file) sono corretti, e solo il secondo input (il file dannoso) può essere manipolato. L'attacco pre-immagine più noto contro MD5 in questo momento ha un costo di qualcosa sulla falsariga di 2 123 ... Molto oltre ciò che è tecnicamente fattibile. Quindi, non importa quanto difficile possa tentare un aggressore, non sarà mai in grado di produrre un file con una firma che corrisponda alla firma esistente di un file esistente.

    
risposta data 09.08.2016 - 17:01
fonte

Leggi altre domande sui tag