Modern XMPP project discussion - 2021-08-23


  1. Meep

    😚

  2. MattJ

    o/

  3. Testing

    Hey!

  4. MattJ

    Hey, welcome 🙂

  5. MattJ

    Seems like someone posted the project to HN

  6. Testing

    Yep Matt

  7. giggles

    yeah that's where I wandered in from 🙂

  8. mippur72

    Hello

  9. giggles

    well-timed for me; I set up a Prosody server a couple weeks ago just to mess around

  10. Testing

    Great project!

  11. MattJ

    Thanks!

  12. MattJ

    giggles, great to hear that - I'm one of the Prosody team as well 🙂

  13. giggles

    oh cool! I'm a fan, wasn't hard to set up at all

  14. giggles

    it's nice to meet you 🙂

  15. Sam

    oh hi giggles, welcome!

  16. giggles

    👋️

  17. jhackett

    👋

  18. jhackett

    Lovely to see more activity around xmpp, last time I used it a web client like the one on https://chat.modernxmpp.org/ was pretty hard to conceive of. Good job and keep it up 🙂

  19. giggles

    Dino is nice on the Linux desktop, too

  20. giggles

    From what I can see there seems to be some renewed interest in XMPP these days

  21. test

    😬

  22. Doggie20

    🇦🇮

  23. Link Mauve

    jhackett, sounds like that was extremely long ago then, back when I started using XMPP around 2005 there were already web clients such as MUCkl (discontinued since).

  24. rob

    I wandered in from a post on fedi

  25. giggles

    Fedi likes XMPP in my experience

  26. MattJ

    Ah yes, it was randomly posted there a couple of times today as well. Not sure why all the sudden interest, but it's good :)

  27. rob

    Probably someone new came in board and wants to share

  28. rob

    First I'd heard of this MUC though

  29. greg

    Hey all, I just started writing a XMPP server for fun and educational purposes and a friend pointed me at docs.modernxmpp.org . I'm about 2 weeks into understanding XMPP and am happy to provide any feedback or contributions from someone with that perspective. Lemme know if I can help!

  30. MattJ

    greg, I was you in 2008, so yeah... feedback and contributions definitely welcome :)

  31. MattJ

    It's always good to have fresh eyes on stuff

  32. greg

    Anywhere in particular to start? Or read around the site and open PRs/issues for things that might use a little clarification or further explanation?

  33. MattJ

    Most of the docs here are focused on clients at the moment, but are probably a good overview for server devs too for what features to prioritize

  34. MattJ

    But yeah... feel free to ask questions or suggest stuff you feel is missing

  35. giggles

    I'm curious about your opinion on this XEP https://xmpp.org/extensions/xep-0201.html

  36. haael

    Hello folks.

  37. haael

    I only wanted to brag a bit, that I'm developing a commercial app using XMPP as backend, instead of usual REST API.

  38. MattJ

    Hi haael, welcome! Sounds interesting 🙂

  39. MattJ

    giggles: I think the XEP is fine, but threading UIs are very hard to get right. Some people love Slack's threads, but many people hate them. Same applies to other apps that implement message threads. Extend that to a whole ecosystem of software and... you'd better get it right 🙂

  40. giggles

    Are there any servers/clients that actually support the XEP that you know of? Seems more straightforward to support on the server side (because you are so, so very right, about the UI) but I'm curious what support is out there and I haven't yet been able to figure out if the XEP is actually supported by anyone or if it's still basically just a proposal

  41. MattJ

    In short I think threading protocols are easy, threading UIs are hard. I think someone would need to make a candidate implementation. There are some XMPP clients that do threads in one way or another, but none wildly successful that I've seen.

  42. MattJ

    Server support isn't really needed. I know one or two implementations were based on Converse.js, not sure if they were open-source though

  43. giggles

    Oh really, server support isn't needed? So one could theoretically e.g. just use Prosody and focus on writing a custom client?

  44. MattJ

    Yep

  45. giggles

    that's really interesting

  46. MattJ

    Many XEPs just route stuff through the server, and the server doesn't need to understand it

  47. giggles

    that makes a lot of sense actually

  48. greg

    are there any modern xmpp chat clients that can use SCRAM-SHA-256? I'm attempting to test my implementation and it seems libpurple doesn't support it.

  49. greg

    are there any modern xmpp chat clients that can auth with SCRAM-SHA-256? I'm attempting to test my implementation and it seems libpurple doesn't support it.

  50. greg

    in general I don't know what the landscape looks like in terms of auth mechanism support

  51. Link Mauve

    greg, libpurple is pretty obsolete in its XMPP implementation, pretty much anything would be better for testing stuff.

  52. Link Mauve

    I personally use Gajim as a well-updated generic client for my testing.

  53. greg

    gotcha thanks!

  54. Zash

    greg: there will be wider support for SCRAM-SHA-1, since it's older and was mandatory to implement for a long time, plus it's complicated to upgrade the hashes

  55. Holger

    I think Gajim does support SCRAM-SHA-256 indeed. And so does Conversations (Android), for example.

  56. Zash

    Easier for clients tho

  57. Holger

    Yes.

  58. greg

    is there a mechanism support recommendation or best practice? I think I'm gathering DIGEST-MD5 and SCRAM-SHA-1. md5 being considered obsolete but necessary for many clients.

  59. greg

    is there a mechanism support recommendation or best practice? I think I'm gathering DIGEST-MD5 and SCRAM-SHA-1. md5 being considered obsolete but necessary for many clients, sha-1 being considered required?

  60. Zash

    DIGEST-MD5 is dead and buried

  61. Zash

    Don't even think about it!

  62. greg

    word, appreciate that!

  63. Zash

    SCRAM-SHA-1 is fine, attacks on SHA-1 aren't relevant to it AFAIK

  64. MattJ

    Yeah, DIGEST-MD5 is a no-go. SCRAM-SHA-1 is designed differently (the designers having learnt lessons from DIGEST-MD5). A new server should support SCRAM with SHA-1 and SHA-256. Migration between the two is impossible because you need access to the plaintext password.

  65. MattJ

    At some point we need to figure out how to make that easy (e.g. by forcing users to reset their password when an admin wants to upgrade)

  66. Holger

    And once they're done, repeat for SHA-512!

  67. Zash

    I'm just waiting for someone to say that SCRAM is broken and to just use PLAIN

  68. Link Mauve

    moparisthebest was arguing for that the other day. :|

  69. Holger

    Definitely has advantages.

  70. Holger

    All depends on your trade-offs.

  71. raucao

    i wish i could use something not PLAIN with LDAP :/

  72. MattJ

    Works for HTTP :)

  73. MattJ

    *Works for HTTPS :)

  74. raucao

    (in ejabberd)

  75. Zash

    Theoretically it should be possible to tunnel SASL to LDAP. There's an authentication backend that does that with Dovecot, it's pretty nice.

  76. greg

    all great insight much appreciated!

  77. raucao

    Zash: ooh, interesting

  78. Zash

    LDAP libraries that allow that may be harder to come by tho

  79. Zash

    And there may be impedance mismatches, like it is with email, where usernames (in the SASL sense) is often the entire address, while in XMPP it's just the localpart, so it ends up not working in practice without hacks.

  80. dinkles702

    Who let the dogs out?

  81. giggles

    go test ./...

  82. giggles

    ...... wrong box. Sorry everyone.