I’ve just recently moved to Lemmy, and so far I’m enjoying it quite a bit. However, I’ve been thinking about the privacy issues whe DMing someone here.
Since this is a federated service, when you DM someone you have to trust both your server’s admin, as well as the recipient’s. Not that I particularly trusted reddit, but at least it was 1 corporation with (hopefully) some solid security procedures in place, and potential penalties for data breaches. Whereas in Lemmy, it might just be 2 random guys.
I’ve added an age key to my profile, in the hopes to make people aware of this issue. As well as giving them an option, if they wish to contact me privately.
I know, it’s not user friendly. But it’s the only way I could think of that wouldn’t rely on email + GPG. Does anyone know of a better solution?
EDIT: I also realise that not having signing capabilities might be an issue… So maybe reverting back to good ol’ GPG is a better option?
I know this isn’t an answer but unless I’m using an end-to-end encrypted service like Element or Signal to communicate, I’m assuming anything I write in a DM will become public at some time. Given that, if it is something some sensitive, I will make sure to use one of those instead of the in-house DM.
Element’s an interesting one because it’s on the matrix protocol, which is already federated. You could, in theory, simply graft matrix onto any given activitypub instance and run all chat through that, though you’d need to get all the other activitypub instances to agree to do it the same way.
If you enter a matrix user name on your profile, Lemmy adds an extra button on your profile to “Send Secure Message”. Example: https://monero.town/u/shortwavesurfer
I don’t know if this behavior is default, or if you have to configure something for it, but I think it’s a nice way to bridge forum-like communities with chatrooms (matrix itself can be bridged with irc, discord, telegram).
I don’t know much about the available options, but aren’t we able to enter Matrix info in our bios? Or maybe that’s instance-specific?
I know nothing about Matrix though, other than that it’s an E2E thing.
There’s an option/field in Lemmy’s settings to put in a Matrix User ID, although I’ve had mine there and have no clue where it shows up. If I go to my profile, I can’t see it, unless I’m really overlooking it haha.
It probably doesn’t show when viewing your own profile, but yours shows two links:
Send Message
which links to sending a private message through lemmySend Secure Message
which links to sending a message through matrix
Ah that would make sense. That’s actually really cool that it even explicitly marks the Matrix option as the secure one too!
the problem I have with signal for talking to random people is I’d have to give them my phone number iirc
GPG as a feature embedded into lemmy-ui and all apps, would be nice
Yes, as an admin I could theoretically dive into the database and edit any user’s comment (as Spez did once)
GPG signing would solve this, if of course anyone cared to check.
Security is a Hard problem, frankly im just gonna treat messages ad public
Yeah, at least Lemmy tries to warn users not to use the DMs to send sensitive or private information, and suggests using a dedicated encrypted messenger instead:
The developers are very busy developing lemmy-specific features and encrypted DMs would be a lot of work to create something that is a bit redundant. But I am sure that if someone would want to make that, they would appreciate that help.
Not that I particularly trusted reddit, but at least it was 1 corporation with (hopefully) some solid security procedures in place, and potential penalties for data breaches. Whereas in Lemmy, it might just be 2 random guys.
Personally I wouldn’t trust 2,000 random guys any more than 2 random guys. I assume any of my unencrypted communications are public.
Just to add to this, they have a separate option
Send Secure Message
which opens Matrix private room directly if the user has Matrix handle added to their Lemmy profile.I might as well start learning how to use matrix too with how I finally got into lemmy. Time to start learning alternatives to commercially available services.
Ohh, I did not know that! I should add a Matrix handle then
You can always trust a large cooperation to keep your data secret more than any random individuals. They have accountability for losing your data, much more so than the people on the fediverse. A big data breach leads to class action for reddit, here it just takes down an instance and lowers the validity of the technology.
Yeah, that is true. But:
-
A large site often collects a lot more sensitive data about a users such as phone numbers, ips, devices, activities, browser fingerprints, and even correlates accounts
-
Because of the value and quantity of the data, large sites will be attacked more often
However, a large enough data breach to be publicly exposed is not the only concern. I think that large sites pass their un-encrypted communications through filters to detect ‘illegal activities’, and in some countries ‘illegal’ can mean simply criticizing a powerful individual. Companies also use unencrypted communications to mine information that may be valuable to advertisers.
I would not be surprised to learn that an intelligence agency has the ability to search through the plaintext of all of the DMs from a big site. Sites may give this ability to intelligence agencies in oppressive governments to track the activities of politically inconvenient journalists, for example. Laws can also change, and at some point it could be made legal to search through messages to detect even minor crimes. This may be unlikely, but it is possible.
The pressures and stakes are different, but I wouldn’t trust either a big company or two guys. If it is important for you that your DMs remain private, then you should generate your own keys, encrypt messages yourself, and keep the keys safe.
-
Honestly, seems like Lemmy could be a pretty good implementation of asymmetric PKI as well, the instance could easily host your public key as part of your profile, and only the user would have the private key.
There’d be some vulnerability around key issuance and recovery, but with a good official app, most users would just store the private key in the Keychain or Android Keystore, and would never bother with exporting the keys.
It sucks but your best option is to just put telegram info in your bio afaik
E2E for federated messages would be great tho
isn’t XMPP what you’re asking for? I’m not a user, but I’m aware that these things exist, they just don’t catch on because it’s a nightmare to do federation and security all at once. Probably it will take some form of federated authentication ID, but then you have the problem of who manages that…
I’m no federation or csec expert but the big issue is storing the the user keys. Though maybe the keys could just be the user’s password. But then you have to trust that your instance isn’t stealing it.
You could have them checksummed by the lemmy/kbin/mastodon devs, but then now you have to trust them.
At some point you’d need a centralized authority, which is kinda against the whole point of the fediverse.
You need to assume that there is zero privacy on these websites for now and the foreseeable future. Besides the way that the activity pub protocol is designed to work, these sites are in beta and were slapped together.
Honestly, so many big tech companies have demonstrated time and again that they’re run managed and operated by overgrown children, you should not trust them to not be reading your DMs or your emails, or watching your Ring videos, or anything else.
Honestly, just assume your smart fridge has someone in the other side watching you scratch your ass at this point.
Businesses are not to be trusted.
The difference is that you can take reddit/Twitter/Facebook to court over violating your privacy, you won’t have anywhere near that kind of luck with fredeverse hosts. If you notice, there isn’t really a TOS, those are filled with regulatory agreements from governments that says what they can and can’t do with your data. Here we’re hanging with our ass in the breeze. Best solution right now if you want to receive DMs is to use an encrypted app and block all DMs here.
You can sue the companies if you can prove specific violations. Knowing they can read your DMs and proving they have are very different things.
I’m not saying you should trust DMs here. I’m saying you shouldn’t trust them anywhere else, either. Not without demonstrable e2ee.
Exactly
You could just ensure the other party has a key and then send them encrypted text data they could decrypt on their end.
It’s not exactly trivial to add support for this automatically in DMs because of sharing keys between users and ensuring the right keys are in use, considering it would have to be possible to rotate them at any given time.
If you need encrypted communication, use something designed for it. That’s probably the best way to go
They could add space for users to put their public key in their profiles, could have the added bonus of generating curiosity and people learning how their tech actually works.
Thanks @[email protected], @[email protected], @[email protected], @[email protected], @BrikoX for mentioning the matrix integration. I was not aware of this feature.
I’d like to avoid creating a new matrix account for lemmy (as I already have one). Haven’t tried to have 2 accounts open on one device yet (don’t even know if it’s possible).
On Android, you can use Shelter (available on F-Droid) to install a second, independent instance of Element to the work profile. That way you can stay logged in with two accounts and receive notifications for both.
Oh that’s awesome! I hadn’t seen that before, and was going to mention SchildiChat which is a fork of Element (and they maintain a few variants of it as well, explicitly to “emulate” multi-account support in a way) - but that works even better, and would apply to more than just Element!
There’s also NaCl which has a few nifty JS libraries, meaning it could be embedded right into Lemmy’s UI.
This is an example:
https://tweetnacl.js.org/#/secretbox
Keybase works / used to work with NaCl.