La casualità previene gli attacchi di collisione?

8

Google ha recentemente annunciato una pratica collisione SHA-1 .

Alcuni anni fa MD5 aveva problemi simili e i ricercatori hanno persino creato una CA falsa .

Questo non sarebbe possibile oggi - nemmeno con MD5 - perché CA deve includere almeno 20 bit di dati casuali nel numero di serie (vedi Requisiti di Mozilla ).

La mia domanda è un po 'più generale: gli attacchi di collisione sono importanti se i messaggi firmati includono dati casuali generati dal firmatario?

Per tutti gli usi degli hash, penso che siano solo le firme in cui contano le collisioni. E poi, solo quando il firmatario sta firmando un messaggio da qualcuno non fidato. Ci sono altri casi d'uso in cui è importante? E in questo caso d'uso, se il firmatario include sempre dati casuali nel messaggio, questo previene gli attacchi di collisione.

A proposito, continuo a pensare che abbandonare SHA-1 sia una buona idea, questa domanda è più teorica.

    
posta paj28 23.02.2017 - 15:05
fonte

2 risposte

4

Sì, la casualità controllata dal firmatario e che (in modo cruciale) è imprevedibile dall'attaccante elimina il potenziale per una collisione da generare, incluso lo stile prefisso scelto degli attacchi di collisione che erano utilizzato dal ricercatore per creare una CA falsa nel 2008 e gli autori del malware Flame per creare un certificato di firma falsa pochi anni dopo.

Il motivo è questo: per creare un attacco di collisione, l'attaccante deve avere il controllo su entrambi gli input. Ciò non significa che entrambi gli input siano necessariamente del tutto arbitrari. Infatti, come sai, sicuramente non lo sono, né per i certificati falsi, né per i PDF creati da Google nel loro esperimento. Di fatto c'è un sacco di strutture. Tuttavia, l'attaccante deve ancora sapere esattamente quali sono i componenti fissi dei due input, in modo da essere in grado di generare i componenti di entrambi gli input che alla fine consentiranno agli hash degli ingressi completi di scontrarsi .

Quindi, quando l'attaccante non controlla e non può predire quale sia la forma finale di uno degli input, non può creare in anticipo i dati che dovrebbero essere nell'input che sottopone al firmatario per firmare. Scopre solo in seguito i dati di input completi (incluso il nonce) e l'hash risultante. Questo cambia radicalmente il problema dall'esigenza di creare una collisione, alla necessità di creare una seconda pre-immagine, che come hai notato è un problema molto più difficile, e qualcosa che non è ancora possibile con MD5, se lo sarà mai.

Quindi, direi che sì, l'introduzione di casualità imprevedibile elimina effettivamente il potenziale per gli attacchi di collisione come classe.

    
risposta data 24.02.2017 - 15:47
fonte
-1

"La mia domanda è un po 'più generale: gli attacchi di collisione sono importanti se i messaggi firmati includono dati casuali generati dal firmatario?"

I dati casuali possono migliorare la sicurezza rendendo più difficili gli attacchi di collisione. Senza informazioni complete sull'attacco, è impossibile rispondere con certezza, ma sembra che dati casuali non migliorino la sicurezza in questo scenario, perché l'attaccante può generare la collisione su richiesta, sulla base di un messaggio di partenza arbitrario.

"Esistono altri casi d'uso in cui è importante?"

Sì. Google, nel suo articolo sull'argomento, nota che qualcuno potrebbe inviare due contratti diversi con hash identici, ma termini diversi nel contratto. Questa potrebbe essere una festa di fiducia che cerca di fregarti (succede!) O potrebbe essere qualcuno che fa la parte fidata. L'hash sarebbe utilizzato per la verifica dell'integrità del file, non come una firma. Un altro caso d'uso è git. Git usa gli hash sha1 per identificare il codice. Se qualcuno può generare un nuovo codice con hash identici, git non è in grado di distinguere tra i due e un utente git potrebbe creare / eseguire software dannoso.

    
risposta data 23.02.2017 - 20:12
fonte

Leggi altre domande sui tag