technique:adminserv:mattermost:mattermost_notifications

Notifications push et vie privée

Pour plusieurs raisons, nous proposons de revenir sur la décision historique de désactiver les notifications sur notre Mattermost. Cette décision n’engage que le bureau A19.

Mattermost se présente comme la principale alternative de Slack, et peut dans une certaine mesure apporter une alternative à Discord et à des outils de messagerie instantanée tels que Messenger. Aujourd’hui, ce sont ces trois outils qui sont majoritairement utilisés à l’UTC pour l’organisation interne des associations.

Depuis le semestre A19, une charte Développement Durable signée par l’ensemble des associations les enjoint notamment à

Utiliser autant que possible des outils numériques libres et/ou en open-source, qui permettent une non-marchandisation des données et un partage de connaissances.

En dehors de cette charte et des implications du RGPD, beaucoup d’associations souhaitent s’émanciper des outils des GAFAM pour des raisons variées : éviter la marchandisation des données, privilégier des acteurs locaux, favoriser la résilience… C’est donc une excellente nouvelle qui va dans le sens des actions menées à l’UTC. On a par exemple vu plusieurs instances, dont le BDE, utiliser des Framaforms plutôt que des Google Forms, ou le Cloud de l’UTC plutôt que Google Drive, etc.

Pour autant, même parmi les associations sensibilisées, le manque de notifications sur Mattermost reste un point de blocage au fil des semestres, et la plupart d’entre elles demeurent sur Slack et/ou Messenger. Il semblerait que le fonctionnement push est tellement habituel que recevoir les notifications par mail est très frustrant. Souvent, les étudiants ne configurent pas la réception des mails sur leur téléphone.

Nous pensons que dans l’intérêt de la dégafamisation, il peut être pertinent de faire ce genre de compromis. Il ne s’agit pas de sacrifier la vie privée des utilisateurs, mais d’être plus inclusif, en offrant une ergonomie similaire aux associations souhaitant faire la transition. Ainsi, l’adoption des services web libres connaît moins de barrières et moins de préjugés, et ne semble pas réservée à un public très marqué idéologiquement et/ou technique.

Activer les notifications sur une version Community Mattermost a plusieurs conséquences sur la vie privée, et ceci est étudié dans les sections qui suivent. Pour résumer :

  • Le contenu des notifications est vu par le serveur de notifications de Mattermost
  • Ce serveur de test est réputé moins fiable (en terme de QoS, pas de sécurité visiblement)
  • Le contenu des notifications est vu par Google (FCM) et Apple (APNS)
  • Les notifications sont chiffrées lors des étapes de transports

Par contenu, on entend les métadonnées du message et potentiellement le message lui-même, soit essentiellement l’auteur, l’équipe, le canal et le texte du message. Dans notre cas, nous refusons d’inclure le contenu du message dans la notification et ce sera toujours le cas.

Bien que les métadonnées peuvent dire beaucoup, sur Mattermost le message porte une grande partie de la charge utile. En effet, les métadonnées sont utiles pour savoir qui communique avec qui, par exemple. En revanche, les notifications ne portent pas l’information de la taille de l’équipe ou du canal, sur le nom de l’équipe ou sur le caractère privé ou public de la communication, ce qui rend difficile d’inférer quoi que ce soit sur la nature de la communication. Aussi, il n’y a aucune information sur la date, l’heure ou la localisation.

Nous proposons donc de ne pas transporter le contenu du message dans la notification, afin de réduire au maximum les informations sensibles.

Dans ce cadre, qu’est-ce-qui change ? Pour la moitié des utilisateurs de notre Mattermost, qui utilisent des services mails des GAFAM et ont activé les notifications par mail, rien. Leur vie privée est même ironiquement “améliorée” s’ils utilisent l’application mobile car le corps du message ne sera pas inclus dans la notification.

Il est possible de désactiver les notifications push de sorte à ne pas recevoir de notifications ; en revanche, les utilisateurs n’ont pas la main sur les notifications déclenchées par leurs messages (à l’instar des mails envoyés chez Google, par exemple).

Le seul compromis effectué est donc le suivant : si l’on suppose qu’il y a plus d’utilisateurs de smartphones Android/Apple que d’utilisateurs avec une adresse mail fournie par un GAFAM, alors les métadonnées des mentions directes et/ou @all effectuée par un utilisateur soucieux de sa vie privée se retrouveront en plus grande quantité chez Google et Apple. Nous pensons que les bénéfices apportés par l’activation des notifications compensent cette perte.

Article originel : état des notifications push sur les applications mobiles

Le logiciel de discussion par équipe qu’héberge Picasoft, Mattermost, propose d’envoyer des notifications Push sur les mobiles des utilisateurs ayant installés l’application Mattermost (Android ou iOS).

