XSF Discussion - 2019-01-02


  1. erkanfiles

    ralphm: I just finished the minutes for 2018-12-20... Could you check this before I submit? This is my first try...

  2. erkanfiles

    Or anybody else?

  3. Ge0rG

    erkanfiles: I can review as well if you wish. You need somebody to forward them to the lists anyway.

  4. Ge0rG

    (I'm not on board, but on members)

  5. Ge0rG

    > This server could not prove that it is logs.xmpp.org; its security certificate is from xmpp.org *sigh*

  6. pep.

    https://wiki.xmpp.org/web/Main_Page somebody added "Quickstart for developers" on the main page, but it points nowhere. There's also "Modern Login Procedure" that points nowhere. Even if that can be a good idea I vote to remove them while they're empty.

  7. Syndace

    We had a discussion about OMEMO key cross-signing and without giving any further context it seems like revocation is the biggest problem which needs some smart ideas. If we do it the GPG-way we need some sort of revocation-cert. The problem is where to upload the revocation cert to, because a malicious admin could block uploading those or remove them from PEP/whatever.

  8. Wiktor

    Syndace, why is cross signing intermixed with revocations? As far as I understand cross signing is for extending trust to new keys. If the device is not used for some time it's "revoked" automatically in current design already. That'd cover common scenarios like device migration.

  9. Syndace

    What do you mean by "current design"?

  10. Syndace

    Revocation is for when you loose a device or you know the keys have been compromised.

  11. Wiktor

    I mean by what Conversations do hehe, if you lose a device then after some time the client will stop encrypting for that decide

  12. Wiktor

    Device*

  13. Syndace

    Okay, that does not use cross-signing though ^^

  14. Wiktor

    Yes but it's already working for "revocations" so no need to invent anything new here

  15. Wiktor

    Just keep the same rules for cross signed devices, no need for extra revocations

  16. Syndace

    I'm sorry but those are two completely different things. One is publishing cryptographic signatures to tell others that you trust a certain key and the other is some client-side timeout logic that is not specified or cryptographically backed at all

  17. Wiktor

    I'd keep it lightweight, like in Matrix, the cross signing signature should be created by already trusted device and add trust only once, then the trusted device should be treated like any other.

  18. Wiktor

    If not you risk reimplemening OpenPGP and that's a lot of stuff.

  19. Syndace

    Yes that's the goal. The thing is that revocation cannot be ignored really. You need a mechanism to tell people that a key is not trustworthy any more. Otherwise an attacker could use compromised keys to cross-sign as many malicious devices as he likes to.

  20. Wiktor

    Yep, but distributing revocations is a problem. That's why OpenPGP has keyservers to make it hard to remove revocations.

  21. Wiktor

    Actually I had an idea how to use OpenPGP (on Android through OpenKeychain) to distribute trusted devices set. But that's including OpenPGP in the solution...

  22. pep.

    Wiktor, if you implement a way to say "I trust this device" to others, you will also need a way to say "I don't trust this device anymore", I don't think there's any need for arguing that one is not needed

  23. pep.

    And indeed that can be easily blocked by the server

  24. Wiktor

    And all that has already been solved by OpenPGP, I just warn that there is a risk of reimplemening square wheel here

  25. pep.

    That point is clear. That's not what I was replying to

  26. pep.

    You talked about Matrix, do you have any insight on how they handle this?

  27. Wiktor

    OpenPGP also has signature expiry, you can use that to automatically expire signatures and require re signing if the device is used

  28. Wiktor

    Nope, I'm not involved in Matrix that much, the blog post I read only mentioned cross signing by already trusted devices

  29. pep.

    Right, I read that one as well

  30. uhoreg

    The (work-in-progress) proposal for cross-signing in Matrix is at https://github.com/matrix-org/matrix-doc/pull/1756, which uses a master key for signing device keys, rather than having devices sign each other and trying to navigate an arbitrary trust graph. And rather than revocations, we're just nuking the master key and replacing it with a new one.

  31. uhoreg

    It does depend on the server being somewhat trustworthy, but I don't think there's much you can do about it.

  32. Syndace

    Trusting the server is not acceptable for OMEMO I'd say.

  33. uhoreg

    If you can figure out a way to do it without having to trust the server to distribute things properly, I'd be very interested in seeing it. It would be very desirable to have that property, but I haven't been able to figure it out yet.

  34. pep.

    Yeah I'm also doubtful, even if that's also a property I would like, in the context of e2ee

  35. lovetox

    also omemo is relying on the server already

  36. pep.

    Yes it is. A server can just refuse publishing keys

  37. lovetox

    if you remove a device from your devicelist, to broadcast to others that its not in use anymore

  38. lovetox

    then this could be just not broadcasted, and other contacts will never know that you dont use the device anymore

  39. Syndace

    It is relying on the server but the only thing the server can do is block OMEMO overall or attempt to MITM.

  40. lovetox

    no as i just described

  41. Syndace

    Or that, righr

  42. lovetox

    it can block "revocation" of devices

  43. jonas’

    the only use of which would be to attempt MITM, right?

  44. lovetox

    you cant MITM omemo

  45. lovetox

    its simply not possible as of to date

  46. Syndace

    well if the admin got hands on one of your devices it would make sense for him to block the unpublishing

  47. lovetox

    but you can steal a device

  48. Syndace

    why is it not

  49. lovetox

    and then block that this device is revoked

  50. lovetox

    but thats not MITM

  51. pep.

    lovetox, you can mitm? and it can easily _not_ be detected, (who even reads the list of fingerprints)

  52. pep.

    Ah hmm

  53. pep.

    Not MITM

  54. pep.

    Add yourself in the device list

  55. jonas’

    yeah, you’re not in the middle, but ... I’d still call this mitm

  56. lovetox

    sorry if you dont verify the fingerprint, then its also not a MITM attack, its a I hope this user doesnt know what he does attack

  57. jonas’

    the effects (can read and inject(?) messages) and the mitigations (validate your bloody fingerprints) are the same

  58. pep.

    jonas’, inject yes, the original account doesn't even have to know

  59. pep.

    If OMEMO is based on the fact that the server is not trusted, this is pretty much a fail

  60. lovetox

    pep., i cant agree with you on that

  61. lovetox

    you seem to think you can just add a device and then everyone is starting to encrypt all his messages to that

  62. pep.

    Because it's not true?

  63. lovetox

    this is simply not possible if you configure your client correctly

  64. lovetox

    you cant with Gajim

  65. pep.

    Right, you have a big assumption right there

  66. lovetox

    there will be a popup that tells you, NEW DEVICE do you want to trust?

  67. lovetox

    otherwise it will never encrypt to that device

  68. lovetox

    there is no attack as a malicious server, that does not depend on the user actively ignoring to verify fingerprints

  69. jonas’

    lovetox, and the average user will just accept

  70. lovetox

    but thats true for every encryption

  71. pep.

    Yes

  72. lovetox

    this has nothing to do with omemo

  73. pep.

    Well, yes and no. It has to do how it's designed, and what type of users it's targetting

  74. pep.

    People come to us saying "OMEMO is the #1 feature I want. I don't consider a client otherwise" and they don't understand what it means

  75. lovetox

    I could easily write a client that encrypts only to QR code scanned devices

  76. lovetox

    then every device is physically verified

  77. lovetox

    this is a client UI decision, and is not a fail in the protocol

  78. pep.

    True, you could. I doubt you'd manage to market that

  79. lovetox

    yeah of course, lets make compromises, because the thread model is not NSA prove

  80. lovetox

    the thread model is, lets encrypt 99% of my data in a way that 99% of people cant decrypt it

  81. lovetox

    *profe

  82. pep.

    proof :)

  83. lovetox

    *proof

  84. lovetox

    damn it

  85. lovetox

    didnt write that for a long time, and it seemd wrong :D

  86. lovetox

    no im all for looking into this stuff, but signal protocol or whatever you want to call it, is pretty pretty good

  87. lovetox

    there is really not much left to make better

  88. Ge0rG

    > lets encrypt 99% of my data in a way that 99% of people cant decrypt it I don't want 99% of people to decrypt my data! Only a selected subset of a few persons!

  89. Ge0rG

    the challenge is to build a usable client around the signal protocol.

  90. Ge0rG

    actually, no. The challenge is to build a usable client around any encryption primitive.

  91. lovetox

    i agree thats the challenge

  92. Ge0rG

    I think that OpenPGP has better UX than OMEMO, and Matrix seems to agree. A per-account master key that is the root of all trust for a user is so much more transparent and usable than N device keys on your side and M device keys on each of your contact's side with NxM trust relationships

  93. Ge0rG

    But what do I know.

  94. lovetox

    and in my opinion what we have now, specially in Gajim there is lots of room for improvement before i go and criticise the protocol

  95. Ge0rG

    if the protocol did it right, you wouldn't have a forest of possible fuckups to solve in your client.

  96. lovetox

    Ge0rG, i also wrote a already usable openpgp plugin for the current Gajim version, works fine, i didnt impl the secret key transfer yet

  97. lovetox

    and you can also make openpgp hard to use

  98. pep.

    lovetox, I just tested with conversations and dino, none tell me I've added a new device

  99. Ge0rG

    But we only ever specify the wire format, no need to tell developers how to solve the really complicated UX problems.

  100. pep.

    So I guess that's already a nice set of users not checking

  101. lovetox

    pep., because blind trust is activated in C by default maybe?

  102. Ge0rG

    Except that for encryption, a UX fail might kill people.

  103. pep.

    lovetox, of course it is

  104. pep.

    That's the whole point of Conversations

  105. lovetox

    to actually have conversations :D

  106. lovetox

    not care about encryption

  107. pep.

    I disagree here

  108. lovetox

    i agree with that to be honest, lets concentrate less about that crypto mania and more about usable clients

  109. Ge0rG

    Let's not implement OMEMO.

  110. pep.

    mod_omemo_mitm when

  111. pep.

    Just to prove a point

  112. Ge0rG

    If you are a political dissident, don't use xmpp. It will get you killed.

  113. Ge0rG

    Also there is no strong binding between the JID and the keys, so OMEMO ends up being an encryption overlay with opaque rules (superset of device IDs of all the participant JIDs) on top of a message routing overlay with opaque rules on top of a federated client - server - server - client overlay on top of TCP IP

  114. ta

    Ge0rG: just out of couriosity, what's your recommendation for endangered persons?

  115. Ge0rG

    ta: depends on who's after you. NSA - don't use Smartphones. Russians - don't use Telegram. Other countries - use Apple devices and Signal with a burner number from an American VoIP service

  116. Ge0rG

    ta: I'm not an endangered person, so I didn't do thorough research.

  117. pep.

    Tbh I understand the "privacy by default" bits and I agree with that. I would want to reach a level where people still have some margin to do their research when they suspect they're being targeted. Atm it's probably to late when you reach this conclusion

  118. ta

    Mw neither, but i am interested in that topic. To secure your privacy yoi almost have to act like a "wanted" person.

  119. ta

    I am aware that XMPP is not ideal for that matter either.

  120. pep.

    I don't think any solution out there is tbh, you can use bits and pieces of some solutions, but the most effective one is certainly to act as a commoner

  121. ta

    And configuring mobile devices to leak as little information as possible is a fight against windmills.

  122. ta

    I can not act like most commoners, i don't want to use closed Software (dont get me started on hardware, its a pity). So i always stand out of the masses. That's why i like to encrypt stuff. Since i would stand out my bitstreams sourroubding me shall not be plaintext. Like i dont run around with Information about me printed on my clothes.

  123. ta

    Some real p2p solution routed through some onion protocol, verified only in person and used on fully encrypted devices with plausible deniabillity is probably the safest way to not leak content of your Conversation, but will be obvious as hell to agencies.

  124. oli

    so xmpp was a great idea some time ago, but post snowden...

  125. pep.

    Because pre-Snowden wasn't as bad?

  126. oli

    for irc like groups use matrix. for one to one use something p2p

  127. pep.

    I'd be interested to know if matrix actually helps here, or if it's more or less the same issues and you have to trust the server somewhat

  128. pep.

    hint: I don't think it changes much

  129. ta

    Depends on your needs

  130. pep.

    We already specified the need in the discussion above. "You don't trust your server"

  131. rion

    Hi. I'm looking at "6.3 Stream Feature" of caps xep. It's nice. But is there something similar for services list (disco#items) and their versions? I mean I'd like to cache not just jabber.ru but conference.jabber.ru, upload.jabber.ru and other services of my server.

  132. lovetox

    but how do you get the info about the version of the disco items?

  133. lovetox

    with normal contacts, we exchange presence and we have to do this anyway so we add the version there and save a query

  134. lovetox

    but you exchange nothing with a MUC or component where you could add the version and save the query

  135. lovetox

    the first every contact is the disco query, so you get to know what that thing is in the first place

  136. rion

    lovetox: no idea how to do this properly. for example if caps computation of jabber.ru would also include conference.jabber.ru that would be enough for me.

  137. lovetox

    to answer your question, no we dont have something like that for server components

  138. rion

    btw about muc. ejabberd already can compute caps for it and send them early on join.

  139. lovetox

    thats too late

  140. lovetox

    you have to know if a jid is a muc before you join

  141. rion

    well yes. but it's better than nothing

  142. rion

    is there a place where I can write my wishes for xep improvements?

  143. lovetox

    hm its only useful if you dont use MAM

  144. lovetox

    yes the standards mailing list

  145. lovetox

    standards@xmpp.org

  146. lovetox

    oh rion i spoke too soon

  147. lovetox

    there is an experimental xep who does what you want i think

  148. lovetox

    at least in part

  149. lovetox

    https://xmpp.org/extensions/xep-0390.html#usecases-stream-feature

  150. rion

    390?

  151. lovetox

    thats would be also the place to comment for improvements because its experimental

  152. lovetox

    115 will never change

  153. lovetox

    also for the MUC case there is another problem

  154. lovetox

    the MUC component has caps but they are not that useful

  155. lovetox

    because every MUC jid itself can have different caps

  156. rion

    interesting

  157. lovetox

    yeah but also here again, server caps yeah nice

  158. lovetox

    but what you even more need are your account caps

  159. rion

    well I just sent the email about xep-0390 updates. I hope it's not lost since I don't have any notifications about its destiny :)

  160. lovetox

    yeah takes some minutes until it shows up

  161. lovetox

    you registered on the list though?

  162. rion

    nope..

  163. lovetox

    em yeah i maybe should have mentioned that ^^^^

  164. lovetox

    dont know if it allows to post for unregistered users

  165. lovetox

    https://mail.jabber.org/mailman/listinfo/standards

  166. rion

    should I send "register" or something ?

  167. rion

    ok

  168. lovetox

    hm rion no mom

  169. lovetox

    seems you dont need to register

  170. lovetox

    the registration is for subscribing

  171. lovetox

    here you can look if it is posted

  172. lovetox

    https://mail.jabber.org/pipermail/standards/

  173. lovetox

    ah damn rion

  174. lovetox

    it says it

  175. lovetox

    Note: To cut down on spam, you must be subscribed to this list in order to post!

  176. rion

    I see. I'll resend :)

  177. rion

    just subscribed

  178. rion

    it's there now

  179. lovetox

    gratz on your first post :D

  180. rion

    =))