nextcloud / notes

✎ Distraction-free notes and writing
https://apps.nextcloud.com/apps/notes
GNU Affero General Public License v3.0
608 stars 134 forks source link

End-To-End Encryption #476

Open trymeouteh opened 4 years ago

trymeouteh commented 4 years ago

Please add the ability to have client side encryption with Nextcloud notes. This will require the Nextcloud Notes app on Android and either a free Nextcloud Notes app to be made for iOS or for CloudNotes to add this client side encryption feature.

There are client side encrypted note apps such as Turtl and Stanard Notes. I would like to see Nextcloud add this security and even allow the ability to edit the notes in the browser using JavaScript to encrypt/decrypt the client side encryption. And I would like notes sharing to still be possible within the same domain and to be federated.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/89344694-end-to-end-encryption?utm_campaign=plugin&utm_content=tracker%2F46751022&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F46751022&utm_medium=issues&utm_source=github).
Boki4d commented 4 years ago

E2EE would be a very nice feature for the Notes-App!

stefan-niedermann commented 4 years ago

What exactly are you expecting regarding the attack vector? I didn't fully get it yet.

The notes stored on the server are files and will be encrypted if you activate server side encryption.

While transmitting the notes e.g. to the Android client they are protected by TLS.

On the Android client itself, they are stored in a SQLite-database, which cannot even accessed by another app except you rooted your device. In this case you should know what you do and only provide the root access to trustworthy apps.

Where in the chain do you see an issue which could be solved by an e2e-encryption?

Boki4d commented 4 years ago

In my case, it's not about the (or a new) attack vector, more about performance. I think it would be good to have an option to encrypt only the notes without encrypting the whole nextcloud. I guess this would have some performance benefits. Correct me if I'm wrong. Not sure how much effort it would take to implement something like this.

The notes stored on the server are files and will be encrypted if you activate server side encryption.

Does the Android App support an encrypted nextcloud?

stefan-niedermann commented 4 years ago

Does the Android App support an encrypted nextcloud?

Honestly i haven't tried it yet but given the requests are send from the main Nextcloud app to the API of Notes, i guess it should be supported.

I am currently not interested in implementing this into the Android client as i have more important topics to do (and as you stated missing this feature is not a security vulnerability, but a performance topic at most - and this only in an edge case).

korelstar commented 4 years ago

This is indeed a very complex feature request. We would have to think about how we could implement this for all notes clients (Web, Android, iOS, maybe QOwnNotes). Challenging would be, e.g., how to transfer cryptographic keys between different (types of) clients.

Of course, this feature would be nice. But I agree with @stefan-niedermann that we don't have the resources to implement this, currently. However, if there is somebody who has enough free time and cryptographic know-how, we appreciate any help on this.

Boki4d commented 4 years ago

Makes sense, I'm sure there are a bunch of other features that are more important and/or easier to implement. But I think it doesn't hurt to have it in the issues-tracker, just in case. :)

alexmo1997 commented 2 years ago

The notes stored on the server are files and will be encrypted if you activate server side encryption.

The problem with server side encryption is that you still have to trust your server provider, as they could easily bypass that, if they really wanted to. So I do think that this might really decrease the attack surface.

monperrus commented 1 year ago

Would love to see end-to-encryption in Notes. One could reuse E2E code from the passwords app.