5 ms·
Decentralized private messaging doesn't sound too hard. With the e2e encryption that already exists it doesn't seem to difficult to add more servers as you don'
by pitaj 9y ago
Decentralized private messaging doesn't sound too hard. With the e2e encryption that already exists it doesn't seem to difficult to add more servers as you don't really need trust in the first place.
I could be wrong though.
- dasil003 9y agoYou always need trust, how do you know you're talking to your friend?
- brndnmtthws 9y agoThe theory with Signal is that you might verify their identity in meatspace, or some other way. But yes, it's definitely an interesting chicken and egg problem. As far as the thought exercise goes, it might be worth limiting your scope at this point.
- falcolas 9y agoSide channels are the only way, practically speaking. Call them and have them read off the hash of their key and verify it against the key you received from "them". Or have them send a nonce value through the system to you that you provided over a side channel. Any time you have a central authority providing that validation, you have to trust that your "friend" hasn't fooled them.
- dbrgn 9y agoThreema has a system where contacts are verified using a QR code scan: https://threema.ch/en/faq/levels_expl https://threema.ch/en/faq/levels_expl These three dots are shown throughout the UI, so with the identity of a contact you always see the trust level. This is much easier to explain to a non-techie than comparing security numbers or hashes. - Red = No trust - Yellow = You trust that the server has verified the identity - Green = You have verified the identity yourself (Edit: Formatting)
- Sylos 9y agoOpinions about giving this trust matter to dedicated certificate authorities instead, like we do with HTTPS? Edit: Found the problem with that. Certificate authorities are supposed to actually go out and confirm that the person who requested the certificate, is the person that they say they are. This is far too much work, if you want to verify each individual person who wants to use a messenger.
- Sylos 9y agoTo maybe clarify what dasil003 means, state-of-the-art encryption for this requires that everyone has a pair of keys, one of which they keep a secret - their Private Key, and one of which they tell all of their friends, acquaintances, everyone who might ever want to communicate with them - their Public Key. And then if you want to talk to them, you encrypt your message with their Public Key. Then only they can decrypt it with their Private Key (assuming no one else their Private Key). But if a hacker / NSA agent / script kiddo pretends to be your friend and tells you their Public Key, then they'll be able to decrypt your messages with their Private Key. You might never know that they aren't your friend. You'll have to ensure that you actually have the Public Key of your friend by some other method. For example meet them in person to exchange Public Keys, or read it out over the phone, if you know what their voice sounds like on the phone.
- pitaj 9y agoOk so the issue is authentification of the identities. This doesn't seem to be a solved problem in any space, even HTTPS is vulnerable to this kind of attack. It could be decentralized through pluggable identity authorities which provide the public key transfer via a secure channel. Essentially you'd use the same protocol and select what servers (WhatsApp, Signal, maybe some sort of immutable ledger elsewhere) to use.
- cortesoft 9y agoIt is solved, but the solutions all involve a mutally trusted third party.