Interoperability without sacrificing privacy: Matrix and the DMA
matrix.org
matrix.org
At that point, why even re-encrypt? Passing messages from one process to another, or maybe even within the same process probably doesn't require re-encryption. You could even cut out the whole protocol translation and just write a multi-protocol client like pidgin, trilian et al back in the day. Or am I missing something obvious here?
So, in pidgin, you are stuck with pidgin’s UX whether you like it or not in order to access the remote network (unless you use a different multihead client). Whereas with a matrix bridge, running either serverside or clientside, you can then connect to the bridged conversations using any UX you like (of which there are now hundreds of Matrix apps of different flavours). Moreover, each chat’s history gets decentralised across any other Matrix servers whose users are participating in that conversation.
The architecture is more like bitlbee, for those who know it - but using Matrix rather than IRC as the protocol between the client and bitlbee, so the richness of the comms is preserved (rather than flattening everything to IRC).
Realistically I'd run a dedicated bridge on a home server or vps then, but I guess not everyone wants to do that.
But one step at a time I guess :)
Typically a client-side bridge would run on your current device, so if it can't connect to the server, then you're probably out of connectivity anyway so it's not a disaster.
> or that the hypothetical API of that proprietary service must be ready to be accessed from multiple clients at once
I'd expect that the gatekeeper's API would allow access from multiple clients, just as the normal clients would.
> Realistically I'd run a dedicated bridge on a home server or vps then, but I guess not everyone wants to do that.
The problem is that if you run a dedicated bridge to an E2EE messenger like WhatsApp from a VPS, then that VPS becomes a massive attack target. Hence looking for safer places to run it - e.g. buried inside your phone, where if the phone is compromised, you're already toast.
I'm just cynical enough to believe those gatekeepers would totally accidentally make their API as cumbersome to use as possible while still technically meeting the requirements. ;)
> The problem is that if you run a dedicated bridge to an E2EE messenger like WhatsApp from a VPS, then that VPS becomes a massive attack target.
The usual cautionary disclaimers when self-hosting apply. But probably still a less juicy target than the hypothetical bridge provider TFA outlines. Someone offering Whatsapp bridging as a service is quite a nice attack target.
Does P2P Matrix take things a step further, though, potentially allowing people to have zero accounts, and just having a private key file on their device (or synched between multiple devices) and a display name of their choosing?
Isn't that what an "account" ultimately is? You need a way to tell the server – "route all messages to and from me using this identifier". That ID can be a display name, or a phone number (like WhatsApp), or email or whatever else. And the server has to persist that ID on their end and associate it with your current session.
For example, you could update your IP address (for people to contact you at) by sending a signed message to a global DHT, or, for more privacy, put the address of your current rendezvous server in the DHT instead. The rendezvous server would be responsible for forwarding incoming connections to you, which you could refuse based on the public key of the initiator.
If the rendezvous server only stores a lookup between your public key and IP address, perhaps only in memory, for a few hours, before you switch to a different rendezvous server, that doesn't feel like having an "account" on a server.
Another bet could be to let the owner of the identifier (your phone provider, in the instance of a phone number) track what service that identifier points to - like ENUM DNS. But that falls foul of political problems (and risks becoming centralised too).
Federated/decentralised identity is a problem we're actively working on at Matrix, and the DMA will only act to speed up the process, as it's indeed an important piece for this to work well in practice.
Is there a good place to follow this?
I may have misread your intent, but honestly I don't see how "user directory" and "privacy" interoperate. What matrix does is maybe prove that you're talking to someone who has access to the same hardware, if not the same person, when you message the same user.
I don't shill for matrix, but I also try to use mastodon to have regular human conversations and I couldn't tell you what service everyone is on...
Decentralized identities are messy. They only work in cryptobros' dreams. You can't rely on an average person to store a private key. In real life, account recovery is a hard requirement for an identity system, as is the ability to revoke access for someone who has broken into an account.
Out of the suggested options the client-side bridge sounds best to me! It wouldn’t necessarily be always on when used on mobile devices (background apps tend to get shut down) but at least it could sync once you open the app.
And a home computer bridge that’s mainly on (or VPS/lambda for more advanced users) would be great too and in sync most of the time.
Exciting stuff for Matrix.
Regarding moderation and spam: I think a company with €7.5B yearly revenue should be reasonable able to build something such that moderation and spam prevention are also possible with federation. Google already does a pretty decent jobs in spam filtering with e-Mails, I guess they should be able to do something similar with IM.
> We could run the bridge somewhere relatively safe - e.g. the user’s client
What is the advantage of having a server-side bridge then? Just do everything client-side.