Domanda:
Perché le persone usano / raccomandano ancora MD5 se è stato crackato dal 1996?
Marek Sebera
2012-06-07 20:18:45 UTC
view on stackexchange narkive permalink

È ancora un modo comunemente raccomandato per l'hashing delle password, anche se la sua insicurezza era stata dimostrata nel 1996:

Pertanto suggeriamo che in futuro MD5 non dovrebbe più essere implementato in applicazioni come signa- schemi di ture, dove è richiesta una funzione hash resistente alle collisioni. Secondo le nostre attuali conoscenze, i migliori consigli per alternative a MD5 sono SHA-1 e RIPEMD-160.

(Lo stato di MD5 dopo un attacco recente, CryptoBytes, RSA Laboratories, VOLUME 2, NUMBER 2 - SUMMER 1996)

Anche dopo questo studio e tutti i prossimi articoli sui suoi difetti, è stata raccomandata come funzione di hashing delle password nelle applicazioni web, da allora .

Viene persino utilizzato nella firma digitale di alcune autorità di certificazione (secondo http://rmhrisk.wpengine.com/?p=60)

Qual è il motivo per cui questo algoritmo di digest del messaggio non è ancora vietato ai fini della sicurezza?


Collegamenti, ho impiegato alcuni minuti per trovarli

Questa domanda sembra terribilmente vicina all'essere uno sproloquio, dal mio punto di vista. Puoi riformularlo in una domanda fattuale? Assicurati di documentare tutte le tue premesse / ipotesi.
@Ramhound Se ad esempio google. Guida introduttiva alla protezione dell'applicazione web PHP, l'80-95% utilizzerà MD5 senza dare preavviso che in questo modo non è sicuro.
@MarekSebera - Non uso sorgenti casuali per imparare a scrivere un buon codice "sicuro". Uso fonti che conosco per usare buoni concetti di programmazione. Ho cercato "guida introduttiva per proteggere le applicazioni web PHP", il primo articolo non suggeriva MD5.
@Ramhound Il testo citato non dice nulla sulle password. Non è nota alcuna vulnerabilità in MD5 che ne impedirebbe l'utilizzo ** per l'hashing delle password **.
Otto risposte:
Thomas Pornin
2013-03-03 23:14:44 UTC
view on stackexchange narkive permalink

Per completare la buona risposta di @DW: per l'hashing della password, MD5 non è più rotto di qualsiasi altra funzione hash (ma non usarla comunque) .


Il quadro completo: MD5 è una funzione hash crittografica che, come tale, dovrebbe soddisfare tre caratteristiche:

  • Resistenza alle preimmagini: data x , non è possibile trovare m tale che MD5 (m) = x .
  • Resistenza alle seconde preimmagini: dato m , non è possibile trovare m ' distinto da m e tale che MD5 (m) = MD5 (m ') .
  • Resistenza alle collisioni: non è possibile trovare m e m ', distinti l'uno dall'altro e tali che MD5 (m) = MD5 (m') .

MD5 è completamente rotto per quanto riguarda le collisioni , ma non per le preimmagini o le seconde preimmagini. Inoltre, l'attacco del 1996 (di Dobbertin) non ha infranto affatto l'MD5; si trattava di una "collisione sulla funzione di compressione", cioè di un attacco a uno degli elementi interni dell'MD5, ma non della funzione completa. I crittografi lo presero come una bandiera di avvertimento, e avevano ragione perché l'attacco di collisione effettivo che è stato pubblicato nel 2004 (da Wang) è stato costruito dalle scoperte di Dobbertin. Ma MD5 è stato rotto solo nel 2004, non nel 1996, ed è stato un attacco di collisione .

