MD5 Preimage Vulnerability in 2017

9

Recentemente ho scoperto che una delle nostre piattaforme (strettamente interna - nessun rischio esterno a meno che altri sistemi non siano completamente compromessi) stia memorizzando le password salando e poi eseguendo l'hashing MD5. Secondo l'articolo di Wikipedia, MD5 è molto vulnerabile alle collisioni, ma solo teoricamente vulnerabile agli attacchi di pre-immagine (costo di ~ 2 123 ). L'articolo cita l'attacco preimage creato nel 2009, tuttavia - molto tempo fa! Non riesco a trovare informazioni significativamente più recenti sulla vulnerabilità di MD5 agli attacchi di preimage.

Di conseguenza, la mia domanda è questa: sono state rilevate vulnerabilità in MD5 che consentirebbero un attacco preimage su una password con hash, o per trovare una collisione o determinare la password, con un costo inferiore a 2 123

Come domanda di follow-up, quanto è importante che tenti di spingere il fornitore a spostarsi da MD5 per l'hashing della password? È questa vulnerabilità principale e immediata, o più teorica di quella futura (nel caso in cui il database venga violato).

    
posta Cowthulhu 06.10.2017 - 19:23
fonte

2 risposte

15

MD5 dovrebbe essere considerato completamente compromesso per l'uso della password ed è stato "deprecato" per le password per un lungo periodo. Non deve nemmeno coinvolgere attacchi di pre-immagine o vulnerabilità esplicite. È semplice come il fatto che la velocità di hash per i moderni stack della GPU contro MD5 è così veloce che puoi forzatamente forzare quasi ogni password (ok, esagero leggermente)

Questa è una configurazione estrema , ma può attraversare quasi 200 miliardi di hash al secondo. Ciò significa che può indovinare circa 200 miliardi di password al secondo se sono sottoposte a hashing come MD5. Non ho una traduzione esatta, ma come puoi immaginare, essere in grado di provare 200 miliardi di tentativi di password ogni secondo significa che anche le password più complesse possono essere facilmente decifrate. L'articolo suggerisce che può rompere una password di Windows XP di 14 caratteri (che è leggermente più debole, e ha all'incirca il doppio del tasso di hash come per MD5) in soli 7 minuti.

Configurazioni di hashing più realistiche possono avere password hash a circa un decimo di quella velocità, ma è ancora possibile forzare con forza qualsiasi password realistica che è stata sottoposta a hashing con MD5.

Modifica per indirizzare la seconda parte della domanda

Questa è una minaccia immediata? Sì e no. In termini pratici è una minaccia teorica, in quanto le password saranno vulnerabili solo nel caso in cui questo sistema interno venga violato. Tuttavia, più leggi sui tipi di hacker molto coinvolti che i criminali attraversano quando vogliono qualcosa, più ti rendi conto di quanto sia importante avere una sicurezza completa a tutti i livelli del sistema. Personalmente ritengo che i sistemi interni debbano essere sicuri quanto i sistemi esterni. Ecco un buon esempio di tempo in cui una cattiva sicurezza porta a costose violazioni:

link

Inoltre, l'altro problema è che MD5 è stato "fuori moda" per l'archiviazione delle password da molto tempo ormai. Sarei molto preoccupato che il resto della loro sicurezza sia ugualmente obsoleto e che questo tuo sistema interno sia pieno di buchi nella sicurezza.

Un'altra modifica

Un pensiero importante da tenere a mente: con queste cose una considerazione importante è il danno potenziale causato in caso di violazione. Non so cosa faccia questo sistema interno, ma c'è un bit importante di informazioni sensibili che sicuramente memorizza: le password dell'utente. Anche se è tutto ciò che memorizza, è potenzialmente pericoloso. Ecco uno scenario pessimista molto plausibile. Quali sono le probabilità che un amministratore abbia un account utente su questo sistema interno? In tal caso, quali sono le probabilità che quella persona abbia utilizzato la stessa password per il sistema interno come ha fatto per la password da amministrare, ad esempio, il sistema di posta elettronica aziendale? Se è così, è un salto breve, salta, e salta dal cracking di una password MD5 a prendere il controllo del tuo sistema di posta elettronica, e da lì a probabilmente qualsiasi aspetto della tua azienda che è rivolto al web.

Mentre cerchi di risolvere il problema con le persone che gestiscono il tuo sistema interno, puoi pensare da solo con questa procedura e prendere le misure appropriate: "Se un utente malintenzionato riesce a ottenere una password per l'account di posta elettronica X, quanti problemi potrebbero causare? ". Sareste sorpresi dal fatto che molte aziende là fuori abbiano effettivamente il loro intero sistema dipendente dalla sicurezza di un singolo account di posta elettronica, e questo senza alcun 2FA. Se questo è il caso della tua azienda, dovresti risolverlo, indipendentemente da ciò che dice questo venditore di terze parti. In caso contrario, lo scenario peggiore è molto negativo e questo sistema interno è solo uno dei tanti modi in cui un utente malintenzionato potrebbe paralizzare la tua azienda.

    
risposta data 06.10.2017 - 21:04
fonte
1

Considerare l'utilizzo di un hash della password più moderno, Scrypt o Argon2id.

Gli attacchi di dizionario basati su GPU sono brutalmente efficaci contro gli hash salati, anche se l'hash è SHA512. PBKDF2 è un algoritmo di hash molto scarso, con collisioni banali e scarsa difesa. Bcrypt è OK, ma sarebbe più sicuro passare a un moderno algoritmo di hashing delle password hard-hard che è inefficiente sulle GPU. Scrypt è prevasivo e comunque abbastanza buono, ma se si ha accesso ad Argon2id, lo userei.

Inviami un campione casuale degli hash e dei sali MD5 e invierò il 90% delle password corrispondenti entro 24 ore. Li crackò senza una GPU: semplicemente usando il mio laptop. Veramente. Basta scaricare HashCat, ed è solo plug and chug.

    
risposta data 03.11.2018 - 19:10
fonte

Leggi altre domande sui tag