Setup: Supponiamo che stia generando un hash della password (ad esempio, concatenandolo con un / dev / urandom salt e un secret locale e eseguendolo con bcrypt), ora vado a memorizzare il risultato in una "informazione utente" file contenente il nome, il nome utente, l'e-mail, il sale e il risultato dell'hash su Linux. Supponiamo che io imposti i permessi appropriati sul file per proteggerlo e che in genere prenda le dovute precauzioni per proteggere il mio server da aggressori / intrusi.
Domanda: È importante che io faccia qualsiasi altra cosa per proteggere il file stesso? La codifica in chiaro è valida o dovrebbe essere utilizzata un'altra codifica per tentare di offuscarla? Dovrebbe essere crittografato e una password richiesta per decrittografarlo?
Aggiornamento dai commenti:
- C'era una buona risposta (almeno parziale) che le password hash dovrebbero essere archiviate in aree protette della rete anziché DMZ quando possibile.
- Anche il segreto locale dovrebbe essere memorizzato separatamente dal file hash, in modo che un utente malintenzionato che ne ha ottenuto uno non ottenga automaticamente entrambi. È stato consigliato un HSM (Hardware Security Module).
- È stato rilevato che un file potrebbe essere vulnerabile a un attacco di escape dell'URL, a differenza di un database.
- Non in un commento, ma ho trovato anche questo thread correlato utile, l'ulteriore consiglio pertinente sembrava essere quello di assicurarsi di archiviare il file in un luogo sicuro e di errare dal lato della crittografia.