XSF Discussion - 2019-07-18


  1. rion

    I'm planning to provide some improvements to SIMS xep. And I think this recent unique MUC occupant id xep would be useful here. Is it going to be published any soon?

  2. jonas’

    rion, I expect it to be accepted

  3. jonas’

    but that’s just me ;)

  4. jonas’

    still lacks two council votes because the respective members weren’t available for the meeting yesterday

  5. jonas’

    which means it’ll probably be dealt with next wednesday

  6. Zash

    What kind of improvements?

  7. Ge0rG

    The biggest issue I have with the occupant-id thing is that IT'S NOT ANONYMOUS!

  8. ralphm

    Anonymity is in the eye of the beholder?

  9. Ge0rG

    it's effectively adding a pseudonym for each bare JID in a MUC.

  10. jonas’

    my sarcasmometer isn’t sure about what you’re doing

  11. Ge0rG

    I'm not saying it's bad or wrong, just that the name doesn't fit.

  12. jonas’

    my sarcasmometer isn’t sure about what you’re saying

  13. ralphm

    Ah, right.

  14. jonas’

    Ge0rG, you didn’t mention that yesterday

  15. jonas’

    but then again, MUC is pseudonymous in itself, it won’t get better than that?

  16. ralphm

    It would be better if that were more explicit.

  17. Ge0rG

    jonas’: it's a different kind of pseudonymous

  18. ralphm

    Anonymity for occupants v.s. admins, right?

  19. Ge0rG

    one could hash (muc-jid, nickname, bare-user-jid) together to allow nick changes to become identity changes.

  20. Ge0rG

    jonas’: I didn't mention it because it was not critical for what the XEP is supposed to do

  21. pep.

    Ge0rG, I think one of the goal is not to include nick in there

  22. pep.

    Ge0rG, I think one of the goals is not to include nick in there

  23. pep.

    But yeah that could be made explicit

  24. Ge0rG

    I still think that making it a proxy-JID on top of the MUC service domain would be a Good Thing™, and then just stuff it into messages and presence.

  25. jonas’

    Ge0rG, ITYM making MIX?

  26. ralphm

    This

  27. pep.

    Ge0rG, I also have something like that in mind

  28. pep.

    But it's not incompatible

  29. jonas’

    are you going to re-invent MIX in worse on top MUC?

  30. ralphm

    I think doing MIX is a much better use of time than attempting to bolt things onto MUC even further.

  31. pep.

    worse? Last time I checked proxy-JID wasn't particularly pretty in MIX, trying to fix 4 things into 3 (is that the one?)

  32. pep.

    worse? Last time I checked proxy-JID wasn't particularly pretty in MIX, trying to fit 4 things into 3 (is that the one?)

  33. Ge0rG

    pep.: yeah, it's the one

  34. jonas’

    pep., you’ll end up in the same situation with MUC, plus the additional issues from the different participant model

  35. ralphm

    Of course a MIX service could still expose a MUC interface/facade.

  36. Ge0rG

    ralphm: I'm fighting hard to keep that a thing, yes.

  37. Ge0rG

    I agree that proxy-JID is one of the uglier things of MIX.

  38. jonas’

    pep., the protoxep wants the occupant-id to be stable across rejoins. putting it on the domain then requires to make it reversible (so a simple HMAC won’t do, you eithre need to encrypt it symmetrically (not feasible) or store the mapping (ew))

  39. Ge0rG

    now that I think about it. Advertising those proxy JIDs inside of MUC will add a bunch of problems indeed, like clients trying to PM those JIDs

  40. Ge0rG

    it was a dumb idea, nevermind.

  41. jonas’

    Ge0rG, excellent, problem solved ;)

  42. ralphm

    Yay

  43. Ge0rG

    I just hate UUIDs for their uglyness.

  44. pep.

    jonas’, putting what on the domain

  45. Zash

    Where are there UUIDs?

  46. pep.

    Is that a remake of yesterday's discussion in programming@

  47. Ge0rG

    I suggest HMAC(server_secret, muc-JID + user-bare-JID)

  48. Ge0rG

    Zash: "UUID" is a placeholder for "long, random-looking hexadecimal string"

  49. ralphm

    Also, who cares. It is not something the user should ever see.

  50. pep.

    Ge0rG, HMAC(real_bare_jid, room_secret) is what I use in the module atm

  51. ralphm

    Someone should use emoji for hex digits

  52. Ge0rG

    pep.: that requires persisting the room_secret, whereas with a server_secret + room-JID you reduce the storage reqs

  53. pep.

    jonas’, see I said somebody would care about that :P

  54. Ge0rG

    ralphm: did you just say "usability nightmare"?

  55. pep.

    I just didn't know how to do that with prosody's API, but I don't really mind :)

  56. Zash

    Ge0rG room destruction and recreation would produce the same IDs then, which seems undesirable

  57. pep.

    ^this

  58. pep.

    ^ this

  59. Ge0rG

    Zash: is it really?

  60. Ge0rG

    okay, you could also rotate the room_secret on jid visibility changes.

  61. Ge0rG

    (as if anybody would do those in practice)

  62. pep.

    what does that mean

  63. jonas’

    Ge0rG, I prefer a room secret managed by the server, because it fixes destroy/re-create use cases

  64. jonas’

    Ge0rG, plus it avoids having to have the secret configurable / have a server/domain-wide secret which needs to be managed somehow

  65. Ge0rG

    jonas’: what's the threat model in those cases?

  66. jonas’

    Ge0rG, take a destroyed room, make it full-anon to lure folks back in (clients could warn if it isn’t anon/anon-mode changed between joins), note occupant-IDs, revert to non-anon

  67. Ge0rG

    I create a MUC, invite everybody there, store the occupant-id mappings, close down the MUC and let somebody else recreate it?

  68. jonas’

    Ge0rG, take a destroyed room, re-create it becoming owner, make it full-anon to lure folks back in (clients could warn if it isn’t anon/anon-mode changed between joins), note occupant-IDs, revert to non-anon

  69. Ge0rG

    full-anon has been removed, hasn't it?

  70. jonas’

    Ge0rG, I call "occupant-id anon" "full anon"

  71. jonas’

    when we assume the path towards where the owner cannot see the real JID anymore, instead operating on the occupant-id

  72. Ge0rG

    jonas’: your naming convention needs more thought

  73. jonas’

    Ge0rG, sorry

  74. Ge0rG

    I might have mentioned it before, but none of this is actually anon.

  75. jonas’

    yes

  76. jonas’

    full-pseudonymous then ;)

  77. pep.

    That's also something I'd like to see, using occupant-id instead of real-jids to do MUC operations (even for owners)

  78. jonas’

    Ge0rG, admittedly, I’m a bit thinking ahead here, but I think it’s valuable to do that

  79. Ge0rG

    pep.: we can hardly manage affiliation management in our clients with the existing protocol.

  80. pep.

    Fix your client?

  81. Ge0rG

    jonas’: what's the additional attack surface compared to "make a full-pseudo room full of people non-anon"

  82. jonas’

    Ge0rG, you need to be owner to do that

  83. Ge0rG

    jonas’: yes, like in your proposed scenario

  84. pep.

    tbh if we were to start using occupant-id for more things, I'd prefer that to be a component setting and not a room setting that the owner can change

  85. Ge0rG

    pep.: what to be a component setting?

  86. rion

    The problem I see in SIMS is jingle transfer with references like this <reference xmlns='urn:xmpp:reference:0' type='data' uri='xmpp:romeo@montague.lit/resource?jingle-ft' /> While they look quite simple to handle this "resource" part makes it very temporary. While it can be intended to have a temporary share it doesn't look quite reliable anyway. So a client to download a file should try all possible resources and expect the jingle session will be rejected immediately if the resource doesn't have this file. I'm not sure how it can't be enhanced, but probably there is a way (likely something with carbons). As far as I understand Jingle session publishing suffers from the same problem. We have to send <start> request to specific resource, but which one?

  87. rion

    And with MUCs things are even more complicated.

  88. pep.

    Ge0rG, "use occupant-id for things", as said above (using it for MUC operations instead of real-jids)

  89. Ge0rG

    pep.: so you want to be able to enforce occupant-id-stamping on all MUCs of your service?

  90. Kev

    > pep. 10:42 That's also something I'd like to see, using occupant-id instead of real-jids to do MUC operations (even for owners) That would be broken, wouldn't it? You would need someone to join the room first before you could ever ban them.

  91. Kev

    And you wouldn't be able to ban other than single users.

  92. tom

    what if someone is set on harassing a muc

  93. tom

    and start creating a whole bunch of free accounts on a host

  94. Ge0rG

    tom: they'll just register new accounts via IBR

  95. Ge0rG

    ...on different hosts

  96. tom

    and you can't preactively ban

  97. Ge0rG

    there's that script that will register thousands of IBR accounts on hundreds of servers for you.

  98. tom

    how can we metigate that?

  99. Ge0rG

    we can hope that the abusers won't find out

  100. tom

    so is this like an open resolvers on the internet type situation?

  101. Kev

    More or less, yes.

  102. tom

    oh no.

  103. tom

    nevermind

  104. pep.

    Kev, you can use mod_firewall for that. Or you can ask the server operator.

  105. pep.

    (well in both cases it's up to the server operator)

  106. pep.

    I'm not saying banning a real-jid wouldn't be possible anymore, I just don't feel the need to expose them

  107. Kev

    I don't understand the motivation, though. Suggesting mod_firewall, or other things the server operator needs to do, seems to be moving away from a functional standard mechanism, and that's kinda what we do.

  108. pep.

    handling spam is not really well spec'd tbh

  109. pep.

    And I don't think it's ever possible to do

  110. Kev

    I don't think banning people is necessarily about spam.

  111. pep.

    And that feature wouldn't go away

  112. pep.

    And this feature wouldn't go away

  113. Ge0rG

    we have blocking, but it doesn't work for MUCs

  114. Zash

    Technical solutions to social problems?

  115. ralphm

    So much this

  116. ralphm

    Unless you get really radical, technology usually doesn't solve social problems. Merely mitigates, or permanently removes the opponent from the equation. The latter is where Geneva is often mentioned.

  117. Ge0rG

    Let's give up and farm potatoes.

  118. ralphm

    You've never been in the Netherlands?

  119. Ge0rG

    ralphm: It'd be interesting to have a way to accomplish that... over the Internet.

  120. Ge0rG

    OTOH, there are underground groups with pre-made lists-of-opponents-to-be-removed, so I'm less prepared than they are, and their lists have all the wrong people on them.

  121. Ge0rG

    And without being able to properly execute, I shouldn't utter this kind of wish.

  122. ralphm

    ...

  123. pep.

    Is there an xmpp logo in svg somewhere?

  124. pep.

    Ah on the main page

  125. nyco

    Board meeting -10 min

  126. MattJ

    o/

  127. nyco

    time+1

  128. nyco

    where's the gavel?

  129. ralphm bangs gavel

  130. ralphm

    0. Welcome

  131. ralphm

    Who do we have?

  132. Seve says hi.

  133. MattJ

    Hey

  134. nyco

    bonjour

  135. ralphm

    Hi!

  136. Guus

    I'm on a very unreliable network

  137. ralphm

    :-D

  138. ralphm

    1. Minute taker

  139. Guus

    I might drop at any time, for any period

  140. nyco

    if nobody wants it, I'll do it

  141. ralphm

    2. Badges

  142. ralphm

    Poll results yet?

  143. nyco

    not sent yet, was waiting for more feedback: are we ok to go?

  144. nyco

    https://forms.gle/nY76DLaD6Ttyn8AV9 latest iteration, DO NOT VOTE YET

  145. ralphm

    I think so

  146. nyco

    if no red light today, I'll send it to members@ after I send the minutes

  147. MattJ

    sgtm

  148. ralphm

    But I'm a bit confused. You didn't really add more questions per dwd's suggestion?

  149. nyco

    yes, I did, second page

  150. ralphm

    Oh!

  151. nyco

    first page is the choice + comment

  152. ralphm

    Yes, I see it now

  153. ralphm

    Looks good to me

  154. dwd

    LGTM2.

  155. nyco

    ok, thx all

  156. Seve

    Nice!

  157. ralphm

    Thanks, nyco!

  158. dwd

    So disappointed it's "badges" and not "badgers" though.

  159. ralphm

    :-D

  160. ralphm

    3. Messenger Regulation

  161. ralphm

    I'm sure it's holiday season, so nothing to report here?

  162. ralphm

    Ge0rG

  163. Ge0rG

    ralphm: I still haven't written that promised mail to members@

  164. Ge0rG

    the contact person was very much interested in e2ee btw.

  165. Ge0rG

    also promised to come back to me in the timeframe of two months, which isn't over yet.

  166. Ge0rG

    our task of determining what exactly we expect is still open

  167. Ge0rG

    or rather what we want

  168. ralphm

    I think the first goal is give them the executive summary of what XMPP is

  169. Ge0rG

    maybe one of the XSF sposors would stand up to sponsor some heavy lobbying? ;)

  170. Ge0rG

    ralphm: that I did.

  171. Ge0rG

    ralphm: we have been listed as one of the stakeholders in the process.

  172. ralphm

    Good

  173. Ge0rG

    so what is our desired outcome? put XMPP into law? put "standardized protocol" into law?

  174. nyco

    well what other protocol qualifies?

  175. nyco

    no one sane recommands SIP/SIMPLE

  176. nyco

    Matrix is in its infancy

  177. Ge0rG

    nyco: matrix has been accelerating their standardization efforts

  178. Ge0rG

    nyco: the only difference between matrix and xmpp, for an outside observer, is some rfc numbers

  179. nyco

    Telegram protocol is quite not open nor standard, although openly documented, only one server implem

  180. ralphm

    The thing I find most important in general was summarized perfectly by Google (https://developers.google.com/talk/open_communications): Freedom of Client, Service, Platform.

  181. Ge0rG

    ralphm: from when is that? 2004?

  182. nyco

    Matrix has only one server implem, thus does not qualify as an open standard

  183. ralphm

    Ge0rG: slightly later

  184. Ge0rG

    nyco: I think you are mixing up things there.

  185. ralphm

    Ge0rG: But it is indeed timeless

  186. nyco

    to be honest, we can push open standards protocols, but only one qualifies

  187. Ge0rG

    nyco: this is a classic approach, to make the requirements appear generic but be sufficiently specific so that only your proposal matches.

  188. Ge0rG

    still, Microsoft Open Office XML is the mandatory reference here.

  189. nyco

    athough I am biaised, you gotta be honest: what other protocol qualifies? none

  190. Ge0rG

    I'm sure that if pushed by legal regulations, Facebook, Google and the others will all come up with their own "open" "standard"

  191. Ge0rG

    ...overnight

  192. nyco

    Note: have to leave exactly at 16:00

  193. pep.

    nyco, personally I wouldn't want to put a protocol name in the legislation

  194. nyco

    pep. this, I agree

  195. ralphm

    Ge0rG: indeed, the things we have going for us: standardized at IETF, many implementation, not a single entity in control

  196. MattJ

    I think we can all agree on that

  197. ralphm

    ss

  198. pep.

    Ge0rG, that will happen and I don't think there's anything you can do about this

  199. Ge0rG

    pep.: it's possible to make law that leaves the specific protocols open for a later decree.

  200. nyco

    the RGI name protocols (Référentiel Général d'Interopérabilité) in France

  201. Ge0rG

    pep.: we might have to create wording that, in the presence of malicious actors, can't be gamed too much

  202. ralphm

    Even if you'd mandate 'XMPP', what does that mean?

  203. pep.

    RFC3920!

  204. nyco

    we must then clearly define what an open standard is, and then different actors will push their agendas

  205. ralphm

    I think what you'd want is interop in features, retaining the freedoms I (Google) listed.

  206. nyco

    https://en.wikipedia.org/wiki/Open_standard

  207. Zash

    Exactly what Google deployed in 2006, no more, no less

  208. ralphm

    This will be fluid over time.

  209. ralphm

    Zash: with various notes, to be honest

  210. Ge0rG

    so how do we move forward now?

  211. nyco

    (time -5 min for me to leave)

  212. ralphm

    Does it make sense to try to push what I wrote above, and showing how XMPP would get us there?

  213. Ge0rG

    we also should prepare an answer for E2EE over bridges.

  214. MattJ

    I think so

  215. pep.

    Ge0rG, "it doesn't work"? :/

  216. ralphm

    FWIW, full interop is never going to happen. There will always be features only certain implementations support. Establishing a baseline is not easy, but maybe our compliance suites could be a guide.

  217. pep.

    The best example of E2EE over bridges we have is OTR..

  218. Ge0rG

    which reminds me of things I need to put onto next Council's agenda.

  219. Ge0rG

    pep.: OTR is also the worst example.

  220. ralphm

    Ge0rG: bridges between XMPP and other networks (e.g. Matrix)?

  221. pep.

    Ge0rG, agreed

  222. nyco

    and IRC

  223. Ge0rG

    ralphm: if you mandate open access to facebook, whatsapp etc over xmpp, it will be some kind of bridge as well

  224. nyco

    on their side

  225. Ge0rG

    even if the bridging part is hidden from us

  226. ralphm

    I'd also note that although both XMPP and Matrix have federation features, making it a single federation is hard.

  227. nyco

    gotta go, sorry, I'm off

  228. ralphm

    nyco: thanks@

  229. Ge0rG

    do we want to mandate OMEMO in all IM clients? Or rather wait for / influence MLS?

  230. ralphm

    Ge0rG: well, I assume that Facebook, WhatsApp would expose their services as an XMPP server.

  231. ralphm

    I.e. the interop would be XMPP s2s

  232. Ge0rG

    ralphm: this is not an answer to E2EE

  233. ralphm

    Indeed, you'd need to agreed on protocol agnostic E2EE. I don't know if that's possible.

  234. Ge0rG

    ralphm: either that, or all providers need to implement a protocol-specific E2EE algo in all their clients

  235. Ge0rG

    which is not impossible, if properly agreed upon by all parties

  236. ralphm

    Why couldn't you specify an E2EE mechanism like how SASL is defined?

  237. Ge0rG

    ralphm: please explain

  238. ralphm

    I.e. you can do SASL over IMAP, XMPP, and others.

  239. ralphm

    The interactions are defined, the wire protocol framing is a specialization

  240. ralphm

    Where things get hard is encrypting more than just text.

  241. ralphm

    If whatever you encrypt needs to be distributedly extensible, you need to agree to, basically, XMPP stanzas.

  242. ralphm

    I think we can continue this discussion, but I'd also close the formal part of this meeting.

  243. ralphm

    5. Date of Next

  244. ralphm

    +1W

  245. ralphm

    6. Close.

  246. ralphm

    KTXBYE

  247. MattJ

    Thanks!

  248. ralphm bangs gavel

  249. Seve

    Thank you :)

  250. ralphm

    Ge0rG: is it clear what I meant?

  251. Ge0rG

    ralphm: yes, thanks.

  252. ralphm

    I suppose you could also define a JSON format that can then be encrypted, but if you want distributed extensibility, you need namespaces, etc., and you are basically replacing angle brackets with curly ones.

  253. Ge0rG

    I wonder if OMEMO isn't already 90% there

  254. ralphm

    I think DE is also a selling point to reluctant corps

  255. Guus

    I love this WiFi. Good meeting! Ttyl

  256. pep.

    Ge0rG, but not really appealing. I'm not sure I want to get stuck with only encrypted body in the legislation

  257. Ge0rG

    if only somebody had told the XEP authors.

  258. pep.

    And if you want more, as ralphm says, you have to have the same transport on the other side basically

  259. pep.

    Ge0rG, well OMEMO or not that's what you're saying, and that's effectively the only thing that can go over bridges (body-only)

  260. ralphm

    Guus: :-/

  261. Ge0rG

    pep.: OMEMO is what's there in XMPP land. There is also MLS of which I have no clue.

  262. ralphm

    pep.: same transport (XMPP s2s) would be ideal. For E2EE you need a common format to encrypt.

  263. Ge0rG

    pep.: and I'm sure we can easily embed XML or JSON or whatever inside OMEMO payloads

  264. pep.

    Ge0rG, and then you'd need clients to put encrypted json in body? :(

  265. ralphm

    pep.: and if you want Distributed Extensibility within that encrypted payload, then you might as well mandate XML Stanzas

  266. Ge0rG

    pep.: into the new OMEMO element.

  267. Ge0rG

    ralphm: at which point we arrive at Stanza Encryption

  268. pep.

    Ge0rG, I'm not sure I follow

  269. pep.

    You're not talking about stanza encryption yet?

  270. Ge0rG

    no idea what we are talking about

  271. ralphm

    We were talking about how E2EE might work across networks.

  272. ralphm

    E.g. Facebook, WhatsApp, 'normal' XMPP clients

  273. ralphm

    And I tried to list requisites, given that I assume both we and Facebook would want to be able to encrypt more than just plain text.

  274. Ge0rG

    I'm not sure how much the second part of that assumption holds.

  275. pep.

    At least we do, I'm not sure about Facebook

  276. pep.

    But that'S something to consider

  277. ralphm

    Well, have you seen Facebook Templated messages?

  278. pep.

    no, what are they?

  279. Ge0rG

    pep.: https://developers.facebook.com/docs/messenger-platform/send-messages/templates/

  280. ralphm

    Or using another example: Slack, which has a lot of rich stuff in messages.

  281. Ge0rG still has that tab open

  282. Zash

    Buttons?

  283. Ge0rG

    Zash: Buttons++

  284. ralphm

    If I was a company working on this, and I wanted to offer E2EE, I'd definitely want/need to include this

  285. Ge0rG

    now we are speaking of a baseline feature set

  286. Ge0rG

    this will be hard to agree upon.

  287. pep.

    Right. "What do we want to have in the legislation"

  288. Ge0rG

    because facebook needs templates, instagram needs galleries and whatsoever.

  289. ralphm

    (also caroussels, maps, link cards (url, picture, title, description), flight infor)

  290. MattJ

    Nobody said open standards were easy

  291. ralphm

    Ge0rG: that's why I mentioned distributed extensibility. If each vendor has the ability to add their own stuff, you are not limiting a feature set.

  292. ralphm

    Of course whether other clients can interpret all the things is another matter.

  293. Ge0rG

    ralphm: I think you just invented the XSF

  294. ralphm

    But you'd definitely need to have a baseline (probably plain text)

  295. ralphm

    Not even the XSF needs to be a single controlling entity.

  296. ralphm

    At VEON, we clearly defined all rich messaging in a way that it could have a fallback body with plain text.

  297. Ge0rG

    I wish XEP authors would consider that.

  298. ralphm

    Aren't you on the Council?

  299. Ge0rG

    Each rich messaging XEP should: - mandate a legacy body format - mandate that the body MUST NOT contain anything else, so that compliant clients can ignore it

  300. ralphm

    Make it one of your review checkboxes.

  301. Ge0rG

    ralphm: you'd be surprised, it already is

  302. ralphm

    I'd hoped so. It was definitely on mine.

  303. Ge0rG

    unfortunately I'm not aware of any XEP that follows this simple pattern

  304. Ge0rG

    not even EME

  305. Ge0rG

    > When a message is marked with an encryption tag and can not be decrypted, the body can safely be ignored and a localized message displayed instead. This is close, but not quite there.

  306. ralphm

    No?

  307. ralphm

    XHTML-IM?

  308. ralphm

    References, and thus SIMS, also assume this.

  309. Zash

    So when are we un-deprecating XHTML-IM again?

  310. ralphm

    No, I'm saying that the way it was designed, it assumes that if you don't support it, you can still use the body.

  311. ralphm

    Without loss of information ideally.

  312. ralphm

    Also, XEP-0060, section 12.7 (and other places).

  313. Ge0rG

    ralphm: indeed, XHTML-IM is explicit in that regard. I'm not sure I would count References as it's only an annotation to <body>, not a replacement.

  314. ralphm

    Sure, but the idea here is entirely that the common format is plain text, and that richer stuff points to it.

  315. ralphm

    (sure, you can also use References with actually referencing begin/end, but that'd mean you lose information)

  316. ralphm

    without

  317. Ge0rG

    I'm looking at XEPs that contain a fallback <body> for non-supporting clients, and that should mandate that the <body> will be superseded

  318. Ge0rG

    OOB as currently used is the best anti-pattern example to that.

  319. Ge0rG

    the new reactions proto-proto-XEP fails miserably as well

  320. Ge0rG

    and then there are things like MUC invitations (direct or mediated)

  321. ralphm

    I haven't read that yet, but reactions should be annotations. A body might be tricky. I'm not sure how to refer to a previous message in plain text in a way that a user could understand.

  322. Ge0rG

    ralphm: https://github.com/jabbercat/jabbercat/issues/80#issue-304305375

  323. ralphm

    In case a body cannot convey a certain extension, maybe it could say something to that effect.

  324. Ge0rG

    I sent you an OMEMO encrypted message but your client doesn’t seem to support that. Find more information on https://conversations.im/omemo

  325. ralphm

    'You are invited to a chat room, but your client doesn't support this mechanism. [link-to-faq-page].

  326. ralphm

    See, literally the same thing.

  327. ralphm

    (oh, and a closing ')

  328. Ge0rG

    ralphm: technically, an OMEMO client could insert actual text into the <body> of an OMEMO message, and it would remain unnoticed by OMEMO clients.

  329. Ge0rG

    https://xmpp.org/extensions/xep-0384.html doesn't mandate that the <body> must be throw-away content

  330. Ge0rG

    > If the decryption fails, the client MUST silently discard the OMEMO message. If it succeeds, the decrypted contents are treated as the <body> of the received message.

  331. ralphm

    Given that it is not Final, there's some room still :-D

  332. Ge0rG

    So I could troll OMEMO-enabled clients by adding a broken <encrypted xmlns='eu.siacs.conversations.axolotl'> element into all my messages.

  333. ralphm

    There are so many ways to troll clients. Again, social problems.

  334. Ge0rG

    ralphm: I'm pretty sure that XEP won't move forward in the current state ;)

  335. Ge0rG

    when designing the receiving side of things, I need to make a deliberate decision on throwing away the <body>

  336. Ge0rG

    I suppose I'm way too deep in nitpicking mode.

  337. ralphm

    :-)

  338. ralphm

    :-)

  339. nyco

    minutes sent

  340. nyco

    poll sent

  341. Ge0rG

    can I vote now? :D

  342. Lance

    MattJ: hats ping

  343. nyco

    Ge0rG only once! :)

  344. Ge0rG

    only once per split identity.

  345. nyco

    ah, this...

  346. nyco

    if these people are many contributors, then yes

  347. Ge0rG

    nyco: you forgot to add the "would you use it?" to the poll.

  348. nyco

    second page

  349. nyco

    2) If you run an XMPP project, would you use those badges? (website, repo, doc, flyer, poster, etc.)

  350. Ge0rG

    👍

  351. moparisthebest

    jonas’: > The initiating party MUST NOT perform A/AAAA fallback as per &rfc6120; (since the service provider has already indicated that the SRV protocol is supported).

  352. moparisthebest

    eh, I know what 6120 says but I can't agree with that here

  353. moparisthebest

    it's trivial for an evil attacker to insert a DNS record that tells a client/server not to fallback

  354. moparisthebest

    I see no harm in falling back anyway if you are doing TLS, does anyone?

  355. moparisthebest

    (sorry for ENOCONTEXT referencing https://github.com/xsf/xeps/pull/796/files )

  356. moparisthebest

    the other bit, trying regular _xmpp-client/_xmpp-server seems fine though

  357. rion

    about improving SIMS... I believe Jingle Session Publishing xep should take some features from Jingle Message Initiation then it will fit well to SIMS. Like.. 1. I'm sending SIMS with published Jingle session 2. a party discovers details of the published Jingle session and if it's compatible sends a *message* (not iq) with <start> 3. the message is carbonned and my other resources not having the file from SIMS just ignore the message (or maybe just record it happened) 4. my resource which has the file sends <starting> via message to a party resource so other my resources know I'm sending a file and also know where from 5. a party initiates jingle session with file request to specific resource (where <starting> came from)

  358. ralphm

    moparisthebest: I wrote this elsewhere before, but I disagree, too. See also RFC 2782. We should totally have a fallback, so the service name should be registered with IANA with a port number.

  359. ralphm

    Elsewhere being the mailing list

  360. moparisthebest

    yep I see that in the email chain now ralphm

  361. ralphm

    rion: could you send a mail on this, with maybe some example protocol exchange?

  362. moparisthebest

    I vaguely recall conversations daniel talking about falling back to 443, clearly we can't register that with IANA though

  363. ralphm

    rion: It is a bit hard to wrap my head around it.

  364. moparisthebest

    I actually don't mind either way if the XEP recommends to fallback and/or a port, I just strongly disagree with "MUST NOT fallback"

  365. rion

    ralphm: yep. a little bit later. need to finish some regular work stuff first :)

  366. ralphm

    moparisthebest: I think that's not a great idea. However, one could use port 443 as an SRV target port.

  367. ralphm

    rion: 👍

  368. ralphm

    moparisthebest: right, I think we should prevent doing something special. I'd like to use existing generic SRV handlers.

  369. moparisthebest

    especially when it's only downsides, basically just allowing a network MITM to keep you disconnected when there is a chance you could connect

  370. jonas’

    moparisthebest, an evil attacker can also insert a broken A/AAAA record

  371. jonas’

    if you assume that DNS can be meddled with, all bets are off

  372. moparisthebest

    right, should probably fallback then too

  373. jonas’

    fall back to what?

  374. moparisthebest

    everything you can

  375. jonas’

    there is nothing to fall back if your attacker spoofs A/AAAA

  376. jonas’

    you just end up with broken TLS, hopefully

  377. moparisthebest

    ah sorry I read that as 'broken SRV record' but yea

  378. ralphm

    jonas’: I don't think it is useful to think about spoofing DNS in this context.

  379. jonas’

    ralphm, indeed

  380. ralphm

    But following the RFC on SRV records seems sensible.

  381. moparisthebest

    I think it is though, you can't get around everything an evil mitm could do of course, but maybe you can get around some of them, and there is no reason to give up early

  382. Zash

    ralphm: So does that mean the "fetch both _xmpp and _xmpps SRV and merge the results" is undesirable?

  383. ralphm

    Yes

  384. Zash

    I tend to agree

  385. moparisthebest

    that is optional though

  386. jonas’

    moparisthebest, initiating connections the domain owner clearly did not intend you to do is probably not a good idea

  387. jonas’

    and this is what you’re doing in this case

  388. jonas’

    the endpoint you end up connecting to may easily be a hacked webserver for the same domain

  389. jonas’

    it may be in an entirely different trust domain. just don’t do things the domain owner asked you specifically not to do by placing SRV records.

  390. moparisthebest

    you have no guarantees that the SRV record came from the domain owner though

  391. moparisthebest

    unless DNSSEC, I'm fine with a MUST NOT if you've validated it with DNSSEC

  392. jonas’

    17:29:06 ralphm> jonas’: I don't think it is useful to think about spoofing DNS in this context.

  393. jonas’

    moparisthebest, ^

  394. jonas’

    if the attacker can spoof the SRV record, they can also spoof the A/AAAA you want to fall back to. it’s pointless.

  395. moparisthebest

    and I disagree with that :)

  396. jonas’

    what you propose does not help against an active DNS attacker, and it makes the situation worse in a non-attacked situation.

  397. moparisthebest

    because some attacker might just spoof the SRV record and not A/AAAA, or you might be getting A/AAAA over tor because that only supports them and not SRV

  398. jonas’

    (or in a situation where the attacker has control over a specific machine (A/AAAA), but not over DNS)

  399. moparisthebest

    or a million other reasons

  400. jonas’

    moparisthebest, if you’re connecting via a transport which does not support SRV, then obviously XEP-0386 does not apply to you

  401. Zash

    Don't worry, be happy. Make sure you validate the TLS certificate.

  402. moparisthebest

    if domain owner is running a public web server that will be hurt by attempting a funky connection to it, they need to fix that

  403. jonas’

    and neither does the SRV RFC or the parts about SRV in RFC 6120

  404. jonas’

    moparisthebest, it may not be *hurt*, but it may easily log things to plaintext logs which you (as the client/user) wouldn’t want to have there. think pipelining authentication because you "know" the domain already.

  405. moparisthebest

    SRV RFC is more generic, it doesn't know we have a foolproof way of validating the port we connect to by guessing

  406. Zash

    validating ... by guessing

  407. moparisthebest

    we guess the port

  408. jonas’

    what?

  409. moparisthebest

    we have a foolproof way of validating whether it was correct or not, TLS certs

  410. jonas’

    no, that’s not foolproof

  411. jonas’

    the webserver or whatever on the A/AAAA record *will* have a TLS cert for *exactly* the domain

  412. jonas’

    so you’re on the wrong port, but still connected and TLS says everything’s green

  413. moparisthebest

    right, and that's fine

  414. jonas’

    no it’s not

  415. Zash

    400 WHAT ARE THESE ANGLE BRACKETS Connection: gtfo

  416. Zash

    I still think guessing is stupid

  417. jonas’

    guessing is stupid and dangerous

  418. moparisthebest

    it absolutely is, again running a public port on the internet means you are willing to accept whatever garbage anyone throws at you

  419. moparisthebest

    and not only accept, but be happy about it

  420. jonas’

    moparisthebest, yes, and I might log that "garbage" including your SASL PLAIN password into some plaintext files for someone to investigate

  421. jonas’

    which is probably very much not what you want

  422. jonas’

    or alternatively, the webserver may run in a different trust domain and may be owned by an attacker

  423. moparisthebest

    the domain owner is the one that made a decision to give them a cert valid for xmpp, and to run an xmpp and https service on the same domain

  424. moparisthebest

    so the owner already decided all that was fine

  425. jonas’

    not really

  426. jonas’

    they have told you via SRV that you should very much should not connect to that webserver machine for XMPP

  427. jonas’

    anything you do beyond that is your fault

  428. moparisthebest

    again without DNSSEC you can't know that, you can only guess

  429. jonas’

    okay, the discussion has just become a pointless loop

  430. moparisthebest

    bottom line, as a user, I want to connect by any means possible, I certainly don't want to not connect because a network is poorly configured either intentionally or accidentally

  431. moparisthebest

    if I understand correctly, you are saying a domain/server operator might not want certain connections, and while I agree, that's tough shit

  432. moparisthebest

    you open a public port on the internet you have to be willing to accept anything anyhow at any time, period

  433. Zash

    so we have the two classic camps "fail early and hard on errors" and "just make it work at an ycost"

  434. Zash

    XML vs HTML

  435. Zash

    etc

  436. moparisthebest

    I dislike being compared to HTML but otherwise sure :D

  437. ralphm

    If you want to prevent connections, you can publish an SRV record with . as target

  438. Zash

    Ask Ge0rG how common it still is for devices to not support SRV resolution

  439. ralphm

    Well, if that's true, they are not able to have functional compliant XMPP implementations.

  440. Zash

    I imagine the fault would most likely be in DNS resolvers in cheap routers or something

  441. Holger

    Or Tor.

  442. ralphm

    But wait, how does that prevent a client device from doing SRV? Or do you mean routers blocking SRV requests?

  443. Zash

    Blocking or otherwise failing for unknown reasons

  444. moparisthebest

    because a client generally gets their DNS server from DHCP which tells it to use crap router

  445. Holger

    WiFi routers having a built-in caching DNS server that's borked.

  446. ralphm

    Well, I'm not sure if I want to be in the business of catering for such brokenness.

  447. jonas’

    there’s also some firewall appliances which filter SRV away

  448. Zash

    And fallback combined with SRV not being critical for the web or email means nobody notices or fixes them.

  449. moparisthebest

    of course DoX fixes this if you have a hard-coded ip+port for your resolver :D

  450. Holger

    On the public servers I'm involved with, we'd loose >10% of the users by not redirecting 5222 from the A/AAAA target.

  451. Zash

    Holger: Sounds like what Ge0rG has said about yax.im

  452. ralphm

    Holger: wow. Are those corporate users?

  453. ralphm

    Also, how can you tell.

  454. Holger

    ralphm: I don't think so; as I said, from what I've seen it's mostly crap end-user routers and Tor.

  455. ralphm

    Tor is not on my radar

  456. ralphm

    But how can you tell that users cannot use SRV?

  457. Holger

    ralphm: I just check the percentage of the connections that are redirected from the A/AAAA target.

  458. ralphm

    Oh, you publish a different host in SRV?

  459. Holger

    ralphm: Yes.

  460. ralphm

    I kinda want users to complain to their ISPs.

  461. Holger

    ralphm: Not sure about the Tor/crap-router ratio. But it's definitely not just Tor.

  462. Holger

    ralphm: Well they'd have to complain to their router manufacturers. At least in the cases I tracked down.

  463. Holger

    (Which was like two or three.)

  464. Holger

    A popular thing in France was/is affected, for example.

  465. moparisthebest

    also just as a data point I have what I'd call a "crap corporate network" and SRV is wide open, but it'll only allow HTTP on 80 and TLS on 443, it checks that it's actually TLS too

  466. moparisthebest

    and yea it'd be great if people complained to ISP/router manufacturers, in practice though it's just "XMPP sucks I can't even connect"

  467. ralphm

    Holger: in most cases people get routers from their ISP. If not, they have themselves to blame for broken behavior.

  468. Holger

    True that.

  469. Holger

    Of course neither will stop them from concluding what moparisthebest said. XMPP fails, everything else just works.

  470. Zash

    Can't have nice things

  471. ralphm

    And corporate users, well, should complain to corporate IT. There's no end to stupidity in that area.

  472. Zash

    ENTERPRISE

  473. moparisthebest

    > Star Trek Fan Accidentally Accepts Job Writing "Enterprise Software"

  474. ralphm

    When we worked on Jingle/WebRTC we had some issues with blocked UDP traffic in our office.

  475. moparisthebest

    ralphm, don't worry QUIC should fix that for you in a bit :)

  476. ralphm

    Thus wasting valuable bandwidth for calls between two people in the office.

  477. ralphm

    moparisthebest: I think QUIC has a lot going for it, but no.

  478. moparisthebest

    Zash, I think it's more like "can only have nice things if HTTP wants them first" :D

  479. Zash

    :(

  480. ralphm

    moparisthebest: not in this case, I mean. I definitely would like to see XMPP-over-QUIC.

  481. ralphm

    And indeed if QUIC would work in the corporate environment, then calls would too, since you can use the same port for TURN/STUN.

  482. moparisthebest

    I mainly meant users will complain if websites quit working, so as websites migrate to http3/udp and break, networks should be fixing that

  483. ralphm

    I think websites will fallback to plain http for a long time

  484. rion

    QUIC+WebRTC ? I though wg abandoned this idea because all the id remapping crap for compatibility with STUN and absence of signalling ideas.

  485. rion

    thought*

  486. ralphm

    Sure, but I believe even without changes, it can still be done.

  487. ralphm

    Especially with XMPP, as hey, we have signaling.

  488. ralphm

    The conflict is with TURN mostly

  489. ralphm

    I am a bit surprised one of the arguments is that TURN is rarely used with WebRTC, though. TURN was considered a significant requirement when we were building calls in the VEON app.

  490. ralphm

    But that's not on websites, so who cares? Right, fippo?

  491. rion

    If web browsers could use our signaling out of the box that would be quite interesting.

  492. ralphm

    Hah, well! If I'm right, the webrtc library has roots in libjingle.

  493. ralphm

    Of course with all the XMPP now removed.

  494. Zash

    ralphm: I have heard that as well

  495. ralphm

    Maybe we could say XMPP caused WebRTC to happen.

  496. tom

    Shouldn't IPv6 fix these issues as well?

  497. tom

    because with IPv6, if setup properly every computer on then network get's it's own unique publicly routable IPv6 address

  498. tom

    sometimes every device gets a whole range to itself

  499. jonas’

    > because with IPv6, if setup properly

  500. jonas’

    that’s the catch ;)

  501. tom

    well

  502. jonas’

    but yes, IPv6 will (hopefully) make mayn things easier

  503. jonas’

    but yes, IPv6 will (hopefully) make many things easier

  504. tom

    most corporate enviroments are going to setup PFsense or OpenWRT

  505. tom

    which sets up most of ipv6 for you ounce you give it an upstream

  506. tom

    we aren't in the dark ages of proprietary router firmware ruling majority anymore, least not for professional space

  507. tom

    too many routers got turned into zombies

  508. jonas’

    ironically, the gateway thing provided by my ISP handles IPv6 just fine

  509. jonas’

    it even supports prefix delegation via DHCPv6

  510. ralphm

    I think your view on the activities or competence of corporate IT departments is extremely optimistic.

  511. tom

    maybe that's just my area

  512. Zash

    PFsense? OpenWRT? NOT ENOUGH ENTERPRISE

  513. tom

    the only place I've really seen something not PacketFilter of NetFilter based is where it's probably not possible to route/firewall without ASICs

  514. jonas’

    ralphm, that, too

  515. tom

    like routing 400+gbps

  516. tom

    where we'd use a switch fabric backplane

  517. tom

    otherwise everything in the office areas flowed threw a PFsense box.

  518. tom

    the 1U unit they sell

  519. ralphm

    You might have been lucky.

  520. ralphm

    I've seen IT departments being understaffed, underfunded, outsourced, and misused for setting up teleconferences.

  521. moparisthebest

    tom, can you tell my corporate IT dept, they use all the proprietary blackboxes, riverbed, telari, cisco, and palo alto

  522. moparisthebest

    and those are just the ones I know about

  523. pep.

    "Ge0rG> Each rich messaging XEP should: - mandate a legacy body format - mandate that the body MUST NOT contain anything else, so that compliant clients can ignore it", I don't want to start a discussion right now (sleep!) but I also don't want to forget about it, so I'll say for now that I'm not sure I like this, and we can come back to it later :)

  524. ralphm

    Dude. I want to sleep.

  525. Ge0rG

    pep.: I'm going to write that to standards in the context of reactions

  526. pep.

    Ok

  527. pep.

    I'll reply to that

  528. ralphm

    https://upload.ik.nu/upload/oQfV7r-1Xd5r9hYF/9XML-6JsSvqz0agHghjWlg.png

  529. pep.

    https://www.xkcd.com/386/

  530. ralphm

    Yes