Perché lo SHA1 è considerato meno sicuro del necessario?

3

Ovviamente "spesso" è piuttosto soggettivo, ma ho visto un sacco di report / articoli che descrivono SHA1 come qualcosa, in genere, non abbastanza sicuro da utilizzare nella memorizzazione delle password. Un esempio :

If it’s just SHA1, there is no window… If it’s bcrypt, you have time to run away and change all your passwords.

L'unica volta in cui ho visto un 'Hack' di successo SHA1 è quando la password è banale da eseguire attraverso un dizionario (ad esempio password123).

Cosa non è sicuro di SHA1?

    
posta Anders 19.10.2016 - 10:50
fonte

3 risposte

7

Sono d'accordo con @KanekiDev e vorrei sottolineare che il numero 1 è valido anche ora, figuriamoci nel prossimo futuro.

Secondo ArsTechnica, una persona sola che utilizzava attrezzature per un valore inferiore a 30.000 dollari è riuscita a recuperare l'85% delle password trapelate nella violazione di Linkedin in un giorno . Stiamo parlando di milioni di password hash SHA-1 trovate in un solo giorno.

Using a single Sagitta HPC Brutalis packed with eight Nvidia GTX Titan X graphics cards, I managed to recover 85 percent of the passwords on the first day, despite the fact that I was cracking so many passwords so quickly that the whole system slowed to a crawl.

Working with the rest of the Hashcat development team, we managed to reach 88 percent by the end of the third day, and we crossed the 90-percent threshold on the fourth day. This all happened a full two days faster than when working with the first LinkedIn dump, which contained only a small fraction of the number of hashes. On the sixth day, we teamed up with rival password cracking team CynoSure Prime to close out the effort at a solid 98 percent, cracking a total of 173.7 million passwords.

Source

Se pensi che solo i ricercatori possano permettersi quell'hardware, ti sbagli. Pensa a una squadra di cracker che spende 30.000 dollari per quella configurazione solo per trovare queste password. In una settimana, trovano 100 milioni di password, che possono vendere per $ 0,01 ciascuna. 100 milioni di password * $ 0,01 / password = 1 milione di dollari. Questo è un ROI piuttosto buono (ritorno sull'investimento), non è vero?

Si può dire che quelle erano password deboli. Probabilmente è vero, ma come ha sottolineato @Matthew,

Unfortunately, most users do pick weak passwords which will appear in dictionaries, so this is a viable attack method.

    
risposta data 19.10.2016 - 11:41
fonte
4

Penso che le vulnerabilità di SHA-1 non siano in alcun modo rilevanti qui, ciò che è rilevante è che si tratta di un'operazione semplice, veloce, imbarazzante, parallelizzabile.

Le vulnerabilità su SHA-1 sono gli attacchi di collisione, che sono dolorosi con le firme, ma privi di significato per le password. Gli attacchi di preimage sarebbero davvero spaventosi nel contesto dell'hash delle password, ma nessuno ne è a conoscenza.

Ora, perché è un problema che SHA-1 sia un'operazione semplice, veloce, imbarazzante e parallelizzabile? L'articolo a cui ti sei collegato spiega: Non c'è una finestra .

Che cosa significa, quale finestra? La conseguenza che l'hash è veloce è che praticamente tutte le password degli utenti (di cui anche i più "migliori" sono ancora un po 'di bassa entropia) sono scomposti in pochi secondi. Intere basi di dati con decine di migliaia di password sono risolvibili in un giorno e non è nemmeno necessario essere l'NSA per ottenere ciò.

In pratica, questo significa che ogni violazione della sicurezza è sempre il più grande desaster immaginabile, mentre se avessi usato solo qualcosa come bcrypt che è un'operazione deliberatamente lenta, avresti avuto un paio di giorni (o settimane) per informare i tuoi utenti e chiedere loro di cambiare le loro password. Questo trasforma "desaster totale" in "imbarazzante, ma tollerabile" . Vedi Come fare in modo sicuro le password di hash? per un approfondimento di ciò che rende un hash password adatto (al contrario di un hash crittografico "normale").

Alcuni utenti con password particolarmente stupide ("password", "fuckyou", "letmein") ovviamente avranno ancora i loro account compromessi perché anche con bcrypt puoi crackare tutte le 100 password più stupide come ... un paio di secondi. Se si dispone, ad esempio, di 10.000 password utente individualmente salate, il test delle 100 password più stupide richiede solo un milione di iterazioni. Anche con un algoritmo lento, è questione di secondi.

Ma la differenza importante è che le altre password che non nella lista dei primi 100 non saranno facilmente compromesse. Questi utenti hanno buone probabilità di cambiare la password in tempo.

    
risposta data 20.10.2016 - 17:53
fonte
1

SHA-1 è piuttosto insicuro a causa di:

  • Con l'evolversi della computazione moderna, sarà più facile in un "prossimo futuro" potenziare l'algoritmo. Ancor di più se contate con i nuovi ASICS progettati per SHA Hash computing (spesso utilizzato in criptovalute mining come Bitcoin). Alcuni di questi ASICS possono calcolare più di 10 ^ 12 Hash al secondo (alcuni persino 10 ^ 15).
  • Ma anche, nel 2005, è stato rilevato un punto debole che avrebbe reso più facile interrompere l'algoritmo, non forzando brute ma cercando di trovare collisioni hash (si verifica una collisione hash quando due input diversi producono lo stesso output).

Puoi controllare questo: link per trovare informazioni sulla debolezza che ti ho detto.

E questo, un articolo molto interessante (scritto nel 2012) sullo SHA-1: link

Ecco perché non consiglierei di usare SHA-1 più a lungo, poiché anche se potremmo considerarlo abbastanza sicuro (a seconda di quale scopo), sarà deprecato a breve (beh, è già deprecato ).

Spero che questo ti aiuti.

    
risposta data 19.10.2016 - 10:59
fonte

Leggi altre domande sui tag