XSF Discussion - 2021-12-28


  1. thilo.molitor

    hi everyone. I wanted to make some editorial changes to my pull request, regarding the xml schema in xep 0353,but I'm not sure if I understand xml schema sufficiently enough to do the right thing.

  2. thilo.molitor

    https://github.com/tmolitor-stud-tu/xeps/commit/ea90fd54c063c341ae41586901fb1d6b841a8048

  3. thilo.molitor

    the reason element is copied over from the main jingle xep, but I want to reference the jingle schema and use it rather than copying the parts needed over to xep 0353. Is my commit correct or did I make some xml schema mistakes?

  4. emus

    jonas’

  5. jonas’

    I don't speak XML schema very well myself, but I'll take a look when I look at the PR

  6. flow

    due the recent "superseed" changes to the XEPs, I became aware that we are probably missing a nice disclaimer that this XEP is superseeded by another in the XEP header (you know, just like RFCs / I-Ds have such a thing)

  7. flow

    hmm it's probably not so hard to xslt such a thing™

  8. larma

    > https://xmpp.org/extensions/xep-0403.html#usecase-iq-relay > The MIX channel will modify the JIDs in the outgoing message, so that the 'to' is the full JID of the recipient Last time I checked, MIX room members are registered by their bare jid not full jid. How is this supposed to work?

  9. larma

    > https://xmpp.org/extensions/xep-0403.html#usecase-vcard > The MIX service will then address the vCard request to the user's server (using bare JID) So the MIX service will need to have special handling for vCard and not just handle it like every IQ?

  10. larma

    I kinda get the feeling that MIX replicates all the dirty quirks we already have in MUC implementations today rather than fixing them properly...

  11. flow

    larma, not that I know the answer, but is the MIX server maybe subscribed to the user's presence?

  12. larma

    And what happens when you have two devices online?

  13. flow

    magic :)

  14. larma

    > MIX replicates all the dirty quirks we already have in MUC

  15. flow

    but yes, that seems to be fragile and maybe it should be clarified that it only works under certain conditions

  16. larma

    Maybe just accept that IQs are not meant for (semi-)anonymous groups?

  17. larma

    and vCards

  18. flow

    I can only assume that the authors intention was to allow for certain established use-cases

  19. larma

    I mean... vCards are literally about sharing your personal details which is the opposite to staying anonymous...

  20. mjk

    B- but muh muc avatar!

  21. flow

    larma, I am curious what you have in mind what "fixing them properly" could mean here

  22. larma

    Either allow the sender to decide which resource/device the IQ should be sent to (or that it should go to the bare jid) or just don't do IQs. If you want vCards or avatars in semi-anonymous groups, allow users (optionally and per room) to upload those to the group server.

  23. mjk

    > If you want vCards or avatars in semi-anonymous groups, allow users (optionally and per room) to upload those to the group server. This sounds like it'd also fix the one-vcard-many-rooms problem (having different avatars & stuff in different rooms). Awesome

  24. flow

    yep, I think that would be an improvement, but also complicates the protocol. not sure if it's worth it, I currently tend to be happy with IQs not working in semi-anonymous rooms

  25. flow

    however, people want avatars everywhere, even in semi-anonymous rooms where they could be a way to de-anonymize them…

  26. larma

    flow, that's probably because most people don't care if they are semi-anonymous in the room

  27. mjk

    Yea, avatar is like an extension of nickname

  28. larma

    I mean, you are also writing on public mailing lists without anonymity.

  29. mjk

    Matrix seems to make that assumption too, which numerous xmpp users take issue with (me incl.)

  30. larma

    I'm not against semi-anonymous rooms, just that we either should keep that promise or give it up. not the current mix where someone with sufficient resources can deanonymize room members based on vCard and PEP

  31. mjk wholeheartedly nods

  32. larma

    btw, even if we got rid of semi-anonymous rooms entirely, we still have other means of joining rooms anonymously, like 0383 burner jids

  33. huhn

    #

  34. lovetox

    larma, not that its the right solution, but the problem goes away we storing your vcard and avatar on pubusb

  35. lovetox

    and making the node only accesible for people you share presence with

  36. lovetox

    that gives people who dont care about anonymity the choice to show their avatar to anyone, and the others not to

  37. lovetox

    if i think about it, no it does not feel right to disallow a service to request private data

  38. lovetox

    you should store your private data in a place where you can set permissions

  39. lovetox

    that xmpp not offered such a place was a lack of the protocol

  40. lovetox

    but it does now

  41. lovetox

    so now its on you if you dont use it

  42. larma

    lovetox, the problem does not go away, we still have weirdly broken IQ rules for MUC services. Your suggestion just solves the deanonymisation issues in MUC at the cost of features unrelated to MUCs.

  43. lovetox

    yes thats what i meant, the problem of deanonymisation

  44. lovetox

    this goes definitly away

  45. lovetox

    weird IQ rules, i agree, but i dont see how they hurt people

  46. larma

    Let's say I want to share my vCard with everyone that has my JID, but still want to be (semi-)anonymous in MUCs.

  47. lovetox

    please dont invent now use cases

  48. larma

    That's not new, that's reality

  49. lovetox

    so store it on pubsub accessmodel=open?

  50. lovetox

    then everybody can request it

  51. lovetox

    but also the muc

  52. lovetox

    if you need fine grained permission management you need to use whitelist

  53. larma

    I don't want fine-grained permission management, I want MUCs to not make everything more complicated

  54. lovetox

    and if you really need your use case, then you need to add a new protocol for that

  55. Zash

    If you go to a public place, you show your face but don't advertise your home address. Like here, avatars shown but not JIDs.

  56. lovetox

    larma, its not complicated, i store my vcard on pubsub so only people I WANT can access it

  57. lovetox

    what is there complicated?

  58. lovetox

    and a MUC is just "people"

  59. larma

    To complete Zash's example: If people already know my home address, I'm fine with them being able to ring the bell to discover my face.

  60. lovetox

    yeah valid use case, but i dont see how thats easily possible

  61. lovetox

    the problem with the protocol is that identitys are not easily identifiable

  62. lovetox

    there is no sure way how you even can identify a user account

  63. lovetox

    what you would need is some way to treat requests from a MUC or non-user-accounts, differently

  64. lovetox

    but its still possible with pubsub, but its a burden on the client developer

  65. lovetox

    hm no

  66. lovetox

    no its not possible, you basically want, the world to read your vcard, but not if they share it with others ..

  67. lovetox

    its not in your control what they do after you showed them your vcard

  68. thilo.molitor

    jonas’ do you think I should incorporate my changes into the already open pull request or ceate a new one once the old one was merged?

  69. thilo.molitor

    I also added a disco feature in a separate branch...same question: should I include that n the aleady open PR or should Iceate a new one for this?

  70. larma

    lovetox: you are thinking it the wrong way round. You want to restrict access to data for services that forward it to others, when instead we could just get rid of those services.

  71. larma

    Because MUCs are the only services that forward data to users that don't have your real jid.

  72. lovetox

    but you cant, this is a decentralized protocol, your approach would be to share your vcard and then say, pretty please dont share it

  73. lovetox

    it would be a solution, but not a very stable one

  74. lovetox

    its a solution depending on developers honoring your wishes

  75. lovetox

    when in reality you want your server to guard your data, and you should be in control with whom you share it

  76. larma

    Normally, services don't have my JID except when I explicitly tell them. And I won't tell arbitrary them when I don't believe they will follow the rules that we agreed on.

  77. larma

    Normally, services don't have my JID except when I explicitly tell them. And I won't tell them when I don't believe they will follow the rules that we agreed on.

  78. larma

    Same as with semi-anonymous rooms I believe they won't share my real JID to everyone but just to moderators and admins

  79. lovetox

    so what are you saying? get rid of anonym mucs because they are not really anonym because you cant decide to not share your JID with them?

  80. larma

    No, I say clients should stop relying on IQs in MUCs for vCard and avatars, so MUC servers can default to disable IQs

  81. lovetox

    yeah as i said, thats just hoping for developers honoring your wishes

  82. lovetox

    dont know if hope is a good thing to depend on if at stake is your privacy

  83. larma

    That's not hope. I already trust servers to follow the protocol. The problem is that the protocol just doesn't provide an important feature here.

  84. lovetox

    feature? nobody forces a MUC to relay IQ requests ?

  85. larma

    The standard does

  86. larma

    Or at least suggests doing it would be good

  87. larma

    And clients rely on it, so they will do

  88. larma

    Server developers are not at fault here, they're just doing what client developers ask them to do

  89. larma

    > I say clients should stop relying on IQs in MUCs for vCard and avatars, so MUC servers can default to disable IQs

  90. lovetox

    i dont agree with your trust argument, no case comes to mind where i trust a MUC server to do anything

  91. lovetox

    thats why we have e2e

  92. larma

    When you join semi-anonymos MUCs that announces to have logs disabled, do you expect it to publish the chat history including your real JID on a website?

  93. lovetox

    no i dont expect it, but that shifts the goal, do you want to fullfill expectations? yes then i agree get rid of IQ routing rules

  94. lovetox

    do you want to have privacy? then this is just a bandaid

  95. lovetox

    im not arguing that iq routing rules are something good here

  96. larma

    I want privacy when I join MUC servers where I trust the operators. Like in this MUC.

  97. lovetox

    i just think the vcard case to show it, is not a very good one

  98. lovetox

    but yeah lets do both

  99. lovetox

    use pubsub AND fix routing rules

  100. lovetox

    its nothing that is in opposition to each other

  101. larma

    Yep

  102. jonas’

    thilo.molitor, small PRs are nice for review, I can merge them all at once if they fit the requirements – just make sure to *not* include a revision block then

  103. Thilo Molitor

    jonas’: okay, thanks :)

  104. bung

    XMPP <3

  105. Link Mauve

    Re 0363, at no place it specifies that HTTP headers are case insensitive, would it be useful to say that?

  106. Link Mauve

    I took HTTP for granted, but I’m reviewing an implementation which only accepts Title-Case headers.

  107. jonas’

    Link Mauve, what. yeah.

  108. jonas’

    might be worth making it explicit, in addition to the fact that multiple values may be present and that their order must be preserved and they must all be passed to the HTTP server

  109. Link Mauve

    I couldn’t figure out how to say that in the schema though.

  110. Link Mauve

    Do we have any other similar case in the protocols?

  111. jonas’

    I don't think so

  112. jonas’

    but the schema is non-normative™

  113. jonas’

    but The Schema Is Not Normative™

  114. Link Mauve

    jonas’, https://github.com/xsf/xeps/pull/1135

  115. jonas’

    order?

  116. Link Mauve

    Done.

  117. jonas’

    thanks

  118. jonas’

    editor is on vacation until next week though :)

  119. Link Mauve

    There is no hurry. :)

  120. Link Mauve

    Editor can take his time, I won’t come knocking to his door all angry or anything.

  121. jonas’

    that's good

  122. Neustradamus

    thilo: https://github.com/tmolitor-stud-tu/xeps/commit/ea90fd54c063c341ae41586901fb1d6b841a8048#commitcomment-62599720

  123. Zash

    https://www.yes-www.org/

  124. Holger

    Esp. <https://www.yes-www.org/why-use-www/>. Then again we redirect www.xmpp.org to xmpp.org.

  125. Holger

    And it should be https:// I guess. Neustradamus you overlooked that?!?!

  126. Link Mauve

    Also TLS.

  127. Link Mauve

    Holger, ^5

  128. Holger

    🙂

  129. Neustradamus

    https://xmpp.org/extensions/xep-0166.html

  130. Neustradamus

    XML Schema for the 'jingle' namespace: <http://xmpp.org/schemas/jingle.xsd>

  131. Holger

    Everything is broken.

  132. Zash

    I'm in it to increase web related suffering as revenge for not adopting SRV records! 😉

  133. Ellenor Malik

    ???

  134. Holger

    Ellenor Malik, there's SRV records such as `_xmpp-client._tls.example.com` to point XMPP clients to the server handling the example.com domain, which might be `xmpp.example.com`. There's no `_http._tcp` record to point browsers querying https://example.com to the actual server handling that query, e.g. www.example.com. The absence of support for such SRV records is part of the reason why the `www.` subdomain got popular.

  135. Ellenor Malik

    ;w;

  136. Holger

    _tls? _tcp even.

  137. Ellenor Malik

    There's no HTTP/_tartTLS.

  138. Ellenor Malik

    There's no HTTP/StartTLS.

  139. Holger

    Yes, there's HTTPS, which would require `_https._tcp` records, if there was SRV support in the first place.

  140. Zash

    There was starttls for http somewhere

  141. mjk

    `Location: https://...`?

  142. mjk

    Wait, disregard that

  143. Link Mauve

    It might be useful to add HSTS Preload to our HSTS header, so that xmpp.org would be included in the list of domains which always want TLS on HTTP, shipped with browsers.

  144. mjk

    > www. in URLs is that it serves as a gentle reminder that there are other services than the Web I prefer `web.` for that. More explicit and doesn't suggest the domain serves a site _about_ w3

  145. Zash

    I'm a fan of this myself ``` set $should_upgrade "$https$http_upgrade_insecure_requests"; if ($should_upgrade = "1") { return 307 https://$host$request_uri; } ```

  146. Link Mauve

    I stopped serving anything on port 80 some year ago, after years of doing that redirect, and nothing broke because of HSTS Preload.

  147. Holger

    mjk, I'm not sure how large the proportion of users is that will be confused by "www" suggesting a site about the web technology 😉

  148. mjk

    Link Mauve: do browser vendors actually harvest the interwebs for HSTS headers? My impression of the technology always was that each browser installation learns on its own

  149. Link Mauve

    Which freed it for certificate retrieval as well as the occasional proxy bypass port.

  150. Holger

    But the whole reminder idea is nonsense of course, except that you might be happy about being reminded if you knew anyway.

  151. Link Mauve

    mjk, no, you go to https://hstspreload.org/ and request your domain to be added there.

  152. Link Mauve

    It will check that you do serve the HSTS Preload header, so that no one but the website owner can include this header in browsers’ lists.

  153. mjk

    Holger: probably in minus 6th order of 10. :) But I sleep better

  154. Holger

    🙂

  155. Link Mauve

    mjk, the process is explained on that website.

  156. mjk

    Link Mauve: ah, TIL, thanks

  157. jonas’

    Link Mauve, also firefox now has that annoying behaviour to try https if something goes wrong on http. (which adds to the "not serving port 80 doesn't break anything")

  158. jonas’

    it is about as annoying as it adding .com or whatnot to a domain name if something goes wrong

  159. Link Mauve

    Oh, TIL about this behaviour.

  160. mjk

    Annoying for debugging port 80 issues, I guess. But the .com thing is just... ugh, whyyyy

  161. jonas’

    mjk, it's also annoying for developing locally when your dev server just crashed and you get "redirected" by firefox to https and you don't notice and then f5 won't do anthing anymore because it's going to 443 instead of 80 now.

  162. Ellenor Malik

    fuckerfox

  163. jonas’

    Ellenor Malik, watch your language

  164. Ellenor Malik

    *sigh*

  165. Ellenor Malik

    LMC'd

  166. mjk

    jonas’: that... is suspiciously specific :D

  167. Ellenor Malik

    Firefox should do better. It should say "port 80 doesn't work" and _offer_ preloading 443.

  168. mjk

    jonas’: browser.fixup.fallback-to-https seems the tweak for that

  169. jonas’

    thanks, toggled <3

  170. Link Mauve

    Thanks!