XSF Discussion - 2020-12-15


  1. moparisthebest

    has anyone ran MUC over MIX over MUX yet? https://xmpp.org/extensions/inbox/mux.html (or at least made the joke)

  2. SamWhited

    This whole Go XML debacle has made me think of another reason to use bytes instead of codepoints in references: if we ever want to sign references in the future you can't take a hash of codepoints without reencoding. Probably not applicable to @mentions, but references likely have applications far beond that. Being able to just pass the indexes directly to a byte slice operation and get a sha out seems like good practice.

  3. Ge0rG

    Until you realize that signing a subset of a message is a recipe for disaster

  4. jonas’

    ok, I read that mattermost article, and I’m like wtf

  5. jonas’

    it makes no sense whatsoever

  6. Ge0rG

    jonas’: there are also no examples in the CVEs.

  7. Ge0rG

    I suppose that you can craft XML that will be parsed incorrectly or something

  8. Ge0rG

    And apparently the validator will decode, re-encode, and compare the resulting strings

  9. jonas’

    they say it's in the roundtrips and somehow related to namespace prefixes

  10. jonas’

    and unfixable due to api

  11. Ge0rG

    Or rather, the xml structure.

  12. Ge0rG

    Yeah, that's not how you describe a vulnerability

  13. jonas’

    but at least it’s no RCE or something, so I don’t have to take down o.j.n

  14. Ge0rG

    When did you rewrite ojn in go?

  15. jonas’

    the probers always were go

  16. jonas’

    based an SamWhited’s nice low-level xmpp library

  17. jonas’

    was easier to use for such low level tasks than aioxmpp

  18. mdosch

    There are only low level xmpp libs in go…

  19. Ge0rG

    But you can use them to extract byte streams!

  20. Ge0rG

    Where are all the hard learned lessons about how (not) to hash xml content?

  21. jonas’

    in the xmlsec standard

  22. jonas’

    used by SAML

  23. jonas’

    so this reads dire for encoding/xml IMO

  24. Ge0rG

    there is only an xmlsec library. And it's written in C!

  25. jonas’

    Ge0rG, https://www.w3.org/TR/xmldsig-core/ https://www.w3.org/TR/xmlenc-core/

  26. Ge0rG

    jonas’: ah thanks. Did you consider those when designing 0390?

  27. jonas’

    no

  28. edhelas

    a small question about 0045

  29. edhelas

    what is the general purpose of muc#roomconfig_pubsub ?

  30. mathieui

    I thought it could be for 0316 but that does not appear therein

  31. dwd

    edhelas, I always assumed that was a half-baked idea that never went anywhere.

  32. dwd

    edhelas, Back in the day, there was a lot of "Oh, we can have pubsub here".

  33. edhelas

    Holger I see that the field is available trough the ejabberd MUC config, does it triggers some things in the backend or is it just pure metadata ?

  34. Holger

    edhelas: Just pure metadata.

  35. SamWhited

    Ge0rG: this is *not* the same as the partial signing nonsense that XML-DSig does, however, I take your point, might as well sign the whole body and still not be able to figure out what the signature matches up to because codepoints and different normalization forms were used.

  36. edhelas

    Holger ok thanks :)

  37. edhelas

    it can kinda make sense in Movim this field, then you can link a Movim Community (Pubsub Atom node) to a MUC, but I need to figure out the UI to send the correct Pubsub URI

  38. SamWhited

    jonas’: I must admit, I had wondered about why you were using mellium when you make an XMPP library; glad it was useful :) I'd be really curious what the differences are that made it easier for you if you remember. I'd like to develop a higher level library on top of it at some point and it would be helpful to figure out exactly where that dividing line lies to have real first-hand experience where a higher level library wasn't enough.

  39. jonas’

    SamWhited, easy: aioxmpp does not have s2s support whatsoever.

  40. SamWhited

    oh, hah, fair enough

  41. jonas’

    and it (intentionally) makes it hard to shoot yourself in the foot by messing with the lower layers of stream negotiation

  42. SamWhited

    Mellium doesn't either yet really, but I've got a package on a branch somewhere that should make it a little easier

  43. jonas’

    well, it can do enough. I don’t need to go beyond stream features really :)

  44. jonas’

    SamWhited, the main reason though (because I could easily have hacked that into aioxmpp and also did that by now for other reasons) is that the infrasturcture is based on prometheus and prometheus is very golang

  45. SamWhited

    Also makes sense; thanks.

  46. SamWhited goes to remind himself what state the SASL-EXTERNAL/BIDI implementations were in and see if they can be merged

  47. wurstsalat

    Zash, just in case you didn’t know about Ook yet https://sv.wikipedia.org/wiki/Ook

  48. Zash

    I knew about /that/ definition.

  49. Ge0rG

    the other one is in the XEP

  50. Zash

    I couldn't spot anything obviously disqualifying anyways. Maybe it's too dark to see up here.

  51. MattJ

    jonas’, I'm not sure I'm satisfied with the "it's like CORS" argument re. custom XEP-0363 headers

  52. MattJ

    CORS is largely protecting against the kinds of issues that wouldn't really be applicable to most XMPP clients, while we allow the server to set Authorization which is a very restricted header as far as CORS is concerned

  53. MattJ

    For web clients that do need to be careful, CORS will be there anyway, we don't need additional restrictions on our side

  54. jonas’

    I wish I had found the thread from when this was added

  55. jonas’

    MattJ, practically, though, you could put a shim proxy in front of whatever cloud service to use to translate a blob in authorized into whatever you need

  56. SamWhited

    Then you have to pay for all that bandwidth. This is what we did for HipChat (not with HTTP upload, but basically the same thing) and it cost a *lot* more.

  57. jonas’

    right

  58. SamWhited

    I mean, we had to do that anyways for auth reasons, so worth it, but I can imagine most services would just prefer to upload straight to <cloud provider>

  59. jonas’

    MattJ, I think your argument, if written out in more detail, would be a great addition to the current thread though

  60. Zash

    jonas’, https://logs.xmpp.org/xsf/2018-02-15?p=h#2018-02-15-a77a48f290b74a33

  61. jonas’

    Zash, so it’s your fault!!k

  62. Zash

    You were there!

  63. Zash

    MattJ too

  64. MattJ

    Yes

  65. MattJ

    But you are to blame for removal of X-* ;)

  66. Zash

    Can't let you have deprecated things!

  67. SamWhited

    I'm with Zash; X- isn't actually a thing, adding it is just a weird bandaid that makes some services happy but not others. Doesn't seem worth special casing it.

  68. Zash

    https://tools.ietf.org/html/rfc6648

  69. Ge0rG

    HTTP is a horrible footgun. It was a huge error embedding it into our clean and nice well-structured protocol

  70. SamWhited

    Something something glass houses and stones

  71. moparisthebest

    another group might say "Apple and Go can't even parse XML correctly why does XMPP use it"

  72. Zash

    Let's throw glass Go pieces at Apple

  73. SamWhited

    Literally no one can parse XML correctly; namespaces are a nightmare. Special casing attributes, but only sometimes, and also multiple ways to declare them, etc.

  74. Zash

    Nor can they parse HTML

  75. Zash

    or anything

  76. SamWhited

    And don't even get me started on anything like dsig (not relevant to us, thank goodness, we do this right ofr the most part I think) where things that aren't the actual bytes on the wire are hashed and you have a canonicalization mechanism to hopefully make signatures match)

  77. Zash

    Since we can't into computers, let's just become farmers

  78. eta

    compliance tests are pretty useful for this btw

  79. eta

    like, if the people who write the spec also write tests

  80. Ge0rG

    eta: compliance tests only test the positive case

  81. Ge0rG

    then hackers test the other cases.

  82. eta

    because I mean personally when implementing things I just bash stuff together until it works

  83. SamWhited

    Not relying on exact parser output for security is also useful :) (and now it's time to complain about SAML)

  84. eta

    Ge0rG: well you can test negative cases

  85. Ge0rG

    eta: you *can*, but why *would* you?

  86. flow

    causing testing more cases is generally a good thing?

  87. eta

    yeah

  88. Ge0rG

    flow: testing is just unneeded work! it doesn't move the scrum tasks!

  89. marc

    SamWhited: regarding eIBR, any news about the things we discussed last time?

  90. SamWhited

    marc: what discussion was that, I don't recall?

  91. Alex

    hey guys, its member meeting time again

  92. Alex bangs the gavel

  93. Alex

    here is our Agenda for today: https://wiki.xmpp.org/web/Meeting-Minutes-2020-12-15

  94. Alex

    1) Call for Quorum

  95. adiaholic

    😀

  96. Alex

    as you can see 32 members voted via proxy, so we have a quorum

  97. Alex

    2) Items Subject to a Vote

  98. Alex

    new and returning members, you can see the applications here: https://wiki.xmpp.org/web/Membership_Applications_Q4_2020

  99. Alex

    3) Opportunity for XSF Members to Vote in the Meeting

  100. Alex

    anyone here who has not voted yet and wants to do so now?

  101. Zash

    Just had a chat with memberbot

  102. Alex

    👍

  103. Alex

    anyone else?

  104. Alex

    okay

  105. Alex

    will shutdown memberbot then and start working on the results

  106. Alex

    4) Announcement of Voting Results

  107. Alex

    when you reload the page you can see the results here: https://wiki.xmpp.org/web/Meeting-Minutes-2020-12-15#Announcement_of_Voting_Results

  108. Alex

    all reappliers and applicants are accepted. Conrats all

  109. Alex

    5) Any Other Business?

  110. adiaholic

    Thanks a lot!

  111. Alex

    6) Formal Adjournment

  112. Alex

    I motion that we adjourn

  113. Alex bangs the gavel

  114. Alex

    thanks everyone

  115. marc

    SamWhited: regarding feedback to the user based on the challenge's response

  116. SamWhited

    marc: oh, are you also zapb? I remember that; I just haven't prepared a new version yet.

  117. marc

    SamWhited: yep, okay

  118. SamWhited

    Gotcha; sorry about that, I think I knew that but wasn't putting the names together for some reason.

  119. marc

    No worries