GDPR
Next meeting
Next meeting of the people involved is scheduled on May 15th 2018 at 10:30 UTC in xmpp:xsf@muc.xmpp.org
Introduction
On may the 25th of 2018 the new EU General Data Protection Regulation (GDPR) will be enforced. This may pose problems for the XSF and for the public federated XMPP network, as discussed in the XSF board: https://trello.com/c/t79C3Yds/307-gdpr-advice
This page is a growing page, collecting the research done on the consequences of the GDPR for XMPP and the XSF. There are three fields where the GDPR probably will have an impact and that will be of concert to the XSF:
- The public (federating) XMPP network
- The XSF run XMPP server
- The functioning of the XSF, like the membership applications and the voting
Methodology
We decided to roughly follow the lines of the Data Protection Impact Assessment (DPIA) as mandated by the GDPR:
- Check if the GDPR is applicable (jurisdiction)
- List what data is processed
- List what processing is done
- List legal grounds for the processing
- Analyse possible consequences
Collaboration with IETF was mentioned during previous board meeting that started this ad-hoc group. Who is working on it, (how) should we collaborate with them?
Wrap up
A structured wrapup in a table is visible here: https://wiki.xmpp.org/web/GDPR/Table
Q1: What consequences does the GDPR has for the XMPP network, XMPP server operators and what can/should the XSF do with that?
General note: The legal entity (person, company) that is responsible for a XMPP server is a 'Controller' of data. A hosting service (or other services) are 'processors'.
When federating, data is transferred from one controller to an other.
Q1.1: What consequences does the GDPR has for the XMPP network?
Q1.1a Check if the GDPR is applicable (jurisdiction)
The GDPR is applicable to anyone offering services from EU, or to EU citizens, paid or non-paid and to anyone explicitly targeting EU inhabitants.
Q1.1b List what data is processed
C2S:
- Credentials
- User metadata
- IP address
- presence, timestamp of last available presence
- User content:
- roster content (with names)
- bookmarks
- offline/MAM history
- server-side file storage (http-upload, etc.)
- PEP
- Server logs
S2S:
- s2s meta-data (IPs, hostnames, sessions, server logs?) - GDPR probably doesn't apply
- user meta-data (presence, subscriptions, message routing)
- user content (messages, pubsub, etc.)
- MUC history, MUC MAM
- Remote components (e.g., roster management)
Q1.1c List what processing is done
Note: Storage is considered as processing under art. 4.2.
C2S:
Common use cases:
- Credentials:
- minimal: stored as long as the account exists
- typical: check user JID against well-known spammer patterns
- User metadata:
- minimal: stored during connection
- typical: stored with account, spam detection, expose to other users (presence, last activity)
- User content:
- minimal: roster/bookmarks with account, PEP in RAM only, offline messages until first client connects
- typical: with account, MAM/files for a given amount of time
- Server logs:
- minimal: no logs
- typical: some days / weeks of logrotate, maybe with IP addresses / message metadata (spam detection)
S2S:
Outbound:
- s2s meta-data:
- typically just inside of server logs. covered by r49
- user meta-data:
- minimal: handing over to receiving users server
- typical: stored while receiving user is online (to avoid having to send out probes for new resources).
- user content:
- minimal: handing over to receiving users server if online; storage of roster-related things with account.
- typical: minimal + offline-storage if offline or even MAM for undefined period of time for messages
- Remote roster management: the XEP already requires user consent
Inbound:
- s2s meta-data:
- typically just inside of server logs. covered by r49
- user meta-data:
- minimal: forwarded to receiving users connections
- typical: stored while receiving user is online (to avoid having to send out probes for new resources).
- user content:
- minimal: forwarded to receiving users connections if online; storage of roster-related things with account.
- typical: minimal + offline-storage if offline or even MAM for undefined period of time for messages
- Remote roster management: the XEP already requires user consent
Spam detection
Spam detection is not standardized, so hard to assess here. There are also many thin lines, like reading messages for manual tweaking of spam-rules, using machine learning and filtering on words that may indicate content from art. 9.1. Therefore we can not give a general answer about spam detection, but we do need to give some guidance on it.
Q1.1d List legal grounds for the processing
C2S:
Art. 6.1b can be used as ground for processing, so the permission is implicitly granted when signing up for the XMPP service. The EULA must then contain information about the information processed.
MAM and MUC MAM are covered by explicit consent (6.1a)
S2S:
- s2s meta-data:
- typically just inside of server logs. r49 probably applies
- user meta-data:
- all transfer requires (implicit) user consent - by joining a MUC or sending a messages to somebody or accepting a subscription (art. 6.1b), outside the EU by 49.1b
Treat all S2S as outside the EU
Q1.1e Analyse possible consequences
Is the user supplied data of special categories or not?
For the legal status of the processed data it matter a lot if it is of one of the special categories as described in art. 9 or not. (LQ1)
Though most servers do process messages that contain data like that, it is not processing, analogue to the status of pictures. Though it contains such sensitive data, as long as it is not analysed and categorized on those categories, it is not subject to art. 9.
limit
As soon as such analysis is done, e.g. for spam filtering, it is not covered any more by the legal framework sketched here. Processing such data for spam filtering for example mus have explicit consent.
Legal grounds for processing
Processing is done for the performance of a contract with the data subject (art. 6.1b). The contract (does not have to be an explicit contract) would then be: "to take care of the communication"
Message Archive Management (MAM) is not obvious a service when signing up with a XMPP server. So it can not be covered by the same legal ground for processing, it should be off by default and the user should turn it on manually. The ground for processing is here article 9.1a.
Q. by Winfried: is this indeed 6.1a or a second 6.1b? By requesting the archiving service, the user has second(ary) service he wants to perform. Art. 6.1a is problematic, because it brings in the permission question as described in art 7.
limit
Any additional processing, not needed for the contract the data subject is engaged in, is not covered.
Data subject rights
The structure of XMPP ensures that all data subject rights are guaranteed, except for the right of deletion and the right to transfer the data. The right of deletion is not implemented in all standards. The right to transfer, though only applicable to data that is processed under art 6.1a, not 6.1b, is also not guaranteed. Two elements would help to ensure the right tot transfer is ensured correctly: a 'download client' and automatic transfer to an other server.
Q1.2: What consequences does the GDPR has for the XMPP server operators
TBD
Q1.3: What can/should the XSF do with it?
TBD
Q2: What consequences does the GDPR has for the XSF run XMPP server?
TBD
Q3: What consequences does the GDPR has for the work processes of the XSF itself (membership, voting, wiki etc)?
Personal data the XSF holds:
- Email of wiki users (for account creation)
- Voting results, that could be considered as "political opinions".
The rest of the information given when applying for membership, (fullname, jid/email, employer, etc.) like everything else on the wiki, as well as messages on public MUCs, falls under art. 9.2 e):
Processing relates to personal data which are manifestly made public by the data subject;
ToDo's
- Link with IETF and other projects with similar issues.
- Read chapter 5 about transfer of personal data to countries outside the EU
- Create document with guidelines for server operators containing:
- Limiting of processing because of limits of art. 6.1b and 49.1b
- The risk of 'triggering' art. 9.1 and the consequences of that
- Inform that their EULA should contain something about: "messages sent to other users are subject to policies those users agreed to" should be included in EULA during registration (TODO: probably s/messages/stanzas, and find end-user speak for "stanza")
- Limits in logging
- Create template for EULA
- should inform users about possible different privacy policies at different servers
- should inform users about different (MAM) setting by different users
- should inform users about publishing MUC logs
- should include information about S2S and possible jurisdiction changes
Technical ToDo
- EULA XEP for c2s
- Linking to EULA, also with IBR
- versioning
- to be determined: informing about EULA details
- MUC status code: 170 when MAM enabled. Also something to say if the logs are public or private.
- Write about default visibility in data policy
- JID: contacts, chatrooms and their server operators
- vcard avatar: always visible
- PEP avatar and other PEP things: most likely to your contacts
- PEP items visibility should be made explicit by the client to the user
- last online timestamp, status message, online status, list of online devices: contacts, chatroom participants?
- Add to MAM-XEP:
- Add a note to the MAM XEP about GDPR consent requirements.
- MAM XEP doesn't provide a way to differentiate between "explicitely set" and "enabled by default"
- Will MAM auto-purge if you disable? Get a mention of this in the XEP
- Add privacy considerations to the XEP-template
- Ensure right of deletion is implemented in:
- MAM contents
- Offline messages (if separate from MAM)
- Roster
- XML Private Storage
- PEP
- other custom processing?
- (addition) server-side file storage, (e.g., HTTP-upload, jingle-ft)
- (addition) private pubsub (223)
- Note: Jingle-FT, server-side[0], doesn't support deletion. goffi mentioned he would submit a protoXEP for this.
- create a data-download tool
- resurrect the idea of automatic transfer of an account o an other server, see XEP-0227 & XEP-0283.
Lawyer Questions
LQ1 user-sent content and art. 9.1
Does 9.1 automatically apply to all (not e2e encrypted) user-sent content, or only if we are analyzing it for profiling/other purposes? Does using e2e encryption change this?
- Lawyer 1: Message content is similar to picture uploads. As long as we treat it as an
opaque blob and don't analyse it, art9 doesn't apply, (See r51). Not sure how this plays with mod_firewall processing, spam filtering etc.
- Lawyer 2: 9.1 is not applicable because it is revealed by the user (9.2e).
So user content is NOT subject to art. 9.1
LQ2 transfer to other controller and art. 6.1b / 6.1f
Can (implicit) consent as in art. 6.1b also apply to transfer to other controllers (as in other XMPP server operators)?
- The transfer to the other itself can be covered by 6.1b (and 49.1b when transfer outside the EU), because it is necessary to deliver the service the user requested.
- The processing on the other server can also be covered by 6.1b, but only as long as not further processing is done.
Contributors:
Ge0rG, jonasw, pep., peter.waher & winfried