La forza della password è importante in bcrypt?

11

Anche se scelgo 1 carattere per la mia password o 32 caratteri con numeri, lettere, simboli maiuscoli ecc. la password briptata sarà comunque una password di 60 caratteri. Quindi la forza della password è importante quando si utilizza bcrypt?

    
posta xoemab 17.06.2014 - 01:40
fonte

4 risposte

21

La "forza" di una password è esattamente quanto è sconosciuta all'attaccante. È sempre importante. Questa forza equivale al numero di tentativi (in media) che l'attaccante dovrà eseguire per indovinarlo.

Quello che fa bcrypt è che ogni tentativo è più costoso. Con il suo numero configurabile di iterazione, impostato sufficientemente alto, bcrypt può far sì che l'attaccante non possa provare più di una password al secondo sulla sua macchina. Questo è molto meglio (per te) di un miliardi di tentativi al secondo, con una funzione di hash meno adatta: rende la tua password un po 'più difficile. Tuttavia, se la tua password è composta da un solo carattere, l'utente malintenzionato lo troverà comunque in meno di un minuto.

Quindi, mentre bcrypt rende le password deboli più tollerabili, non può salvare la tua skin assolutamente .

(La lunghezza dell'output di bcrypt è irrilevante per questo. È normale che le funzioni di hash abbiano una dimensione di output fissa, infatti, se la dimensione dell'output dipendesse dalle dimensioni dell'input, sarebbe un punto debole, poiché perderebbe informazioni su la password.)

    
risposta data 17.06.2014 - 02:41
fonte
5

Che cosa ha a che fare la forza della tua password con il fatto che un hash di bcrypt ha una lunghezza di 60 caratteri?

Se la tua password è banale da indovinare, allora è banale da indovinare, indipendentemente dalla durata dell'hash risultante. Se stai parlando di un singolo carattere ASCII stampabile, allora l'autore dell'attacco ha bisogno al massimo di 95 tentativi per scoprire la password. Nessun algoritmo di hash impedirà questo.

bcrypt non rende magicamente ogni password immune agli attacchi di forza bruta. Rende solo quegli attacchi più difficili . Le password deboli non ne traggono vantaggio. Ma se hai una password decente, allora bcrypt può rendere impossibile l'attacco di forza bruta richiedendo più risorse di quelle che ha l'aggressore.

    
risposta data 17.06.2014 - 02:34
fonte
1

Le password complesse sono sempre importanti, grazie a due concetti che semplificano le password di hacking: attacchi di dizionario e attacchi arcobaleno (spesso usati insieme per la massima efficacia). Per un attacco di dizionario, uno prende semplicemente ogni parola nel dizionario (e di solito due, tre e quattro parole, ecc.) E prova prima quelle combinazioni. Data la dimensione piuttosto piccola dei dizionari, avere una password che corrisponde a una parola nel dizionario rende banale la ricerca della password. Questo è il motivo per cui non dovresti usare nomi comuni, parole o frasi come password.

Gli attacchi arcobaleno danno agli attaccanti una potenza di fuoco ancora maggiore grazie ai valori pre-calcolati (ad esempio, da un attacco di dizionario) o persino a milioni di possibili password a caratteri casuali. Dal momento che sono pre-calcolati, l'attaccante ha solo bisogno di scansionare la propria tabella per il proprio hash e, se c'è una corrispondenza, conosce immediatamente la propria password. Mentre questo è di natura simile a un attacco a forza bruta, il fattore decisivo è che l'attaccante arriva ai tuoi dati già armati di milioni o addirittura miliardi di hash, che possono essere scansionati in un paio di secondi per una partita. Anche se ci sono voluti gli attaccanti per un milione di secondi per indovinare la password, hanno già trascorso quel tempo prima ancora di aver trovato il tuo file. La preparazione dell'attacco effettivo può ridurre drasticamente il tempo necessario per trovare la password. Anche se non lo trovano, hanno già eliminato tutte le password che hanno precalcolato come possibili password, quindi il lavoro non va perso.

Quindi, mentre c'è ancora un enorme spazio di password sicure (molto più che password non sicure), occorre prestare attenzione per evitare password che molto probabilmente verrebbero visualizzate in un attacco di dizionario o in un attacco arcobaleno. La scelta di una combinazione di lettere, numeri e simboli, ma non in modelli comuni, è importante. Ad esempio, "h4ck3rz" potrebbe sembrare alquanto sicuro, ma poiché questo è un termine "leet-speek" comune, si dovrebbe evitare di usarlo come password o parte di esso. Inoltre, tutte le password di lunghezza inferiore a otto lettere sono banalmente facili da interrompere e dovrebbero essere evitate.

    
risposta data 17.06.2014 - 07:22
fonte
0

La domanda implicita è: una password di 32 caratteri con numeri, lettere, simboli maiuscoli ecc. ha senso?

Direi che è un eccesso quando viene usato con Bcrypt in una funzione di derivazione della chiave, ma a quella lunghezza c'è una scelta per usare le passphrase. Quest'ultimo può essere composto da parole esistenti come:

gestisce la scansione di allineamento ebano bassa (spazi aggiunti per la leggibilità)

Le parole possono essere scelte da un dizionario piuttosto piccolo come un dizionario Diceware-like di 7776 parole. Le singole parole devono essere scelte a caso! (allo stesso modo per i singoli caratteri di una password.)

Al link si può vedere che una frase Diceware di 5 parole è strong quanto una password di 11 caratteri composta da ..z A..Z 0..9. Se vuoi fare i conti:

una password di 11 caratteri: 11 ^ 62 (possibilità) = 5.23E19 combinazioni

una frase di cinque parole forma un dizionario di parole 7776: 7776 ^ 5 = 2.8E19 combinazioni

non farà la matematica: una frase simile cater = low = ebOony = align = scan: 1.3E22 combinazioni (compresi i separatori + un solo carattere inserito a caso)

    
risposta data 17.06.2014 - 15:24
fonte

Leggi altre domande sui tag