0

I am working on a project where I want to store end-user private data, but immediately this brings up the trust question of why a user would trust me to hold their data. I don't actually want to hold their data, but rather run an analysis on it and give the user the final result.

To that end I still need to have a storage of the user data. So I wanted to see if I could accomplish some kind of paradigm where I have the encrypted data, but the user has the keys. After doing some research into this field I found literature on secure enclaves and Trusted Execution Environments. The use case seems fairly similar in that the way it's discussed is that companies don't necessarily trust public clouds to hold their data so they use these enclaves so that the cloud doesn't actually hold their data, but rather an encrypted version while they hold their own key. Some of the links I've been looking at are

I'm wondering if I can extend that same paradigm in a b2c model where my project will hold data but individuals can hold their keys, either with a desktop, or a wallet or something. The question is are there any existing examples of this client-server trustless architecture or advice on implementation.

1 Answers1

0

Store the data in a secure way which you don't control at all. (Secure SharedPreferences or iOS Keychain) On these platforms which have hardware based security, secure secret storage is often backed by it. The security of these measures is generally well understood by those interested in that type of thing, avoiding suspicion about what you're doing.

A trusted app doesn't really come into play unless you desire to process their data securely. But the data must never see the light of day in normal world. It should be generated in the trusted app, encrypted before leaving the trusted app and never decrypted again until it is again processed by the trusted app.

As an aside:

You may find in the most paranoid of minds, allowing you to process their data at all is equivalent to letting you store it.

foreverska
  • 1,115
  • 11