Interopérabilité des messageries instantanées

La messagerie instantanée Matrix/Element

Avertissement important sur les Passerelles WhatsApp et Signal

Pour résumer, sur notre solution on privilégie la liberté à la sécurité. Il appartient aux utilisateurs des bridges de ne pas y mettre de contenus sensibles, ce n'est pas un service pour lanceur d'alerte, mais un genre de réseau social intéropérable à notre sauce. Le but étant que les gens migrent vers Matrix et pas qu'il restent à moitié sur les réseaux privateurs ad vitam eternam. C'est censé etre un catalysateur de transition. Notre préconisation c'est d'utiliser le bridge pour quelques groupes dont on ne peut se passer et de faire tout le reste, en particulier conversations 1à1 via Matrix/SMS/MMS.

Par ailleurs le service tourne sans problème depuis plus de 2 ans, mais il peut être rendu inutilisable à tout moment par WhatsApp. Sauf si le législateur finit par se décider à les forcer à être interopérables…

Passerelle WhatsApp

Création de salon-portail WhatsApp-Matrix

Méthode 1 - depuis Whatsapp:

  1. Créer groupe WhatsApp
  2. Inviter arn-fai.net (+33 six vingt-huit six trois deux fois le deux trente-deux) dans un groupe existant
  3. Attendre message
  4. Écrire pseudo : !am @pseudo:sans-nuage.fr
  5. Ajouter des contacts WhatsApp ou leur envoyer le lien d'invitation

Méthode 2 - depuis Matrix:

  1. Créer salon Matrix privé et non-chiffré
  2. Inviter @arnmessager:sans-nuage.fr
  3. Taper !am whatsapp
  4. Envoyer le lien d'invitation WhatsApp à vos contacts qui rejoignent le groupe en rentrant le lien dans leur appli

Félicitations! Votre salon-portail Matrix et le groupe WhatsApp sont maintenant reliés par la passerelle :

  • Ajoutez-y d’autres comptes Matrix (sans-nuage.fr ou autres). Tous peuvent converser avec WhatsApp et ajouter d’autres comptes.
  • Discutez sur WhatsApp sans avoir vous-même de compte/application/smartphone WhatsApp. Migrez en douceur vers une messagerie instantanée respectueuse de votre vie privée.

Passerelle Signal

Création de salon-portail Signal-Matrix

Voir la méthode 1 - depuis WhatsApp en remplaçant WhatsApp par Signal.

Note importante : la méthode 2 ne fonctionne pas avec Signal, impossible de créer un salon-portail Signal depuis Matrix

Création de salon-portail WhatsApp-Matrix-Signal

  1. Créer un salon-portail Signal-Matrix en suivant la méthode 1 ci-dessus
  2. Taper !am whatsapp

Communication et réseaux sociaux aux mains d'un oligopole capitaliste de surveillance

WhatsApp est l’application mobile de discussion instantanée comptant la plus vaste base d’utilisateurs au monde. Édité par une entreprise siégeant aux États-Unis, qui a été racheté par Facebook en 2014, pour 19 milliards d'euros. La solution repose sur un serveur centralisé, d'où l'importance de la localisation, notamment en terme de déclinaison numérique de souveraineté populaire et de libertés individuels. Avec 2 milliards d'utilisateurs, elle se place devant Messenger (États-Unis, Facebook, non-libre), Wechat (Tecent, Chine, non-libre), QQ mobile (Tencent, Chine, non-libre), Telegram (Telegram Messenger, Dubaï, clients libres, serveur non-libre) et Snapchat (États-Unis, Snap Inc., non-libre). Le marché est donc maîtrisé par une poignée d'acteurs, souvent en monopole dans un pays donné.

