Encryption features explained

I read this documentation as well as some older forum posts but still have some questions:

  1. Can shared passwords not be end-to-end encrypted?
  2. What does “None if CSE used” exactly do? Which secret is used for the encryption? How does it differ to the two other options?
  3. What does “Simple encryption” exactly do? Which secret is used for the encryption? How does it differ to the two other options?
  4. What does “Advanced encryption” exactly do? Which secret is used for the encryption? How does it differ to the two other options?

No. There is a warning in the sharing dialog of any e2e encrypted password that tells you e2e will be removed before the password is shared. The app has currently no system to exchange encryption keys between users.

About the server side encryption methods:

  • None if CSE used If the client says that the password has e2e encryption, the server will not use any additional encryption. This improves performance of any server request by a lot.

  • Simple encryption is the standard server side encryption also used when no e2e is active. It requires no master password. It combines the Nextcloud secret with a per user and a per password key. Since all keys are stored in different areas of the server, this encryption can protect against scenarios where the attacker has only access to some data. An example would be when someone has access your database server, but not the webserver.

  • Advanced encryption When you type in your master password, you’re actually solving a specific challenge. The server can verify if you solved the challenge correctly without knowing your password. If you solved the challenge correctly, the server can use your solution to decrypt a keychain on his side. The server can then use the keys to encrypt your data server side. The keys are only accessible as long as you’re logged in. So as long as you’re not logged in, noone can decrypt this server side encryption.

Thank you for your detailed explanation.

Any plans to add e2ee for shared passwords?

Furthermore I would prefer configuration settings so that the administrator can defined which encryption methods have to be used. This is useful in enterprise scenarios to avoid that individual employees accidentally soften encryption settings.

It is planned as part of a larger overhaul of the sharing options available in the app. But this is not planned for the near future.

Feel free to make a feature request for this