I’m not sure if it is entirely accurate to compare them in this way, as “Matrix” refers to simply the protocol, whereas “Signal” could refer to the applications, server, and protocol. That being said, is there any fundamental difference in how the Matrix ecosystem of federated servers, and independently developed applications compares to that of Signal that would make it less secure, overall, to use?
The most obvious security vulnerability that I can think of is that the person you are communicating with (or, conceivably, oneself, as well) is using an insecure/compromised application that may be leaking information. I would assume that the underlying encryption of the data is rather trustworthy, and the added censorship resistance of federating the servers is a big plus. However, I do wonder if there are any issues with extra metadata generation, or usage tracking that could be seen as an opsec vulnerability for an individual. Signal, somewhat famously, when subpoenaed to hand over data, can only hand over the date that the account was created, and the last time it was used. What would happen if the authorities go after a Matrix user? What information about that user would they be able to gather?
Key points off the top of my head:
Indeed, end-to-end encryption is unable to protect the endpoints. That’s true of both messengers.
Since you brought it up, note that smartphones generally run system-level software that is controlled by the OS maker, meaning that Google or Apple have the ability to monitor those endpoints. Signal’s approach to addressing this is to offer a Google-free build of their app, if you can find it, buried on their web site and with a scary-looking warning against using it. Matrix publishes their apps on F-Droid, so there’s an easy Google-free option. Of course, most of the people using either messenger will have downloaded from the big app stores, so even if your phone and app are Google-free, it’s likely that most of your contacts’ phones are not. I believe Matrix has an advantage here, simply because their Google-free builds are easier to find and keep updated, and are therefore probably in use by more people.
Until now, Matrix federation isn’t great in practice, because most accounts are on the main server Matrix.org. This may (and hopefully will) change in the next years.
In general I agree, but with one caveat: Matrix has two e2e encryption algorithms: OLM and MegOLM. OLM is indeed comparable to Signal’s however it isn’t used by default. MegOLM on the other hand is a severely watered down version that offers much weaker protection compared to Signal’s algorithm (or OMEMO used by XMPP). It’s a trade-off Matrix did to make some things more user-friendly at the expense of message security.
In what way is it watered down and what are the benefits?
Two ways mainly: the private key is no longer device specific but rather account specific and the ratchet required for perfect forward secrecy is not forwarded on every message AFAIK.
The benefits are better scalability in larger group chats and generally less key exchange hassles. But this comes at a significant downgrade in security.
Basically MegOLM is only slightly better than OpenPGP / OTR or similar older generation e2ee systems.
Not to downplay the security of OLM, but if MegOLM is as cryptographically sound as OpenPGP, then that’s already very secure.
As long as my private key is safe, it would be computationally impossible for anyone to decrypt messages intended for me.
Yes, the problem with MegOLM however is that the private key is automatically exchanged between devices using the same account. I think 2-3 years ago there was an exploit allowing malicious home-server admins to add additional devices under their control and thus listen in on what appeared to be e2ee conversations to the user. This specific exploit was fixed, but the principal problems of potentially insecure exchange of private keys remains in MegOLM to this day.
OpenPGP is not very secure, by modern standards.
How so?
If my keys use elliptic curves, you couldn’t possibly brute force it.
Olm is used to secure sending keys to sessions while megolm is used to encrypt messages in rooms