WhatsApp et la plupart des autres applis de tchat sont chiffrées de bout en bout, donc le serveur et ses administrateurs ne voient pas le contenu des messages (texte et media). On pourrait donc se dire, où est le problème ma vie privée est protégée. Mais WhatsApp a accès aux métadonnées et numéros de téléphone et Facebook ne se gêne pas pour les agréger aux données de son réseau social [1]. En effet, son modèle d'affaire repose sur l'exploitation et la revente des profils de ses utilisateurs. Les metadonnées permettent de construire un graphe social qui constitue une mine d'information pour le profilage des individus. La véritable valeur de WhatsApp c'est de pouvoir lier un tel profil comportemental à un numéro de téléphone qui peut/doit dans la plupart des pays être lié à l'identité civile de la personne abonnée. Le numéro de téléphone constitue dès lors un candidat parfait pour un numéro unique d'identification “UUID”. C'est ainsi que Facebook pense pouvoir rentabiliser son investissement à 19 milliards.

Les métadonnées sont finalement une des ressources fondamentales alimentant le capitalisme de surveillance. L'alliance de WhatsApp et Facebook est diaboliquement performante dans le profilage du comportement des individus car la boucle est bouclée. Facebook créé des profils extrêmement détaillés du comportement des individus et leur donne un identifiant unique (compte Facebook) qui peut théoriquement rester anonyme. WhatsApp met un numéro de téléphone, donc un nom, une identité sur l'identifiant unique, levant donc son anonymat. Facebook utilise ces données comportementales pour améliorer l'expérience utilisateur, et pour entraîner ses algorithmes de suggestion de publicité ciblée, ou encore de modération de contenus (anti-terroristes, etc.). Le surplus restant est appelé surplus comportemental, et est revendu sur le marché des données personnelles. Les clients de ce marché et qui achètent les algorithmes de Facebook sont les services secrets, les gouvernements, ou encore Cambridge Analytica, qui promet aux plus offrant une victoire à l'élection à laquelle il participe. Le surplus comportemental est finalement la marchandise que s'échangent les entreprises à l'ère du capitalisme de surveillance, et qui justifie leur valorisation boursière plus élevée que les géants du pétrole du 20ème siècle.

Sources

Pourquoi ARN-Messager

Clairement, l'usage généralisé de WhatsApp by Facebook est un immense problème pour notre souveraineté et notre démocratie. La mission de notre solution ARN-Messager est de faciliter l'échappée de WhatsApp et Facebook tout en limitant les metadonnées qu'ils peuvent récupéer. Qu'en est-il des alternatives et des stratégies de migration?

Signal, fondé par un repenti de WhatsApp, a longtemps proposé une alternative intéressante, et même une référence pour les activistes, en proposant le chiffrement d'une partie des metadonnées, une localisation en Suisse. L'inscription se fait néanmoins avec un numéro de téléphone, et même si ce numéro est dit chiffré, l'anonymat ne semble pas possible/garanti. Enfin le financement ne semble pas en voie de pérennisation, le modèle par don et financement philantropique basculant vers l'intégration de fonctionnalités monétisées, d'abord un système de payement type blockchain, puis une étrange orientation réseau social avec l'intégration de stories. Récemment l'intégration des SMS dans l'application Android a été retirée, alors qu'elle représentait une approche intéressante pour l'adoption en évitant la multiplication des applications de messagerie. Nous partons du principe qu'au bout d'un certain temps le dicton “si c'est gratuit c'est toi le produit” finira par s'appliquer, et que donc que tôt ou tard Signal finira par devoir concéder l'un ou l'autre aspect éthique de sa solution pour sa survie économique. On peut enfin évoquer le risque important qu'une solution centralisée de cette ampleur soit forcée par l'un ou l'autre gouvernement à permettre l'accès aux graphe social voire au contenu via des lois anti-terroristes ou autres conséquences de la Stratégie du Choc.

Le choix de Matrix est expliqué sur le wiki des CHATONS.

Source : Interview de la Quadrature du Net

Principe de fonctionnement

