Enabling per-user encryption in Nextcloud 13

Hi,

I have read about per-user encryption in the Nextcloud blog and I would like to enable it on a fresh install of Nextcloud 13. So far I enabled server side encryption and the default encryption module. But as far as I understood it, this is using server wide encryption keys instead if per-user keys, doesn’t it? What needs to be done to enable per-user encryption. Any help or link is highly appreciated.

Cheers

Server Side Encryption provides protection for data on external storage as the files are encrypted before they are sent to storage and the keys never leave the Nextcloud server.

The ultimate protection of user data is provided by End-to-end Encryption. The Nextcloud End to End encryption feature is designed such that the server never has access to unencrypted files or keys, nor does server-provided code ever handle unencrypted data which could provide avenues for compromise.

End-to-End-encryption is not available on all clients yet. It’s still in development and they plan to release stable versions later this year. Until then, you have to wait (and/or test the first test version) or use other client-side solutions such as VeraCrypt.

Container-based encryption tools are not a good idea for cloud solutions (unless they support deltasync) because every tiny change results in a full resync of the encrypted container. Better go with a file-based encryption tool like for example Cryptomator which was designed exactly for that purpose.

1 Like

Depends what you want to encrypt. It’s true that large containers are not great (if you haven’t got a fast connection to the server). Sometimes you can break your data into parts that you only crypt smaller units which are easy to handle. Advantage is that you hide as well the content (you only leak the total size of a container, no file names, no file size and number of files).

Thank you for the response. I am aware of the differences between server side encryption and end-to-end encryption and also of Cryptomator. However for my use case an encryption based on keys secured by a user password is sufficient. In the blog it says:

File keys are encrypted, in turn, either by a server wide key (default for feature and performance reasons) or a per-user key.

My question is: How do I switch from the default behavior (server wide key) to the per-user key encryption?

Cheers

I haven’t used server-side encryption for some time because I don’t have untrusted external storage. So I can’t help you here in detail. Just in general:

I wouldn’t use encryption for something it wasn’t designed and against it can’t provide protection. People will trust this encryption and unwillingly expose their data to a threat. I think it is better they are aware that no matter what, if they use the cloud, the admin can find sooner or later a way to see their data.

Just for your users, please run full backup and recovery procedures. I’ve seen to many people here who run into serious problems and ended up with encrypted unusable data.

These are all things I had no idea about - despite having read all the user manual documentation about encryption.

If limitations and problems are known in the forums and among the more knowledgable members of next cloud, it really feels like something that should be documented so as users we can adjust expectations