The cryptography itself didn't come out unscathed, but the basic nuts and bolts semantics of the system itself had devastating vulnerabilities.
The response (or lack thereof) to this research is pretty fascinating!
What about: https://matrix.org/blog/2022/09/28/upgrade-now-to-address-en...
> "Homeserver Control of Room Membership" – A malicious homeserver can fake invites on behalf of its users to invite malicious users into their conversations, or add malicious devices into its users accounts. However, when this happens, we clearly warn the user: if you have verified the users you are talking to, the room and user will be shown with a big red cross to mark if malicious devices have been added. Similarly, if an unexpected user is invited to a conversation, all users can clearly see and take evasive action. Therefore we consider this a low severity issue. That said, this behaviour can be improved, and we've started work on switching our trust model to trust-on-first-use (so that new untrusted devices are proactively excluded from conversations, even if you haven't explicitly verified their owner) - and we're also looking to add cryptographic signatures to membership events in E2EE rooms to stop impersonated invites. These fixes will land over the coming months.
Anyways, my point is just: this is a good illustration of the phenomenon described by the root comment.
First, they have not said they will add alerts, they say that such alerts are already there. Second, they did admit that the current situation can be improved, and have said they will add cryptographic signatures to membership events in the future. To my reading that would be precisely what the researchers were missing, aka if new folks show up, even with support of the homeserver, they still need to present a signed invite from one of the group members to be given the keys.
If Signal server is evil and starts to MITM a communication between two parties, replacing each of the parties keys with their own keys and decrypting in the middle, both of the participants will also just get warning “the other party changed their key”, right?
That was the gist of the issue of yesteryear with Guardian and WhatsApp, right?
How is this in practice different? User see a warning and ignores it (as people change their phones thus their keys all the time).
I’m not trying to be snarky but actually asking a question
> In environments where cross-signing and verification are enabled, adding a new unverified user adds a warning to the room to indicate that unverified devices are present. However, it is possible for a homeserver to add a verified user to rooms without changing the security properties of the room. This allows a colluding homeserver and verified user to eavesdrop on rooms not intended for them. In other words, the warning regarding unverified devices is independent to whether the device is intended to participate in the specific room. Users may, of course, simply ignore warnings.
If I'm not mistaken this is not just a "warning" - Matrix clients will actively refuse to encrypt messages to the new recipient until they are verified in this situation.
The last time I seriously looked at Matrix (2019-2020ish), cross-signing and verification were essentially required for real security in chats. It sounds to me like (a) the worst case scenario vis-à-vis the "rogue server" is that things regress back to where they were in 2019, and (b) there's an issue where if everyone in a room has a rogue user validated, a rogue server can add the rogue user to a room that the user is not supposed to be invited to, without triggering a warning. This latter issue strikes me as something that should definitely be fixed (if it hasn't already been), but far from fatal for smaller chats.
"They killed it. It's dead." strikes me as an enormous reach.
> They killed it. It's dead.
…is ridiculous hyperbole. This is a debate around the “system warns you when something bad happens” versus “system stops something bad happening in the first place”. It’s like saying SSL is “killed dead” because browsers let you connect to sites with bad certs albeit with a big red warning.
And much as this was addressed for SSL with HSTS etc, we’re working on the fix for Matrix. For what it’s worth, the current approach is https://github.com/matrix-org/matrix-spec-proposals/blob/fay...
Screaming about Matrix being “killed dead” helps no-one, and risks completely sabotaging our efforts to improve open communication, just in order to score a rhetorical point.
Nobody has ever disputed that it's possible for the Matrix team to build a secure messaging protocol. I'm sure you can. But: have you yet?
By way of example: TLS 1.0 is dead as a doornail, too. If you like, we can use a different word to capture the equivalence class here. TLS 1.0 and the current Matrix protocol: "ex-parrots".
This whole situation is wild. What we're discussing on this thread is the single most impactful set of cryptographic vulnerability findings against any secure messaging system ever. And this thread is, I think, one of a very few places on the whole Internet where there's even a conversation about it. Everybody else is just rolling along as if nothing happened.
If I sound mean about this, I don't mean to be. But, fair warning, I'm in full-on "wake up, sheeple" mode over this.
People have been dismissing security research with this "not very practical" epithet for as long as I've been working. Literally, at least since I got into the field.
https://web.archive.org/web/20000818162612/http://www.entera...
But let's say I'm playing red team, and I get root on the box where my target is running their Matrix server. Practically, what can I do to extract information without setting off giant red flags? From my read of the paper the answer is "not much", since a bunch of big warnings popping up would probably alert the users that something sketchy is happening.
You can decrypt all the messages. I sometimes feel like I must have read a different paper than everybody else.
> While the Matrix specification does not require a mitigation of this behaviour, when a user is added to a room, Element will display this as an event in the timeline. Thus, to users of Element this is detectable.
Virtually everyone uses Element, so it's blatantly tamper-evident. That makes it a really bad option if red-teaming.
(Here it's worth noting that this is the behavior post-fix for this paper. Read the paper! It was so much worse.)
With III-B, they can add an unverified device, but that causes a warning for every other room participant. Again, tamper evident.
Furthermore, you need to distinguish between what Element happened to do (which users may or may not watch out for) and what the standard demanded.
Note that at this point, as far as I understand it, there is no dispute between us - the authors of this research - and the Matrix developers about that leaving group membership under the control of the server was a bad and avoidable design decision. The Matrix developers are working on a spec change/fix which resolves this, linked elsewhere in this thread.
It really would have been better to separate the legit vulns from the group membership question, as mixing them up just confuses people, as per this whole thread.
So what’s the scenario here? You have an encrypted group chat with so many members that some rando nefarious user can slip in? And then the big deal is that the E2E breaks down, so the home server that they probably own can read the messages that they are already reading?
Awfully weak stuff for a cypherpunk-ish protocol. The CCC crowd that rabidly hates anything centralised, thinks it’s insecure and corporate, are probably having a existential crisis. Matrix is doing a terrible job fixing the issues, worse they seem to downplaying and denying too. And the Tech press seem to dismiss the issue believing Matrixs’ claims there isn’t an issue.
We are not denying these issues - we just dare to disagree that they are as catastrophic as some suggest.
In an end-to-end encrypted setting a malicious server is precisely the adversary you defend against, not an edge case.
To me, it looks pretty good on the surface, but I don’t know if I can convince myself that it’s secure. I’m not even sure if I could write down a precise definition of security here, without banging my head on it for a while.