XSF Discussion - 2018-03-14


  1. pep.

    https://gultsch.de/ daniel s/in moving/is moving/

  2. edhelas

    MattJ yup. But I'd also like to generalize to pretty much everything we have in XMPP

  3. goffi

    daniel: just seen that conversations enable OMEMO by default, what happens if the other client doesn't implement it?

  4. jonasw

    for those of us who implement/implemented voice calls: http://oaktrust.library.tamu.edu/handle/1969.1/ETD-TAMU-2011-05-9116

  5. fippo

    jonasw: how does that compare to opus with CBR? (something the wire folks contributed back to the webrtc.org lib)?

  6. jonasw

    fippo, I have no idea

  7. jonasw

    someone who may work on jingle voice in jabbercat has researched that stuff

  8. jonasw

    kudos to them for even thinking about timing sidechannels

  9. jonasw

    (and with research I mean "looked for papers", not "written that paper")

  10. daniel

    > https://gultsch.de/ daniel s/in moving/is moving/ pep.: thanks

  11. goffi

    daniel: ^

  12. daniel

    ?

  13. goffi

    [07:33][goffi] daniel: just seen that conversations enable OMEMO by default, what happens if the other client doesn't implement it?

  14. daniel

    it wont be able to decrypt the message

  15. goffi

    daniel: conversations won't send it unencrypted then?

  16. daniel

    not by default

  17. daniel

    you can of course switch to unencrypted manually

  18. goffi

    daniel: you have a warning or something obvious so people know how to do it?

  19. daniel

    nope

  20. daniel

    (unless you don't publish any keys at all)

  21. goffi

    looks like you're breaking compatibility

  22. Zash

    And keys are published by ... default ?

  23. flow

    goffi, i'd say it impedes communication with certain clients, not really a compatiblity issue

  24. flow

    I wonder if the situation could be improved a bit if the receiving client informs the sending that he doesn't the support the encryption mechanism, possibly based on EME

  25. flow

    Is there a way to send outgoing messages from the bare JID to conceal the resource?

  26. daniel

    flow, well detection is not really the issue. downgrade attacks are

  27. flow

    daniel, how do you detect it (reliable)?

  28. goffi

    flow: OMEMO is experimental, not an official standard yet. It's forcing it's use except if user change default which is not obvious to apparently. So yes it's breaking compatibility. Popular clients like Movim are not implementing it. It sounds like a terrible idea to me.

  29. daniel

    or let me repharse; we have mechanism that would allow us to detect under certain conditions; however that doesn't seem like a problem worth solving because downgrades

  30. flow

    daniel, I can see how that way is appealing from a pragmatic pratical point of view, i'm mostly interested thinking about potential solutions how a modular/extensible federated network could deal with multiple encryption schemes with minimal interoperability issues

  31. daniel

    flow: well because of the +notify thing in the Disco features we do know if a client supports omemo

  32. daniel

    If we can access disco

  33. daniel

    Speaking from a purely technical perspective

  34. daniel

    Assuming the other one is online and has presence subscription

  35. MattJ

    I was going to say that still allows a server MITM to strip that feature from disco

  36. MattJ

    But then a server may also unpublish keys

  37. flow

    MattJ, not if you always unconditional send omemo

  38. flow

    not sure what conversation's omemo-by-default does

  39. MattJ

    if you've communicated before?

  40. daniel

    MattJ, of course. that's why i'm not doing this

  41. flow

    daniel: is there a knob to turn off omemo-by-default?

  42. daniel

    not yet. i'm still on the fence whether this is a good idea

  43. flow

    daniel, so just to make sure I understand: If there is no such knob, I won't be able to communicate with someone using conversations if I use a client which does not support omemo?

  44. jonasw

    (and you have ever published keys)

  45. jonasw

    (which conversations does by default)

  46. daniel

    oh sorry. currently you can turn it off on a per conversation basis

  47. daniel

    the encryption/lock icon doesn't go away

  48. daniel

    just omemo is selected as default instead of none

  49. flow

    daniel, if the remote has published omemo keys, or always?

  50. daniel

    there isn't a app wide button to change the default for all conversations

  51. daniel

    flow, always

  52. jonasw

    what

  53. jonasw

    so how do you send encrypted messages if the remote hasn’t published keys?

  54. flow

    ahh ok, so a common flow would be that converstations send an omemo message, recipient replies "sorry, no can do", conversation user turns off omemo for that conversation

  55. daniel

    it will pop up the error dialog that it can't find keys

  56. flow

    that flow will always be possible?

  57. jonasw

    m(

  58. daniel

    > ahh ok, so a common flow would be that converstations send an omemo message, recipient replies "sorry, no can do", conversation user turns off omemo for that conversation that's how i imagine it. yes

  59. jonasw

    I’m really looking forward explaining to family how to that

  60. flow

    I think I could life with that

  61. jonasw

    that class of family for whom conversations is "ohhhh, you mean that thing on my phone"

  62. goffi

    daniel: does use need to do that on each new discussion with the same user ?

  63. goffi

    user*

  64. flow

    but on the other hand, that also allows for downgrade attacks

  65. goffi

    daniel: does user needs to do that on each new discussion with the same recipient ?

  66. daniel

    like i said; it's only about changing the defaults

  67. daniel

    not about forcing omemo

  68. jonasw

    alternatively, I’ll make our MUCs non-members-only

  69. jonasw

    that should do the trick too

  70. daniel

    goffi, no conversations are persistent across the life span of the app

  71. daniel

    there is no such thing as a 'new discussion'

  72. jonasw

    my understanding was that omemo would only be enabled when conversations was able to discover keys for all participants, which I could agree to. but this is really, really bad.

  73. goffi

    OK, that's better than I imagined

  74. goffi

    but I'm still worried that it's not obvious to change as you said previously. And what if recipient use OX instead? I personnaly prefer OX over OMEMO

  75. daniel

    lol

  76. goffi

    lol?

  77. daniel

    we can think about that when people have implemented ox

  78. flow

    true

  79. daniel

    I feel like I'm repeating myself. But the change is just about the default. So if previously a lot of people had to tell their contacts to _enable_ omemo for a specific conversation some other people now have to tell their contacts to disable omemo

  80. daniel

    And my argument is that outside the xmpp developer bubble a lot less people now have to ask their friends to change that

  81. jonasw

    daniel, I don’t see why you would default to enabling omemo if the contact not even has keys published

  82. goffi

    The recipient may not even know that there is a message

  83. goffi

    then "you have to disable OMEMO" "How?" "I have not idea"

  84. goffi

    no*

  85. daniel

    wait. you don't implement eme? :-)

  86. goffi

    clients not implementing OMEMO may definitely not implement eme indeed (which is not more standard than OMEMO by the way).

  87. daniel

    Conversations will add a clear text body if it detects the other party has at least one client online that doesn't support omemo

  88. daniel

    i was kidding about the eme

  89. daniel

    i'm not a fan of eme

  90. daniel

    for exactly that reason

  91. daniel

    bad clients don't implement it

  92. daniel

    good clients probably have the encryption anyway

  93. goffi

    daniel: it's not a question of bad or good, it's a question of priorities, which may differs from yours.

  94. goffi

    I have not implemented eme and I'm planning to, but Pubsub and blog stuff are more important to me.

  95. goffi

    and we are not all full time devs. Thanks to avoid insulting client developers.

  96. edhelas

    daniel there's no bad or good clients, Pidgin supports OMEMO, it's a good XMPP client for you ?

  97. MattJ

    daniel, what is the error dialog like when there are no keys? Does give an option to disable OMEMO for that contact?

  98. daniel

    MattJ, not yet. but there will be one if you previously haven't successfully send an omemo message

  99. MattJ

    That would be great

  100. Ge0rG

    OMEMO used to be a little UX nightmare. Now it has become the doom of Conversations :>

  101. MattJ

    I'm in favour of increasing security. End-to-end encryption with trivial downgrade attacks from the entity it's protecting against is... well, pointless

  102. edhelas

    can't wait for Conversations to support SIMS, to make it a good client again :3

  103. MattJ

    But I'm not in favour of making our lives even harder in increasing adoption of XMPP though

  104. daniel

    sims was planed for 2.0 - but it is actually a lot harder than I thought

  105. goffi

    I'm not against E2E encryption by default either, but I'm worrying about compatibility issues. And OMEMO is not a standard yet.

  106. daniel

    so it has to wait for 2.1 or 2.2

  107. Ge0rG

    I can not implement E2EE for *ehm* Regulatory Compliance Reasons.

  108. Ge0rG

    daniel: which OMEMO namespace is Conversations using currently?

  109. daniel

    Ge0rG, the one in the XEP :-) :-)

  110. edhelas

    daniel oh, good news :)

  111. Ge0rG

    > This specification defines the following XMPP namespaces: > - eu.siacs.conversations.axolotl Uhm. 🤦

  112. edhelas

    Ge0rG all the cool kids in town have their own client name in XMPP namespaces now

  113. Ge0rG

    But I want to be a cool kid too! Can I invent my own encryption protocol and have my name in the namespace? Like `pro.lukas.georg.doublerot13`?

  114. jonasw

    hah

  115. daniel

    probably; if you start the marketing campaign and get people to implement it

  116. Ge0rG

    I can start by adding this to all my messages: `<encryption xmlns='urn:xmpp:eme:0' namespace='pro.lukas.georg.doublerot13'/>

  117. jonasw files bugreport

  118. jonasw

    "rot13 undefined for emoji"

  119. Zash

    Let me tell you about my latest invention: ROT1114111

  120. Ge0rG

    jonasw: double rot13 WFM

  121. jonasw

    "but I don’t want to break abstraction by special-casing double-rot13!!!"

  122. flow

    layers!

  123. Maranda guesses he'll call someone Tr0eT from now on.

  124. daniel

    ,oO(not sure thus is how double rot13 works)

  125. Maranda

    , oO(who said it's "double")

  126. Maranda

    🤣 🤣

  127. edhelas

    regarding the multiplication of E2E standards in XMPP I'm proposing a new XEP to cover everyone's use case, XEP-xxxx: PLAIN over E2E

  128. Maranda

    A Rot26 Ge0rG is rather boring and less Tr0eT'ling

  129. Ge0rG

    edhelas: that's kind of compatible to double rot13

  130. pep.

    Need another XEP to bridge the two

  131. dwd

    In entirely unrelated news, I'm attending the MLS BOF next week.

  132. Tobias

    Enjoy

  133. Zash

    That time of the 1/3year again?

  134. jonasw

    which time?

  135. Zash

    IETF time

  136. Zash

    3 per year

  137. dwd

    Also, reading back, double-XOR is 8-bit clean, and has the useful property that it always results in valid UTF-8, if you're looking for a decent encryption algorithm. Just ensure the key is from a suitable random source.

  138. dwd

    Zash: Yes, from this weekend.

  139. Zash

    Heh, IETF 101 :D

  140. dwd

    Zash: If you miss it, the later sessions won't make any sense.

  141. Zash

    Anyone feel like drafting an XMPP variant of https://tools.ietf.org/html/draft-ietf-acme-email-tls-03 ?

  142. Zash

    Actually why is that one not SRV-generic?

  143. pep.

    Zash: that means SRV-ID? :u

  144. pep.

    Heh

  145. dwd

    I'd not seen that. And yes, but I don't know if we can persuade Let's Encrypt to support it - but I can put tendrils out next week.

  146. Zash

    pep.: Highly unlikely, not even email uses that.

  147. Zash

    dNSNames everywhere and only

  148. Ge0rG

    > double-XOR is 8-bit clean, and has the useful property that it always results in valid UTF-8 Doesn't that depend on what you XOR with?

  149. intosi

    Ge0rG: no. If you xor it with 7-bit values, it will still be 8-bit clean :)

  150. Zash

    If you XOR with the same key twice...

  151. intosi

    Yup.

  152. intosi

    Really doesn't matter which bitsize your values are.

  153. Ge0rG

    I could XOR it with 0x00.

  154. Zash

    Not sure if *wosh*

  155. jonasw

    Ge0rG, everybody knows xor with 0x00 is unsafe!

  156. Ge0rG

    intosi: "Doesn't that depend on what you XOR with?" -- "no. If you xor it with 7-bit values," -- so that actually means "yes"?

  157. intosi

    No.

  158. intosi

    Or, "yes, it doesn't depend on"

  159. intosi

    For varying interpretations of the words "no" and "yes."

  160. Ge0rG

    Yes. We should stop that now before heads start exploding.

  161. Zash

    yes xor no

  162. intosi

    true

  163. Ge0rG

    Zash: that's boring. The true fun starts at `yes XOR File_Not_Found_Exception`

  164. jonasw

    XAND!

  165. dwd

    jonasw: XAND - Like an AND, but if both inputs are true then false?

  166. dwd

    Zash: Read through that email acme draft. I'll chat with Alexey about it on Saturday, and see if I can persuade him into knocking out an XMPP version.

  167. Zash

    dwd: Thanks.

  168. dwd

    FWIW, I think it ought to be doing sRVName in this instance.

  169. rion

    is here any dino.im user? I'm trying to figure out if it worth it to add dino client detection in Psi.

  170. Zash

    dwd: I saw mention of SRV-ID in the text

  171. Zash

    dwd: I do wonder if it would be sensible to factor out some generic SRV verification

  172. dwd

    Oh, indeed.

  173. dwd

    And yes, generic sounds awfully good to me, but I suspectit's impossible without immediate/direct TLS in all cases.

  174. Zash

    "How internet-drafts multiply"

  175. dwd

    BTW, anyone know what the state of the art client for Mac is?

  176. Tobias

    Monal, Swift 4.0rc6, …? :)

  177. Tobias

    Movim maybe, if it has a Mac version. edhelas, does it?

  178. Zash

    Isn't it a web client?

  179. Tobias

    i thought it had destkop wrappers :)

  180. Tobias

    Zash, it has a linux version https://movim.eu/#apps

  181. edhelas

    yeah but removed some of them recently, wasn't able to package Electron easily for Windows and Mac

  182. Tobias

    wasn't able to package Electron? I thought that was it's one purose, be able to package easily on desktop platforms

  183. Tobias

    wasn't able to package Electron? I thought that was its one purose, be able to package easily on desktop platforms

  184. edhelas

    ahah, you fool, you need a sh**load of dependencies and actually run scripts on MacOS (and I don't have a Mac) to package .dmg and stuff like that

  185. Tobias

    ahh

  186. edhelas

    I don't have time for that

  187. Tobias

    I understand

  188. edhelas

    https://www.npmjs.com/package/electron-packager

  189. edhelas

    also I have a personnal issue with the JS ecosystem and NPM

  190. edhelas

    but that's purely personnal

  191. goffi

    edhelas: you're not the only one

  192. Tobias

    understandable, who doesn't have an issue with the JS ecosystem

  193. Kev

    Which JS ecosystem?

  194. intosi

    Kev: all of them, in varying degrees.

  195. Zash

    There can be only one!

  196. daniel

    Are there any Screenshots for swift 4.0?

  197. Tobias

    I can make one but it's probably not the usual setup for most users

  198. Kev

    https://www.dropbox.com/s/bn6rpzjqhroebgk/Screenshot%202018-03-14%2010.23.40.png?dl=0

  199. Kev

    Actually, let me sort out a different one.

  200. Kev

    https://www.dropbox.com/s/ltp23stece5gd66/Screenshot%202018-03-14%2010.25.14.png?dl=0 That's got the chat window in. Roster is unchanged since 3.0 (on http://swift.im/ ) I think.

  201. goffi

    nice idea the avatar on the left

  202. daniel

    Kev: thanks. can I assume the security label stuff is hidden if the server doesn't support it? Because that's pretty confusing for anyone not working for a three letter agency

  203. Tobias

    yes...it is

  204. Tobias

    it doesn't show for me at least when logged into my servers account

  205. Seve/SouL

    I love how you can make a grid in Swift

  206. Ge0rG

    Swift the IM client?

  207. Seve/SouL

    Yup

  208. Ge0rG

    what's a grid, then?

  209. Seve/SouL

    Ge0rG, you can make a grid with your open tabs/windows. I cannot share a screenshot right now, I hope Kev or Tobias can help.

  210. Ge0rG

    Ah, interesting. Is that something you need for a huge Cyber Threat Display?

  211. jonasw

    Ge0rG, go back to work ;-)

  212. Steve Kille

    Ge0rG: military users like to have lots of tabs, so they can monitor many chats at once, with keyword highlighting to draw attention to things they care about. I have been told of an operator with 64 rooms displayed

  213. Seve/SouL

    It's a feature I never thought I would see in an XMPP client (it feels super niche) but I love it

  214. Seve/SouL

    You need a big screen for that :D

  215. jonasw

    i want a screenshot

  216. Steve Kille

    I find it helpful. I run with a mere 2x2 grid, but it helps me wathc and participate in a few things at once

  217. Seve/SouL

    Yes, as I said, I'm all for that feature :)

  218. Steve Kille

    just installing dropbx to share a screenshot

  219. jonasw

    why would you need dropbox for that? :-O

  220. MattJ

    So Swift doesn't do HTTP upload yet? :)

  221. jonasw

    I nede a script which gives me an upload slot so that I can share it to folks

  222. MattJ

    Ha

  223. jonasw

    and a hack into mod_http_upload_external which allows admins to create arbitrary-size slots :)

  224. Ge0rG

    jonasw: you share HTTP upload slots?

  225. Steve Kille

    OK - so what is an easy way to share a file. Dropbox is not impressing me

  226. jonasw

    Ge0rG, not yet :)

  227. jonasw

    Steve Kille, imgur.com?

  228. jonasw

    Ge0rG, but I find it an appealing idea in this case here

  229. Tobias

    yup, imgur.com is pretty straightforward

  230. Steve Kille

    https://www.dropbox.com/s/lb8f3elyxj1ym86/grid.bmp?dl=0

  231. Steve Kille

    ignore that

  232. goffi

    hum, we can split screen in our desktop/android frontend, doesn't sound like same feature, but it's trivial to do 2x2 grid (64 is more tricky :-/)

  233. intosi

    goffi: buy more, bigger screens.

  234. goffi

    intosi: it's not the size, it that you split by hand (it's inspired from blender)

  235. intosi

    Ah.

  236. Tobias

    goffi, windows desktop don't usually support that

  237. Steve Kille

    https://www.dropbox.com/s/o0j7krbgtar7y6u/Screenshot%202018-03-14%2012.43.02.png?dl=0

  238. Steve Kille

    that one works

  239. goffi

    Tobias: it's built in our client, not a desktop feature

  240. Tobias

    ah..ok

  241. jonasw

    neat, Steve Kille

  242. Seve/SouL

    And it's super easy to set them up too

  243. Steve Kille

    Yes - Tobias did a great job with the UI

  244. Link Mauve

    Dave Cridland, what was your RFC for making <session><optional/></session> again?

  245. Zash

    draft-cridland-something-something-session

  246. Zash

    https://tools.ietf.org/html/draft-cridland-xmpp-session-01

  247. Link Mauve

    Thanks. :)

  248. Link Mauve

    It’s now implemented in slixmpp. :)

  249. jjrh

    Steve Kille, Grid is kinda nice actually

  250. jjrh

    Would be a nice feature in gajim actually.

  251. jjrh

    Haven't used swift but vertical tabs is much easier I find (I wish chrome supported this....)

  252. flow

    Guus, friendly reminder regarding https://github.com/xsf/xeps/pull/579#issuecomment-367929778

  253. flow

    Also could you please introduce a stream error specific error conditions so that the stream error receiving entity can disable stream management in subsequent connections, avoiding reconnection loops

  254. flow

    (I'd assume that openfire would probably benefit from it ;))

  255. flow

    *condition

  256. flow

    wait, it's "stream management specific stream error condition"

  257. Guus

    flow, thanks, I will

  258. Guus

    (and Openfire already does, I think)