XSF Discussion - 2018-03-03


  1. Syndace

    Following recent discussions about an alternative OMEMO implementation (licensed under a more permissive license than GPL), I want to inform you, that I am currently revisiting my python implementation and I am very happy with what I'm seeing. My implementation uses pynacl (python bindings to the libsodium library), is licensed under MIT and was written from scratch not depending on libsignal. The only puzzle piece I am missing is XEdDSA, which I have a hard time implementing myself. (I can't even tell you why, the algorithm is not too complex but somehow it just won't work :D) I expect the library to be ready for release about one week after I can get XEdDSA to work.

  2. Ge0rG

    Syndace: it would be great to have more client developers on board, Gajim and poezio maybe?

  3. Zash

    Has the XEP moved forward on that issue yet?

  4. Ge0rG

    Are the implementations out there already using the XEP namespace?

  5. Syndace

    Ge0rG, what do you mean "on board"? As soon as it's released I'm happy about anyone contributing or using the lib, whether the big clients will actually use it is not in my power to decide, but I'll be happy to adjust things to their likings.

  6. Syndace

    Also just to clarify, I'm not doing any xmpp stanza specific stuff, I'm only doing the crypto (and a bit of the wire format).

  7. Ge0rG

    Syndace: I'm not closely following the development, but AFAICT there are two different OMEMO libraries in python

  8. Syndace

    Ge0rG, AFAIK the other one is just a binding to libsignal and not actively maintained

  9. Syndace

    ...and gpl aswell

  10. Ge0rG

    Syndace: either way, it might be a good thing to plug on the xmpp Newsletter

  11. Syndace

    Oh, there is a newsletter... :D

  12. pep.

    What's the issue with GPL, it's not like it wouldn't work with gajim or poezio already. The distribution channel would have to be different that's it

  13. pep.

    Syndace: it's all new!

  14. Syndace

    GPL is a thing of taste, we had the discussion in jdev@ a few days ago. It's more about all the available implementations using libsignal, thus OMEMO can't really move forward.

  15. daniel

    it's awesome that there will be a non-gpl library soon. however gpl hasn't really stopped omemo thus far. i think by now the number of omemo implementations outnumbers the number of jingle file transfer implementations

  16. moparisthebest

    pep.: Whiny people who hate the gpl seem to be the only problem with the gpl :)

  17. moparisthebest

    And yes that, seems people who do the actual work don't care, so just ignore the noise

  18. Zash

    Counter-example: Swift?

  19. SaltyBones

    swift doesn't have omemo because of gpl?

  20. Zash

    Disregarding people who can't use GPL code for legal reasons as "whiny peolpe"..

  21. marmistrz

    Zash: can't they simply move to GPL?

  22. Zash

    It is GPL

  23. Zash

    The issue was probably more complicated but I don't know all about that

  24. Syndace

    How do you send private messages in a MUC o.O?

  25. Syndace

    That's the first time I saw that :D

  26. SaltyBones

    depends on your client ;)

  27. SaltyBones

    maybe you don't ;)

  28. Syndace

    Conversations atm?

  29. Syndace

    I'll just answer for everyone here: I don't have a channel or anything for my OMEMO hacking, it's just something I did on my own when I was bored :D

  30. SamWhited

    Syndace: long press the persons avatar enters the private message mode

  31. Syndace

    But if anyone wants to talk about it, feel free to create a small muc or pm me

  32. Syndace

    SamWhited, ah thanks

  33. j.r

    How can I make something like TTL for xmpp messages?

  34. daniel

    I think it's pretty rare that a stanza has more than two hops...

  35. Zash

    MUC

  36. daniel

    Right

  37. daniel

    I was about to say. Maybe four if you count muc

  38. Ge0rG

    Maybe the question is about actual time, not hop count?

  39. Zash

    -xep amp

  40. Bunneh

    Zash: Advanced Message Processing (Standards Track, Draft, 2005-11-30) See: https://xmpp.org/extensions/xep-0079.html

  41. Zash

    That has expiry, right?

  42. Zash

    But does it have implementations?

  43. Ge0rG

    https://xmpp.org/extensions/xep-0079.html#conditions-def-expireat

  44. j.r

    > Maybe the question is about actual time, not hop count? Yes

  45. daniel

    Amp is not a good xep if you want to implement self destructible messages

  46. j.r

    > https://xmpp.org/extensions/xep-0079.html#conditions-def-expireat Does this also work with Clients? I mean do they delet the message after the expiration?

  47. jonasw

    probably not

  48. daniel

    Of course not.

  49. daniel

    Only works in proprietary systems

  50. j.r

    Yes and that's the thing I would have how can a already deliverd message be destroyed on the client?

  51. daniel

    Just make up your own extension

  52. Zash

    <clippy> It looks like you want to implement DRM. Please don't.

  53. daniel

    I lost count on how many times I implemented that

  54. j.r

    > <clippy> It looks like you want to implement DRM. Please don't. No I just want self destroying messages like in Telegram

  55. jonasw

    that’s DRM :-)

  56. jonasw

    j.r, self-destructing messages don’t really work in a federated system.

  57. jonasw

    they don’t even really work in a non-federated non-proprietary system

  58. jonasw

    but in a federated, non-proprietary system there’s no chance.

  59. Zash

    It's incompatible with universal turing machines under the control of users.

  60. jonasw

    yeah

  61. Zash

    Just like DRM

  62. Zash

    Logical impossibility.

  63. jonasw

    Zash, how about Secure Enclave? :>

  64. daniel

    jonasw: depends on your definition of work

  65. jonasw

    daniel, "is an actual security device which can be relied upon"

  66. Zash

    jonasw: I don't know what you are talking about and I probably don't want to.

  67. j.r

    OK so it isn't possible in Xmpp right?

  68. Zash

    And don't mention homomorphic computation!

  69. daniel

    j.r: yes it is.

  70. daniel

    But not in jabber

  71. jonasw

    Zash, let me ruin your day: that fancy feature in intel processors (SGX) where you can run stuff in isolation from the OS. nice for cloud users, because they can be sure that their stuff is untouched by the provider via remote attestation and whatnot. but in the end it’ll probably be used to make DRM (more) watertight.

  72. j.r

    > j.r: yes it is. > But not in jabber OK bad to know

  73. jonasw

    you can of course invent something and try to make clients implement it. but if a new (or very old) client doesn’t implement it, tough luck.

  74. jonasw

    not to mention actively evil clients

  75. j.r

    > you can of course invent something and try to make clients implement it. but if a new (or very old) client doesn’t implement it, tough luck. > not to mention actively evil clients Ok

  76. jonasw

    but an actively evil telegram client or a thing which screencaps the device/whatever would do the same

  77. jonasw

    self-destructing messages is bullshit

  78. Zash

    You can have an <please-delete-me after="timestamp"/>, but you can't be 100% sure that it'll be respected

  79. Zash

    If you are ok with that then go for it

  80. jonasw

    yeah, that

  81. Zash

    Altho that applies to all protocol

  82. j.r

    > You can have an <please-delete-me after="timestamp"/>, but you can't be 100% sure that it'll be respected > If you are ok with that then go for it But that's possible?

  83. Zash

    Thanks to the X in XMPP, yes

  84. Zash

    And with caps, you can know if other clients claim to suppport it

  85. Zash

    But with MAM and carbons...

  86. jonasw

    you’d have to check that all the peers clients and the peers MAM support it.

  87. Zash

    And your own MAM

  88. jonasw

    and then hope that they don’t come online after you sending t he message with another client which supports MAM but not your fancy deletion protocol

  89. jonasw

    yeah, that too

  90. Zash

    and your own other clients

  91. jonasw

    lots of moving parts

  92. Zash

    So, not really something that can reliably be deployed in an open system

  93. j.r

    OK thank you

  94. Kev

    Deeply offtopic, but - if installing a Linux desktop these days, does one bother with swap? 16GB RAM.

  95. jonasw

    Kev, depends on whether you want to be able to do suspend-to-disk

  96. jonasw

    if not, probably not. killing whatever is eating 16 GiB RAM is *probably* better than freezing your system while trying to swap.

  97. Kev

    Ta.

  98. jonasw

    especially if you do development work. I always try to remember to swapoff -a just in case I create memleak.

  99. jonasw

    *create a memleak

  100. Kev

    Just put an SSD in my games laptop and thought I might as well dual-boot Ubuntu. So let's see how badly this wrecks booting Windows :)

  101. Zash

    Swap enabled but swappiness tuned down

  102. jonasw

    (I once had a memleak which filled memory *so* fast that I didn’t realize it was a memleak and thought it was just killing the GPU (some graphics stuff). took me a while to realize...)

  103. Kev

    Good show.

  104. Zash

    IIRC the thing is that without swap, you get the OOM killer as soon as memory is filled

  105. jonasw

    yeah, that’s a feature if memory isn’t going to be filled unless by accident

  106. Zash

    s/by accident/by hip electron app of the month/

  107. jonasw looks at free

  108. pep.

    Kev: I don't have swap tbh, but I'm not a RAM eater

  109. jonasw

    Kev, okay, add some swap. I am currently at 21 GiB used and I don’t even know how.

  110. jonasw

    much of it seems to be firefox

  111. Zash looks at htop

  112. Kev

    Too late now, OS is half installed :(

  113. Zash

    Why is all my RAM used?

  114. jonasw

    ah well

  115. Zash

    WebKitWebProcess 25..38

  116. Zash

    And Firefox

  117. jonasw

    Kev, yeah, it’ll probably be fine. and if it isn’t, you can still add a swapfile

  118. pep.

    Also btrfs. I would need to have a separate partition not as a volume like my rootfs or homefs

  119. Zash has vm.swappiness=10 now apparently

  120. Zash

    I read some long rant that convinced me that running without swap was bad and swappiness=0 was bad

  121. Ge0rG

    pep.: you should stop whatever you are doing and migrate away from btrfd

  122. Ge0rG

    *btrfs

  123. marc

    Ge0rG, are you going to respond to Kevs mail regarding 401?

  124. Ge0rG

    marc: the one about using data forms?

  125. marc

    Ge0rG, the last one from 28.02

  126. marc

    ping

  127. Ge0rG

    marc: I came to the conclusion that Kev is right and that data forms are the right way to go

  128. marc

    Ge0rG: okay, if everybody is fine with it let's merge my two PRs?

  129. Ge0rG

    marc: yes please. Cc jonasw

  130. Ge0rG

    marc: yes please. Cc jonasw

  131. Ge0rG

    marc: yes please. Cc jonasw

  132. marc

    Ge0rG: did you write the last message two times?

  133. moparisthebest

    j.r: is there any protocol where self destructing messages work?

  134. Ge0rG

    marc: no, it looks like a bug in yaxim

  135. moparisthebest

    Ie that prevents even something simple like a picture of the screen

  136. marc

    Ge0rG: okay, because C shows it two times, Gajim only once

  137. moparisthebest

    Because you could implement it in xmpp the same way, and it'd work with the same level of security, that is, none

  138. Ge0rG

    And yaxim shows it three times. 🤦‍♂️

  139. Zash

    I see three, last one delayed

  140. Zash

    Out of order too

  141. marc

    strange

  142. Ge0rG

    Could somebody pm me the raw xml please

  143. Ge0rG

    Oh, looks like a race condition during stream resumption, where sending a message right before <resumed/> will duplicate it

  144. Ge0rG

    And then it also becomes an "offline message" in yaxim, causing a third transmission

  145. Zash

    It doesn't actually get sent on the wire before <resumed/> tho?

  146. Zash

    orwait

  147. Ge0rG

    Zash: it's sent after <resume>

  148. Zash

    Between <resume> and <resumed> be dragons.

  149. Ge0rG

    Yes. Plenty of them

  150. Zash

    It's nice being the server in that case.

  151. Ge0rG

    Zash: because you can just queue messages as long as there is a zombie session?

  152. edhelas

    https://petermolnar.net/instant-messenger-hell/