Qualche rischio nell'usare lo stesso sale per diversi hash su un utente?

14

In questo momento sto memorizzando un salt e password_hash sulla tabella degli utenti (cose piuttosto standard).

È nata l'esigenza di ottenere un hash sicuro di un altro campo per un utente. C'è qualche rischio nel riutilizzare lo stesso sale usato sulla password? In altre parole, usare lo stesso sale su diversi hash rende più facile craccare assumendo che l'attaccante abbia tutti gli hash insieme a un solo sale? Se sì, quanto?

Grazie!

    
posta Brian Armstrong 15.08.2011 - 02:10
fonte

1 risposta

12

Il punto, e solo l'uso, del sale è di impedire a un attaccante di attaccare diversi N elementi per meno di N volte il costo di attaccarne uno. Qui, "attaccare" significa "provare possibili valori finché non si trova uno che corrisponde al noto valore hash". Senza sale, un utente malintenzionato potrebbe confrontare le sue ipotesi con hash con diversi valori hash, condividendo così il costo del calcolo dell'hash; per esempio. l'attaccante ha diversi valori hash da attaccare simultaneamente, oppure l'attaccante crea una tabella precalcata di valori hash per una ricerca veloce (modulo uno scambio spazio / tempo, entrambi gli attacchi sono identici).

Se si utilizza lo stesso sale per la password di un utente e per un altro campo, un utente malintenzionato potrebbe tentare di attaccarli entrambi. Ciò sarà vantaggioso per l'aggressore solo se i potenziali valori dell'altro campo sono anche potenziali password e viceversa. Questo potrebbe o non potrebbe applicarsi al tuo contesto.

In generale, i sali non dovrebbero mai essere riutilizzati, se non altro perché le conseguenze del riutilizzo non sono facili da dettagliare in modo esaustivo. Ti consiglio di astenermi dal riutilizzare i tuoi sali.

    
risposta data 15.08.2011 - 03:22
fonte

Leggi altre domande sui tag