I'm looking for a way or best practise to store Userdata securely in a Database without encrypting the Database.
We’re talking about an Application Server connected to a Database-server. My approach was to encrypt the userdata at the Application Server(How?) and store the encrypted Data in the Database Server. If a User authenticates himself at the Application Server the encrypted Data has to be read from the App-Server, decrypted and served to the User...
Update: It's mandatory that the App-server can decrypt the userdata (for example name, surname, blood type, products they bought, other personal data, Not talking about passwords here) because the App-Server has to decrypt the stored data in the database to present the data to the customer.
Are there any tools/best practises for this scenario?
I guess a fully encrypted Database might be the better solution but are there any ways to secure this environment without fully encrypting the database?
I'll try to clarify the Usecase:
The Customer is running a Website where Users log in with their credentials (Username/Password). Appserver is tomcat, database is oracle afaik. There are no legal requirements (no PCI, Sox, HIPAA, etc.) involved for the stored data, however the customer wants to protect the data by encrypting it. The customer doesn’t want to encrypt the database because of license issues, performance issues, and the "issue" that the database admins might be able to decrypt the database... therefore the data has to be encrypted at the application server and then sent to the database server.
The software architects want to go with the Security by obscurity approach and develop their own "encrypting" technique (maybe rot14 or whatever :) ) and implement it at the application server layer. The customer is fully aware of the fact that all the Software architects might now be able to read the encrypted data stored in the Database but thats fine to him...