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
- 1. BCrypt. Come conservare il sale con python3?
- 2. Dove conservare il sale password e come ottenerlo
- 3. Qual è il modo migliore per confrontare Double e Int?
- 4. Qual è il modo migliore per conservare Numero di telefono nei modelli Django
- 5. qual è il modo migliore per conservare intervallo di tempo in un database del server SQL
- 6. Qual è il modo migliore per riutilizzare il parser Lua?
- 7. Qual è il modo migliore per documentare il codice f #?
- 8. Qual è il modo migliore per rilevare il colore bianco?
- 9. il modo migliore per conservare gli array numpy sul disco
- 10. Qual è il modo migliore per testare un'app per rails?
- 11. Qual è il modo migliore per esportare enormi cataloghi Magento
- 12. Qual è il modo migliore per reimparare una lingua?
- 13. Qual è il modo migliore per passare alla codifica MVC?
- 14. Qual è il modo migliore per imparare Erlang?
- 15. Qual è il modo migliore per imparare jQuery?
- 16. Qual è il modo migliore per autorizzare una chiavetta USB
- 17. Qual è il modo migliore per effettuare backup automatici?
- 18. Qual è il modo migliore per chiudere un ramo Mercurial?
- 19. Qual è il modo migliore per generare una sitemap?
- 20. Qual è il modo migliore per comunicare tra due server?
- 21. Qual è il modo migliore per imparare Django 1.5?
- 22. Qual è il modo migliore per dichiarare una variabile globale?
- 23. Qual è il modo migliore per gestire più azioni?
- 24. Qual è il modo migliore per eseguire jQuery .change()
- 25. Qual è il modo migliore per imparare la WCF?
- 26. Qual è il modo migliore per ridimensionare un oggetto BitmapData?
- 27. Qual è il modo migliore per aggiungereObserver/removeObserver con NSNotificationCenter?
- 28. Qual è il modo migliore per dividere due oggetti TimeSpan?
- 29. Qual è il modo migliore per attivare le stampe Python?
- 30. Qual è il modo migliore per imparare CUDA?
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