Almacenando la contraseña en la aplicación Java

9

¿Cuál es la mejor manera segura de almacenar contraseñas en la aplicación web Java?

No estoy hablando de una contraseña para la base de datos, por lo que debe almacenarse de forma que no pueda ser cifrada. Es el entorno de la nube y necesito proteger las credenciales de la base de datos incluso si mi VM con la aplicación web se ve comprometida.

¿Cuáles son mis opciones? Si almacenarlo cifrado, ¿dónde / cómo debo almacenar las claves de cifrado?

    
pregunta AaronS 10.09.2012 - 08:47
fuente

2 respuestas

7

La mejor manera de almacenar contraseñas en aplicaciones Java, si lo está ejecutando en sistemas con base Windows, es usar DPAPI de Microsoft, que usa las credenciales de Windows para cifrar las contraseñas. enlace .

También hay un contenedor de Java para su conveniencia enlace

Dado que Windows administrará sus claves, usted no tiene que administrarlas usted mismo. En Java, nunca piense en escribir su propio mecanismo para administrar claves y almacenar contraseñas. Simplemente no es seguro porque cualquiera que tenga acceso a su archivo .jar puede aplicar ingeniería inversa a los archivos de código fuente y obtener su mecanismo. CryptProtectData() es el camino a seguir

    
respondido por el sudhacker 12.09.2012 - 16:06
fuente
5

Divide tu aplicación Java en dos partes. Front-end, tratar con solicitudes HTTP y back-end, tratar con base de datos. Se comunican entre sí a través de una API simple (IPC). Por lo tanto, las credenciales de la base de datos permanecen en la aplicación de back-end y permanecen seguras incluso si la aplicación de front-end se ve comprometida. Asegúrese de que cada aplicación se ejecute bajo su propio usuario y que no puedan acceder a los archivos de las demás. Si está utilizando Linux, recomiendo usar MAC como SELinux, TOMOYO, AppArmor para aislar las aplicaciones. Alternativamente, puede ejecutar cada aplicación dentro de su propia VM o incluso de una máquina física, pero eso sería un desperdicio de recursos.

enlace

<     
respondido por el Matrix 10.09.2012 - 09:00
fuente

Lea otras preguntas en las etiquetas