Prevenire gli attacchi del dizionario contro le password hash [duplicate]

1

Ho un sito Web e su quel sito Web utilizzo SHA-256 e salgo le password dei miei utenti. Quello che sto facendo in questo momento è riempire ogni lettera della password dell'utente con i dati del cestino prima di cancellarla. La ragione per cui lo faccio è che se qualcuno capita di ottenere un dump del database del mio sito (improbabile, ma possibile) forzanti bruti / strumenti di attacco del dizionario come john the ripper non funzionerà perché la password hash non è in realtà una parola dal loro elenchi di parole, ma una versione confusa di esso.

Questa è una strategia valida o esiste un altro modo per prevenire attacchi di dizionario? Alcuni utenti hanno segnalato problemi con le loro password, che potrebbero essere o meno correlate al mio metodo di "pre-hashing", ma ero interessato a cercare alternative per le password di hashing. Non posso usare blowfish con qualsiasi numero sicuro di round a causa della necessità che gli hash delle password vengano calcolati in un ragionevole lasso di tempo.

Esistono implementazioni PHP di quel nuovo algoritmo di hash Keccak SHA3 o sarebbe una cattiva idea da usare?

    
posta Tar 07.10.2012 - 03:11
fonte

3 risposte

2

Non devi usare SHA-3 ancora. E non chiamiamolo Keccak per carità di chiarezza, non posso ricordare che originariamente erano stati chiamati SHA-2 e SHA, quindi suppongo che i futuri lettori non conosceranno nemmeno Keccak.

Altro argomento, la tua risposta è qui: Come password di hash sicure? Questo protegge dai dizionari e da tutti gli altri possibili attacchi nel modo migliore attualmente conosciuto.

    
risposta data 07.10.2012 - 03:24
fonte
0

Hash di qualsiasi parola del dizionario non dovrebbe essere usato da solo in qualsiasi soluzione di password, ma puoi usare salting per evitarlo, quindi parole diverse ottengono hash diversi, anche se la stessa password viene ripetuta due volte, due diverse passwd.

link

Questi sistemi sono ancora vulnerabili contro gli attacchi delle tabelle arcobaleno, quindi è necessario limitare l'autenticazione # / secondo per entità, per mitigarli.

Informazioni sui diversi alghe SHA, più qui:

link link

    
risposta data 07.10.2012 - 07:09
fonte
0

Se qualcuno ottiene una copia del tuo sito, presumibilmente riceveranno anche una copia del codice che la esegue, nel qual caso noteranno il tuo schema di modifica della password. Diventa quindi banale modificare i dizionari di cracking per compensare.

Se d'altra parte, ricevono solo una copia del database (e non il tuo codice), quindi qualsiasi tipo di personalizzazione dell'hash sarà sufficiente per prevenire qualsiasi tipo di attacco. Un'opzione popolare è quella di salare l'hash con non solo una stringa casuale ma anche un segreto specifico del sito che è contenuto nel codice del sito ma non nel database. Ciò rende inutili gli hash delle password del database senza ottenere la chiave segreta ... che si spera sia più difficile da ottenere.

Inoltre, non dimenticare PBKDF2, un algoritmo di potenziamento hash che rende più costosi gli attacchi di dizionario di diversi ordini di grandezza.

Per quanto riguarda SHA-3, mancano ancora pochi anni per essere considerati validi. Innanzitutto occorre che le implementazioni siano scritte, testate, sottoposte a revisione paritetica, ecc. Gli esistenti SHA-256 o SHA-512 sono ancora considerati più che sicuri.

    
risposta data 07.10.2012 - 07:21
fonte

Leggi altre domande sui tag