Passerelle d’interopérabilité entre les messageries instantanées chat.sans-nuage.fr (Element/Matrix) et WhatsApp (Facebook/Meta).

A puppeting bridge is a bridge which logs into a remote account of a service for you (puppeting) and thus allows you to use it via matrix. Matrix will basically act as a client for that remote implementation. Double-puppeting is available, but 100% optional. In addition to puppeting mode, this library also supports a relay mode: The account of the remote protocol is used as relay bot between the remote protocol and matrix.

Le principe de base est simple : Plutôt que d'avoir votre propre compte WhatsApp, vous partagez le compte détenu par ARN (numéro +33628632232) avec les autres utilisateurs sans-nuage. Vous demandez à discuter depuis Matrix dans un groupe WhatsApp. Un groupe WhatsApp est synchronisé avec un salon-portail Matrix par l'intermédiaire d'un logiciel passerelle (Mautrix-WhatsApp) qui contrôle le compte WhatsApp d'ARN. La passerelle envoie dans le groupe WhatsApp tout message provenant de Matrix. Côté WhatsApp tout message est vu comme provenant du compte ARN, et préfixé par le pseudo Matrix du rédacteur. Inversement un message provenant d'un compte WhatsApp est envoyé dans le salon-portail Matrix. Côté Matrix un utilisateur fictif “marionnette” est créé pour chaque compte WhatsApp. La passerelle peut être contrôlée par un robot de tchat (WhatsApp bridge bot) qui interprète des commandes, par exemple !wa login initie la prise de contrôle de la passerelle via l'API WhatsApp-Web. Cette passerelle est pensée pour être contrôlée par un utilisateur avec son propre compte WhatsApp.

Évidemment un utilisateur sans-nuage ne veut pas que ses conversations de groupe puissent être vues par les autres car il ne s'agit pas toujours de conversations publiques comme préconisé en haut de cette page, oulala c'est pas bien ! Un autre robot développé par les bénévoles d'ARN (ARN-Messager) permet aux utilisateurs sans-nuage de créer un salon-portail depuis WhatsApp ou depuis Matrix et d'y inviter leur compte Matrix. Et ce sans qu'aucun d'eux n'ait accès directement au compte WhatsApp d'ARN, sans quoi chacun pourrait voir toutes les conversations de tout le monde. VOTRE compte Matrix seul est invité dans le salon-portail Matrix du groupe WhatsApp que VOUS avez demandé de synchroniser. La passerelle ARN-Messager permet donc une utilisation anonymisée de WhatsApp via un compte mutualisé. En d'autres mots, les utilisateurs sans-nuage qui continuent à discuter via la passerelle avec leurs contacts sur WhatsApp :

  1. l'anonymat empêche l'UUID : l'identité civile ne peut être liée au profil
  2. la mutualisation brouille le graphe : les messages venant de plusieurs comptes pseudonymisés ne peuvent être ajoutés au graphe social de WhatsApp/Facebook.

Trajet d'un message à travers le bridge whatsapp

  1. Application Element chat.sans-nuage.fr (ou Element Android)
  2. Serveur Synapse/Matrix
  3. Robot WhatsApp présent dans le groupe donc le logiciel passerelle duplique
  4. Base de données du logiciel de passerelle Mautrix-WhatsApp qui maintient l'état des groupes WhatsApp via l'API du client web
  5. Chiffrement et envoi du message via l'API du client web
  6. Serveurs WhatsApp Chiffrement de bout-en-bout
  7. Application WhatsApp du contact destinataire déchiffrement avant ouverture

Nota : L'application WhatsApp présente sur la VM WhatsApp :

  • Doit être allumée toutes les 2 semaines sinon l'accès de la passerelle via l'API WhatsApp Web est coupé
  • Contient tous les messages de tout le monde
  • Ne télécharge pas les médias

Discussion sur la sécurité d'ARN-Messager

