this post was submitted on 25 Dec 2024
94 points (98.0% liked)
Open Source
31751 readers
168 users here now
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon from opensource.org, but we are not affiliated with them.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Yeah, I'm not used to E2EE in the browser either and StackExchange seems to agree that there's no nice solution :/
The sanest option in terms of user practicality to me appears to be storing the private key on the server, maybe encrypted with the user's password, and sending it to the user on successful login where it would be decrypted client side. It seems like it's more or less what MEGA is doing since they have a similar issue
If the server having temporary access to the user's password is an issue maybe the password could be partially pre-hashed before being sent?
It's be interesting to talk about it with someone with more experience, especially since implementing all of that will be a pain so it can't be redone every Thursday
That does seem reasonable, but it doesn't solve the trust issue. The server might always send a modified script that just uploads the plaintext private key.
That said it would still be useful in other ways. Like in a breach the data would be secure.
Yeah, you'd need a way to validate the client code before it's executed to solve that issue
Section "2. Client application security" of MEGA's Security Whitepaper discusses this exact problem. Their best solution to that issue is to just cram the whole frontend in a signed web extension and not serve any code to the user when the extension is active, which is not very user friendly but works for those who want an extra layer of protection
I just can't find a good user-friendly implementation, sorry for not being of more help. The web just isn't E2EE-friendly ig :/
You've helped enough :)
Hmmm I see.
We have an app in the making, so I guess we will eventually implement proper e2ee there and then just try our best in the browser.
Damn already working on an app? That's so cool! Starting E2EE there is definitely a good idea then!
MeroChat is such a nice project, thank you for working on it <3