We are designing a system that will act as a store and forward system for messages containing sensitive information. Periodically our system will collect data that will need to be routed to clients. Our clients will use software provided by us to call our web service and get their messages- at which point the messages are deleted from our system.
What we want to prevent, is that in the case of our server being compromised, that the intruder cannot read the messages on our system.
We considered using public/private key encryption to encrypt the message prior to storing it in our database, then have our client software decrypt the message after receives the message. However this seems sort of backwards, since the public key would be on our server and the private key would be distributed with the client software.
Using this, we surmise, that the intruder would have to have hacked our server and gained access to the key in the client software in order to read the messages--a much less likely scenario.
What are the holes in this approach? Are there any alternative approaches?
Thanks Much.
MB