0

I am developing a zero-knowledge web application. It stores user's data in an encrypted form, the encryption is done on the users browser, and I do not have the key.

If implemented properly this should mean that anyone, including hackers, could have read-only access to the entire server including database, configuration, and all the source code of the backend and frontend; and that would not compromise anything, especially my user's data (except for the fact that it would obviously expose any mistake/exploit that may exist)

What I want now is to protect my users against hackers having write access to my server, especially having write access to the frontend source code. Anyone with the ability to change the front source can compromise the encryption and have users send their private key or unencrypted data somewhere else.

Provided that the user already has accessed the app once, is there a way to have subsequent accesses, and updates to the front source code detected and verified by the browser before executing blindly whatever the server sent?

Note that everything is encrypted/signed by the users private key which is stored (and stays) in his browser, so having a way to secure only the access to this key while the front authenticity is not verified could be an option.

Halting if the front sees any change, and relying on another channel to verify the authenticity of the new source code before executing it or releasing the private key could also be an option.

Sinder
  • 389
  • 2
  • 8

0 Answers0