• Lynda@lemmy.ml
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    3 years ago

    The better question is whether there’s something better than XMPP?

    • southerntofu@lemmy.ml
      link
      fedilink
      arrow-up
      7
      arrow-down
      1
      ·
      3 years ago

      Depends on your usecase.

      If you want strong censorship-resilience, Matrix is a better alternative. If you want a clear privacy/security model (with some caveats), XMPP is the best we have so far.

      • Kinetix
        link
        fedilink
        arrow-up
        4
        ·
        3 years ago

        How is the privacy/security model better with XMPP?

        • poVoq@lemmy.mlOP
          link
          fedilink
          arrow-up
          7
          ·
          edit-2
          3 years ago

          XMPP is a simpler system that works on a “need to know” basis, meaning that servers and clients more or less only get the (meta) data that they need to function but not more. A group-chat for example exists only on one server and chat-history is only shared on request and usually is deleted quite quickly (that depends on the server settings though).

          Matrix on the other hand works on a “replicate everything” basis (to be more resilient to censorship and other network disruptions). For that it runs a highly complicated distributed database where all (meta) data is automatically shared with all participating servers and is stored indefinitely. This has its upsides and downsides, but from a privacy/security perspective this is a strict negative.

          • Kinetix
            link
            fedilink
            arrow-up
            4
            ·
            edit-2
            3 years ago

            I think your information on what matrix does with metadata is outdated or over-encompassing, or both. Is your knowledge on matrix up to date? (I’m asking honestly because I immediately went searching for what the current situation with matrix is, and most of what I find with regard to this was heavily worked on in 2019 and 2020 - maybe it’s still being worked on, but it doesn’t seem to be talked about much any longer).

            It sounds like, for all practical purposes, Matrix should be plenty private. If one needs extreme levels of privacy, I don’t think you want to join an untrusted server, and definitely not join group chats. One couldn’t pretend to be cautious and do those things anyway.

            On, on a complete side note - (and here I am doing an edit) - were you aware that every time you edit and submit, you may be sending out notification emails? I got a new email notification for each edit you made on yours.

            • poVoq@lemmy.mlOP
              link
              fedilink
              arrow-up
              4
              arrow-down
              1
              ·
              3 years ago

              Ah sorry for the notification spam. I did indeed edit a few times to make the message more clear.

              I think my info on Matrix is pretty up to date. Yes message “pruning” in Matrix was indeed improved a bit in recent years, but the fundamental difference in system-architecture remains.

              I can’t say that I am not biased in favor of XMPP of course, but I think my original message is pretty neutral and based on facts. From a security/privacy perspective not replicating data at all is always better, even when additional safety precautions like e2ee (that do exists in Matrix) mitigate the impact to some extend.

              • Kinetix
                link
                fedilink
                arrow-up
                3
                ·
                3 years ago

                No worries - I just wanted to let you know that the notifications were occurring. They probably shouldn’t and I will be checking on Lemmy issues about it. (Just filed #1925)

                Heh, I used to be biased in favour of XMPP until I did the full switch. ;-)

          • southerntofu@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            3 years ago

            A group-chat for example exists only on one server and chat-history is only shared on request

            That is technically true, but all servers from which users connect to the chatroom effectively get their hands on that traffic anyway to deliver it to the user (and could log it), which why end-to-end encryption is encouraged in chatrooms. [1]

            It’s a tradeoff of XMPP that clients usually only interact with their own server (this is also true for Matrix). , This is done for scalability, reliability, and privacy. This way remote servers cannot for example record your IP address.

            However, it’s very possible to negociate out-of-band access to some resources from your XMPP account (where leaks could occur, eg. for downloading on the web an image another user uploaded in a groupchat). For example, XEP-0070: Verifying HTTP Requests via XMPP defines a protocol for authenticating Jabber/XMPP users on the web.

            [1] OMEMO encryption works rather reliably on “modern” clients in private messages and private groupchats, but is not yet supported in public chatrooms because encryption for so many recipients is resource-expensive and key verification in a public setting is a nightmare (do you really trust all those keys if anyone can join?) so there’s arguably little benefit in that.

            • poVoq@lemmy.mlOP
              link
              fedilink
              arrow-up
              2
              ·
              3 years ago

              That is technically true, but all servers from which users connect to the chatroom effectively get their hands on that traffic anyway to deliver it to the user (and could log it)

              Yes, but only the data it needs to know to deliver what the client requests, not the full historic room state as in the case of Matrix.

        • southerntofu@lemmy.ml
          link
          fedilink
          arrow-up
          3
          ·
          3 years ago

          I don’t think it’s better, but it’s certainly different. For example, the XMPP ecosystem is mostly not based on web technologies, which makes incentives to build lighter clients: they have less attack surface, and arguably less unexpected fingerprint/leaks than a modern web browser engine.

          Still, there’s plenty of good and bad aspects with both. I’d say the reference implementation of Matrix (element) is pretty solid security-wise (good crypto, lots of eyes) compared to more amateur-ish XMPP clients, but on the other hand XMPP clients tend to play well with onion routing, while Element as a web client is quasi-unusable in the Tor Browser (lots of UI actions appear to be latency-sensitive) and using another javascript-enabled browser (than the Tor Browser) over tor defeats the whole purpose thanks to WebRTC leaks (and others).

          I’d recommend you take a look at this FAQ. If something is not clear or missing, just ping us and we’ll add relevant information :)

      • Lynda@lemmy.ml
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        3 years ago

        How easy would it be for a government (USA), to block or attack Matrix/XMPP servers, or place the people/admins using them under surveillance? How resistant is Matrix/XMPP in China, Iran, and other places? Is there something better?

        • southerntofu@lemmy.ml
          link
          fedilink
          arrow-up
          5
          ·
          3 years ago

          From the FAQ i linked:

          While it is highly unlikely that a government would block the whole XMPP protocol (which is used for many things), it is entirely possible that they block specific servers, or block client connections to foreign servers, as is the case with many services going through China’s Great Firewall for instance. (…) In the most extreme cases, it is possible for a network operator (or government order) to block the Jabber/XMPP network entirely. In this case, using censorship-circumvention mechanisms like Tor can help you stay in touch. However, please be aware that circumventing government censorship may be a criminal offense where you reside, and you may end up having trouble with your local authorities if they find out.

          Both XMPP and Matrix can be reached via HTTPS so it becomes complicated for complete eradication. If state-level censorship is a concern of yours, Matrix is certainly more suited as a protocol as it has complex algorithms to resolve global state (consensus) in case some servers can’t talk to one another.

          Some other technologies like Briar are even more suited for this threat model, as it assumes all networks are compromised and/or unreachable. That is, it relies on gossip over lan-friendly medium (local wifi, USB keys…) with optional use of Tor onion services for reaching through the Internet without exposing so much metadata (beyond the fact you’re using tor).

          • Lynda@lemmy.ml
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            3 years ago

            The gossip protocol is interesting. Have also been interested in swarm, Whisper, devP2P, libp2p.

        • poVoq@lemmy.mlOP
          link
          fedilink
          arrow-up
          4
          ·
          3 years ago

          In Matrix client to server connections are just normal web-traffic, so that would require some deep packet inspection to block (pretty difficult but not impossible), however server federation uses a custom port and could probably blocked more easily.

          XMPP by default uses custom ports and is quite easy to block by firewalls / routers, however it is possible to also use it via a normal web connection to circumvent that. That said, a lot of professional services use XMPP internally (emergency communication services, smart-meters etc.) and thus wide-spread blocking would be pretty disruptive for a lot of things. It is also possible to connect to and run a XMPP server entirely through TOR, which is pretty hard to block.

          Neither is really great in that regard, but they are still harder to block then centralized commercial services (although Telegram tries to be “smart” by hosting their stuff on AWS etc, which also makes it hard to block as other stuff would be effected). Using XMPP through TOR should be relatively resilient though, but note that in some countries using TOR and other such services is illegal by itself AFAIK.

          • Lynda@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            3 years ago

            I like that a XMPP node can be hidden on the Tor network, however I have some concerns on the safety of connecting to Tor, even through bridges (if a government can setup a bridge and then monitor connections).

            I like that XMPP servers can talk to each other.