Modern XMPP project discussion - 2021-04-13


  1. littleme

    VoIP is not stable, mobile client is not stable. compare to xmpp long history, matrix is still on working at stability

  2. littleme

    im using matrix as team tools, it work well with text message, but it fail at VoIP sometime,(nat maybe cause some issue, but we are using vpn(wireguard) and share same Net layer ipv6(native support), and sometime VoIP work).

  3. jakob@schuerz.at

    hello according to https://www.privacy-handbuch.de/handbuch_62.htm is xmpp not the privacys best solution... meta-data, group-members and so on are stored unencrypted on the server and can be fetched by almos anybody... this is NOT GOOD.

  4. jakob@schuerz.at

    is there a possibility to change this by a XEP?

  5. MattJ

    Hi jakob@schuerz.at

  6. MattJ

    I haven't read the article (my German is not good), but I can guess at what it is saying

  7. MattJ

    It misses the point of a federated architecture. Does it propose something that is better than XMPP at the problems it identifies?

  8. MattJ

    OK, it looks like it prefers Signal and Threema 🙂

  9. Zash

    Is it by chance a translation of InfoSec-Handbook?

  10. MattJ

    Very likely (the authors of the Admin-in-the-Middle article)

  11. pep.

    heh

  12. MattJ

    Both Signal and Threema are centralized platforms controlled by a single organization. Despite what their advertising, both have access to info such as your IP address (and in Signal's case, your phone number)

  13. MattJ

    They are secure if you trust those organizations. XMPP is mostly the same, if you trust your server operator. The point of XMPP is that you can choose your server operator - there are many

  14. mathieui

    that page is not wrong, but I don’t see how xmpp is any different than the other messengers listed (except Tox)

  15. pep.

    That's the thing, pointing at XMPP doing "bad" things while ignoring issues with other networks

  16. mathieui

    I can accept that signal is slightly better in that regard, but having the social graph use the phonebook is a big no

  17. mathieui

    (but I would really like a server that essentially allows for e.g. the roster to be stored encrypted, with a key derived somewhen during auth, although there are many quirks to work out)

  18. Zash

    Do I need to complete that project?

  19. pep.

    (Zash, yes, plz)

  20. jakob@schuerz.at

    no. this is only a synopsis for the different solutions.

  21. jakob@schuerz.at

    it lists the good and the bad points for all the messengers.

  22. jakob@schuerz.at

    and unencrypted metadata, group-members and so on are not very good for privacy in xmpp.

  23. jakob@schuerz.at

    signal is better in this point, bad very bad in other points...

  24. jakob@schuerz.at

    and closing the eyes on xmpp-problems because signal is bäh bad centralized is not my intention. i ask for the possibility to change xmpp with a xep to store metadata, groupmemberships and so on encrypted on the server.

  25. jakob@schuerz.at

    i'm not able to write a xep... i'm only a user of xmpp.

  26. jakob@schuerz.at

    (And a server-admin)

  27. jakob@schuerz.at

    do not point to the dust in the eye of other... resolve the own problems, and make xmpp excellent. ;-)

  28. pep.

    I'd like to see solutions to fix this. In the meantime saying that Signal doesn't have this issue is a lie. Even if they did multicast or the like for groupchats, they'd still be able to correlate pretty easily

  29. pep.

    Fixing this is not so easy, be it XMPP or else

  30. mathieui

    The issue is that in the end, unless going the onion or full p2p route, a malicious server admin will always have access to metadata, that’s a fact. The levels of metadata can be varied, and of course it is better if any at-rest data is encrypted, but that’s not the end of the world either if it isn’t

  31. mathieui

    (and living as if a government agency was out to get you on unlimited budget is not healthy, even though it can save your life if justified)

  32. Ge0rG

    The onion route doesn't protect from the government that's got capture points everywhere

  33. Ge0rG

    XMPP is not the right protocol to implement encrypted meta data

  34. pep.

    Well I disagree with this

  35. pep.

    There's a difference between "a state actor can" and "a state actor does"

  36. pep.

    I disagree with saying "We're doomed anyway so let's just give up"

  37. mathieui

    That is not my point, I am saying that acting as if it was a critical issue that needs immediate work by everybody is not helping anyone

  38. mathieui

    Yes I believe it is an issue, and I believe the situation can be improved, and should be

  39. mathieui

    But this takes time, and work

  40. Ge0rG

    What mathieui said

  41. pep.

    I was replying to Ge0rG really

  42. MattJ

    I'm of the opinion that there isn't very much we can actually do

  43. MattJ

    Most things we can add to take XMPP in that direction also have downsides (sometimes severe) for the general or other specific use-cases

  44. pep.

    I'm sorry you think this. tbh I'd rather end it here than give up on this :/

  45. MattJ

    If even Signal can barely manage it, what concrete things do you think we can do?

  46. MattJ

    For example, Signal's "sealed sender" stuff is great marketing, but the reality is that they run the service that provides the sender seal, they just don't talk about that

  47. MattJ

    But then they can run around pretending they don't have metadata, when they have easy access to it (either intentional, or via a compromise)

  48. MattJ

    Do we want to spend effort implementing stuff like that in XMPP?

  49. pep.

    What riseup does regarding encrypted mailboxes (email) is actually something we can do

  50. MattJ

    or do we want to take it more into the domain of Jami and Briar, trust no servers?

  51. pep.

    It's not for MUC but it's a start in that direction

  52. pep.

    P2P doesn't fit every single use-case either

  53. mathieui

    Signal privacy-protecting methods is mostly "trust us we have several servers for all services and do not correlate anything"

  54. pep.

    It's even worse for metadata

  55. MattJ

    Decentralize all the things, don't use untrusted nodes. Or trust nobody and pay the price (is it Briar that doesn't run on iOS at all?)

  56. MattJ

    And to be clear, I didn't say there is nothing we can do, but I said there is not much we can do

  57. MattJ

    We can encrypt some stuff at rest on the server side, that will come at a cost of course, but I'd like to see some experimentation there

  58. MattJ

    But this is also a kind of fake solution, any compromise just has to wait for you to log in

  59. MattJ

    and these days everyone is logged in most of the time

  60. MattJ

    So do you trust your server or don't you?

  61. mathieui

    MattJ, well, at least that means "forgotten IM account on some srver that just got breached" does not leak info about you

  62. MattJ

    Yes, it has some benefits

  63. mathieui

    and "servers got seized by law enforcement"

  64. mathieui

    but yes, it does not help the compromized scenario

  65. pep.

    MattJ, sure once you login you lose the guarantees. But at least you're sure that the feds getting your server's drives won't allow them to get your data

  66. MattJ

    Isn't that what full disk encryption is for?

  67. pep.

    Well even if the admins gave up their passwords

  68. pep.

    They wouldn't have access to your data

  69. mathieui

    admins generally are required to comply

  70. MattJ

    Most compromises of communication servers that I've seen involved compromising a running host

  71. MattJ

    Rather than grabbing drives

  72. pep.

    That's yet another scenario

  73. MattJ

    I think that's rather last decade

  74. mathieui

    and afaik (e.g. in france) it would be illegal to force admins to install malware to spy on users, while they can ask for at-rest data

  75. pep.

    Surely if you want to protect against everything.. we'll never get there

  76. MattJ

    But people *do* want to protect against everything :)

  77. mathieui

    Yes, and that is why people with "everything" in their threat model are a pain

  78. pep.

    Yeah well people got to stop dreaming

  79. pep.

    I'm not going to stop fighting but I'm no lunatic (I hope)

  80. MattJ

    I'm all for concrete and well-discussed improvements (or even better, real experiments/implementations)

  81. zapb

    Wouldn't it be easyâ„¢ to store roster names encrypted on the server as a start?

  82. Zash

    No

  83. mathieui

    you still need to establish encryption schemes and whatnot

  84. zapb

    Of course you need, but what else?

  85. MattJ

    Heh

  86. Zash

    It might be possible to have encrypted rosters, but certain things would not work.

  87. MattJ

    "Of course you need to do this hard thing, but apart from that, what else?" :)

  88. zapb

    > No Thanks for the detailed answer ;)

  89. MattJ

    To encrypt you need a key, which comes from where?

  90. mathieui

    I believe Zash has done quite a bit of work on that part so I will trust the "it is not easy"

  91. zapb

    Okay, but what are the major blocker?

  92. zapb

    MattJ: derive it from the login?

  93. mathieui

    what is the key, how is it generated, how is it stored, how do we make it generic with all the different auth methods supported by the server

  94. Zash

    I did this. Crypto key derived from password in way that is only possible during login.

  95. MattJ

    Which requires specific login mechanisms, and ensures you can never change them

  96. mathieui

    what do we do with the use cases requiring access to the roster

  97. zapb

    > Which requires specific login mechanisms, and ensures you can never change them KEK? :D

  98. Zash

    Keys encrypting keys encrypting keys encrypting keys ad absurdum yes

  99. zapb

    😀

  100. mathieui

    but you still need an in-band mechanism to add a different meta-key by confirming the first one or something

  101. zapb

    Not saying its easy but it sounds like the easiest of all metadata stored on the server, no?

  102. zapb

    Not saying it's easy but it sounds like the easiest of all metadata stored on the server, no?

  103. MattJ

    So we can encrypt the roster and nobody will know who your contacts are. But the message archive is okay...? :)

  104. mathieui

    MattJ, you need a public/private key scheme!

  105. MattJ

    Joy of joys

  106. zapb

    MattJ: sure you still have MAM, hopefully with e2ee

  107. mathieui

    zapb, that does not protect any metadata

  108. MattJ

    But the JIDs of everyone you communicated with are listed there

  109. zapb

    Not saying it solves all problems / removes all metadata

  110. MattJ

    Which is probably way more interesting than who is on your roster

  111. Zash

    Archive can be appended to using asymetric encryption. Source: Built a PoC.

  112. mathieui

    realistically, doing server-side metadata encryption with no explicit client support is a pretty but complicated crutch, imo

  113. Zash

    You'd have to go through all the data stored and consider whether what read/write requirements there are.

  114. zapb

    Nobody is talking about an approach without client support or what do you mean?

  115. MattJ

    I think many people would even be fine with some client support

  116. MattJ

    Finally gives people a reason to stop supporting Pidgin from 2006

  117. Zash

    Get Conversations to implement it and everyone will follow.

  118. mathieui

    zapb, I believe Zash’s experiments were without client support, doing it with client support will necessarily fragment the ecosystem further

  119. zapb

    mathieui: doesn't this feature only affect your clients?

  120. mathieui

    zapb, it means once you use a client supporting it you are effectively locked in and cannot go back to a client with no support

  121. mathieui

    it is… bad

  122. Zash

    Just like with OMEMO, sorta.

  123. mathieui

    but worse

  124. MattJ

    Nah, not worse

  125. MattJ

    You can always extract your data and start again

  126. MattJ

    OMEMO... that state is in everyone else's clients

  127. zapb

    > zapb, it means once you use a client supporting it you are effectively locked in and cannot go back to a client with no support > it is… bad At the moment it's not possible to switch clients at all without losing all data

  128. mathieui

    is it? whaty

  129. mathieui

    is it? what

  130. zapb

    And no client dev really cares ;)

  131. zapb

    Talking about history, OMEMO keys etc.

  132. pep.

    cares about?

  133. pep.

    Because I can tell you many client devs have had s@#t for not supporting C features (among others)

  134. zapb

    Make it possible to move data from one client to another

  135. zapb

    Making it possible to move data from one client to another