Estoy trabajando en un administrador de contraseñas Java y actualmente tengo todos los datos del usuario, después de descifrarlos de un archivo, permaneciendo en la memoria en todo momento y almacenados como una cadena para mostrar en el UI, etc.Datos confidenciales en la memoria
¿Es esto un riesgo de seguridad de alguna manera? Estoy particularmente preocupado con alguien "dumping" o leer la memoria de la computadora de alguna manera y encontrar datos desnudos de un usuario.
He considerado mantener encriptados todos los datos confidenciales (las contraseñas) y solo descifrar cada pieza según sea necesario y destruirla después ... pero prefiero no pasar y cambiar una gran cantidad de código en una superstición.
Entonces, esencialmente, si tuviera que hacer el cambio y mantener todos los datos encriptados, simplemente haría que algo ya sea muy difícil/improbable, incluso más difícil. Me imagino que encontrar el byte [] que contiene la tecla AES es _mucho_ más difícil que encontrar texto sin formato. – defectivehalt
No realmente en Java; se convierte en una búsqueda de un objeto byte [] de un tamaño dado (a diferencia de un objeto String) en el montón. Pero sí, el tipo de atacante que te preocupa es tan extremadamente raro que estarías perdiendo el tiempo tratando de defenderte de ellos (y probablemente no tener éxito). –
No podría estar más de acuerdo contigo Kevin. – Tower