Ocultar el secreto de la base de datos en una aplicación Java fuera de línea sin credenciales de usuario

2

He estado buscando toda una solución durante la última semana, pero no pude encontrar una respuesta adecuada y espero que alguno de ustedes pueda ayudarme.

Tengo una aplicación de escritorio Java que utiliza una base de datos H2 local (modo integrado) en una máquina Linux. La base de datos utiliza un cifrado simétrico con una contraseña. Cualquiera puede utilizar la aplicación sin pedir ningún tipo de credenciales, contraseñas o información de inicio de sesión. El secreto de la base de datos debe estar oculto y no ser visible ni editable por los usuarios. Finalmente la aplicación no tiene conexión a internet.

¿Existe alguna solución para proporcionar el secreto a la aplicación para el cifrado de la base de datos mientras se protege la contraseña de los usuarios? ¿O hay alguna otra solución para proteger los datos de la base de datos del acceso de los usuarios y proporcionar los datos a la aplicación?

Gracias de antemano

Sebastian

    
pregunta Seb 22.01.2018 - 18:11
fuente

2 respuestas

2

¿Sus usuarios tienen derechos de administrador en sus respectivas máquinas de escritorio? Si es así, no hay forma de que pueda ocultar la contraseña a un usuario motivado por mucho tiempo. Métodos como ofuscación, etc., pueden ayudar a evitar que un usuario curioso pero perezoso descubra sus secretos, sin ninguna garantía.

Si no, permite a los usuarios ejecutar la aplicación, pero prohíbe la depuración y la lectura del archivo de secretos. La forma en que lo hace exactamente depende de qué sistema operativo se utiliza en su organización.

Tenga en cuenta que esto también requiere que instale todas las actualizaciones de seguridad en las máquinas de los usuarios tan pronto como sea posible, ya que elevación de privilegios es una de las consecuencias más frecuentes de las vulnerabilidades existentes.

    
respondido por el ximaera 22.01.2018 - 18:34
fuente
1

Básicamente, no existe una forma adecuada de cifrar datos confidenciales cuando se habla de una solución basada en software. Una de las soluciones que puede adoptar es un mecanismo muy fuerte de ofuscación que puede ayudarlo a ocultar el secreto. O mejor, use Criptografía de caja blanca para consultar más información en este enlace: enlace

    
respondido por el Yazid 22.01.2018 - 18:23
fuente

Lea otras preguntas en las etiquetas