XSF Discussion - 2020-01-08


  1. flow

    https://trends.google.com/trends/explore?date=today%205-y&q=%2Fm%2F01bb8j,%2Fg%2F11bv302qqv

  2. flow

    I find the world map comparision especially interesting. Germany appears to have a very high search-interest in Matrix

  3. jonas’

    probably because we love the movie

  4. flow

    what's a little bit sad is that the search interest for xmpp decreased by 50% in the last 5 years

  5. flow

    jonas’, if only they made a sequel of that movie

  6. jonas’

    flow, if only

  7. Ge0rG

    aren't they?

  8. jonas’ unobstrusively pulls out a wrench

  9. pep.

    There's a Matrix 4 coming

  10. pep.

    https://www.imdb.com/title/tt10838180/

  11. jonas’

    different director and writer. could be less terrible.

  12. Zash

    ITYM Matrix 2

  13. Ge0rG

    ITYM Synapse 1.8.0

  14. pep.

    Synapse, Matrix, it's all the same

  15. ralphm

    jonas’, what do you mean different writer?

  16. Zash

    Hm, going here didn't give me what I hoped for: https://xmpp.org/rfcs/

  17. MattJ

    I always go there, it's handy

  18. Zash

    Was looking for RFC 7712 tho

  19. jonas’

    but the RFCs are rendered terribly :-X

  20. Zash

    Not that bad IMO

  21. jonas’

    yeah I know it’s an unpopular opinion of mine, hence the :-X

  22. Zash

    Could be better

  23. jonas’

    sure, for example the official IETF html rendering

  24. jonas’

    sure, for example: https://tools.ietf.org/html/rfc6120

  25. Zash

    This is kinda nice tho: https://www.rfc-editor.org/rfc/rfc8700.html

  26. jonas’

    oh that’s true

  27. jonas’

    font could be slightly larger

  28. jonas’

    reminds me of the XEP renderings

  29. Ge0rG

    jonas’ [13:17]: > sure, for example: https://tools.ietf.org/html/rfc6120 That's the worst skeuomorph in the history of the Internet

  30. Ge0rG

    The XSF renderings are plain awesome in comparison

  31. Ge0rG

    And rfc editor isn't rendering any old RFCs in the nice html, so only the 50 years one?

  32. Ge0rG

    The mandatory page breaks make my eyes bleed, and I don't even want to try to read that on an e book reader.

  33. Zash

    Only a few very recent ones

  34. Ge0rG

    And I'm sure they actually have semantically structured source code, so this is absolutely self inflicted

  35. Steve Kille

    There was a LOT of argument that ASCII is the only thing everone can handle.

  36. Ge0rG

    Steve Kille: I'm not opposed to having an ASCII version, not even in 2020. What infuriates me is what they call "html" rendering.

  37. jonas’

    Ge0rG, it’s still better than the kilometers of line length on the XSF rendering

  38. Ge0rG

    jonas’: you are doing Browser wrong.

  39. jonas’

    no, the XSF rendering is doing typography wrong

  40. Ge0rG

    Whereas the official rendering is also doing accessibility and readability wrong.

  41. Ge0rG

    > If only a web browser is available, the PDF rendering of an RFC is often the better choice than the HTML version. > Starting with RFC 8651, RFCs are published as XML files [..]

  42. Steve Kille

    should have been done a LONG time ago

  43. Zash

    Like XEPs! 🙂

  44. Ge0rG

    it only has sustained for so long because of bearded old men (and I mean men who are both more bearded and older than me)

  45. ralphm

    [citation needed]

  46. Ge0rG

    🤷

  47. ralphm

    Come on, you can throw around general dismissive statements like this, but at least provide _something_ to back it up. A few months ago there was a discussion on us using XML as the format for XEPs, and I contemplated the impact on moving to, e.g. ReST or some Markdown dialect, but such an effort is not trivial by any means. The IETF is so much more bigger in reach, older, etc. that I am not surprised it took a while to come up with a plan forward. RFC 7990 provides some more insight.

  48. Zash

    ralphm: Fun fact: I have mostly working scripts for translating XEP XML to and from Markdown

  49. ralphm

    E.g. “In order to respond to concerns regarding responses to subpoenas and to understand the legal requirements, advice was requested from the IETF Trust legal team regarding what format or formats would be considered reasonable when responding to a subpoena request for an RFC.”

  50. jonas’

    A subpoena request for a thing which is public?

  51. ralphm

    This is about subpoena's where the response would need to include an RFC.

  52. ralphm

    jonas’ simply sending a URL is probably not sufficient.

  53. Ge0rG

    ralphm: I'm not involved in the RFC process, and maybe my impression that any RFC has a semantic source code and could be trivially rendered the same way as we did for https://xmpp.org/rfcs/rfc6120.html is wrong. However, the ASCII paginated format is not in wide use in the IT industry for over thirty years now.

  54. Ge0rG

    And I'm sure people can come up with a saner mechanism in much less than thirty years, if they actually see a need.

  55. ralphm

    Up until this RFC, the canonical version is been plain-text, in that paginated formatting.

  56. Ge0rG

    Probably even a mechanims to retro-fit the old ASCII submissions into a new format.

  57. ralphm

    And it is not that people didn't use XML as the actual source format, but this change lifts a lot of restrictions.

  58. Ge0rG

    RFC8651 has been published last October.

  59. ralphm

    Right, its HTML rendering is based on the XML file, not on the plain text.

  60. Ge0rG

    Yeah, it's the first one.

  61. Ge0rG

    But as I said, this has taken thirty years.

  62. Ge0rG

    The printer that I got with my first computer, purchased used in 1993, was able to render proper typography, given the right software and drivers.

  63. ralphm

    It would be awesome if older RFCs that have been crafted in an XML format, like I believe all XMPP related ones authored by stpeter, could be re-processed, but I'm not sure if their processes allow this to be done retroactively.

  64. Ge0rG

    OTOH, I can't read most RFCs on my smartphone screen because the fixed-width fixed-page-width mandatory-line-breaks format is just bonkers.

  65. Ge0rG

    ralphm: given sufficient motivation, processes can be changed.

  66. ralphm

    Ge0rG, sure, and there are histerical raisins for this.

  67. ralphm

    And they did, eventually.

  68. Ge0rG

    ralphm: maybe because the IETF members realized that they are getting older and that their eyes are getting worse, so they can't read the RFCs any more.

  69. ralphm

    We can complain about the speed of it, but I think that's too easy.

  70. ralphm

    And not a very productive attitude.

  71. edhelas

    did some of you already played with http://sylkserver.com/ ?

  72. Ge0rG

    ralphm: I can't fix _all_ the things.

  73. edhelas

    does it act as a nice XMPP-SIP bridge, at least for IM ?

  74. ralphm

    Ge0rG, I think the bar I set was lower than _all_ :-D

  75. ralphm

    edhelas, SIMPLE is still a thing?

  76. edhelas

    yup

  77. ralphm

    wow

  78. edhelas

    I'm currently working at the company behind Linphone and they are developping IM features within their clients :)

  79. edhelas

    https://www.linphone.org/technical-corner/flexisip

  80. MattJ

    I installed their Android app the other day, it was the only one I could get to work reliably

  81. MattJ

    For SIP, not SIMPLE :)

  82. edhelas

    i'm looking for SIP-XMPP gateways

  83. Ge0rG

    ralphm: well yes, but I read your statement as an equivalent to "provide patches"

  84. Steve Kille

    do you mean SIMPLE-XMPP?

  85. edhelas

    ah it's not SIMPLE based actually

  86. edhelas

    my bad

  87. ralphm

    Ge0rG, no my statement is more "we can all do a lot better than making dismissive or facetious comments about the work of others."

  88. ralphm

    edhelas, what it is then?

  89. Ge0rG

    ralphm: well, that's true

  90. ralphm

    By the way, I think that https://xmpp.org/rfcs/rfc6120.xml is using the xml2rfc v1 format. I'm sure it would be relatively easy to have that processed as the newer XEPs are.

  91. ralphm

    https://upload.ik.nu/upload/TJ3QpLXv5HuZn_mQ/such_reactions.png

  92. Zash

    Eh

  93. pep.

    Of course there's an animated parrot in there

  94. Zash

    party parrot!

  95. ralphm

    This is a message from a few minutes ago in my company Slack. To provide an idea of how reactions can be used in practice.

  96. pep.

    "badly"? :)

  97. Zash

    I haven't seen anything that bad in Slack or similar yet.

  98. ralphm

    While I was blurring this screenshot, 5 other reaction emoji were added and a bunch more counts.

  99. ralphm

    Zash: this is why I am posting it :-D

  100. Zash

    I'm not sure we should start by optimizing for that

  101. Ge0rG

    This MAM response will only contain non-messages!1!!

  102. ralphm

    I think we might have to.

  103. ralphm

    I'm sure dwd can appreciate the picture.

  104. pep.

    How do you even fit all that on a phone screen

  105. ralphm

    pep., hold on

  106. pep.

    It eats like 50% of the usable area?

  107. ralphm

    https://upload.ik.nu/upload/y8ugHA41aaG2UpcK/such_reactions_mobile.png

  108. pep.

    right

  109. Link Mauve

    ralphm, is that exceptional or do most messages contain that kind of reactions?

  110. ralphm

    No this is not common. The message was meant for a different channel, with a smaller audience, but funny in the context of this channel, which is appropriately named has virtual all employees in it.

  111. ralphm

    virtually

  112. ralphm

    I do think, however, that we should expect exceptions like this to be good test case for reactions in XMPP, and particularly for how we handle this in MAM context.

  113. edhelas

    XEP-xxxx: Kindly ask XMPP users to not send too much Reactions in chats (Informational

  114. ralphm

    heh

  115. edhelas

    or we go full ascii ¯\_(ツ)_/¯

  116. pep.

    This is not ascii

  117. dwd

    What I find interesting is that there are very few Unicode reactions there; they're mostly custom images.

  118. pep.

    (-̀◞८̯◟-́)

  119. edhelas

    ╯°□°)╯︵ ┻━┻

  120. Zash

    So limiting reactions to emoji is meh

  121. pep.

    ┗(•̀へ •́ ╮ )

  122. pep.

    (people have lots of imagination)

  123. pep.

    XEP-XXXX: Reactions + bob?

  124. dwd

    Also I quite like the notion of having sequences like ╯°□°)╯︵ ┻━┻ as reactions.

  125. pep.

    I'm curious if other solutions allow that. I don't think I've seen it in Mattermost or Slack

  126. Zash

    And 'wat'

  127. pep.

    щ(ºДºщ)

  128. pep.

    ("Why?!")

  129. dwd

    pep., No, I haven't either, but it seems potentially useful.

  130. pep.

    well it's doable in the current spec. "Just" include that in <reaction/>

  131. dwd

    Oooh. Polls. Those'd work as fastenings with MAMFC very easily.

  132. pep.

    dwd, for polls I do want the whole history of who voted what, and if they changed their votes etc. :x

  133. pep.

    Reactions might be ok for quick polls, but for more serious stuff you probably don't want that

  134. pep.

    You want the possibility to comment alongside your vote, at least. (that is, your message referencing your action of voting, or sth..)

  135. dwd

    The moment you want anonymous polls it gets a bit harder, true.

  136. pep.

    Right also that

  137. ralphm

    Yeah, simple polls are pretty much the same as reactions. And indeed, in all Slacks I've been in, most reactions were using Slackmoji (custom emoji). That's also why I used that in my blog post.

  138. pep.

    To come back to the OMEMO talk (from council@): Note that I'm not opposing getting rid of OMEMO.

  139. ralphm

    larma: regarding the discussion on OMEMO in council@ just now. If the XEP is moved to Proposed, a Last Call process will start. During this time, people can provide their comments. Then Council can decide to do one out of three things: 1) move back to Experimental, judging it not ready to move forward, and allowing the author or others to amend it to their instructions (e.g. fix the license issue), 2) reject it definitively, 3) accept.

  140. pep.

    Just that we don't have anything to replace it.

  141. pep.

    And I hate the message that this is sending

  142. pep.

    "We don't care about e2ee"

  143. jonas’

    context for the above: https://logs.xmpp.org/council/2020-01-08#2020-01-08-40325e18d4aac62b

  144. jonas’

    pep., though Daniel proposed to write a blogpost which explains the rationale and why this is a good thing actually.

  145. pep.

    Is it a good thing

  146. ralphm

    pep. we can control the narritive ourselves. E.g. by launching the SIG and announcing an effort to work within the IETF to have an MLS spec for XMPP.

  147. jonas’

    and I think we can do things to make this blog post discoverable, including but not limited to: - mention it in the editor notification - mention it in the council decision - link it from the top of the XEP

  148. jonas’

    pep., yes, it is a good thing for implementation freedom

  149. pep.

    And what in the meantime? "yeah well you can use that deprecated-or-rejected XEP, because everybody else use it"

  150. pep.

    "yay standards"

  151. ralphm

    pep., this is nothing new

  152. pep.

    To me the XSF is shooting itself in the foot

  153. jonas’

    pep., yes, and no. Push OX forward, push FSE+OX forward, and if you have to, use OMEMO which is why I want to keep this XEP in place, albeit frozen in stasis.

  154. jonas’

    or even push SEX forward, with a slightly less awful name

  155. pep.

    These are not OMEMO replacements

  156. ralphm

    People have used non-SASL authentication for ages after we obsoleted it.

  157. pep.

    they're perfectly valid encryption mechanisms for sure, but they don't do PFS (not that I'm arguing in favor of PFS)

  158. jonas’

    pep., I’d also argue that OMEMO is not a good solution

  159. jonas’

    and the replacements I mentioned are all better than OMEMO for the general userbase

  160. pep.

    jonas’, that's another debate

  161. pep.

    I also agree

  162. jonas’

    so this is another reason why this is a good thing™

  163. Zash

    OMEMO is popular. Popularity does not equal quality.

  164. jonas’

    it encourages the deployment of (for some metric) better alternatives

  165. pep.

    I also agree getting rid of PFS for the masses is a good thing. But that's not the debate at hand

  166. ralphm

    pep. and I think everybody agrees that the E2EE situation in XMPP has been an issue for a very long time. This is why I do like the proposal to form a SIG.

  167. larma

    ralphm, the current best thing we have is OMEMO. It's not good, but it's the best we have

  168. ralphm

    larma, yes, and it doesn't meet our objectives, so that's terrible.

  169. larma

    Which objective?

  170. ralphm

    larma: #4 of XEP-0001

  171. jonas’

    larma, https://xmpp.org/extensions/xep-0001.html#objectives number 4

  172. pep.

    "good is the enemy of perfect"?

  173. larma

    It doesn't strictly violate it either

  174. larma

    it just lacks documentation

  175. jonas’

    larma, I think it does

  176. jonas’

    even if it is strictly legal, the ambiguity of the situation is encumberence enough

  177. dwd

    pep., Not good is the enemy of good, too.

  178. larma

    what ambiguity?

  179. jonas’

    larma, whether it is a legal thing to do without using the GPL

  180. ralphm

    larma: if it is just lacking documentation, the onus is on whoever wants to progress the XEP to resolve this before it can move forward in our process.

  181. jonas’

    where "it" is "implementing and using the Signal protocol"

  182. pep.

    dwd, what's the actual reason behind this move?

  183. dwd

    pep., I've explained that several times.

  184. larma

    well "Signal" is probably a trademark and thus can't be used in the XEP, I agree

  185. larma

    but that's again a documentation issue

  186. jonas’

    larma, I’m talking about the protocol, not the name

  187. dwd

    pep., Unless by "actual" you're trying to imply I'm not really saying.

  188. larma

    the cryptographic protocol is pretty well specified in their public domain documents

  189. pep.

    That it can't be implemented in proprietary products etc.(?)

  190. ralphm

    larma, there have been efforts to reimplement the protocol in a library for other languages that the official libsignal, and they were considered derivative works, and thus subject to the GPL.

  191. ralphm

    I think there even was a library that changed licenses for this.

  192. jonas’

    pep., that it can’t be implemented *in non-GPL products

  193. ralphm

    pep., and yes, the XSF expressly supports implementations open or closed alike.

  194. pep.

    jonas’, sure. I doubt this is really in issue in practice though.

  195. jonas’

    pep., that’s not the point.

  196. jonas’

    it violates objective 4

  197. larma

    well if you create a derivative work of libsignal it has to be under GPL, but I doubt that you have to do so

  198. dwd

    pep., Why do you think that's not an issue?

  199. jonas’

    whether it’s a prolbem in practice because everyone who does OMEMO also happens to be okay with the GPL is a different issue

  200. ralphm

    Companies and proprietary implementations of our open protocols are not a bad thing, and explicitly part of the XSF's DNA.

  201. pep.

    That I can see indeed

  202. ralphm

    pep., I don't understand why you want to argue against this.

  203. flow

    I feels like the discussion around rejecting xep384 distracts from the really important question: Why wasn't the pull request that helps making xep384 independent of the libsignal wire protocol and move towards the open standard double ratched implementation merged?

  204. jonas’

    flow, URL?

  205. jonas’

    I guess the log in the PR would explain the reasons

  206. pep.

    I don't especially agree, but that debate is different from the points I'm bringing forward with OMEMO

  207. pep.

    ralphm, ^

  208. flow

    jonas’, no it doesn't, editor closed it

  209. dwd

    pep., Put it this way - if OMEMO genuinely cannot be implemented without a GPL library, should we kill it?

  210. jonas’

    flow, URL please then?

  211. jonas’

    that was probably me, and I might know more

  212. jonas’

    (when I see the PR)

  213. flow

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

  214. larma

    dwd, I personally agree to that

  215. pep.

    dwd, that's not my point in this debate. I'm not answering this question

  216. jonas’

    pep., but that’s the *reason* for this debate

  217. ralphm

    pep., except it isn't. Because if the argument is not clearly worded, it might taken as a Board stance.

  218. jonas’

    flow, ah, the reason is right there: inactivity.

  219. jonas’

    I didn’t get a reply from the author in weeks

  220. flow

    jonas’, of course the question is "why went the author silent"

  221. pep.

    I'm saying "it has been accepted in experimental, deal with it as long as it's not proposed" (and the author hasn't, for good reasons)

  222. jonas’

    flow, that I cannot anwser

  223. pep.

    We are sending a message that I don't want to send

  224. flow

    and there is a larger backstory to that behind what you can read from the comments in the PR

  225. ralphm

    pep., and I want to clearly communicate to everyone in our community that we definitely consider companies and proprietary implementations as part of our community.

  226. dwd

    pep., One problem here is that it forces other projects to send the same message.

  227. pep.

    Which projects?

  228. Daniel

    flow, that is an interesting question; which i would like to slightly repharse to "why isn’t the work on 'OMEMO 2.0'" moving faster? (i think the actual PR that was on the table had some minor problems; but it doesn’t really matter because some members of the 'OMEMO community' have working drafts for 'OMEMO 2' on their hard drives)

  229. dwd

    pep., Look at, for example, the OMEMO ticket against Swift.

  230. dwd

    pep., There's people there saying that the Swift leadership doesn't care about E2EE, which is incorrect - but they cannot implement OMEMO (or feel they cannot).

  231. pep.

    So you need to kill it as long as we don't have a replacement. Like it's become a mission right now?

  232. Daniel

    so why don’t we have omemo 2? - i think the answer to that is: omemo 2 is not backward compatible and for the vast amount of stakeholders (=people who actually do the work) omemo 1.0 is good enough; despite problems

  233. pep.

    Swift can very well implement OX

  234. pep.

    Gajim also supports OX. Swift can also drive the adoption around OX

  235. pep.

    I'm sure others would implement it

  236. jonas’

    pep., the problem (the XEP violates a criterium for XEPs) was spotted, the problem is known, and it needs to be fixed now.

  237. pep.

    (I would)

  238. Daniel

    the combination of not being able to solve backward compat and good enough lessens the incentives to work on 'omemo 2'

  239. jonas’

    if we want to further represent our objectives

  240. flow

    Daniel, why isn't omemo2 backwards compatible? Couldn't clients just use the same key material and crypto primitives with OMEMO1 and OMEMO2?

  241. jonas’

    it sohuld never have come this far, but here we are

  242. jonas’

    flow, it won’t be compatible on the wire by definition, that’s incompatibility enough

  243. Daniel

    it's probably not backward compat in a non-gpl way

  244. flow

    jonas’, not in my book

  245. dwd

    pep., Are you arguing, then, that since OMEMO has a viable replacement it's OK to get rid of it?

  246. jonas’

    flow, in practice it is

  247. jonas’

    OMEMO1 clients won’t be able to read OMEMO2 messages

  248. pep.

    dwd, when, not since

  249. Daniel

    hardcoded strings and unspeced protobuf

  250. flow

    jonas’, sure the XML element definition will be different, but the keys could be the same

  251. jonas’

    it’s "This message is OMEMO encrypted ..." all over again

  252. Daniel

    that may or may not be gpl

  253. dwd

    pep., Because you cannot argue that Swift can just implement OX unless you believe that OX is a replacement.

  254. Daniel

    plus if we are going to introdcue breaking changes we also might want to fix other things

  255. jonas’

    something second system syndrome

  256. pep.

    dwd, replacement as in "widely used encryption mechanism". It's not exactly a replacement for OMEMO in the sense that it doesn't have Forward Secracy (but I'm of those that say that most don't need it)

  257. flow

    jonas’> OMEMO1 clients won’t be able to read OMEMO2 messages sure but there is nothing one can do about it

  258. jonas’

    flow, and that’s why people don’t want to move from OMEMO1

  259. larma

    Just my feelings to this whole story: nobody wants to implement the full protocol. Mostly because crypto is hard to get right and thus implementing it is timely and expensive. Those that are GPL-compliant are mostly fine with using libsignal (or creating a derivative thereof), but those that aren't GPL-compliant cannot and thus are in the situation that the feature of implementing OMEMO is requested but can't be realized. OMEMO puts non-GPL-compliant implementations at a financial disadvantage.

  260. Daniel

    jonas’, well yes and no. there are some relatively low hanging fruit that could be fixed

  261. Daniel

    but not backwards compatible

  262. ralphm

    A lot of this is a rehash of earlier discussions, but we never made it explicit that the XEP in its current form is not acceptable to our process. Also see remko's efforts in https://github.com/xsf/xeps/pull/463

  263. Daniel

    ralphm, i think nobody is denying that it is a shitty xep

  264. jonas’

    Daniel, cp xep-0384.xml inbox/daniels-omemo2.xml and get started? ;)

  265. flow

    jonas’> flow, and that’s why people don’t want to move from OMEMO1 IMHO OMEMO1 has enough issues to be incentived to move away from it, but YMMV

  266. Daniel

    jonas’, not _my_ harddrive 🙂

  267. ralphm

    larma: and I also think that this is *the* reason why accepting OMEMO, even as historical or informational, doesn't send the right message from the XSF.

  268. jonas’

    flow, IMO, OMEMO can die in a housefire, but that’s just me. I think we’re quite alone on that island ;)

  269. ralphm

    jonas’ not at all

  270. flow

    jonas’, It's fine if you don't care about a XEP if you don't actively fight it

  271. pep.

    larma, to this specific comment I can say "I'm fine with it. That's the whole point of GPL." (independently of OMEMO being a XEP) :X

  272. jonas’

    flow, I don’t "fight" it for those reasons.

  273. jonas’

    flow, I fight it because I think that ralphm and dwd are right.

  274. jonas’

    my fight against OMEMO itself mostly consists of "No omemo here" replies to messages which are OMEMO encrypted *shrug*

  275. flow

    ok, let me specifiy this "if you don't actively fight it's development"

  276. ralphm

    pep., yes, the choice of GPL is intentional, and detrimental to open protocol development.

  277. ralphm

    (because there is no protocol spec)

  278. jonas’

    flow, I’m just trying to make a point that for many people, OMEMO1 is just good enough, even if there are many reasons why it should not.

  279. jonas’

    flow, thus supporting your YMMV

  280. larma

    ralphm, is it against the XSF objective 4 if implementing a protocol using a GPL library is cheaper than implementing it without?

  281. jonas’

    larma, no, but the question here is whether it is legally POSSIBLE to implement it without the GPL library.

  282. flow

    that ^

  283. jonas’

    and this question is not answered without a lawyer and probably a court case. and this is why this is an encumberence, even if it IS legally possible to do so

  284. ralphm

    larma, using a GPL library is fine. Having the GPL library being the only source of information to implement it independently, without it being a derivative work and thus subject to the GPL *is*

  285. larma

    jonas’, you could argue the same for *every* XEP

  286. jonas’

    larma, no

  287. jonas’

    XEPs which fully describe the protocol can clearly be implemented non-GPL

  288. jonas’

    because they are under XSF IPR

  289. jonas’

    XEPs which rely solely on other open standards (e.g. RFCs)are the same

  290. larma

    jonas’, sure, so if I just put all the required stuff in the XEP what happens then?

  291. jonas’

    larma, then you’re liable

  292. jonas’

    if that’s under GPL and you passed it to the XSF while having the IPR signed

  293. jonas’

    you will be liable for that when moxie sues an implementation

  294. jonas’

    the implementation can point at the XEP, the XSF can point at you

  295. dwd

    jonas’, Actually I suspect the XSF might be liable.

  296. Zash

    Isn't that how cleanroom implementations are done? One team looks at gpl code and writes docs.

  297. jonas’

    dwd, at this point, probably yes, because we already have publicly stated that we have doubts

  298. flow

    "it doesn’t really matter because some members of the 'OMEMO community' have working drafts for 'OMEMO 2' on their hard drives" It would be great if that development of OMEMO2 wouldn't happen on ppls hard drives but instead in a public repo (with rendered htmls put online somewhere). I don't even say that it has to happen within the XSF

  299. ralphm

    dwd: that's an interesting point that might graduate it to Board territory.

  300. flow

    Daniel, ^

  301. larma

    As mentioned on list, I have no problem with publishing all the protocol details that are missing under a permissive license, I just don't know what exactly is missing

  302. ralphm

    So I guess we can point to Daniel.

  303. jonas’

    larma, nobody who hasn’t implemented it without libsignal does.

  304. ralphm

    (who put in the dependency on libsignal, if I remember correctly)

  305. flow

    larma, please do so

  306. pep.

    flow, one of the reasons why the SIG is happening I think

  307. jonas’

    larma, i.e., to find out, try that

  308. pep.

    flow, I also want that, transparency

  309. flow

    I think it is easy to find out what is missing. Just add everything that is missing from the XEP

  310. flow

    pep., that nice, but you don't have to form a SIG to invite people to collaborate ;)

  311. ralphm

    flow this

  312. pep.

    Well.. people are what they are

  313. larma

    If OMEMO2 is only using a different wire protocol (replacing protobuf with xml) than that should be easy, because the wire protocol is protobuf

  314. pep.

    You need to get them motivated to do things

  315. pep.

    We're not all paid to do stuff

  316. ralphm

    a SIG is not super special. I would also like to point to XEP-0019 for a bit of history of SIGs.

  317. pep.

    I've read that one yes

  318. Daniel

    flow, if it were my harddrive i would

  319. ralphm

    pep., I'm not payed to this stuff, either. Interestingly, commercial entities generally are, and they can't implement OMEMO in its current form for the arguments-discussed-at-length. Moxie at some point said they'd provide a spec, but things were still in flux.

  320. dwd

    pep., You know, I'm not sure any of us are paid to do this anymore.

  321. Daniel

    however it doesn’t really solve the "we don’t know how to migrate" issue

  322. dwd

    Daniel, Well, non-migration between crypto protocols isn't unique to OMEMO.

  323. ralphm

    They'll probably remain in flux, so depending on an everchanging library isn't a great place to be, and not having a matching spec is not an acceptable starting point.

  324. flow

    Daniel, it appears there is no good solution besides probably a grace period where clients send OMEMO1 and OMEMO2 together

  325. flow

    don't ask me how long that period should be

  326. dwd

    Daniel, And is a particular problem with E2EE in IM. Long talks about that in the MLS WG as well.

  327. flow

    OTOH it appears that most OMEMO developers are agile

  328. pep.

    flow, at this point I'd start working on MLS rather than having a migration period of "forever" already between OMEMO1 and OMEMO2

  329. ralphm

    pep., great!

  330. pep.

    (not me personally)

  331. flow

    pep., do ash you like, but I think it is sensible to put effort into OMEMO2

  332. pep.

    And another migration period of "forever" between OMEMO2 and MLS

  333. ralphm

    pep., (aw)

  334. pep.

    ralphm, as funny as it might seem from me arguing about all this, I don't use e2ee very much myself :)

  335. ralphm

    I think it would be a worthwhile excercise to see what needs to be done to do MLS in XMPP, compared to potential work on OMEMO.

  336. pep.

    I think the migration effort outweights everything

  337. pep.

    Debian, RHEL, $things

  338. pep.

    In 10 years we're still sending OMEMO1

  339. ralphm

    pep., I personally really dislike the way OTR and OMEMO have worked so far, and any solution that has a similar pattern will be vigorously disabled by me.

  340. jonas’

    ralphm, I’m curious which aspect you’re talking about, because my experience with OTR was quite pleasant, while OMEMO was terrible.

  341. jonas’

    s/was/was and still is/

  342. jonas’

    s/was/was and still is/g

  343. pep.

    jonas’, I'm also curious which aspect of OTR you find pleasant

  344. pep.

    (compared to OMEMO)

  345. Daniel

    and yes being unsure if we even want to solve the migration to omemo 2 or start working on 'something else' is also a hurdle that prevents people from working on omemo 2

  346. dwd

    Jr fubhyq nyy hfr EBG13

  347. ralphm

    jonas’, I have been using XMPP since 2000, and have seen a lot, using multiple clients simultaneously, and every time somebody tried to send me a message with OTR or OMEMO, I ran into issues of not being able to read it.

  348. jonas’

    pep., it isn’t instrusive like OMEMO is.

  349. dwd

    jonas’, Also you can type OTR manually.

  350. pep.

    dwd, https://ppjet.bouah.net/rot13.py (poezio plugin)

  351. jonas’

    pep., I get OMEMO encrypted messages forever just because I have Conversations installed, but 2 out of 3 of my clients don’t support OMEMO, and two out of three never will.

  352. pep.

    Ah wait I have a better one now that we have the E2EE API :p

  353. pep.

    jonas’, I remember mod_otr in prosody preventing you from sending messages that were not OTR encrypted.

  354. pep.

    I don't think that's really better

  355. jonas’

    pep., that’s a problem of a server deployment

  356. jonas’

    not a general problem of the thing

  357. pep.

    But you got to get the green checks

  358. pep.

    :)

  359. jonas’

    pep., missing the point

  360. Zash

    jonas’: green checkmarks!!!1!1!eleven

  361. pep.

    I don't think OMEMO is worse in this regard tbh

  362. Zash

    MUST HAVE GREEN CHECKMARKS AND E2EE!!!!

  363. pep.

    That's a policy of the clients. Enabling OTR/OMEMO by default

  364. pep.

    Whether you are capable of receiving it or not

  365. Zash

    MUST HAVE GREEN CHECKMARKS AND E2EE ENABLED BY DEFAULT!!!

  366. ralphm

    Additionally, I think that there are features in XMPP that compete with the notion of E2EE and the kinds of protections it provides to the end user. To the point that I'm sure you can always make the argument that e2ee in XMPP remains insufficient to some groups of users.

  367. jonas’

    pep., no, the difference is the mechanism of discovery of support

  368. jonas’

    the one used by OMEMO is unreliable

  369. jonas’

    ("are keys published?")

  370. jonas’

    the one used by OTR is reliable, barring server intervention ("is the secret whitespace handshake sent?")

  371. jonas’

    the one used by OTR is reliable, barring server intervention ("is the secret whitespace handshake sent in the message I just got?")

  372. pep.

    Ok, on the theory maybe

  373. jonas’

    ralphm, agreed

  374. jonas’

    pep., in practice.

  375. pep.

    In practice clients would probably just enable OTR because what Zash said

  376. jonas’

    also, you notice when the OTR handshake fails and don’t blindly send encrypted messages which won’t be readable

  377. jonas’

    because OTR has a handshake

  378. jonas’

    pep., "would" -- OTR has been around since forever. There is no "would" here, we can look at the state of what clients are still doing.

  379. pep.

    Ok

  380. jonas’

    (or what they did before they dropped support for OTR in favour of OMEMO)

  381. !XSF_Martin

    jonas’: A Chatsecure always sent me otr garbage although I had never otr enabled with any client on that jid …

  382. pep.

    (There are still new clients getting OTR support fwiw)

  383. jonas’

    !XSF_Martin, neat, that’s the first time I hear that. However, that garbage was most certainly not a message you missed.

  384. jonas’

    in contrast to OMEMO

  385. dwd

    pep., libotr is LGPL...

  386. pep.

    dwd, context?

  387. dwd

    > (There are still new clients getting OTR support fwiw)

  388. pep.

    I was thinking about a fork of conversations. That also removed OMEMO support iirc

  389. pep.

    But I'm sorry I don't understand what you want to say

  390. Zash

    pep.: Not all those forks that just did search and replace on everything, including the OMEMO siacs namespace?

  391. dwd

    pep., I mean, not only does OTRv3 have a detailed specification including wire format, but it also has a library that's more easily used, license-wise.

  392. pep.

    Ah my bad it's not a fork of conversations. I was thinking of https://github.com/coyim/coyim

  393. dwd

    ?OTRv23?

  394. dwd

    Anyone?

  395. dwd

    :-)

  396. pep.

    dwd, sure. That's not exactly compatible with how we want to use XMPP in the open world (from what I understand), but that's a direction a set of products can take for sure

  397. ralphm

    ?OTRvTemp?

  398. pep.

    (multiple devices anyone?)

  399. rion

    Are you guys taking about deprecating omemo in favor of otr?

  400. Zash

    I don't think so

  401. dwd

    rion, No.

  402. moparisthebest

    I think deprecating omemo in favor of $some_future_protocol_that_might_be_better ?

  403. dwd

    rion, For two reasons: Firstly, we don't deprecate "in favour of" anything. Secondly, we all agree that OTR is a bit pants.

  404. dwd

    rion, That said, there *is* an OTR XEP, and everyone is, I think, confident it can be implemented by anyone.

  405. moparisthebest

    when you say "implemented by everyone" are you speaking technically or legally ?

  406. pep.

    rion, indeed we're not deprecating in favor of anything..

  407. moparisthebest

    because surely omemo and otr are both capable of being implemented by anyone from a technical perspective right?

  408. dwd

    I said "implemented by anyone", meaning that anyone *could* implement. There is both technical information available and no licensing restrictions upon it.

  409. moparisthebest

    legally, well depending on how licenses are interpreted in a given jurisdiction, or whether encryption is illegal or not, "it depends" for both otr and omemo

  410. moparisthebest

    so I guess you are saying the XSF is in the business of interpreting license legality across jurisdictions around the world, which seems insane to me

  411. rion

    in Russia any encryption unavailable for deciphering by the government is illegal. But anyway I hope nothing was implemented in vain :)

  412. dwd

    moparisthebest, Are you saying the XSF should take the position that all IPR is meaningless?

  413. moparisthebest

    there are probably other reasons to do OMEMO differently, I just don't think licensing of any code should be one of them

  414. dwd

    moparisthebest, And you are very much in the minority there.

  415. rion

    I think those XEPs should have something about availability for government :)

  416. moparisthebest

    sure, otherwise it's illegal in russia and probably china, better remove TLS too since not everyone can implement it

  417. moparisthebest

    /sarcasm (just to be clear :) )

  418. rion

    we just need some xeps how to properly implement backdoors on servers

  419. moparisthebest

    I do hate how all this looks to an outsider, not just this, but we are in a similar position with a lot of protocols aren't we?

  420. dwd

    moparisthebest, No, I don't think so.

  421. moparisthebest

    Q: "how can I add color to my messages in XMPP?" A: "well we had xhtml-im and some things implement it, but it's deprecated, one day we might have a good way to do it"

  422. dwd

    moparisthebest, Oh, deprecation you mean.

  423. moparisthebest

    Q: "how can I do sane group chat in XMPP with mobile etc?" A: "well we have a group chat that doesn't work so well in mobile, but we refuse to improve it, there is a proposal for one that'll probably work good one day but nothing implements it"

  424. moparisthebest

    Q: "how can I do e2e in XMPP?" A: "well any of 4 or so ways, the most widely deployed is now deprecated and we might have a replacement one day"

  425. moparisthebest

    it's almost a theme isn't it?

  426. dwd

    moparisthebest, I've implemented MIX twice. That whole situation frustrates the hell out of me, too.

  427. dwd

    moparisthebest, But XHTML-IM... Yeah, I'm not sorry to see that one go.

  428. moparisthebest

    it seems like XSF is working/waiting on the *perfect* solution, while everyone else trudges along with *good enough*

  429. dwd

    moparisthebest, Also I think I'm probably right if I asserted that OTR is the most widely deployed outside this bubble.

  430. rion

    xhtml-im was good. maybe not that good as markdown but good anyway.

  431. moparisthebest

    rion, as has been pointed out countless times, we don't have anything resembling a markdown XEP :)

  432. dwd

    rion, Yes, except literally every client that implemented it had a security issue relating to it.

  433. moparisthebest

    (also markdown doesn't support coloring)

  434. Zash

    markdown is a html superset, therefore it also sucks

  435. dwd

    moparisthebest, Honestly, does anyone care about colouring? I mean, during the whole discussion I think Ge0rG mentioned it about source-code highlighting in messages, which is pretty niche.

  436. moparisthebest

    also I understand the whole xhtml-im thing and even agree with it, just pointing out how all of these things must look to an outsider

  437. rion

    dwd: well I filtered it in iris. everything but css styles which made a lot of fun to filter out =)

  438. Zash

    moparisthebest: everything is terrible

  439. dwd

    rion, "fun" is not what I want in security-sensitive code. :-)

  440. moparisthebest

    I was trying to decide if I was more frustrated with MUC/MIX or e2e, and I guess it's gotta be MUC/MIX because at least the (deprecated) e2e has deployed running code :)

  441. Zash

    So, who wants to cp xep-0071.xml inbox/xhtmlim-but-better.xml ? Link Mauve?

  442. rion

    I understand that but when on 1st april you inject a style which put a group chat up side down it looks awesome :)

  443. rion

    for everyone ))

  444. dwd

    moparisthebest, I've argued before that I'm concerned we may have gone in a bad direction with MIX.

  445. Link Mauve

    Zash, sure.

  446. dwd

    moparisthebest, I joke that I've lost two jobs due to MIX, and I'm not entirely exaggerating either.

  447. rion

    inbox/xhtmlim-this-time-serous.xml works better ;-)

  448. dwd

    We did that joke, I think.

  449. moparisthebest

    any better time to try and fix it than now maybe dwd ? :)

  450. dwd

    rion, https://xmpp.org/extensions/xep-0402.html

  451. Zash

    XHTML-IM 2: Electric Boogaloo

  452. dwd

    moparisthebest, Yeah, lots of good times, like when I'm not swamped by both work and taking on too much from fastenings.

  453. flow

    dwd, you lost jobs due to MIX?

  454. dwd

    flow, As I say, it's something of an exaggeration.

  455. dwd

    flow, But my last job fell to pieces in part because of MUC vs MIX, and the difficulty in doing MIX without any client implementations.

  456. dwd

    flow, The other one was more that the project I was working on - with MIX in both client and server - got canned and everyone else left, so eventually I did too.

  457. dwd

    flow, But had MIX been widely deployed in, erm, March last year, I'd probably still have the job I had then.

  458. flow

    I see. And I assume the resources (people, money, bitcoin, …) to implement MIX where not available?

  459. moparisthebest

    maybe we should have a new business rule, that if an experimental xep doesn't have a single complete implementation in 7 years it's moved to deprecated/historical or something

  460. rion

    what if MIX didn't exist and had to be designed again. would it go as an extension to MUC instead of completely separate protocol?

  461. flow

    Link Mauve, do you have stats from jabber.fr about the current usage of e2ee in xmpp? something like x% of the messages of the past 30 days where encrypted with y?

  462. flow

    https://stats.jabberfr.org/d/000000002/jabberfr?orgId=1&fullscreen&panelId=36&from=now-7d&to=now is not really helpful to get an idea how widespread which encryption scheme is

  463. Link Mauve

    flow, I do have stats of that at https://stats.jabberfr.org/

  464. Link Mauve

    Hmm, how do you do queries to Prometheus again?

  465. Link Mauve

    flow, seems like out of all of the encryption methods, OTR is by far the most popular.

  466. moparisthebest

    rion, the 2 I can pull up immediatly are https://xmpp.org/extensions/inbox/muc-light.html and https://docs.ejabberd.im/developer/xmpp-clients-bots/extensions/muc-sub/

  467. moparisthebest

    I think Xabber has their own, can't recall if it was submitted or not

  468. moparisthebest

    I could be mistaken here, but I'm under the impression Xabber has put the most thought into "how can I make this work on the trash platform that is iOS", which requires insane measures

  469. rion

    > Occupants cannot hide behind nicks. Their real bare JID is always visible to everyone I like this (no sarcasm)

  470. moparisthebest

    have you noticed there are virtually no useable iOS XMPP clients? and that's even just for regular private XMPP, it's worse for MUCs

  471. Daniel

    muc/sub is mainly an attempt to fix push with the rest of it being an aftertought that didn’t really felt like anyone before me had implemented it

  472. Daniel

    and if you just look at who else has custom shit to fix the push issue tigase is also on the list

  473. rion

    > No exchange of any <presence/> stanza inside the room. online/offline status still has to be somehow reflected

  474. Link Mauve

    Hmm, Error executing query: parse error at char 40: range specification must be preceded by a metric selector, but follows a *promql.AggregateExpr instead

  475. Link Mauve

    sum(prosody_message_e2ee{type="plain"})[30d] doesn’t seem to work.

  476. larma

    sum_over_time(prosody_message_e2ee{type="plain"}[30d]) ?

  477. Link Mauve

    Nor does taking the sum out.

  478. Link Mauve

    flow, 25543 plain messages, vs. 12286 encrypted ones.

  479. flow

    Link Mauve, I assume plain only includes message stanzas with <body/>?

  480. Link Mauve

    Out of those, 9742 OTR, 1917 OMEMO, 626 legacy OpenPGP, 0 OX.

  481. Link Mauve

    flow, messages with <body/> which don’t have one of the encrypted payloads too.

  482. flow

    Link Mauve, thanks

  483. flow

    Maybe you could make a graphana graph with sum_over_time?

  484. Link Mauve

    The source code of this module is here: https://hg.prosody.im/prosody-modules/file/70e5bab388d8/mod_measure_message_e2ee/mod_measure_message_e2ee.lua

  485. Link Mauve

    flow, sure!

  486. Link Mauve

    That could be more useful than the raw data.

  487. dwd

    Wow. I thought OTR might have a slim lead, not that it would have 4.5 times the number.

  488. flow

    dwd, maybe it's just two people heavily using OTR ;)

  489. flow

    Link Mauve, could you further filter this down by unique bare sender JID?

  490. mathieui

    dwd, there are probably bots talking to each other using OTR, to be fair

  491. Link Mauve

    flow, I don’t have this information available.

  492. flow

    Link Mauve, so one would need to modify the prosody module to count not only the stanzas but also the unique senders per encryption scheme

  493. Zash

    that sounds suddenly a lot more complex

  494. flow

    not sure if this would violate your privacy policy

  495. mathieui

    flow, that would probably suck privacy-wise and the prometheus efficiency would be awful

  496. mathieui

    one time series per JID is terrible.

  497. rion

    muc-sub is nice. if a server will still show the unavailable participant like he is still in muc but offline and with working private messaging with such a contact, that would be perfect.

  498. flow

    mathieui, it's not a time series per JID, but a time series per unique JID/encryption scheme

  499. flow

    I think

  500. mathieui

    which is worse :p

  501. flow

    something like "in the last 1h X unique jids used encryption Y"

  502. flow

    I don't see how this is worse to what you already do

  503. flow

    (performance wise)

  504. Link Mauve

    flow, so Prosody would also have to remember and flush out unique JIDs? :/

  505. Link Mauve

    That’s starting to get expensive.

  506. rion

    moparisthebest: I would definitely implemented muc-sub if it ever comes to a real xep and wrt to my notes above.

  507. Zash

    flow: what it currently does is just keeping simple incrementing counters

  508. Link Mauve

    flow, the graph with sum_over_time() is seriously slowing down Prometheus.

  509. Link Mauve

    It’s using 100% of the CPU for quite some time. :/

  510. Link Mauve

    9s of 100% CPU just for 1h.

  511. Link Mauve

    1h for the past seven days.

  512. Link Mauve

    mathieui, we’re losing values from before ~eleven days ago, is it a Prometheus configuration issue?

  513. mathieui

    we might want to purge the database

  514. mathieui

    I haven’t done anything serious prometheus since 2 years ago

  515. dwd

    rion, muc-sub is almost MIX, except that MIX delivers messages as traditional message stanzas, and presence likewise, whereas muc-sub doesn't do that.

  516. dwd

    rion, MUC Light is basically a MUC butchered into not being presence-driven. It works, but it's also a dead end.

  517. Daniel

    And minus mix pam

  518. moparisthebest

    did the Xabber guys ever end up actually proposing somehing?

  519. moparisthebest

    that at least has running code...

  520. dwd

    moparisthebest, Yes, running code is good. Although it does have a tendency to risk entrenching a bad solution, so there's that too.

  521. moparisthebest

    yep

  522. dwd

    moparisthebest, I mean, if my employer imposes its running code on you, you'd really hate some of the stuff that's been done for expediency.

  523. moparisthebest

    oh no I'm well aware of "seems to work, ship it!", unfortunately

  524. dwd

    moparisthebest, It's why I try to write specs on what we *should* have done...

  525. Zash

    What came first, the spec or the implementation?

  526. dwd

    Zash, For almost everything I've done that I'm happy with, spec->implementation->spec.