How do I secure data at rest from unauthorized access, but still allowing my application to access the data using user authentication over HTTPS?
My scenario is as follows:
Login to application using ID and password (password is hashed using MD5)
After authentication from the server, user uploads data to the server
User can retrieve that data using the application
All data transfer is based on HTTPS
Data on the server is not encrypted
My questions are:
If I encrypt the data at the location on the server, how do I retrieve it using my client application?
Is there any algorithm which allows data to be encrypted and the encrypted data to only be decrypted and retrieved when my application is trying to retrieve data?
How do I keep that data secure from getting hacked if someone gets access to the server?