The requirements are to Encrypt the data in our servers 'at rest' and the 'database' - in short the whole infrastructure.
Threat Model - to protect a possible data-breach by an adversary (or from unauthorized entity), from physical theft (or for safe disposal) and for secure duplication (for safe backups).
Problem - We are a 'SaaS' and deals with tons of users requesting data back and forth (from our servers) - therefore, the data which we plan to encrypt should remain highly accessible (user files, messages etc) and encrypted at the same time - without having a Public/Private Keys schema from the User side, which establishes the following notion.
Data should get encrypted as soon as it enters into the server (using any symmetric-crypto mechanism) and stays available for the users when they asks for it | A bit of research has shown full-disk encryption mechanisms (e.g. LUKS, lib-crypt, or PGP) which I'm not sure will do the job or not.
If full-disk encryption is the answer to our quest then the second issue is having the encryption key (being available on the same server) which will not address our threat model (as for an attacker who got the server access will not take much time to get the encryption-key as well). Secondly, it will require someone physically entering the (crypto) password on every server reboot (which is not possible - since most of our team works remotely and prefers automation).
Precise Concern: Which Encryption scheme will do the job efficiently by staying (robustly) available while covering the mentioned Threat Model - and what will be the preferred system architecture for handling those operations effectively?
The whole point is to protect the data which is being stored on our side in every possible way without compromising the overall performance.
I'll highly appreciate your enlightenment in this regard.