3 ms·
> In a web app, a single compromised server will compromise all security instantly. This is only true if the server has access to the keys of your data. E2EE t
by anon4242 8y ago
> In a web app, a single compromised server will compromise all security instantly.
This is only true if the server has access to the keys of your data. E2EE typically means that it doesn't, only you do.
- dchest 8y agoIn a browser, the server serving the JS has an opportunity to access the keys.
- wereHamster 8y agosubtlecrypto has API to generate a keypair that you can't extract and access from the JS side. You can only use it to encrypt/decrypt buffers, but not access the key itself.
- dchest 8y agoSure, but having access to encryption/decryption/key derivation is pretty much equivalent to having the key in most circumstances. Plus, JS generates the key and sets "extractable" flag.
- anon4242 8y agoThis is the case with all E2EE tools. You have to trust that they do their crypto correct and that they aren't evil. As Firefox Send is open source you can setup your own server if you don't trust Mozilla, but then again, if you don't trust Mozilla you might want to eyeball their code carefully first...
- dchest 8y agoYour description is very simplistic, but yes, you have to trust the code that's delivered to you. For example, no Android/iOS user would check every single update to E2EE apps they install for backdoors. However with web, there's an opportunity for a backdoor in every single request and the server can ship different code to different users. In my opinion, using web cryptography is still worth it, but it's definitely more risky than native apps.
- skrebbel 8y agoAnd how does that work with Firefox Send? Isn't the key somehow in the payload or the URL?
- anon4242 8y agoWithout knowing almost anything about Firefox Send, it does seem that the key is embedded in the link you give to your friends. In that case E2E means that the key is not stored on the server. In order to guarantee that, the link is probably in two parts, one that identifies the file on the server and one is the key. The key part of the link is probably generated on your machine and thus never sent to the server (to prevent it being in any logs or what not). So if Mozilla's servers are compromised the attacker still would not be able to decrypt your files. Of course if the server is compromised the attacker could serve up malicious JS for future uploads.