2009-11-18 7 views
12

Ciao ragazzi, ho letto della password salting, ma potrebbe sembrare un po 'strana. Ma come immagazzino e assicuri il sale. Ad esempio, in un'architettura multi-pneumatico dico che uso il GUID della macchina client per generare il mio sale, quindi l'utente si limita a una singola macchina, ma se uso salt salt, deve essere immagazzinato da qualche parte. Pochi giorni fa ho visto un'applicazione di esempio in cui l'hash e il sale venivano generati sul sistema client ogni volta che veniva creato un nuovo utente e quindi la password salata e l'hash venivano trasmessi al server dove sono memorizzati nel server SQL. Ma se seguo questo metodo e il database è compromesso, le password e i valori di sale per ogni password saranno disponibili per la persona X. Quindi, dovrei nuovamente salare/crittografare le password e ricevuto sale sul lato server? Qual è la migliore pratica di salatura?qual è il modo migliore per salare e conservare il sale?

risposta

22

Memorizzare il sale non crittografato nel database accanto alle password hash non è un problema.

Lo scopo del sale non è quello di essere segreto. Lo scopo è di essere diverso per ogni hash (cioè casuale) e abbastanza lungo da vanificare l'uso di rainbow tables quando un utente malintenzionato mette le mani sul database.

Vedere questo excellent post sull'argomento di Thomas Ptacek.

modifica @ZJR: anche se i sali fossero completamente pubblici, avrebbero comunque vanificato il vantaggio dei tavoli arcobaleno. Quando si dispone di un sale e hash dei dati, il meglio che si può fare per invertire tale tendenza è la forza bruta (a condizione che la funzione di hash è crittograficamente sicuro)

Edit @ n10i: Vedi l'articolo di Wikipedia per secure hash function. Per quanto riguarda la dimensione del sale, la popolare implementazione bcrypt .gensalt() utilizza 128 bit.

+0

direi che lo scopo del sale non è quello di essere ** ** pubblico, sia. – ZJR

+0

puoi spiegare "la funzione di hash è crittograficamente sicura". scusa, sono nuovo della crittografia. anche nella tua risposta hai menzionato "abbastanza a lungo da sconfiggere l'uso delle tavole arcobaleno" per quanto tempo dovrebbe essere il sale, per essere abbastanza lungo? – Neel