Domanda

Ho una domanda per quanto riguarda il seguente scenario:
Voglio usare jasypt per cifrare la password e utilizzare un certo sale per la crittografia.

Ha senso (o v'è alcuna implicazione di sicurezza) se:
Io uso la crittografia basata su password per crittografare il sale con una password che mi da una variabile d'ambiente, in questo modo posso avere il valore crittografato del sale in un file di proprietà, arrivare da lì, decifrare tramite la password che ottengo dalla variabile d'ambiente (in realtà ho intenzione di avere un oggetto EnvironmentStringPBEConfig che a sua volta ottiene la variabile d'ambiente da oggetto EnvironmentStringPBEConfig ed eliminare la variabile d'ambiente una volta creato l'EnvironmentStringPBEConfig) e, infine, utilizzare il sale.

Grazie.

Modifica:. Nota si prega che vorrei sapere se "nascosto" il sale come descritto sopra è una pratica buona, io non sono l'attuazione di tale soluzione in questo momento

EDIT: anche prendere nota delle seguenti raccomandazioni OWASP .

Raccomandazione: rendere difficile rubare l'intero sale

Ci sono una serie di ulteriori miglioramenti consigliati al meccanismo salatura base a titolo oneroso:

Hai un 'sistema' ulteriore sale che è un valore fisso per l'intero sistema. Questo dovrebbe essere memorizzato in un file di configurazione da qualche parte. Questo valore fisso non avrebbe dovuto essere inclusi ogni backup, rendendo ancora più difficile per un utente malintenzionato di compromettere tutti gli elementi necessari per calcolare il valore hash in modo corretto. Incorporare una porzione del sale sistema nel codice sorgente. Questo non sarebbe che utile per il codice open source, ma per applicazioni personalizzate, avendo parte del sale sistema il codice sarebbe ancora di più un elemento richiesto da un utente malintenzionato di calcolare il valore hash in modo corretto. Generazione di un nuovo sale per un account ogni volta che la password dell'utente viene modificata.

Raccomandazione: Salt Isolamento

Un ulteriore meccanismo di difesa di memorizzazione delle password prevede la memorizzazione il sale in una posizione diversa rispetto l'hash della password. L'uso del file system del server è uno dei meccanismi comunemente usato per l'isolamento del sale, assumendo le hash delle password sono memorizzati in posizione diversa, ad esempio un server di database o LDAP. Questo meccanismo di difesa riduce il rischio di furto di password quando il file di database è stato rubato, dal momento che i sali non saranno inclusi con i dati del database. Fare attenzione a garantire che sia gli hash delle password e dei sali, non viene eseguito il backup insieme, essi dovrebbero anche essere eseguito il backup in modo isolato.

Nessuna soluzione corretta

Altri suggerimenti

Perché vuoi per cifrare un sale? I sali sono informazioni normalmente pubbliche - esistono solo per evitare pre-calcolate "arcobaleno-tabella" attacchi non in linea su database di password. Penso che avete bisogno di essere più chiaro su ciò che si sta tentando di fare e perché.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top