Du côté clair de la force, tous les messages qui restent sur Matrix sont chiffrés de bout-en-bout ET le graphe social est protégé par la possibilité de l'anonymat. Du côté obscure de la force, les messages sur WhatsApp sont chiffrés de bout-en-bout MAIS le graphe social comprend l'identité civile, est exploité et revendu. Nous essayons de faire reculer le côté obscure.

Mautrix-WhatsApp permet le chiffrement “end-to-bridge” qui implique. Nous ne l'exploitons pas car WhatsApp et l'absence de régulation nous empêche le chiffrement. Dont l'allumage et l'application whatsapp sont protégés par des mdp que seuls les admins ont. D'ailleurs ont pourrait chiffrer la VM WhatsApp je pense que ce serait bien.

Comment ça tourne derrière

Voici des détails sur l'infrastructure technique permettant de faire tourner ARN-Messager :

  • Serveur Debian/Yunohost sans-nuage.fr installé sur une Machine Virtuelle de notre cluster de serveurs localisé dans notre baie de serveurs du Datacenter de Cogent à Schiltigheim.
  • Application WhatsApp installée sur une Machine virtuelle LineageOS x86 hors du data-center et de notre infra, ce qui doit permettre d'éviter d’être black-listé par WhatsApp. L’application est configurée avec une carte SIM appartenant à ARN.

En suivant la chaîne de transmission du message détaillée dans la section précédente :

  1. Application element_ynh installée sur le sous-domaine chat.sans-nuage.fr de sans-nuage.fr (ou Element Android)
  2. Serveur Matrix synapse_ynh installé sur le domaine matrix.sans-nuage.fr (base de données postgreSQL)
  3. Logiciel de mise-en-relation arn-messager installé sur sans-nuage.fr comme service dans un environnement python. Il s'agit d'un robot possédant un compte Matrix administrateur de la passerelle. Il permet aux utilisateurs sans-nuage de commander le Robot WhatsApp en l'invitant dans un salon pour le transformer en portail. Ou en lui demandant d'inviter son compte Matrix en tant qu'administrateur dans un salon-portail fraîchement créé. (Fichier permettant de maintenir l'état d'administration d'un salon-portail)
  4. Logiciel de passerelle mautrix_whatsapp_ynh installé sur sans-nuage.fr synchronise salon-portail Matrix et groupe WhatsApp via l'API du client web. Il est enregistré comme service d'application du serveur synapse. Il est commandé via le Robot WhatsApp qui interprète les commandes envoyées par ARN-Messager ou par un admin ARN. (Base de données postgreSQL pour maintenir l'état de synchronisation)
  5. Chiffrement et envoi du message via l'API du client web
  6. Serveurs WhatsApp Chiffrement de bout-en-bout
  7. Application WhatsApp du contact destinataire déchiffrement avant ouverture

Limites actuelles concernant l'interopérabilité

De Matrix

Chiffrement de bout-en-bout à travers une passerelle entre deux réseaux. Chiffrement des metadonnées entre deux serveurs d'un même réseau fédéral et de deux réseaux différents.

Des passerelles marionnettes

Les réseaux privateurs tels que WhatsApp ou Facebook Messenger ont pour objectif d'emprisonner les utilisateurs au sein de leur plateforme par (1) l'effet de réseau “tout le monde est sur WhatsApp” et (2) le verrouillage du réseau : impossible de discuter avec un contact sur WhatsApp sans compte WhatsApp. Mais voilà pour que leur solution fermée ne soit pas à la traîne quant aux fonctionnalités offertes par des alternatives ouvertes, ils sont obligés de faire des concessions comme proposer un client web accessible depuis un navigateur sur PC. Des programmeurs talentueux se sont alors mis à analyser le code qui est chargé par le navigateur pour comprendre comment communiquer avec les serveurs de WhatsApp. C'est la genèse du bridge marionnette Mautrix-Whatsapp.

Actuellement les salons-portail ne peuvent malheureusement pas être chiffrées de bout en bout. Donc les quelques administrateurs d'ARN ayant accès au serveur sans-nuage peuvent théoriquement lire les messages, ce qu'ils ne font pas évidemment, ils ont autre chose à faire. Nous ne trouvons pas ça particulièrement choquant car de la même manière tout administrateur d'un service de mail peut lire vos mails (sauf si le vous utilisez le chiffrement PGP). Et il en est de même pour tout service n'étant pas chiffré de bout-en-bout. On pourrait quand même se demander s'il ne vaut pas mieux rester chez WhatsApp qui, lui, chiffre les messages de bout-en-bout. Cependant, comme vu en introduction, à la lueur des informations extractibles des métadonnées, il vaut selon nous mieux avoir ses données personnelles non-chiffrées sur un serveur qui s'engage à les conserver en sécurité, plutôt que sur un serveur qui a été condamné en justice pour avoir revendu vos métadonnées, et piraté à grande échelle à plusieurs reprises.

Pour conclure définitivement sur l'intérêt de notre stratégie, il faut se rappeler que l'anonymat est possible sur plusieurs serveurs Matrix. Soit via une inscription par pseudo lorsque le serveur l'autorise, soit via l'utilisation d'une adresse e-mail anonyme. Ainsi, même si des données venaient à être piratées ou revendues il appartient toujours aux utilisateurs de multiplier leurs comptes et user de l'anonymat pour brouiller le graphe social et empêcher l'identification civile afin que ces données soient inexploitables.

Préconisations techniques d'interopérabilité pour le législateur européen

A la lueur de notre compréhension acquise par la pratique, nous préconisons au législateur européen et français de rendre obligatoire l'intéropérabilité des très grandes plateformes (45 millions d'utilisateurs, c’est-à-dire un nombre équivalent à 10 % de la population de l’UE). Cette interopérabilité doit être implémentée par la mise-en-place d'une passerelle de type serveur-à-serveur tel que c'est déjà le cas entre les réseaux fédérés XMPP, IRC et Matrix.

