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
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.
Si prega di prendere un momento per leggere questa molto buona descrizione di sali e hashing
direi che lo scopo del sale non è quello di essere ** ** pubblico, sia. – ZJR
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