Replies: 6 comments 3 replies
-
@justyns , I think it's not a bad idea. Full end-to-end encryption at database level should not be that difficult to implement. And I think it would also not be very costly in terms of performance since it's done outside the JavaScript realm. But how would we manage the key? Reuse the password field that is used for syncing, or something else? On my side I run the Trilium Server on a trusted server with disk encryption, so I'm not particularly affected or benefiting from this use-case. I use password protected notes only to hide sensitive notes, for example if I let someone browse through my notes and I wouldn't really want them snooping around in some more sensitive notes. |
Beta Was this translation helpful? Give feedback.
-
Some considerations:
|
Beta Was this translation helpful? Give feedback.
-
I am also against encryption, at this point as many others said, it can quickly become a big pile of complicated stuff. |
Beta Was this translation helpful? Give feedback.
-
IHMO, in today's times where everyone trying to get their hands on your notes/personal info, I think end to end encryption is a must. I am not interested in a multi user application. That is not Trilium's purpose anyway. A true mobile app would be nice too ;) |
Beta Was this translation helpful? Give feedback.
-
I would not do that automatically, the current distinction between unencrypted and protected notes is fine in my opinion.
|
Beta Was this translation helpful? Give feedback.
-
I am a bit torn on this one. From my perspective, encrypting the DB is "usually" not as important as protecting the access to it. For instance, I dont really encrypt my notes because I generally dont put anything in there super secret like passwords or PII. Typical end users tend not to consider security much and will put all kinds of things in there (including account passwords) and then protect the data with a very weak password. For me its about protecting access to it in the first place. I use only very strong passwords. I run Trilium on a VM server, in a docker container on my internal network. Then I run the desktop installed on the three machines I frequent. But MOST of the time I am accessing via the webUI. Encrypted SSL based access on the lan side is routed via haproxy on my firewall. For external access, my instance is behind a reverse proxy (CloudFlare), and then direct access is further limited to a handful of IP addresses that I tend to frequent (work, family etc). Access to the webUI beyond that is handled by CloudFlare WAF. I do however, shut my instance down nightly via script and pull a copy of the DB into a compressed file which is heavily encrypted and sent off to a cloud storage (amongst other locations). That being said, I do realize that most non-tech users will not have the knowledge, environment, nor the desire to go through all of that. Thinking about this also makes me wonder how do most people run Trilium. (ie Server Only, Desktop only, mixed) |
Beta Was this translation helpful? Give feedback.
-
Trilium already has the ability to encrypt notes, and I actually encrypt almost all of my notes other than backend/frontend scripts.
What is everyone's thoughts on switching to full e2ee by default? E.g. maybe by using https://sqlite.org/com/see.html or https://github.com/sqlcipher/sqlcipher
If we push the encryption to the sqlite extension, I could see potentially either removing the encryption logic in trilium as it is now, or even leaving it as a second layer to protect specific notes with a password, but still let the overall app unlock itself with a remembered password if desired.
One goal of this would be to make it safer to host trilium on a vm or other server you don't have total control over.
Beta Was this translation helpful? Give feedback.
All reactions