XSF Discussion - 2018-05-24


  1. Andrew Nenakhov

    Link Mauve, not quite MUC

  2. Andrew Nenakhov

    We call it simply group chat.

  3. Andrew Nenakhov

    Parts of it are already working.

  4. Seve/SouL

    Andrew Nenakhov, I think he is just asking for a MUC where people can join

  5. Seve/SouL

    Like him or me

  6. Andrew Nenakhov

    Well... We won't run 0045 MUCs.

  7. Andrew Nenakhov

    If you tell me your JIDs I can invite you to our prototype solution. It's backwards compatible with regular clients

  8. jonasw

    why?

  9. jonasw

    do we need Yet Another Groupchat Standard? aren’t three enough already?

  10. jonasw

    (or four if you count DMUC)

  11. Andrew Nenakhov

    jonasw, we are building the one that works.

  12. Andrew Nenakhov

    Holger, no.

  13. jonasw

    -xkcd 927

  14. Bunneh

    https://imgs.xkcd.com/comics/standards.png

    Standards
    Standards
  15. jonasw

    if it’s compatible to existing clients, how does it solve the fundamental '45 issue (resource === nickname)?

  16. Andrew Nenakhov

    Yes yes. We don't cover everyone's use cases though.

  17. Steve Kille

    It is of course easier to hack something to solve your own specific problems, than to produce a general solution

  18. Andrew Nenakhov

    Just ours.

  19. Andrew Nenakhov

    It is compatible in different way. Existing clients will treat it like a standard contact in roster.

  20. jonasw

    that doesn’t sound

  21. jonasw

    that doesn’t sound at all like Group Chat 1.0

  22. Andrew Nenakhov

    Steve Kille, you see, once you try to do a universal standard for everyone's needs, people will flock immediately and start demanding to add this and that

  23. Andrew Nenakhov

    From what I understand it killed MIX before it was even born

  24. jonasw

    having 10 standards for a fundamental feature like chats between more than two people will kill XMPP though :)

  25. Steve Kille

    jonasw: that is a key point

  26. jonasw

    I think the MIX split is doing much good here

  27. jonasw

    uh, Steve Kille, a thought which just crossed my mind: It would be *excellent* if each sub-feature in each XEP would be marked with who is responsible to implement it. like in my email: "User Client", "User Server", "MIX Component"

  28. jonasw

    this would give a very quick overview of the complexity of a MIX part for a given project

  29. Andrew Nenakhov

    Xmpp is already mostly dead.

  30. Steve Kille

    Making good choices as to what is in a universal standard and what is mandatory/optional is key. If you make it too thin, it is a problem because it does not solve necessary problems.

  31. jonasw

    I’d like to know for example what a client needs to do in order to benefit from MIX-ANON (it doesn’t necessarily need to *know* this is an ANON room, just the basic question "can I join a MIX-ANON room without doing additional things on the client side?")

  32. Steve Kille

    Let's start with the table you suggested.

  33. jonasw

    sure, one step at a time :)

  34. Steve Kille

    The way MIX-ANON has come out, it does not impact end user client at all. I was pleased that the split enabled this.

  35. jonasw

    Steve Kille, regarding your question about the PR: you can always start working on top of your working tree, even if I haven’t merged things yet

  36. Steve Kille

    Table will make this clear

  37. jonasw

    it shouldn’t lead to conflicts (if you don’t do version blocks; which you don’t need to, in general), and if it does I can resolve them

  38. Steve Kille

    jonasw: we need to synchronize, which is why I checked.

  39. jonasw

    this is great (about MIX-ANON)

  40. Steve Kille

    I'll bash on and do this after my bike ride to work

  41. jonasw

    but it’s indeed trivial, will merge it right away

  42. Steve Kille

    OK - so shall I add a new version number for the table (0.11.2)?

  43. jonasw

    Steve Kille, you can, otherwise I will :)

  44. jonasw

    (merged and pushed your editorial fixes)

  45. ralphm set the topic to

    XSF Board Meeting | Logs: http://logs.xmpp.org/xsf/ | Agenda https://trello.com/b/Dn6IQOu0/board-meetings

  46. ralphm bangs gavel

  47. MattJ

    May just be you and me though...

  48. ralphm

    Hmm

  49. ralphm

    No Martin?

  50. Kev

    I'd like to note that, with an iteam hat on, I'm assuming Board has done due diligence with GDPR on our infrastructure, and will tell us if anything needs to change.

  51. Ge0rG

    There is a hugely important agendum pending, regarding the Board competence wrt. the GDPR XEP

  52. ralphm

    Ge0rG: while I agree on the importance of making sure everyone is ready for the GDPR, I don't think we should rush the XEP, if that's what you're getting at

  53. Kev

    It's not.

  54. Ge0rG

    There is also a meta-agendum regarding the process for XEPs that are neither technical nor processual, but rather legal.

  55. Kev

    The XEP was presented to Council. I don't believe Council has competence to be the approving body for such a XEP.

  56. MattJ

    I don't think there should be any process for XEPs that are legal, because... we don't have legal XEPs

  57. Kev

    So the question is what to do about it that Board is happy with.

  58. MattJ

    We're not an organisation that gives law advice

  59. Kev

    If Board is happy to be the approving body, we make a chance to XEP1 that allows an Informational XEP to be approved by Board.

  60. ralphm

    Kev: I understand that part, and I agree with MattJ

  61. ralphm

    I think stpeter's suggestion has some merit in that regard

  62. Kev

    If Board doesn't feel they have, or are able to acquire, competence here, then we probably communicate back that the XSF isn't the place for this XEP before any more work goes into it.

  63. Kev

    The central point being that I (strongly) feel that Council isn't the right place to approve a XEP giving advince on complying with the GDPR, whether that is "legal advice" or not.

  64. MattJ

    Agreed - but neither is the Board. And in that case, it means the XSF as an organisation is not

  65. ralphm

    I don't feel comfortable with the abstract on behalf of the XSF, either. It currently says: “This informational XEP provides information on deploying XMPP in way that is compliant with the General Data Protection Regulation (GDPR) of the European Union.”

  66. Kev

    (Other options are Board reviewing it and assuring Council that it is fine to publish from a legal perspective, and that Council should only review technical content, or changing the XEP such that it's not trying to give GDPR advince)

  67. Kev

    MattJ: I think the Board saying "No can do" is a reasonable outcome, if that's what Board feels. I'm just concerned that Council can't judge this (and, even if it's not legal advice, Council can't make the call on whether it's legal advice).

  68. ralphm

    I wouldn't be confortable as Council either, I agree

  69. ralphm

    The thing with the GDPR is that, for example, you should not store more information than needed. This can vary quite a bit depending on the nature of a particular deployment.

  70. Kev

    Board have the option to get legal advice on it.

  71. Kev

    Council don't have that sort of authority :)

  72. MattJ

    I think there are a few options

  73. MattJ

    - Trim it down until it's not GDPR-specific, and we're comfortable that it's nowhere near being taken as legal advice

  74. MattJ

    - Consult a (presumably costly) third-party to make us comfortable with it (and possibly aid in the editorial process)

  75. MattJ

    - Don't publish it

  76. MattJ

    (under the XSF)

  77. MattJ

    The author(s) can still do what they like with it

  78. MattJ

    Winfried has stated that #1 is not feasible, because it contains some very GDPR-specific statements, and presumably removing those may undermine the purpose of the document

  79. MattJ

    #2 is not feasible because of our financial situation, in my opinion

  80. winfried

    Mind if I join in?

  81. MattJ

    Please do!

  82. Kev

    Please do.

  83. ralphm

    Having a list of what's a reasonable minimum to store to be able to provide a particular service would be useful. I'm curious myself about the ability to take notice of Privacy Policies.

  84. winfried

    Short, I am on the move

  85. ralphm

    (let alone explicit consent for certain processing)

  86. winfried

    The issue is liability

  87. winfried

    Don't know to what extent the xsf is liable for xeps but we can limited it by presenting it as an opinion of the xsf in stead of guidelines

  88. ralphm

    And things like advise on the proper protection of the data you store, but I believe that GDPR doesn't require certain types of encryption (e.g. Encryption at Rest), but you need to ensure it is protected adequately.

  89. MattJ

    If someone (small independent service operator, large commercial operator) gets fined for being in violation of the GDPR but followed everything in our XEP, I can see how they may try to turn to the XSF for recompense

  90. ralphm

    winfried: I personally wouldn't want to go anywhere near providing an opinion as the XSF. At most I'd record best practices and points of attention. For the rest defer to experts.

  91. MattJ

    Whether they would actually have a case or not, I have no idea

  92. ralphm

    Say you run a public server hosting MUC rooms only. Each of the rooms are created by the owner of the server, but everybody is free to join them. How can you provide a proper Privacy Policy, how do you collect and process what data, and why? What can you do if someone requests removal?

  93. ralphm

    There's so much there.

  94. MattJ

    I think there is room for an Informational "Privacy Considerations for XMPP Server Operators" XEP

  95. ralphm

    Agreed, and I think *that* would be in scope for the Council just fine.

  96. Zash

    How would that be different from a GDPR-less GDPR XEP?

  97. ralphm

    Note that the example above is not arbitrary. There's some work to be done here. (Nod to Kev).

  98. MattJ

    Zash, it wouldn't, really

  99. MattJ

    But the current document has headings like "Is the GDPR appliccable to you?" - that's not something we can answer for anyone, that they can't just as easily get answered somewhere else

  100. ralphm

    Exactly.

  101. ralphm

    E.g. it depends on where the server operator is located.

  102. ralphm

    E.g. if you server is within the EU, I think the GDPR still applies even if all your users are not.

  103. ralphm

    Well, I guess that's it then

  104. ralphm

    For the record, there was never really a meeting today.

  105. MattJ

    Indeed. A formal vote isn't possible with over half the Board absent

  106. ralphm set the topic to

    XSF Discussion | Logs: http://logs.xmpp.org/xsf/ | Agenda https://trello.com/b/Dn6IQOu0/board-meetings

  107. ralphm unbangs gavel

  108. MattJ

    But I think it's ok for the the council to not accept in the meantime, and for discussion to continue on the list

  109. ralphm

    (yes I can do that)

  110. ralphm

    MattJ: agreed

  111. winfried

    ralphm MattJ thanks for discussing this, I will take this, I will think a bit about how to handle this. I personally don't mind putting my own head in the line of fire, so I may also publish parts of the GDPR work as a personal opinion, outside the structures of the XSF.

  112. MattJ

    Sounds great - and also identify things we do need protocol features to support, such as the ToS/privacy stuff that was discussed

  113. jonasw

    so, I am looking at muchopper (to index MUCs in XMPP) again. are MUC bare JIDs, Subjects and Descriptions in any way personal data under GDPR? I don’t think so from the definition of personal data in Art 4.1, but if someone disagrees, let me know.

  114. Ge0rG

    I know this is controversial, but I'd say that public MUCs are public.

  115. Zash

    > basically anything is this personal data?

  116. jonasw

    Ge0rG, indeed, I’m going to filter for MUCs which have the publicly listed flag enabled

  117. Ge0rG

    jonasw: you could index the other ones for stats, but hide JID and meta data.

  118. jonasw

    what type of stats?

  119. Zash

    occupant count?

  120. Ge0rG

    dunno. Average number of users in a MUC? Number of people who are not in every MUC that has "xmpp" in the name?

  121. jonasw

    Ge0rG, what would I use as key then in my database for those?

  122. jonasw

    HMAC(some-secret, mucjid)?

  123. Zash

    Better PBKDF2 with i>9000

  124. jonasw

    ELOAD

  125. Ge0rG

    jonasw: if some-secret isn't in the DB, that's ok.

  126. jonasw

    I need to store the JID to be able to re-join after a restart

  127. Zash

    Is a MUC JID personal data?

  128. jonasw

    I don’t feel like it is

  129. jonasw

    the domain part might be though

  130. Ge0rG

    I don't think either is.

  131. Ge0rG

    jonasw: you also need to store the JID to blacklist MUCs

  132. jonasw

    no

  133. Ge0rG

    Ah, right. HMAC is sufficient

  134. jonasw

    MUCs can blacklist muchopper by banning it’s JID

  135. jonasw

    MUCs can blacklist muchopper by banning its JID

  136. Ge0rG

    That, too.

  137. jonasw

    if a join fails due to a ban, data is purged

  138. Zash

    How do you remember that someone does not want your cookies?!!!

  139. jonasw

    but for restoring state I’ll need the JID, so I’ll always have to store the JID

  140. pep.

    Hmm, tbh the board discussion above seemed like one of our gdpr meetings, like beheaded chickens not really understanding what's happening

  141. MattJ

    As I said before all this started, that's the best that anyone can do right now :)

  142. Ge0rG

    pep.: is it possible that you and me were in different GDPR meetings?

  143. ralphm

    jonasw: personal data is any data relating to a natural person on its own or in combination with other data. This includes all kinds of identifiers, including JIDs

  144. ralphm

    Ge0rG: for the purposes of the GDPR it doesn't matter if something is public or not

  145. Kev

    ralphm: "It includes all kinds of identifiers, including JIDs" - but doesn't include all JIDs, correct?

  146. Zash

    A place someone goes to can imply interests which is personal info.

  147. ralphm

    Kev: JIDs leading to invidivuals

  148. Kev

    Right.

  149. ralphm

    so that includes the participant JID in MUC or proxyJID in MIX

  150. Ge0rG

    ralphm: that's true. But I still wonder what kind of data processing can be made on data that was made public by its owners.

  151. Kev

    Hmm. But a proxy JID in MIX is something that is assigned by the service, and doesn't identify the user, kinda.

  152. Kev

    It is an identifier for the user, yet doesn't identify the user, if that makes any sense at all.

  153. ralphm

    Ge0rG: the XSF is forwarding your message to everyone in this room. That's processing. And for a specific, explict and legitimate purpose.

  154. ralphm

    We are also storing logs.

  155. Kev

    I guess MIX proxy JIDs are actually quite similar to IPs.

  156. Kev

    So yeah, point withdrawn.

  157. ralphm

    Kev: it is a stable identifier for a natural person in the context of the MIX room. So yes, under the GDPR that is personal.

  158. Ge0rG

    ralphm: my question wasn't even about the xsf, but in that specific situation you could probably argue that the user gives consent by entering a public MUC and writing something

  159. Kev

    Yes, already talked myself around.

  160. ralphm

    Ge0rG: consent needs to be explicit and specific. In this case, you probably want a Privacy Policy to cover this use.

  161. ralphm

    We have voted on one in 2008. Can't find it right now.

  162. Kev

    Was probably lost in the Battle-Tested and Secure website update :)

  163. ralphm

    Kev: privacy.shtml

  164. ralphm

    there's a copy here: https://web.archive.org/web/20120808002100/https://www.jabber.org/service-policy/

  165. Kev

    You mean you've got it, or you'd like me to search on the server for it?

  166. Kev

    Ah, cool.

  167. ralphm

    And I have it in my gitorious clone of the xmpp repo

  168. Kev

    That's jabber.org's, though, not xmpp.org's?

  169. Kev

    Or is it so old it predates the split?

  170. ralphm

    well, haha: https://xmpp.org/2008/12/privacy-policy-approved/

  171. Kev

    Ah, no, loaded now. That's jabber.org's, not the XSF's.

  172. Ge0rG

    ralphm: I didn't see a consent dialog popup when joining this room for the first time.

  173. ralphm

    Kev: which seems to imply things I'm very curious about now.

  174. ralphm

    Ge0rG: yes, indeed

  175. ralphm

    but pizza

  176. Zash

    ARGH!

  177. Zash

    I didn't reload the mail config?

  178. jonasw

    :(

  179. Zash

    "and nothing of value was lost" :P

  180. Zash

    Why does the mailman archive not show dates?

  181. Zash

    Uh, does doing the member survey mean I agree to Googles privacy policy etc?

  182. jonasw

    probably

  183. Ge0rG

    Just in time. https://yaxim.org/blog/2018/05/24/updated-yax-dot-im-policies/

  184. Seve/SouL

    Congratulations, would be interesting if you get any message from one of your users regarding this, like requesting information, etc.

  185. Wiktor

    ...or a nightmare letter: https://www.linkedin.com/pulse/nightmare-letter-subject-access-request-under-gdpr-karbaliotis

  186. jonasw

    meh, so apparently there’s no way to know whether a MUC wants to be listed publicly unless one has privileges over that MUC

  187. jonasw

    the #roominfo from distributed via disco#info doesn’t contain it, and the #roomconfig isn’t available to unprivileged users

  188. Wiktor

    isn't checking MUC server to see if the room is listed there sufficient?

  189. jonasw

    Wiktor, the list could be extremely long

  190. Zash

    Won't it *not* be in disco#items?

  191. jonasw

    Zash, I might have the MUC jid from another user or invite, and I need to know if the room wants to be publicly listed

  192. Wiktor

    jonasw: yep, but that's additional info for your bot :)

  193. jonasw

    so... the only way to do that is by iterating MUC directories .. :/

  194. Zash

    > :tag("feature", {var = get_hidden(event.room) and "muc_hidden" or "muc_public"}):up();

  195. jonasw

    ohh features

  196. jonasw

    right

  197. Zash

    Is this some magical thing only Prosody trunks MUC does?

  198. Zash

    jonasw: Oh I thought this was what you already checked?

  199. jonasw

    ejabberd also des it

  200. jonasw

    Zash, no, I looked at the #roominfo form

  201. Zash

    Ah, ok

  202. pep.

    jonasw, Ge0rG, winfried, my presence my be spotty tomorrow I just recalled I'm taking a train. At that time I should be waiting for it (queueing) so I should be able to attend from the phone

  203. vanitasvitae

    Is there an XMPP mastodon account? I was searching, but could not find one...