all this stuff just made me go back to IRC and realize how much I missed it.
post
I agree with all this. The thing which caused me to uninstall was suddenly being pushed lots of abusive message with disturbing contents.
When I complained about it, Matrix told me that my public complaints were hurting the ecosystem and I should be quiet.
I just want a self-hostable open-source alternative to the shitty closed-source IM systems I'm forced to use
I'm sticking with Matrix for now, hopefully some of the issues I've had will get ironed out
Nextcloud talk?
Revolt is a self hosted discord clone
The lack of group voice calls is what mainly kept me from adopting that. Hope they get that working soon.
I swear there were calls when I was testing it a year or two ago. Guess not then.
Snikket is the rebranded-dockerized XMPP environment (uses prosody for server, Conversations clone for Android, and Monal clone for iOS).
Worked pretty well for me in the past.
The protocol is bloated to hell so third-party clients stand no chance, and the foundation spends more time bikeshedding or pissing away money than they do developing. It's a doomed project.
So what's left? Jabber?
Slrpnk hosts an XMPP/Jabber for our users, mods and admins to communicate. Its worked pretty darn well for the past couple years, with very low resource needs.
The clients are pretty slick now too, such as Cheogram or Monocles for mobile, and movim is an excellent web app with support for group calls.
I'd certainly recommend it over Matrix/element.
Not to mention you can run a server on anything pretty much and for surprisingly big amount of users. Toaster or potatoes will do just fine.
What's the protection in the clients assuming compromised infrastructure, like e.g. in https://notes.valdikss.org.ru/jabber.ru-mitm/ ?
Significant improvements to certificate pinning and validation have been added to all major XMPP clients as a result of this incident, but it should also be clear that hosting a server on infrastructure under control by an antagonist government (see also Signal) is a very bad idea and hard to mitigate against.
End to end encryption between clients (also for groups) seems to partly address the issue of a bad server. As for self-hosting, any rented or cloud sevices are very vulnerable to an evil maid. So either in-house hosting or locked cages with tamper-proof hardware remain an option.
Signal doesn't suffer anything worse than DoS if a hostile party controls the central service. That's its point and role. It's based on the assumption that such hostile parties as governments don't like DoS'ing central services, they prefer to be invisible.
For other points and roles other solutions exist. One can't make an application covering them all, that never happens.
Briar again (I've finally read on it and installed it, and I love how it works and also the authors' plans on the future possibilities based on the same protocols, but not for IM, say, there's an article discussing possibility of RPC over those, which, for example, can give us something like the Web ; I mean, those plans are ambitious and if I want them to succeed so much, I should look for ways to defeat my executive dysfunction and distractions and learn Java). Except it would be cool if it allowed to toss data over untrusted parties, say, now if two Briar users in the same group are not in each other's range, but there's a third Briar user not in that group between them, their group won't synchronize (provided they don't have Internet connectivity). If one could allow allocating some space for such piggybacked data, or create some mesh routing functionality, then it would become a bit cooler.
You are very naive if you think that is all the US government can do in regards to Signal, but suit yourself 🤷
OK, so what else in your opinion can it do?
A lot, but please educate yourself, this topic has been extensively discussed here and in other places.
A lot, but please educate yourself,
Thanks for the advice.
this topic has been extensively discussed here and in other places.
This is noise, not an argument.
I dunno what's the purpose of this comment. I asked for specific things, not for noise.
Whenever anybody on the internet tells you to educate yourself, but refuses to provide the information they allude to, they're lying. They know they're lying.
Signal has issues, like SVR.. which are worth discussing on their own without this weird vague eliteism
Yes, I know that.
Especially the "this has been discussed before" thing, I dunno about other countries and cultures, but in Russia this is the most common obnoxious shit people without arguments and thinking they have authority use.
Yeah it's like appealing to authority and social pressure all in one. We already discussed it. Bah.
So Signal does not have reproducible builds, which are very concerning securitywise. I talk about it in this comment: https://programming.dev/post/33557941/18030327 . The TLDR is that no reproducible builds = impossible to detect if you are getting an unmodified version of the client.
Centralized servers compound these security issues and make it worse. If the client is vulnerable to some form of replacement attack, then they could use a much more subtle, difficult to detect backdoor, like a weaker crypto implementation, which leaks meta/userdata.
With decentralized/federated services, if a client is using other servers other than the "main" one, you either have to compromise both the client and the server, or compromise the client in a very obvious way that causes the client to send extra data to server's it shouldn't be sending data too.
A big part of the problem comes with what Github calls "bugdoors". These are "accidental" bugs that are backdoors. With a centralized service, it becomes much easier to introduce "bugdoors" because all the data routes through one service, which could then silently take advantage of this bug on their own servers.
This is my concern with Signal being centralized. But mostly I'd say don't worry about it, threat model and all that.
I'm just gonna @ everybody who was in the conversation. I posted this top level for visibility.
@Ulrich@feddit.org @rottingleaf@lemmy.world @jet@hackertalks.com @eleitl@lemmy.world @Damage@feddit.it
EDIT: elsewhere in the thread it is talked about what is probably a nation state wiretapping attempt on an XMPP service: https://www.devever.net/~hl/xmpp-incident
For a similar threat model, signal is simply not adequate for reasons I mentioned above, and that's probably what poqVoq was referring to when he mentioned how it was discussed here.
The only timestamps shared are when they signed up and when they last connected. This is well established by court documents that Signal themselves share publicly.
This of course, assumes I trust the courts. But if I am seeking maximum privacy/security, I should not have to do that.
Consider that your the french intelligence services and you need to setup secure communication for the french government.
- Would you use signal out of the box? Clearly not.
- Would you copy signal and setup your own servers and clients, same source, different end-points? Probably not.
If you said yes to either of the above, what if you were not a ally of the US, maybe Russia, China, DPRK.... Does that change your answer?
What capabilities does the runner of a centralized service have?
- See all traffic
- Can block traffic
- Can slow traffic
- Can record all traffic
- Timing analysis of metadata
Does this mean Signal is a bad product? No not at all. But it does mean its very well positioned for intelligence harvesting. Add in storing private encryption keys in the cloud SVR relying on intel SGX security... and well... you get everything even decrypted messages.
The US controls Signal, the US controls Intel - Thus the US can get any code they want signed into SGX enclaves, thus the enclaves are pointless if your threat model includes the US as a adversary
Does this mean the protocol should be thrown away? No. Does this mean Signal shouldn't be used (depends on use case)? No. Signal has value, but its not the ultimate form of privacy and security.
I support projects like Briar because there is till much improvement needed in this space.
Notice: I'm not telling others to "educate yourself", if I didn't want to talk to people I wouldn't be here, or I'd link to the proper discussion. I dislike people who come to social places and act antisocially
They do have reproducible builds for android though? https://signal.org/blog/reproducible-android/
They can't for iOS because it's just not a feature there
Else, there's Molly you can use, but yea, Signal doesn't like it
Signal's reproducible builds are broken: https://github.com/signalapp/Signal-Android/issues/13565
I'm afraid that's quite outside my field of expertise. I can only report how my experience on XMPP has been as a user, though perhaps @poVoq@slrpnk.net, who hosts it, may be able to weigh in on that. Edit: ah, I see you already have 😄
Though from my untrained eye, it seems that Jabber.ru was compromised due to not enabling a particular feature on their server
"Channel binding" is a feature in XMPP which can detect a MiTM even if the interceptor present a valid certificate. Both the client and the server must support SCRAM PLUS authentication mechanisms for this to work. Unfortunately this was not active on jabber.ru at the time of the attack.
And it seems that hosting it externally on paid hosting service (hetzner and linode) left them particularly vulnerable to this attack, and tgat it could've been mitigated by self hosting the XMPP locally, as well as activating that feature.
https://www.devever.net/~hl/xmpp-incident
This article discusses some mitigations.
You an also use a platform like simplex or the tor routing ones, but they aren't going to offer the features of XMPP. It's better to just not worry about it. This kind of attack is so difficult to defend against that it should be out of the threat model of the vast majority of users.
Back to IRC we go...
It is entirely insecure.
Not when the entirety of your conversations are jargon and in-jokes!
/s
The argument has always been, if when chat rooms are public, anyone can join and start logging the chats, encryption does nothing.
It has the ability to connect over TLS, but that's about it.
I loved using it for its simplicity, except when using all the different flavours of nick registration (Q, NickServ, ...).
There is some nuance here. It would be nice to not have your identity publicly linked to your IP address, which is not always the default on IRC.
That's the main privacy concern I know about I guess.
My friends created a telegram group and invited in a couple of bots that do stupid things like posting images or vulgarities when they detect certain words, or perform actions on request.
I tried to convince them to get rid of the bots but they're in the "we have nothing to hide" camp.
xmpp isn't.
(Ok I get xmpp alone is but every modern client supports the same two encryption methods so judge for yourself)
You can interact with Matrix server through basic curl commands... and I thought the documentation was pretty good. There are plenty of third-party clients.
Sure, E2EE, keys and cross-signing is not trivial, but I don't know where it is.
I didn't imply that you can't strip the protocol down to its bare essentials and still use it, but what's the point of a protocol if everyone is on their own personalized version of it? Version / Feature fragmentation is a massive problem and basically none of the third party clients are up to snuff. Synapse is a massive bowl of lukewarm dog water, and most alternatives to it die in a year because it's impossible to keep up. There's too much shit in the protocol.
What specific version/feature fragmentation and clients are you referring to? As is common now, newer Synapse drops support for older Postgres (for example). Voice and video calls is the only feature that I can think of that is half-assed in Element/ElementX or not implemented in some clients.
Otherwise, Element, Element X, FluffyChat, Fractal, freaking Cinny on Ubuntu Touch (!), and terminal-based gomuks all support basic functionality, DMs, rooms, encryption, and attachments.
I always liked the concept of Matrix, and still actively use it, but there's some serious jank. Synapse is generally bloated and not fun to run an instance, Dendrite is perpetually in Beta, and the clients themselves range from adequate to awful. The default Element client on Android is so broken for me that I'm forced to use Element X, because I can't even log in with Element.
It's disappointing, but there's a ton of issues that aren't so easy to resolve. New Vector and the Element Foundation are basically two separate entities that have some kind of hard split between them, neither of which seems to have the money necessary to support comprehensive development. The protocol is said to be bloated and overtly complex, and trying to develop a client or a server implementation is something of a nightmare.
I want to see Matrix succeed, I think a lot of people see the potential of what it could be. I'm not sure it'll ever get there.
I always liked the concept of Matrix, and still actively use it, but there’s some serious jank.
I use Element as well as Beeper, which is at its core an Element client based on network bridging. I'm a big fan of Matrix, but it isn't as approachable as other messaging services and requires some technical know-how to use effectively.
It seems like the Linux of messaging services.
For me Matrix is fine, I can use IRC, Whatsapp and Discord with it. But Element is not my cup of tea, especially with Firefox as it doesn't play any videos other users are sharing. The same videos work fine with Cinny.
I can use IRC
The fact that many Discord and IRC channels (servers?) block Matrix connections has drastically reduced its usefulness for me. When I was running my own Matrix server, I could have gotten around it by using a puppet, but Synapse is such a hog I had to shut it down, and most of the IRC rooms I want to use don't allow Matrix proxies.
The IRC (Biboumi) and Discord bridges (slidge.im) for XMPP work still fine and running your own server is super lightweight.
running your own server is super lightweight.
Not IME. Are you running Synapse? Gigabytes of disk usage and memory leaks requiring restarts.
I am talking about xmpp servers 🤷
They're taking about switching to Jabber/XMPP, which is what those two bridges are for, and they're saying XMPP servers are lightweight.
It's a bit confusing in context, I'll admit.
I've been running the same matrix instance since ubuntu 18.04lts, just upgraded the virtual machine along the ride, so that has to be +6 years it's been running 24/7.
I have not once rebooted my server due to performance reasons (like a mem leak). And like last 4 years I've ran the instance virtualized on a hp thin client, lately on a hp t640.
While I understand the criticism towards synapse being a complex and slow, and element being slow-ish, I don't feel justified saying synapse would need any restarts in general. At least I have never restarted it in 6+ years and my instance has been working without those required restarts.
Yeah, I miss the irc, too. I still use it via my matrix instance.
I've never had to reboot the server; I had to restart Synapse because if Memory leaks.
Are you using any bridges?
Anyway, it got too expensive to run my own, so I went back to Matrix.org. Now I'm mostly back on IRC except for a couple of rooms. IRC stinks, but Matrix has been nothing but a decade of pain.
From an outsiders perspective, element has never worked for me and never been stable enough to get anywhere close to discord. Joining servers is buggy AF and Element X is severely hobbied on mobile.
I've been refusing to use discord for about 6-8 months and am often invites to join various discords by IRL friends and online communities. I wish Matrix / Element was a viable alternative but I've never been able to get it working for anythung other than DMs, and I'm already happy with Signal for that honestly.
As a non developer I want to be sensitive to the amount of work involves, and the number of cooks in the kitchen, but the fact that we don't have a FOSS- federated slack / discord killer app is leaving so much interaction on the table.
I've heard of Revolt but it doesn't seem to be there with encryption
XMPP is still an option
That is what the author said they switch to, but TBH XMPP also has issues with MFA and messages frequently not being decrypted (using OMEMO) and 'unencrypted metadata'.
I wouldn't say that it works better than Matrix, it just has some different strengths and weaknesses.
We really need to stop abandoning existing foss projects and thinking a whole new thing needs to be invented. Free and open-source software is not a product, it doesn't abide by the same rules and relationships that proprietary tech does.
It's more organic. It's also a commons that we can continue to draw on, and reshape. If I recall correctly, there were something like three different vector graphic editors from the same codebase before Inkscape managed to be the one that gained traction.
Matrix isn't perfect, but abandoning it just to reinvent it all over again just because some people really need a thing that works like Discord, even though Discord is absolute hot garbage; is just going to re-create all the same problems. Matrix today is better than it was two years ago. And Matrix in a year will be better from now.
I agree with you, my main issue with Matrix is that it is a pain to self-host at the moment.
Isn't everything a pain to selfhost?
Honestly, setting up things using Docker Compose is generally a question of copying and pasting and editing the file locations.
The moment you need SSL and/or a reverse proxy it becomes a bit more complex, but once you set up a reverse proxy once you can generally expand that to your other applications.
Something like a Synology nas makes it very easy and to some extend even the Truenas apps are kinda easy.
Most things are super easy, like 2-5 minutes of set up and it's running and working.
Most of the stuff I run on my server is just a basic docker-compose.yaml file and it's up and running in a minute or two. Some random examples:
- Immich
- Peertube
- Pinchflat
- Vaultwarden
- Mealie
So, going from Mealie's instructions, having to learn how to work with Docker, whatever underlying server you're working with, and a database system is easy 2-5 minutes?
You need to learn some Docker stuff initially for sure, but the underlying OS can be anything including Windows which is why Docker is nice.
The database for Mealie is part of the app already and is handled automatically, with the SQLite docker-compose file they provide.
https://github.com/spantaleev/matrix-docker-ansible-deploy
Honestly, with this, it is easier than ever. Great documentation !
It's gonna be like 100 years before Matrix and the clients are in a good place at this rate. It only seems to be getting worse right now with more fragmented clients and servers with more and more spam issues, and the performance just keeps getting worse too.
Even their very own Element app is being retired and replaced by Element X which is missing a ton of features.
They still don't have any of the features people coming from Discord/TS/Mumble are expecting like voice chat rooms, push to talk, or streaming to a room. They don't have the features Telegram users are expecting like stickers, threads inside groups, read only channels, and so on..
The vast majority of users have no reason to switch since it's nothing like the apps they are used to. And it's buggy and slow on top of that.
What I don't like about Matrix is that it's most visible homeserver and client implementations feel like they are being developed as a product by New Vector Ltd., not a community project.
New Vector forked the matrix foundation owned projects for synapse, dendrite, and element, and pulled all their devs, changing the license and bringing them under closer control. The foundation repos are now archived, and only the new vector owned ones are being actively developed. They sell an enterprise license for their element server suite that, at least according to their copy, seems more performant, and also offers admin tools that the free version lacks.
If you want to run a public instance that allows registration, you pretty much need some kind of external admin tool for moderation.
It's of course still better than pretty much all proprietary options, but also quite some room for improvement.
Can't agree on Discord being hot garbage, unless you're specifically talking about how monetisation has creeped its way into it.
However, with Vencord I don't have to see any of that shit, while also having a far more functional and feature rich client.
Of course, a FOSS, potentially federated alternative would be greatly preferred, but it must have at least the basic functions of Discord.
A large part of it is the obnoxious monetization and general enshittification and privacy violations, but that's not all. There are a number of usability annoyances. If I've been away from Discord for a little while and try to continue where I left off in a thread on a server, it never properly preserves where I last stopped reading. There are often times when I get notifications but it won't actually take me to the relevant message, and that can even result in situations where the ping just gets lost entirely.
Then there's things inherent in Discord's design and how people use it. It's become a tool that people have decided is a convenient replacement for chats, wikis, and forums - but it's a shittier version of all of those things. Pinned messages are such a tucked away and half-baked feature. The fact that people are using Discord both to organize and discuss projects - as well as using that same space to host documentation or other critical knowledge-bases has made information significantly less accessible. I don't want to join someone's niche club just to "learn more." If I want to read something I would rather just go to a wiki on the actual open web.
Discord is hot garbage ultimately for the same reasons as Facebook. It's trying to be everything to everyone, and dropping a black box on the open web by doing so. It's just another example of people trading convenience for actually using the appropriate tools for the kind of job they're trying to do.
Often, the problem is that projects get to a point where they're happy and the maintainer doesn't want to add any new features. So people then are forced to build a new project to get those features.
top 93 comments