XMPP Service Operators - 2026-02-25


  1. kmq

    Hi all, given that the .im is somewhat popular with people like us, it's a bit annoying that the registry does not provide DNSSEC. Did anyone else here run into this problem as well, and can share some experience other than "it just not possible" ? I found this from 10 years ago https://op-co.de/blog/posts/yax_im_dnssec is my assessment correct that nothing changed since then ?

  2. Telepath admin

    > Hi all, given that the .im is somewhat popular with people like us, it's a bit annoying that the registry does not provide DNSSEC. > Did anyone else here run into this problem as well, and can share some experience other than "it just not possible" ? > I found this from 10 years ago https://op-co.de/blog/posts/yax_im_dnssec is my assessment correct that nothing changed since then ? Yes, my server is on a .im domain so it's quite annoying. I partially mitigated this by pointing my SRV record to another domain with DNSSEC.

  3. Telepath admin

    The .im registry simply doesn't bother with implementing DNSSEC or many other new registry features, I've contacted nic.im and the company that operates it a couple of times already

  4. kmq

    Yeah when I was trying to figure it out I found their amzingly quaint website :)

  5. kmq

    By "partial mitigation" do you mean that the lookup against the records returned from SRV are signed, but after that you're still not able to do DANE ?

  6. kmq

    By "partial mitigation" do you mean that the lookup against the records returned from SRV are signed, but after that you're still not able to do DANE ?

  7. Telepath admin

    I believe servers look for the TLSA records at the SRV target

  8. Telepath admin

    So if the target is xmpp.example.com, it should be looking at `_port._tcp.xmpp.example.com`

  9. Telepath admin

    So I can have working DANE, I just haven't added the TLSA records yet

  10. moparisthebest

    Telepath admin: no that won't help in any way, the .im records returned can't be trusted so dane can't be done

  11. Telepath admin

    the .im only returns the SRV records, the important stuff like TLSA records are on the signed domain

    👆 1
  12. Telepath admin

    but the SRV record cannot be trusted indeed

  13. Telepath admin

    still better than nothing, I guess

  14. moparisthebest

    > the .im only returns the SRV records, the important stuff like TLSA records are on the signed domain yes but nothing will fetch and use them because that would be a security vuln

  15. icebound.dev

    That mitigation afaik is only signing the authoritative records, its still possible to spoof the TLD lookup and serve fake records.

  16. icebound.dev

    haven't really read it all, but I believe it was what it was getting at?

  17. moparisthebest

    there's no mitigation, if you pick .im you can do nothing with DNSSEC/DANE/TLSA

  18. stratself

    > I believe servers look for the TLSA records at the SRV target servers look for the TLSA at the JID domain since thats the certs they are to verify against kinda like how SRV targets are untrusted and is only used to guide IP/port resolution

  19. stratself

    > I believe servers look for the TLSA records at the SRV target servers look for the TLSA at the JID domain, not the SRV target, since thats the domain certs they are trying to verify against similarly SRV targets are untrusted and is only used to guide IP/port resolution

  20. stratself

    I dare say SRVs should also be DNSSEC-checked too but i don't think any software does that

  21. moparisthebest

    not exactly, TLSA is fetched for SRV targets but only if all domains involved are signed with dnssec

  22. stratself

    huh, why would TLSA be fetched for SRV targets? what benefit does that give if said target hostname isn't even used in establishing the connection?

  23. Telepath admin

    > servers look for the TLSA at the JID domain, not the SRV target, since thats the domain certs they are trying to verify against > > similarly SRV targets are untrusted and is only used to guide IP/port resolution Prosody docs suggest otherwise

  24. Telepath admin

    there is also RFC 7673

  25. moparisthebest

    the target hostname is used if the srv records are signed with dnssec

  26. moparisthebest

    I like this DNSSEC explanation best https://wiki.xmpp.org/web/The_Knight

  27. icebound.dev

    > there's no mitigation, if you pick .im you can do nothing with DNSSEC/DANE/TLSA moparisthebest, the article above...

  28. icebound.dev

    ah I misunderstood,

  29. icebound.dev

    I have read the article more, still far from perfect solution

  30. kmq

    > the target hostname is used if the srv records are signed with dnssec did I catch this correctly: "target hostname" here refers *NOT* to the hostname in the jid (i.e. test@example.com) *but* to the hostname returned *inside* the SRV record response ? And "used" means that it's the name that is compared against the one that the server sends in it's certificate ? I.e. the verification logic is different between a full-DNSSEC and non-DNSSEC scenario ?

  31. moparisthebest

    kmq: correct

  32. kmq

    s2s only or c2s as well ? Because that would mean it's possible to host an xmpp service at xmpp.customer234.myhostingservice.example.com for a user myname@vanitydomain.com without having to share certificates for vanitydomain.com no ? (if all DNSSEC)

  33. moparisthebest

    if the JID is bob@a.com and a.com returns dnssec signed srv pointing to b.com then the cert is trusted if it's valid for *either* a.com or b.com, both c2s and s2s

  34. moparisthebest

    yes exactly

  35. kmq

    what ? that's amazing. This has been bothering me for so long :) time to test it out !

  36. moparisthebest

    the problem you'll run into is most clients and servers today don't do dnssec at all and therefore just won't trust the cert

  37. kmq

    &nbjl#fwd7&

  38. kmq

    .

  39. stratself

    > if the JID is bob@a.com and a.com returns dnssec signed srv pointing to b.com then the cert is trusted if it's valid for *either* a.com or b.com, both c2s and s2s this is how you delegate to another domain name in xmpp-land?

  40. stratself

    are there actually servers that would accept (and serve) b.com certs, while hosting an a.com xmpp service?

  41. stratself

    > are there actually servers that would accept (and serve) b.com certs, while hosting an a.com xmpp service? and even if they exist, then how can I, as a hoster, tell sending clients/servers to *only* accept a.com certs from an IP address derived from a b.com SRV target? The only way I can see is to specifically unsign the SRV RRSET, which is a questionable thing to do

  42. moparisthebest

    why would you want to do that

  43. moparisthebest

    >> if the JID is bob@a.com and a.com returns dnssec signed srv pointing to b.com then the cert is trusted if it's valid for *either* a.com or b.com, both c2s and s2s > > this is how you delegate to another domain name in xmpp-land? It's one of at least 3 ways I know of yes lol

  44. stratself

    > why would you want to do that if my server ingress depends on a CDN/dynamic DNS thingy

  45. stratself

    > why would you want to do that if my server ingress depends on a CDN/dynamic DNS thingy, i'd rather use their domain

  46. moparisthebest

    still not seeing the reason? it just allows more certs doesn't break if the cert is only for a.com

  47. stratself

    but i want the certs to specifically be a.com? so the CDN isn't gonna put their certs + TLSA in?

  48. moparisthebest

    you are saying you delegate to a domain you don't trust? just don't do that

  49. stratself

    >> >> this is how you delegate to another domain name in xmpp-land? > > It's one of at least 3 ways I know of yes lol what are the other ways? this is the only one I know of that doesn't require a cert on a.com, which is interesting

  50. stratself

    > you are saying you delegate to a domain you don't trust? just don't do that i'm saying that if I need to delegate to a domain solely for its IP function, then this approach does not work. Perhaps I can delegate a.com to xmpp.a.com, and CNAME xmpp.a.com to cdn.b.com. Then that _might_ work? But that does look like a workaround more than anything

  51. moparisthebest

    all of them allow for that, the other ways are POSH and https://xmpp.org/extensions/xep-0487.html

  52. moparisthebest

    the concept is called "secure delegation" and exists outside XMPP too

  53. moparisthebest

    >> you are saying you delegate to a domain you don't trust? just don't do that > > i'm saying that if I need to delegate to a domain solely for its IP function, then this approach does not work. > > Perhaps I can delegate a.com to xmpp.a.com, and CNAME xmpp.a.com to cdn.b.com. Then that _might_ work? But that does look like a workaround more than anything if the CNAMEs are all dnssec signed then secure delegation allows this cert to be valid for cdn.b.com too

  54. moparisthebest

    you shouldn't securely delegate to domains you don't trust 🤷

  55. stratself

    >> >> i'm saying that if I need to delegate to a domain solely for its IP function, then this approach does not work. >> >> Perhaps I can delegate a.com to xmpp.a.com, and CNAME xmpp.a.com to cdn.b.com. Then that _might_ work? But that does look like a workaround more than anything > > if the CNAMEs are all dnssec signed then secure delegation allows this cert to be valid for cdn.b.com too is this from reading the rfc?

  56. moparisthebest

    yes

  57. creme [envs.net]

    Hi everyone, I've written a small bot based on SlixMPP. :) BanBot is an XMPP bot for managing bans and temporary bans in multiple MUC (Multi-User Chat) rooms. It allows centralized administration from a designated admin room and protects multiple chat rooms from unwanted users. REPO: https://git.envs.net/envs/muc_banbot

  58. creme [envs.net]

    https://upload.envs.net/file_share/019c95b7-e56c-7905-9b97-901ab85b0749/8049bde3-5832-4737-acaa-e91e7a919052.png

  59. moparisthebest

    nice! you might also be interested in joining xmpp:bots-dev@muc.loqi.im?join

    👍 1
  60. creme [envs.net]

    REPO is also MIRRORED TO: https://github.com/envs-net/muc_banbot

  61. Kris

    thanks for sharing

  62. coldpi

    > REPO is also MIRRORED TO: https://github.com/envs-net/muc_banbot Yeah I was uhhh writing my own, so this saves like, a month or more of work lol

  63. coldpi

    Thanks man