Lorsque le serveur Mattermost veut envoyer une notification Push sur l’application mobile:

  1. Il envoie le message à un serveur proxy qui peut être auto-hébergé, ou hébergé par Mattermost, Inc.
  2. Le serveur proxy envoie un message à l’Apple Push Notification Service (APNS) ou à Google Firebase Cloud Messaging (FCM)
  3. APNS ou FCM relaye le message vers l’application iOS ou Android.

Le code de ce serveur proxy est disponible publiquement. De plus, une FAQ de Mattermost explique brièvement le fonctionnement des notifications Push.
Ce qu’il est important de comprendre, c’est que le serveur proxy ne peut envoyer une notification Push QUE si il est autorisé par l’application mobile. Pour être autorisé, il doit connaître un secret, qui est codé en dur dans les applications mobiles officielles de Mattermost. Seul Mattermost Inc. (la société derrière Mattermost) possède ce secret. De ce fait, seul Mattermost Inc. a la possibilité de pousser des notifications sur les applications mobiles officielles.

Mattermost Inc. propose donc un serveur de proxy public de test: le TPNS. Il est évoqué ici et il n’est pas fiable (pas de garantie de disponibilité). À partir de la version 5.6, les notifications envoyées au TPNS sont chiffrées (source: changelog). Cependant, il s’agit d’un chiffrement uniquement pendant le transport des données. Le contenu est encore visible par le TPNS, mais aussi par Apple ou Google. Pour avoir la possibilité d’utiliser un serveur proxy fiable et avec une politique de confidentialité explicite, il faut payer la version Enterprise de Mattermost ( source).

Pour activer les notifications sur les applications mobile, plusieurs solutions s’offrent à Picasoft.

Utiliser le serveur de test

Picasoft a la possibilité d’activer les notifications Push vers le serveur proxy de test de Mattermost Inc. C’est à dire que les notifications seront envoyées sur des serveurs aux États-Unis et entre les mains d’une société nord-américaine.

D’un point de vue éthique, ceci est très gênant pour Picasoft. Éventuellement il est possible d’activer des notifications qui n’envoient “que” le nom de l’auteur du message dans la notification (source). Il est possible d’étudier la question en :

  • activant cette fonctionnalité sur un serveur de test puis en inspectant le contenu des informations réseaux qui circulent, en s’assurant qu’aucunes données sensible ne circule
  • consultant publiquement les membres de Picasoft et les utilisateurs de Mattermost pour savoir si une telle solution (qui est une fuite de données) semble satisfaisante.

Dans tout les cas cela voudrait dire que Picasoft envoie des données personnelles vers une entreprise, ce qui est largement discutable.

Payer une version Enterprise

Il est possible de payer une version Enterprise de Mattermost pour avoir accès à un serveur de notification plus sécurisé (mais tout de même hébergé par Mattermost).

Dans la mesure où cela voudrait dire que Picasoft utilise des briques logicielles propriétaire, cela ne semble pas envisageable. De plus la licence Enterprise coûte 3.25$/mois/utilisateurs, soit plus de 3000$/mois pour une instance comme celle de Picasoft.

Héberger son propre serveur

Il est aussi possible d’héberger son propre serveur de notifications, mais les applications mobiles de Mattermost devront contenir le secret du serveur proxy. C’est à dire qu’il faut qu’on distribue nos applications mobiles nous mêmes.

Ceci implique :

  • de déployer et maintenir une instance de serveur proxy à Picasoft
  • de builder et maintenir à jour des applications Android et iOS, spécifiques à Picasoft, à partir du code source des applications mobiles
  • de distribuer ces applications, soit en fournissant les binaires (nécessite que les utilisateurs activent la possibilité d’installer des applications non-trustées sur leur mobile), soit en déployant sur les stores de Google (Google Play Store) et Apple (App Store).

Cette solution est assez complexe et discutable. Premièrement car elle implique une charge de travail non négligeable pour Picasoft dans le build et le maintien à jour de versions forkées des applications mobiles.
Mais aussi car la distribution des applications est compliquée. Soit elle implique une manipulation de la configuration mobile de chaque utilisateur (activation des applications non trustées) soit elle implique de publier sur des stores de Google et Apple (ce qui est, au passage, payant). Et dans tout les cas il faut un moyen d’expliquer à chaque utilisateur que les applications mobiles à utiliser ne sont pas les versions officielles mais celles proposées par Picasoft.

Ne pas activer les notifications

Certes ça n’est pas une vraie solution, mais c’est la seule qui semble envisageable pour le moment (jusqu’à la date du 12 septembre 2019), et celle que Picasoft a choisi : désactiver les notifications Push.

  • technique/adminserv/mattermost/mattermost_notifications.txt
  • de qduchemi