-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Initial Checklist
-
I understand this is a feature request and questions should be posted in the Community Discussions
-
I searched and couldn’t find anything (or linked relevant results below)
Idea
As per this discussion, the idea of having some kind of safely encrypted garden for our precious files is something a lot of users would want!
However, having all the files end-to-end encrypted makes the server-side features (kind of) useless.
Something that gained some traction was the idea of only having specific zones of the cloud storage encrypted, just like vaults, and just like what Nextcloud actually provides with it's e2ee extension.
Well... Doing this job client-side seems to be a perfect task for an OpenCloud web-extension!
What I would suggest is an encryption protocol that is usable with other tools, like rclone.
Rclone has the crypt provider, that overlays an existing provider (eventually on a specific folder), and encrypts/decrypts on-the-fly the files it has.
Web-extensions are built in javascript and derivatives, and I have found the following node extension, that tries to replicate the rclone crypt behaviour. It has been used on an Obsidian Sync plugin (the developer is involved in both projects).
Here is my implementation idea:
Encrypted folders have some specific metadata on it. The web-extension is registered as a viewer for this kind of folder. When triggered, the extension "mounts" the associated WebDAV location and opens a folder view containing the decrypted folder tree. Other operations behaves as expected, except the fact that the node module acts as a middleware when querying files and folders in this view.
An option to create an encrypted folder is also available in the "New" menu. A password will be asked, and a salt would be deducted based on immutable properties of the folder (like its internal id?)
The main advantage of this implementation, besides the fact that it would provide real e2ee without touching the server codebase, is that the official app are not required to take advantage of these encrypted vaults: rclone is able to handle them properly, provided that you correctly mount the right providers in the right places.
What do you think?