My application is a (Windows) desktop application that is required to operate fully offline. To enable this, I have a local data cache that keeps a synced copy of server data.
How can I secure this local data from any access other than my software?
I know that for fully offline software, this is impossible; any encryption aspects like key, salt, password, etc. that my software used would have to be embedded in the software itself, and this could be recovered from the executable.
But my application also has a requirement that it connects to the home server at least every 5 days for updates, during which time it could download anything.
Is there an algorithm that would allow the application to encrypt the data, using an encryption key that's downloaded every so often, based on information that only the server would know?