Hashing password più volte con diversi sali casuali

3

Ho letto molte risposte su questo argomento come:

Nessuno di questi sembra parlare di hashing più volte con diversi sali.

Questo metodo di hashing:

hash(hash(hash(pass+salt1)+salt2)+salt3)

più sicuro di:

hash(hash(hash(pass+salt1)+salt1)+salt1)

dove sale1, sale2, sale3 sono diversi sali casuali e la stessa funzione di hash viene utilizzata ogni volta?

    
posta xee 07.12.2015 - 15:22
fonte

2 risposte

8

I tre metodi che mostri sono tutti deboli; tre invocazioni di funzioni hash non faranno molto bene, in un contesto in cui i sali sono importanti (si usano sali perché si immagina che un utente malintenzionato potrebbe, a un certo punto, avere un'idea dei valori hash e, in In tal caso, è necessario che la funzione sia molto più lenta di quella). In ogni caso, gli assemblaggi fatti in casa di primitive crittografiche raramente raggiungono una sicurezza decente.

Per rispondere alla tua domanda esplicita: il valore di sale è che non vengono riutilizzati. Nella tua prima proposta, il "sale" è in realtà la concatenazione di tre distinti sotto-sali (che tu chiami "sale1", "sale2" e "sale3"). Nella seconda proposta viene utilizzato lo stesso meccanismo, ma i tre sub-sali sono identici, ovvero una riduzione dello spazio dei possibili sali. Da un lato, uno spazio più corto aumenta la probabilità di riutilizzo. D'altra parte, il riutilizzo di alcuni dei sub-sali consente ancora alcune scorciatoie dal lato dell'attaccante.

In ogni caso, è piuttosto difficile valutare le differenze di sicurezza di due metodi di hashing quando sono entrambi deboli. Fatti un favore: usa una vera e propria funzione di hashing della password ben concepita, ben progettata e revisionata. In pratica, ciò significa bcrypt . Leggi questa risposta .

    
risposta data 07.12.2015 - 16:05
fonte
0

Il punto di aggiungere un salt è impedire qualsiasi costruzione di tabelle precalcolate e rendere l'hash diverso quando la stessa password viene utilizzata da più utenti.

Finché utilizzi un valore abbastanza grande (a 128 bit diciamo), l'aggiunta di più non aumenta la sicurezza in alcun modo significativo.

    
risposta data 07.12.2015 - 16:02
fonte

Leggi altre domande sui tag