Newsgroup: it.comp.sicurezza.crittografia
Titolo: MD5 Target Collision

(mi scuso se se ne fosse già parlato in ML... è da un po' che non la
seguo assiduamente come vorrei; d'altra parte una ricerca google pare
confermarmi che così non è)
Marc Stevens ha trovato nel marzo 2006 un metodo per creare "target
collision", ovvero collisioni tali che MD5(m1||b1)=MD5(m2||b2) con la
parte iniziale dei due messaggi (m1, m2) selezionabile liberamente.
Il tutto in POCHI MINUTI di potenza di calcolo di un normale desktop.
Una delle applicazioni è questa coppia di certificati X.509 ben
diversi (anche nel nome, e con due nomi selezionabili a priori, non con
differenzre "casuali") che Marc Stevens stesso ha fatto:
http://www.win.tue.nl/hashclash/TargetCollidingCertificates/
Questo non significa che l'odierna infrastruttura PKI sia da buttare
via all'istante (dato che comunque già da tempo viene usato SHA-1 come
hash), ma secondo me è quantomeno l'ora che i programmi che verificano
la catena di certificazione dei certificati considerino le firme MD5
non valide (o quantomeno soggette a WARNING molto espliciti in fase di
verifica).

Lapo Luchini ha scritto:

Guarda, non mi interesso da molto alla crittografia, ma ho velocemente
imparato che sistemi ormai violati e violabili (com'è l'MD5, violato
diverso tempo e non più considerato un algoritmo sicuro) continuino ad
essere utilizzati perché la riscrittura delle applicazioni che li
implementano viene considerata molto più onerosa del rischio che si ha
continuando l'utilizzo dei software stessi.
Pensa poi agli sforzi per costringere gli amministratori di sistemi ad
aggiornare i propri software! Considera che esistono ancora server
Windows che non sono stati ancora patchati per bug noti ormai da tempo,
figurati cambiare un protocollo se non addirittura un'intera
infrastruttura...
Comunque, anche l'SHA-1 ha dimostrato una falla che ne mina la
sicurezza, per cui lo stesso ente creatore dell'algoritmo, l'NSA, lo
sconsiglia e spinge per l'utilizzo dei suoi successori SHA-256 e
SHA-512, anche se qualcuno dice che il Whirpool sia migliore.
-- 
Ciao.
Leo.
Web: 
www.leonardomiliani.com
E-mail: 
leon...@leonardomiliani.com
Scegli software opensource - Choose opensource software

continuando l'utilizzo dei software stessi.
Scusa se mi intrometto :-)
MD-5 Violato? Violato da cosa?
MD-5 è un meccanismo per la creazione di digest con funzioni di hash.
Fine. Non è un modo per "nascondere" o "cifrare" un messaggio.
Sbaglio?
Se intendi che da un hash MD-5 sia possibile risalire al messaggio
originale, questo lo vedo al quanto arduo visto che il digest ha
dimensioni fisse.
Se intendi che due messaggi diversi possano avere uno stesso digest
MD-5 beh, il discorso è diverso, ma non si tratta mica di violazione.

 MD-5 beh, il discorso č diverso, ma non si tratta mica di violazione.
Che ci siano collisioni fa parte della tecnica hash.
Che si possano creare facilmente certificati validi e parzialmente 
liberi che producono una chiave hash determinata č piů inquietante.
-- 
Spesso l'uomo concentrandosi sui mezzi perde di vista lo scopo.
A. Schopenhauer

 MD-5 beh, il discorso è diverso, ma non si tratta mica di violazione.
Guarda che spesso gli algoritmi di hashing sono usati proprio per
immagazzinare dati sensibili su supporti accessibili.
Specificatamente, si usano salvare le password non nella loro forma in
chiaro ma in forma di hash e poi confrontando, al momento
dell'immissione della password da parte dell'utente, se l'hash di questa
corrisponde con l'hash memorizzato in precedenza. Vedi dunque che anche
gli algoritmi di hashing possono essere usati per "nascondere" dei dati,
quindi sono a tutti gli effetti algoritmi crittografici.
Poi, per "violato" intendo che ha noti e grossi problemi di sicurezza
(
http://en.wikipedia.org/wiki/MD5
), tali che con pochi minuti di calcolo
semplici programmi come John the Ripper (
http://www.openwall.com/john/
)
recuperano le password protette con questo algoritmo grazie a collisioni.
Tornando al post iniziale, visto che l'MD5 è attaccabile tramite
collisioni, è insicuro anche come digest: se invii un'hash MD5 come
autenticazione (se non sbaglio il protocollo APOP lo fa), un
malintenzionato può riuscire ad accedere ai tuoi dati di login a forza
di tentativi.


quindi sono a tutti gli effetti algoritmi crittografici.
Perdonami, ma non mi sembra una argomentazione convincente. Anche il
base64 č una codifica che viene usata tra le tante cose per
l'autenticazione http/1.1 di tipo basic. Questo non vuol dire che devo
considerarla debole. Poi lascia fare il fatto che la base64 č una
funzione bidirezionale e l'md5 č monodirezionale. Il concetto č
"l'uso" che se ne fa. E' una codifica e basta, non posso pretendere di
usarla per la protezione di informazioni. Se poi la uso per passare
dati importanti, beh, la fava sono io.
Per MD5 lo stesso. 
Sinceramente per le mie poche conoscenze di crittografia, non mi sento
di "accusare" l'MD5 di essere facilmente violabile. Al piů accuso chi
lo ha scelto per fondare uno standard di trasmissione dati sensibili. 

 di "accusare" l'MD5 di essere facilmente violabile. Al più accuso chi


 che possa succedere? non esiste una patch???
Tranquillo, per messaggi relativamente brevi la tecnica indicate nel 
post non riesce a generare un altro messaggio che produca una hash 
determinato.
Per ottenere questo occorre aggiungere alla porzione dei messaggi m1 ed 
m2 due appendici b1 e b2 abbastanza lunghe.

 lo ha scelto per fondare uno standard di trasmissione dati sensibili. 
Qui siamo sulla stessa lunghezza d'onda. Sapendo che l'algoritmo ha una
robustezza limitata, è un po' assurdo utilizzarlo. Però stiamo parlando
col senno di poi perché alcuni anni fa l'MD5 era una delle poche
alternative liberamente utilizzabili ed i protocolli sappiamo tutti
quanto tempo passi prima che vengano cambiati (l'esempio delle password
su Linux è chiaro: quando furono scelti gli algoritmi di cifratura,
c'era ben poco di liberamente usabile).


 grazie Alessandro
C'è da considerare che una somma di controllo da sola non serve a
verificare la bontà di una trasmissione effettuata correttamente. Se i
dati vengono intercettati e modificati, l'hacker può ricalcolare
l'hashing e rispedire il pacchetto. Chi lo riceve, se basa tutto solo
sul controllo del digest, può prendere per buoni anche dati creati ad arte.
Dovresti utilizzare una firma digitale per "certificare" la genuinità
dei dati trasmessi. Chi riceve i dati, li decifra e poi verifica che la
firma digitale corrisponda.
