XMPP Council - 2017-02-22

  1. Tobias

    moparisthebest, didn't you plan an update on https://xmpp.org/extensions/xep-0368.html security considerations after last week's discussions with SamWhited?

  2. moparisthebest

    Tobias, I updated it

  3. Tobias

    so it's just the editor that hasn't processed it yet, ok

  4. moparisthebest

    he wanted the description updated, and I changed something else too, I think it's good to go

  5. moparisthebest

    I think he did? I'll check

  6. moparisthebest

    yea that's the latest version

  7. Tobias


  8. SamWhited

    I thought I merged… refresh?

  9. Link Mauve


  10. Tobias

    yeah..seems it's the latest version

  11. Tobias

    ah..seems it's about time

  12. Tobias

    1) Roll call

  13. daniel


  14. SamWhited nods

  15. Dave Cridland


  16. Link Mauve

    Here too.

  17. Tobias


  18. Tobias

    2) Minute taker

  19. Tobias

    seems jc isn't here, so we need a volunteer

  20. daniel

    i can do it

  21. Tobias


  22. Tobias

    3) Outstanding votes

  23. Tobias

    https://trello.com/b/ww7zWMlI/xmpp-council-agenda there are 2 ProtoXEPs and 2 other voting issues on the trello, please see recent minute notes and reply on list to vote

  24. Dave Cridland

    I've a few there.

  25. Tobias

    4) Clarify CSI and Carbons state after SM resumption https://github.com/xsf/xeps/pull/402

  26. Tobias

    Sam added this earlier this month, Flow closed his PR and opened indepenent PRs instead. Please take a look and reply feedback in the PRs.

  27. Tobias

    5) The Last Call for XEP-0333: Chat Markers ended, daniel is taking maintainership and will probably send in an update sometime so we can vote on advancing it

  28. SamWhited

    If daniel plans on making more changes, I will extend the LC by another week.

  29. Tobias

    more changes? haven't seen changes since the LC was issued

  30. SamWhited

    s/more changes/changes/

  31. Tobias


  32. Tobias

    6) Vote on advancing XEP-0368: SRV records for XMPP over TLS, specifically Version 0.1.2, to Draft

  33. Tobias

    I'll vote on list

  34. daniel


  35. SamWhited

    I still don't like the direct TLS definition text, but that's an editorial change that can be made during draft

  36. SamWhited

    so +1

  37. daniel

    re extending the last call for xep333. please do. i will make changes in the next wee

  38. Tobias

    Dave Cridland, Link Mauve ?

  39. Link Mauve

    Wasn’t there a pending PR to fix the direct TLS definition?

  40. Link Mauve

    Apparently not.

  41. Link Mauve

    Anyway, will vote on list.

  42. Dave Cridland

    I think '368 is ready to go Draft now.

  43. Tobias

    that's probably supposed to be at least a +0

  44. Tobias


  45. Dave Cridland


  46. Tobias


  47. Dave Cridland

    FTR, I'm sure there's further editorial fixes, but the technical side seems solid.

  48. Tobias

    7) Date of next

  49. Tobias

    I'm probably traveling next Wednesday around this time

  50. daniel

    should we do tuesday?

  51. daniel

    same time?

  52. Link Mauve

    I’m ok with Tuesday.

  53. SamWhited


  54. Tobias

    that could work better for me, yeah

  55. Tobias

    does that work for you, Dave Cridland?

  56. Dave Cridland

    I think so.

  57. Tobias

    great..that would be 2017-02-28 16:00:00 UTC then

  58. Tobias

    8) AOB

  59. SamWhited


  60. Tobias


  61. SamWhited

    XEP-0233, 0280, 0334, 0352 had their LCs end today. One of them has a pending PR (0280), otherwise do we want to do anything about them?

  62. Tobias

    probably see what the feedback was on them, if there was positive feedback indicating that they are fine and no changes are required, we can vote on them next week

  63. Tobias

    if the feedback indicates changes are required, they should stay proposed until we receive an update on the XEP

  64. daniel

    334 and 352 are probably good to go

  65. daniel

    but we can vote on that next time

  66. daniel

    i think with these widely deployed xeps no feedback is good feedback

  67. SamWhited

    334 I'm a bit torn about, but I agree with 352

  68. SamWhited

    anyways, next week. In the mean time should I extend the LC or move them back to experimental?

  69. Tobias

    i'd request to extend the LC of XEP-0233 and i'll bug someone who implemented it to respond with feedback on the list

  70. Kev

    FWIW, I don't think that's true, 'no feedback' is generally a sign of no interest in XEPs, which implies they've probably not seen sufficient review.

  71. Kev

    (Not saying that's the case with 334/352 necessarily, but as a general point)

  72. daniel

    Kev, i was specifically talking about those day. as they seem to be used and implemented

  73. daniel


  74. Tobias

    yup...and we should try bugging people having implemented those...even if they have little time they could simply reply with a mail answering the questions with a short Yes/No.

  75. Link Mauve

    Tobias, that sounds sensible.

  76. daniel


  77. Tobias

    any other AOB?

  78. SamWhited

    Sounds reasonable; in that case I'll extend the LCs again.

  79. Tobias

    SamWhited, sounds sensible

  80. Tobias

    doesn't look like it

  81. Tobias bangs the gavel

  82. Tobias

    thanks everyone

  83. Link Mauve

    Thank you!

  84. Tobias

    thank you daniel for writing up meeting minutes

  85. moparisthebest

    note with 368 I made a somewhat major change with the last version

  86. moparisthebest

    SamWhited, pointed out 3.1 had no proper SHOULD/MUST etc language

  87. moparisthebest

    in my mind that was always a MUST (mixing priorities of records), but he and ralphm convinced me it should be a SHOULD

  88. moparisthebest

    so maybe it was only a major change in my mind :)

  89. Tobias

    will give the XEP a total reread this evening then :) luckily it's not that big

  90. moparisthebest

    yea and it works the same both ways, the server op can't tell if you mixed priorities or some ports were blocked

  91. moparisthebest

    so in the grand scheme of things, no big deal

  92. Dave Cridland

    So it might be that there exist circumstances to not mix priorities properly, and it'll still interop? Feels like a SHOULD is OK here.

  93. Dave Cridland

    moparisthebest, What were the cases ralphm and SamWhited were unable to mix priorities?

  94. moparisthebest

    Dave Cridland, ralphm pointed to the python twisted lib that connected to SRV records and how it'd be hard to mix them, but easy to try xmpps-client first then xmpp-client second

  95. moparisthebest

    which is fair, and like you said doesn't affect interop, and moreover is invisible to the server

  96. Zash

    moparisthebest: I also believe that'd be easier to implement.

  97. moparisthebest


  98. Zash

    Keeping track of 'this srv entry is with tls/with starttls' seems like a recipe for messing up

  99. Dave Cridland

    Zash, I found it easy enough, and RFC 6168 is the same, so it's not uncommon.

  100. moparisthebest

    it was easy in conversations

  101. moparisthebest

    you already have to keep an object with 'target' and 'port', throwing 'directTls' in there is trivial?

  102. Dave Cridland

    That's basically what I did in Metre.

  103. Dave Cridland

    It treats a _xmpps-server._tcp record as if it were a _xmpp-server._tcp record with an extra field of "tls=true".

  104. Zash

    I may have done somesuch for DANE

  105. moparisthebest

    conversations code starts about here: https://github.com/siacs/Conversations/blob/master/src/main/java/eu/siacs/conversations/utils/DNSHelper.java#L184

  106. moparisthebest

    and yea I think you'd do DANE the same way, store the key hash on the same object

  107. moparisthebest

    I think, implementing dnssec+dane is fairly high on my priorities as a next patch for conversations

  108. Dave Cridland

    moparisthebest, See the minidns work that the XSF had s a GSoC project a couple of years back - should work fine. Smack uses it already.

  109. Dave Cridland

    moparisthebest, But just do DNSSEC+RFC 6125 names to beging with.

  110. moparisthebest

    yea Dave Cridland conversations already uses minidns, so I think it's basically just writing a bit of code

  111. moparisthebest

    so that brings up an interesting point, DANE can pin certs, public keys, and anywhere in the chain, but the RFC recommends implementations for a specific protocol pick one way and stick with it

  112. moparisthebest

    like for SMTP they just use public key pinning on the end device and that's all that is supported

  113. moparisthebest

    sorry had to run off, but is there a standard like that for DANE with xmpp?

  114. moparisthebest

    or can/should we make one?

  115. Dave Cridland

    DANE-SRV is as close as we get. But I'm happy supporting all forms - I've seen use-cases for all of them.

  116. moparisthebest

    I despise certificate pinning personally hehe

  117. moparisthebest

    pinning the end devices public key is the only way to go in my opinion

  118. SamWhited

    Dave Cridland: I *can* mix priorities, I just don't want too. I'm going to try connecting and starting TLS and connecting and starting a plain stream at the same time probably; if TLS works, it wins, otherwise start using the plain stream that was already being negotiated.

  119. moparisthebest

    attempting simultaneous connections sounds , not good for some reason

  120. moparisthebest

    do you do that now with existing SRV records? attempt them all at once and see which one wins?

  121. SamWhited

    moparisthebest: I'm not doing it for each record, just for each type of record (xmpp vs. xmpps); weights and priorities are still used within those records.

  122. SamWhited

    However, yes, if you have a few servers with identical weights and priorities, I would like to connect to all of them and use whichever one wins.

  123. SamWhited

    (and then if that fails, fall back to the next set of weights/priorities)

  124. moparisthebest

    what's the difference? the server op mixed priorities when they defined them

  125. moparisthebest

    I mean none of this really matters, you can do it however you like and interop and everything will work perfectly

  126. SamWhited

    If the server op made plain a higher priority than TLS, I'm ignoring it. That's basically the only difference.

  127. moparisthebest

    just seems strange, I assumed people that wouldn't mix them would just try xmpps- first, then xmpp-

  128. SamWhited

    That's what I'm doing; doing it at the same time is just an optimization (if we can't do xmpps, we just fallback to the connection that's already started)

  129. moparisthebest

    yea but in doing both at the same time it's slower than just doing the first would be

  130. moparisthebest

    if bandwidth is constrained or anything

  131. SamWhited

    maybe, but I really doubt even the slowest connections are *that* slow (unless you're operating of HFR or something)

  132. Kev

    And no-one would do that, right? :)

  133. SamWhited

    Heh, I'm aware that it exists, I'm just not writing a library that aims to target every single use case (although, this will probably be an option when you configure the session, so it will probably support not doing it this way too, haven't figured the API out yet though)

  134. Dave Cridland

    I was wondering about happy-eyeballs across multiple SRV records.

  135. Kev

    I think I've suggested before that happy-eyeballs across multiple same-priority records is sensible.

  136. moparisthebest

    how many domains have enough servers where it'd make a difference?

  137. moparisthebest

    that's a genuine question I really do not have any idea :)

  138. SamWhited

    I'm not sure; probably not many, but it's also not hard to do or anything, so I'm not sure that it matters. ¯\_(ツ)_/¯

  139. moparisthebest

    it just kind of smells of premature optimization, multi-threaded code where connections are racing and one wins doesn't sound like the simplest thing to implement, especially if 99% of cases have 1 server anyway

  140. SamWhited

    Nah, I've already done it, it was trivial.

  141. moparisthebest

    probably depends a lot on the language too :)

  142. moparisthebest

    what are you using? go still?

  143. SamWhited

    Yah, Go (which indeed is the reason why it was trivial)

  144. moparisthebest

    is that code open source anywhere? I'd like to have a look

  145. SamWhited

    I just need to add it to my XMPP library and also add the XMPP/XMPPS version (although that's not a race, that's waiting on XMPPS and just pre-negotiating XMPP in case XMPPS fails)

  146. moparisthebest

    yea I was thinking about how to implement it in java, but I'm not sure I'd call it trivial

  147. SamWhited

    Nothing is trivial in Java… everything is harder than you expect it to be.

  148. SamWhited

    Or maybe that's just me.

  149. moparisthebest

    I wouldn't go that far :) but yea