Tutoriel d'utilisation détaillé

Méthode 1 - Si vous souhaitez ajouter votre compte Matrix à un groupe WhatsApp existant depuis WhatsApp, la procédure est la suivante :

  1. Inviter le numéro d’ARN dans le groupe WhatsApp devant être synchronisé (ou demander à l’administrateur.ice du groupe de le faire pour vous). Le robot ARN-Messager vous donne des instructions en retour.
  2. Répondre au robot en écrivant l’identifiant Matrix de la personne qui adminiproutra ce salon-portail. Seul.e un.e utilisateur.ice sans-nuage.fr peut adminiproutr. Exemple, tapez: !am @libremax:sans-nuage.fr
  3. L’administrateur.ice accepte l’invitation au salon-miroir (sur chat.sans-nuage.fr)

Méthode 2 - Si vous souhaitez créer un nouveau groupe WhatsApp depuis Matrix, la procédure est la suivante :

  1. Créer un salon Matrix privé et non-chiffré. Attention vous devez être seul.e et être administrateur.ice (droits 100).
  2. Inviter le robot de mise-en-relation @arnmessager:sans-nuage.fr
  3. Taper !am whatsapp pour initialiser le salon-portail et créer le groupe WhatsApp correspondant
  4. Envoyer le lien d'invitation WhatsApp à vos contacts qui rejoignent le groupe en rentrant le lien dans leur appli

Attention, ce dernier point risque de faire bannir par WhatsApp le numéro d'ARN, ca pourrait signer la MORT DE ARN-MESSAGER privilégiez le point 4..

4bis. Invitez la marionnette d'un ami Libre Max (WA)/@whatsapp_33654321234:sans-nuage.fr. Si votre ami.e n'est dans aucun salon-portail, taper !am whatsapp +33654321234 pour créer sa marionnette et l'ajouter au groupe WhatsApp via son numéro de téléphone au format international.