Asegurar la contraseña en Java (archivo de configuración y memoria) [duplicar]

0

Tengo que almacenar la contraseña en algún otro sistema en el archivo de configuración en mi aplicación Java (aplicación web que se ejecuta en Tomcat). ¿Cuáles son mis opciones para protegerlo (tanto en reposo como en la memoria)? (Hash no es una opción)

en reposo: si cifraré la contraseña en el archivo de configuración, ¿dónde almacenaré una clave? en otro archivo de configuración? no suena bien ... No quiero codificarlo en el código.

en la memoria: leí que no debería usar String sino char [], pero aún así, si alguien descarga la memoria, tendrá la contraseña. ¿Tiene Java algo como SecureString en .Net?

Gracias

    
pregunta Aaron_S 15.01.2017 - 09:24
fuente

1 respuesta

1

Su contraseña de guardado es una pregunta duplicada. Si alguien llama su aplicación java, es mejor obtener las contraseñas requeridas por el usuario o administrador del sistema que es responsable de la ejecución de la aplicación.

Después de obtener la contraseña. Nunca lo guardes como una cadena. Debido a que las secuencias en Java son inmutables y usted no tiene ningún control de esos bloques de memoria (solo JVM junto con GC). Intente almacenarlos en char [] en la memoria y no utilice toString ().

Si está tratando con una IU, no utilice métodos como getText () para recuperar una contraseña. Use el método getPassword () en JPasswordField como ejemplo.

    
respondido por el user3496510 15.01.2017 - 09:56
fuente

Lea otras preguntas en las etiquetas