La memorizzazione di una password nella memoria di un'applicazione è rischiosa. Il sistema operativo può scrivere una parte della memoria su disco come file di scambio. I processi possono accedere alla memoria l'uno dell'altro, anche se non dovrebbero. (Altro)
Sto sviluppando un generatore di password deterministico con Java e mi chiedo quale sia il modo migliore per gestire la chiave master in memoria. Ci saranno periodi di tempo in cui l'applicazione deve "ricordare" la chiave principale, prima che possa sovrascriverla in memoria. Ho pensato di crittografare la chiave principale in memoria e scrivere la chiave di decodifica generata a caso sul disco. Quando la chiave master non è più necessaria, l'app tenterà di sovrascrivere sia il file su disco sia la chiave master crittografata. Questo approccio fornirebbe almeno un po 'di sicurezza nei confronti di qualcuno che successivamente scopre un vecchio file di scambio. Ha senso? Dovrei fare qualcos'altro?
Quali sono le buone pratiche per ridurre la durata dei dati di password e chiavi crittografiche in memoria?