Estoy buscando una manera o una mejor práctica para almacenar datos de usuario de forma segura en una base de datos sin cifrar la base de datos.
Estamos hablando de un servidor de aplicaciones conectado a un servidor de base de datos. Mi enfoque fue cifrar los datos de usuario en el servidor de aplicaciones (¿Cómo?) Y almacenar los datos cifrados en el servidor de base de datos. Si un usuario se autentica en el servidor de aplicaciones, los datos cifrados deben leerse desde el servidor de aplicaciones, descifrarlos y entregarlos al usuario ...
Actualización: es obligatorio que el servidor de aplicaciones pueda descifrar los datos del usuario (por ejemplo, nombre, apellidos, tipo de sangre, productos que compraron, otros datos personales, no se mencionan las contraseñas aquí) porque el servidor de aplicaciones tiene que descifrar los datos almacenados. Datos en la base de datos para presentar los datos al cliente.
¿Existen herramientas / mejores prácticas para este escenario?
Supongo que una base de datos totalmente encriptada podría ser la mejor solución, pero ¿hay alguna forma de proteger este entorno sin encriptar completamente la base de datos?
Actualizar
Intentaré aclarar el caso de uso:
El cliente está ejecutando un sitio web donde los usuarios inician sesión con sus credenciales (nombre de usuario / contraseña). Appserver es Tomcat, la base de datos es Oracle Afaik. No hay requisitos legales (no PCI, Sox, HIPAA, etc.) involucrados para los datos almacenados, sin embargo, el cliente desea proteger los datos mediante su cifrado. El cliente no desea cifrar la base de datos debido a problemas de licencia, problemas de rendimiento y el "problema" que los administradores de la base de datos pueden descifrar de la base de datos ... por lo tanto, los datos deben cifrarse en el servidor de la aplicación y luego enviado al servidor de la base de datos.
Los arquitectos de software quieren ir con el enfoque de Seguridad por oscuridad y desarrollar su propia técnica de "cifrado" (tal vez rot14 o lo que sea :)) e implementarla en la capa del servidor de aplicaciones. El cliente es plenamente consciente del hecho de que todos los arquitectos de software ahora podrán leer los datos cifrados almacenados en la base de datos, pero eso está bien para él ...