Le collisioni non sono rilevanti per la sicurezza dell'hashing delle password. La maggior parte degli usi di una funzione hash per l'hashing della password dipende dalla resistenza preimage o da altre proprietà (ad esempio, quanto bene la funzione hash funziona quando viene utilizzata all'interno di HMAC, qualcosa che non può essere ridotto a nessuna delle proprietà sopra ). MD5 è stato effettivamente "indebolito" per quanto riguarda le preimmagini, ma solo in modo teorico, perché il costo di attacco è ancora miliardi di miliardi di volte troppo alto per essere provato (quindi MD5 non è "veramente" rotto per quanto riguarda le preimmagini, non in modo pratico).

Ma non utilizzare comunque MD5 . Non a causa di una debolezza crittografica, ma perché MD5 è non salato e molto veloce . Questo è esattamente ciò che non vuoi in una funzione di hashing della password. Le persone che "consigliano MD5" per l'hashing delle password semplicemente non ne sanno niente di meglio, e sono una testimonianza di una Verità che dovresti sempre tenere a mente: non tutto ciò che trovi su Internet è corretto e affidabile. Sono note soluzioni migliori per l'hashing delle password e sono state utilizzate e distribuite da oltre un decennio. Vedi questa risposta per dettagli e suggerimenti.

L'uso di MD5 da solo per l'hashing delle password non è una buona idea, perché richiede agli utenti di scegliere password molto complesse per essere sicuri. Tuttavia esiste una costruzione standard per il calcolo di un hash di password salato utilizzando MD5 e, per quanto ne so, non è ancora rotto.
La tua corretta affermazione sul fatto che l'MD5 è troppo veloce e non salato a parte (perché questo vale anche per la famiglia SHA) Io starei _ancora_ lontano dall'MD5 per un motivo non tecnico: pubbliche relazioni. È una seccatura dover convincere il tuo capo o cliente di ciò che spieghi. E anche tonnellate di tecnici (le cui opinioni sono valutate dalle stesse persone che stai cercando di convincere) sono delusi. Dopotutto, ci sono molte "prove" su Internet che supportano la loro convinzione che MD5 non dovrebbe essere usato _perché_ è stato rotto nel 2004.
Per quanto riguarda la resistenza alle preimmagini, mi chiedo perché non hai menzionato * [Yu Sasaki;Kazumaro Aoki (16 aprile 2009)."Trovare le preimmagini in MD5 completo più velocemente di una ricerca esaustiva".Springer Berlin Heidelberg] (http://www.springerlink.com/content/d7pm142n58853467/) * ** e / o ** [* Ming Mao e Shaohui Chen e Jin Xu (2009)."Costruzione della struttura iniziale per Preimage Attack di MD5".Conferenza internazionale sull'intelligenza e la sicurezza computazionale.IEEE Computer Society] (http://ieeexplore.ieee.org/document/5376483/) * che indica una rottura (teorica) della resistenza preimage di MD5 nel 2009.
@e-sushi Bene, questo è ciò che intendevo con "indebolito in modo teorico".
@ThomasPornin In tal caso, ignora semplicemente il mio commento e consideralo un'aggiunta di conferma per sottolineare le tue affermazioni.;)
D.W.
2012-06-07 23:10:48 UTC
view on stackexchange narkive permalink

Cosa intendi con "proibito"? Chi "proibirebbe" l'uso dell'MD5? Non è come se avessimo alcuni International Crypto Cops che arrestano persone che usano ROT13 e altri schemi crittografici insicuri.

O, per essere un po 'più seri: i crittografi raccomandano già che i nuovi sistemi dovrebbero evitare MD5, e loro raccomanda che i sistemi esistenti migrino dall'MD5. Non so cos'altro pensi che i crittografi possano fare al riguardo.

Affermi che MD5 è un "metodo comunemente consigliato per l'hashing delle password", ma non fornisci alcuna prova per questa affermazione. Non penso che l'affermazione sia corretta. Non è stata la mia esperienza.

La conclusione è che la comunità crittografica sta già parlando abbastanza chiaramente, con una sola voce, su questo argomento, e la maggior parte delle persone lo è sta già migrando da MD5. I casi in cui viene ancora utilizzato MD5 sono l'eccezione, non la norma.

Modifica (6/17): vedo che hai aggiunto alcuni link che menzionano l'uso di MD5 per l'hashing. Tutto ciò che dimostrano è che alcune persone di cui non ho mai sentito parlare sono confuse. E allora? Probabilmente dovresti essere scettico nel ricevere consigli da persone che non hanno stabilito una reputazione positiva nella comunità di sicurezza / crittografia, comunque. E non capisco come si possa criticare la comunità di sicurezza / crittografia per il fatto che alcune persone che non fanno parte della comunità sono confuse. Cosa dovremmo fare esattamente? Facciamo già tutto il possibile per espandere la conoscenza del modo giusto per farlo. Sento che stai davvero dando la colpa alle persone sbagliate.

Comunque, per rispondere alla tua domanda sul perché alcune persone raccomandano ancora MD5: beh, accidenti, probabilmente è perché quelle persone non sanno niente di meglio . Non so cosa si possa dire di più sull'argomento, o cosa ci si aspetta di più da qualcuno.

la parola "proibire" è probabilmente usata in modo sbagliato. Intendo più come mettere un grande schermo di avvertimento attorno ad esso e indirizzare gli sviluppatori a SHA o Blowfish, in quanto può servire allo stesso scopo. E sì, si sta abituando a essere meno utilizzato, ma possiamo ancora trovare molti articoli su MD5, dove usato nell'hashing delle password non viene rifiutato. Ho aggiunto alcuni collegamenti alla fine della domanda, che si riferisce a MD5 come algoritmo di hashing sicuro, per dimostrare la mia affermazione.
@MarekSebera Nel contesto dell'hashing della password non è noto alcun attacco a md5 che non si applichi a Sha1 / 2. E il pesce palla non è nemmeno una funzione hash.
Sbaglio con Blowfish, ma in termini di "attacco di collisione", SHA2 è ancora sicuro e SHA1 viene attaccato solo teoricamente, finora non esiste un algoritmo di ricerca rapida delle collisioni, che violerebbe la sicurezza di SHA1 / 2. Se stai parlando di tabelle arcobaleno SHA o attacco bruteforce, sì, queste funzioni non sono protette (ma quale funzione di hashing è) contro di loro
@MarekSebera Il punto è che gli attacchi di collisione sono completamente irrilevanti nel contesto dell'hashing delle password. Anche una funzione hash che consente la costruzione di collisioni con carta e penna può essere completamente sicura per l'hashing delle password, a condizione che le prime pre-immagini siano ancora difficili da trovare.
@CodesInChaos Perché le collisioni sono irrilevanti con l'hashing delle password? Uno schema di hashing delle password in cui due password vengono sottoposte ad hashing due dello stesso digest non viola la sicurezza dello schema di hashing delle password? Ciò significa che un altro utente con password diversa è autorizzato ad accedere
@curious Con una vulnerabilità di collisione, l'attaccante deve controllare entrambe le stringhe. Chi se ne frega se l'aggressore può creare un account di cui conosce due password diverse, è comunque il suo account. L'uso corretto del salting (HMAC o anteposto alla password) blocca i normali attacchi di collisione, quindi non sarai nemmeno in grado di trovare collisioni contro PBKDF2-HMAC-MD5.
Allora perché la competizione per l'hashing delle password? Dato che gli schemi di hashing delle password funzionano bene?
Immagino che il motivo per cui dice che MD5 è "comunemente consigliato" è perché ci sono così tanti tutorial davvero vecchi che girano sul web che non sono stati aggiornati in un decennio o più. Il problema è che, poiché sono in circolazione da così tanto tempo, spesso vengono visualizzati relativamente in alto nelle ricerche, quindi ricevono molto più traffico di quanto meritino. StackOverflow riceve costantemente domande ingenue da persone che fanno riferimento a tutorial antichi.
* "Non è come se avessimo alcuni International Crypto Cops che arrestano le persone che usano ROT13" * In realtà, sì, lo facciamo.Ci si aspetta che tu prenda misure ragionevoli per proteggere i dati delle persone secondo le leggi sulla privacy, almeno nei Paesi Bassi ...
user185
2012-06-08 13:45:38 UTC
view on stackexchange narkive permalink

Penso che quello che stai vedendo sia la lunga coda del Web. Posso trovare articoli del 2006 che consigliano MD5 per l'hashing delle password (ad es. http://www.pixel2life.com/publish/tutorials/118/understanding_md5_password_encryption/) - ancora 10 anni dopo la data di riferimento.

Tuttavia stiamo parlando del tempo per ottenere qualcosa da una ricerca all'avanguardia nelle riviste di crittografia peer review per raccomandare la pratica tra i professionisti di tutti i giorni che non leggono riviste di crittografia e non sono nemmeno esperti in quel campo . Quello che probabilmente è successo è che poiché nel 1990 tutti "sapevano" che MD5 era buono per le password, dissero a tutti gli altri che MD5 era buono per le password. Dalla fine degli anni '90 alcune persone dicevano che MD5 era un male per le password, ma la maggior parte delle persone "sapeva" che era buono per le password e questo era ancora ciò che consigliavano ad altri.

Oggigiorno, c'è un corpo di persone che "sanno" che bcrypt è utile per le password che stai iniziando a vedere quei consigli, ma gli articoli che dicono che MD5 è buono per le password non sono ancora decaduti dagli indici dei motori di ricerca . Nel tempo, lo faranno.

Il che significa che tra dieci anni tornerai qui e farai la domanda "perché le persone continuano a consigliare di utilizzare un fattore di lavoro bcrypt di 10 quando questo giornale dice che dovresti usarne almeno 150? "...

Poul Henning-Kamp originariamente spostò la funzione UNIX crypt () da DES a MD5. Spiega qui che il fatto che le persone stiano usando MD5 dimostra che non ha descritto con successo quello che stava cercando di fare: rendere più complesso l'hashing delle password, non installare MD5 come uno shibboleth.

Sono d'accordo, lunga coda di cambiare menti di molti sviluppatori, che si sono affidati a MD5 per molto tempo. E grazie per aver menzionato `bcrypt`, poiché è un buon algoritmo scalabile in hw, e lo consiglierei anch'io. Forse sarebbe bello vedere articoli nella lista nera di Google che raccomandano MD5 per tali scopi: D
@MarekSebera Non sono sicuro di voler vedere i motori di ricerca censurare qualsiasi contenuto.
sì, non era un'idea seria, anche se scommetto, che non è già stato fatto.
Martin Trigaux
2012-06-08 12:46:07 UTC
view on stackexchange narkive permalink

Hai diversi utilizzi di MD5

Controllo integrità

Verifica che il file che hai scaricato o ricevuto sia l'originale controllando l'hash del file. È stato dimostrato che è possibile creare facilmente un file con lo stesso checksum.

La collisione in MD5 è facile da produrre. MD5 non dovrebbe essere usato per quello scopo.

Le persone propongono ancora il checksum MD5 durante il download di iso e cose del genere, ma spesso fornisce anche il checksum SHA. Questo può essere spiegato perché MD5 è molto più veloce e di solito implementato.

Controllo della password

Invece di memorizzare una password in chiaro, si memorizza l'hash della password. Alcuni siti Web utilizzano ancora MD5 per farlo. Il problema qui non è trovare una collisione ma controllare una tabella arcobaleno o un enorme database di checksum MD5.

Poiché puoi produrre molto rapidamente milioni di checksum MD5, puoi forzare una password da solo PC. Non dovresti usare MD5 per l'hashing della tua password per questo motivo, ma soprattutto, dovresti aggiungere un salt.

Se hai una password molto complessa (lunga con caratteri speciali) e un sale complesso univoco per ogni password memorizzata, non è un grosso problema per te usare MD5. Non dico che dovresti (non dovresti) ma non è un grosso problema di sicurezza usare MD5 se la password sarà difficile da usare con la forza bruta e l'uso della tavola arcobaleno è impedito dal sale. Ovviamente, sul tuo sito web, non è facile (e apprezzato) forzare gli utenti ad avere una password complessa, quindi se un utente registra 12345, indipendentemente dalla funzione hash che utilizzi, verrà interrotta.

Il motivo per cui le persone lo usano ancora è forse perché è ancora la funzione hash più conosciuta ed era ancora accettabile alcuni anni fa. Le persone con poca conoscenza delle criptovalute potrebbero usarlo.

"_Se hai una password molto complessa (lunga con caratteri speciali) _", non importa se hai "_un sale complesso univoco per ogni password memorizzata, _"
MD5 non deve essere utilizzato per il controllo della password a meno che non sia associato a un algoritmo sicuro. Un grosso problema con MD5 è la piccola lunghezza dell'output.
@Ramhound Definire "algoritmo sicuro". "_Un grosso problema con MD5 è la piccola lunghezza dell'output._" Abbraccio?
@curiousguy sì, il sale è importante perché impedisce di creare una tabella arcobaleno che può essere utilizzata per qualsiasi password. Qui dovresti creare una tabella per password (e salt).
@Ramhound il problema con l'uscita di piccola lunghezza potrebbe essere il rischio di collisione ma per una password è comunque molto debole, anche con "solo" 128bit
@MartinTrigaux Il sale è importante quando la tua password non è banale ma non è il più forte possibile. Una password estremamente forte non ha bisogno di sale.
Non so perché questa risposta sia stata sottovalutata così tanto. Ha buone informazioni utili. I punti sulle distinzioni tra controllo di integrità e controllo della password sono perfettamente validi; le due applicazioni hanno requisiti di sicurezza differenti. P.S. Un margine di miglioramento nella risposta è che non è sufficiente raccomandare l'uso di un sale; dovresti anche consigliare l'uso di una funzione di hashing lento, come scrypt, bcrypt o PBKDF2.
Travis Pessetto
2012-06-07 23:14:22 UTC
view on stackexchange narkive permalink

Non credo che sia consigliato. Wikipedia afferma che MD5 è considerato guasto e si consiglia di sostituirlo con la famiglia SHA-2 o SHA. Dai anche un'occhiata a Devise, una gemma rubino che gestisce l'autorizzazione. Ha un diverso tipo di crittografia.

E penso che, con la suggestione di una gemma di rubino, stia qui il problema. Le "persone" che stanno implementando MD5 lo stanno facendo non perché stiano tentando volontariamente di usare una funzione hash non funzionante, ma perché stanno usando gemme, moduli, software, ecc. Che non sono stati aggiornati per usare metodi più sicuri. Non sanno niente di meglio e, a quanto pare, non gliene importa.
Beh, se aiuta, php.net stesso consiglia di non usarlo per le password "Non è consigliabile usare questa funzione per proteggere le password, a causa della natura veloce di questo algoritmo di hashing." -Http: //php.net/manual/en /function.md5.php
Inoltre, non è necessario memorizzare le informazioni a meno che non si stia eseguendo operazioni come l'elaborazione di carte di credito che richiedono che l'applicazione Web sia conforme allo standard PCI.
In che modo MD5 viene "danneggiato" allo scopo di nascondere le password?
@curiousguy MD5 è rotto perché può essere rotto facilmente tramite forza bruta. Praticamente, se prendi in mano l'hash, puoi capire quale fosse la password in breve tempo. Non sono sicuro di quanto tempo, ma credo che siano solo un paio di minuti al massimo. Questo viene fatto provando tutto finché gli hash non sono gli stessi, e poiché l'algoritmo MD5 è veloce, è facile farlo velocemente.
@TravisPessetto "_MD5 è rotto perché può essere violato facilmente tramite forza bruta._" quando viene utilizzata una password debole. "_Non so esattamente quanto tempo, ma credo che siano solo un paio di minuti al massimo._" perché hai usato una password debole "_Questo viene fatto provando tutto finché gli hash non sono gli stessi, e poiché l'algoritmo MD5 è veloce lo è facile farlo velocemente._ "che è possibile solo ** se puoi enumerare tutte le password, perché la tua password è debole **
@curiousguy Tratto da [PHP.net] (http://www.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash) "Gli algoritmi di hash come MD5, SHA1 e SHA256 sono progettati per essere molto veloce ed efficiente. Con le moderne tecniche e apparecchiature informatiche, è diventato banale "forzare" l'output di questi algoritmi, al fine di determinare l'input originale. A causa della velocità con cui un computer moderno può "invertire" questi algoritmi di hashing, molti i professionisti della sicurezza sconsigliano vivamente il loro utilizzo per l'hashing delle password ".
@TravisPessetto Questa è una stronzata totale da PHP.net. Nessuna di queste funzioni è invertibile con la tecnologia esistente. Questi ragazzi ovviamente non capiscono di cosa stanno parlando e ** non dovrebbero mai essere considerati affidabili **. (BTW, PHP è un linguaggio così brutto che non è certo una sorpresa che questi ragazzi siano idioti incompetenti.)
@curiousguy, Non penso che sia una cazzata. È un consiglio perfettamente standard. Il consiglio standard è quello di utilizzare un hash lento, come bcrypt, scrypt o PBKDF2, non un hash veloce come MD5, SHA1 o SHA256, se è necessario eseguire l'hash delle password. (Quando si riferiscono a "forza bruta", probabilmente significano attacchi al dizionario, che enumerano le password comuni. Questi attacchi sono molto efficaci, poiché molte persone scelgono password con entropia non molto alta.) Cerca "password" su questo sito per Per saperne di più.
curiousguy
2012-06-08 07:21:29 UTC
view on stackexchange narkive permalink

Anche dopo questo studio e tutti i documenti in arrivo sui suoi difetti, da allora è stata consigliata come funzione di hashing della password nelle applicazioni web.

Sì, e?

L'hashing della password è solo una perdita di tempo.

MD5 ^ n (MD5 ripetuto n volte) è buono quanto SHA1 ^ m (per m come time (MD5 ^ n) > = time (SHA1 ^ m) ) per perdita di tempo .

Nessuno ha suggerito alcun modo per calcolare MD5 ^ n in modo che sia più veloce dell'ovvio MD5 o MD5 ^ (n-1) . Non c'è nemmeno l'inizio di un'idea per farlo.

Qui non c'è niente di rotto.

Per sprecare tempo.spazio, dovresti considerare scrypt .

"MD5 ^ n (MD5 ripetuto n volte) è buono quanto SHA1 ^ m" - ** QUESTO è 100000000% falso ** Puoi eseguire MD5 infinito volte su una stringa e l'output è noto. MD5 non è sicuro e NON DOVREBBE ESSERE UTILIZZATO per eseguire l'hash delle password da solo. SHA256 è sicuro MD5 NON lo è.
@Ramhound Sono d'accordo, se la funzione di hashing non è sicura alla prima iterazione, non sarà più sicura su più iterazioni. Ma d'altra parte, se procedi con l'hashing 10 volte, significa che per l'attaccante la generazione di tabelle sarà di ca. 10 volte più lento, che è poca soddisfazione
@MarekSebera "_ Sono d'accordo_" sei d'accordo con cosa? "_se la funzione di hashing non è sicura all'inizio iterazione_" cosa intendi per "sicuro"?
@Ramhound "_THIS is 100000000% false_" Pensi che un algoritmo più lento di un altro non sia più lento?
Sono d'accordo sul fatto che se la prima iterazione di MD5 non ha hash la password in questo modo, per renderla sicura (significa nessuna possibilità di crack, fino a quando non ti rendi conto di quale sia il testo in chiaro, non importa se dizionario, forza bruta o altro), allora eseguirlo N volte non può aumentare la sua sicurezza.
@MarekSebera "_se la prima iterazione di MD5 non ha hash la password in questo modo, per renderla sicura_" Bene, MD5 ** esegue l'hash ** in modo sicuro.
@curiousguy ed è qui che ti sbagli. se MD5 avesse eseguito l'hash della password in modo sicuro, non avrebbe avuto collisioni e sarebbe stato consigliato.
@MarekSebera Qui è dove ** ti ** sbagli. MD5 non ha conflitti con le password ed è consigliato.
@Ramhound, 100000000% false - avvolge mod 100, in modo che sia falso allo 0%? Più seriamente, ti sbagli e curioso ha ragione. Le tue affermazioni sono inutili e sembrano riflettere un malinteso della situazione. "X è sicuro" non è un'affermazione utile; devi specificare "sicuro per cosa?". Se lo fai, scoprirai che la risposta di Curioso è perfettamente accurata. Gli attacchi di collisione noti su MD5 sono, beh, attacchi di collisione e non mettono in pericolo l'uso di MD5 per l'hashing delle password.
Trovo deludente vedere che più persone hanno svalutato questa risposta. Sembra che ci sia un malinteso diffuso o una confusione sui requisiti di sicurezza per una funzione di hash della password. In effetti, la risposta di Curiousguy è completamente accurata. I commenti qui di @MarekSebera e Ramhound sono imprecisi e un po 'confusi sui requisiti di sicurezza per l'hashing delle password.
Non userei le parole "altrettanto buono" perché penso che la crittoanalisi che raggiunge attacchi pre-immagine contro md5 abbia maggiori probabilità di arrivare che contro SHA-1. Ma finora è corretto che gli attuali attacchi non offrono alcun modo per trovare le prime pre-immagini per MD5 che siano più veloci del semplice indovinare la password.
@CodeInChaos "_Penso che la crittoanalisi raggiunga attacchi pre-immagine contro md5 è più probabile che arrivi rispetto a SHA-1_" Sì, in effetti, ma considero estremamente improbabile che tale attacco diventi mai economico, o più economico che eseguire l'intero dizionario (+ varianti banali come maiuscole o cifre aggiunte) tramite MD5. OTOH, tali attacchi possono rendere più facile indovinare una chiave ad alta entropia K, dove MD5 (K) è noto che per forzatura bruta dello spazio chiave.
user1652382
2013-05-04 17:24:46 UTC
view on stackexchange narkive permalink

Questa è un'informazione ufficiale su MD5 - MD5 vulnerabile agli attacchi di collisione Per una maggiore sicurezza, dovrebbe essere considerato SHA-2. Nessuno impedisce agli utenti di utilizzare MD5, ma non per i dati che vuoi mantenere privati.

Prestazioni degli algoritmi hash

Come mostrato nel diagramma " Prestazioni degli algoritmi hash ", SHA256 è molto più veloce di MD5.

Questa è una buona risorsa da considerare, l'autore esamina le password trapelate di LinkedIn- queue (.) Acm (.) Org / detail.cfm? Id = 2254400&ref = fullrss, mostra anche alcuni modi su come proteggere le password.

Mark Giblin
2014-02-25 18:25:11 UTC
view on stackexchange narkive permalink

Il problema dell'hashing delle password e dell'uso delle tabelle arcobaleno è dovuto alla sicurezza di un server web che viene sfruttato a causa di una debolezza sottostante.

I primi sono tutti questi siti web che pretendono di offrire un semplice test a guarda se la tua password è sicura ... Ummm bene, vediamo questi siti come phishing e tutte le persone che si avvicinano a questi siti stanno alimentando una tabella arcobaleno. Questa è una parte del problema.

In secondo luogo ci sono le persone che utilizzano servizi di web hosting in cui l'obiettivo è fare soldi e dimenticare la sicurezza del server web, questi host dovrebbero essere messi contro il muro e sparati IMHO, parte della sicurezza dell'accesso di un utente deriva dalla sicurezza di un server web e dall'aggiornamento delle tecnologie sottostanti per impedire l'utilizzo di exploit noti.

Il terzo punto è che una volta che le persone entrano in le loro teste spesse che mentre MD5 non è resistente alle collisioni o preferisco il più robusto possibile, è ancora difficile che un account utente venga violato a meno che tu non abbia un host web che esegue un sistema sfruttabile, la tua codifica web non è robusta e tu esporsi utilizzando un sito che pretende di controllare la sicurezza della password.

Per la maggior parte del MD5 + un valore Salt è una sicurezza adeguata per l'accesso di un utente a un forum web purché il sistema e il software menzionati in precedenza siano non sfruttabile. Una volta che hai un sistema che è stato sfruttato per una debolezza, l'esecuzione di una query per valori hash noti che non utilizzano un sistema di salting esporrà una quarta debolezza ... l'utente finale.

Il quarto posto è l'utente finale, la tua sicurezza web è in definitiva forte solo quanto l'anello più debole e per molti vedranno l'utente finale proprio così e gli amministratori devono ricordare che sono utenti finali di un sistema e sono ugualmente essendo vulnerabile alla compromissione della sicurezza di un sistema utilizzando programmi o software sciatti che possono essere facilmente danneggiati, scarsa sicurezza della password e anche non riuscendo a modificare il login di ADMIN o utilizzando software che ancora oggi insiste nell'avere il nome di accesso dell'amministratore come amministratore e impiegando anche account super utente .

Quindi è ovvio, quindi lo dirò comunque, MD5 non è crackato, è retroingegnerizzato attraverso utenti deboli, software debole e incapacità delle persone di comprendere una tecnologia. Se MD5 è crackato, lo sono anche SHA e AES e così via ...



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...