4 ms·
If you really want to control who can access it, you need to encrypt it with the public keys of everybody who is allowed to read it. That's probably the only wa
by mcv 4y ago
If you really want to control who can access it, you need to encrypt it with the public keys of everybody who is allowed to read it. That's probably the only way.
I don't think Mastodon or anything else on the Fediverse currently uses public key encryption at all, though.
- skybrian 4y agoYou also need to verify anyone who joins the group. Allow strangers to join and the encryption doesn't do anything. Might as well use a private group on Signal at that point.
- mcv 4y agoEncryption still encrypts, doesn't it? Of course they could decrypt it and pass it on decrypted, but no amount of security is going to prevent that. Google Plus had the option of sharing publicly, with a specific circle, with all your circles, or with your extended circles (your circles and their circles). This gave very good granularity in controlling who could read what. It sounds like some people at Mastodon could really use something similar, and the only way to accomplish that on an open, federated network, is through encryption. Though it may be a bit much to encrypt it separately for 100 different people. It really blows up the overhead. So maybe don't encrypt the entire message with publish keys, but with a secret key, which gets encrypted with each public key of the allowed recipients, all of them attached with the same message. Still some overhead, but a lot less. I don't know ActivityPub well enough to know if they already have something like this, but it might be a useful addition.
- skybrian 4y agoOne issue is that other Mastodon servers would need to decrypt the messages if any of their users is a member of a private group. Furthermore, users can switch servers, which effectively means that any server they can move to could get access. If you want end-to-end encryption then the key management needs to be on the client and the client software needs to be securely distributed, which makes it more like a mobile or desktop app than a web app.