À la découverte de Riot, l'outil libre derrière la future messagerie de l’État français

Poussif Riot 46
Accès libre
image dediée
Crédits : ljubaphoto/iStock
Services
Guénaël Pépin

À l'été, le gouvernement français compte disposer de sa propre messagerie en ligne, pour reprendre la main sur certaines conversations sensibles. Derrière ce projet se cache Riot, un système de communication libre en développement depuis quatre ans, pour lequel le chemin reste encore long avant de détrôner les ténors du genre.

Le 13 avril, le secrétaire d'État au Numérique, Mounir Mahjoubi, annonçait la conception d'une messagerie d'État, pour détourner les responsables politiques de services comme Telegram et WhatsApp. Dans la foulée, la Direction interministérielle du numérique (Dinsic) nous livrait des détails supplémentaires.

Cette future plateforme, prévue pour l'été, est fondée sur « une souche libre », que quelques développeurs de la direction sont chargés d'installer et personnaliser. Cette souche, commune avec le service Citadel de Thales, s'appelle Riot. Elle est conçue par l'équipe franco-britannique New Vector, qui conçoit également son propre protocole de communication, Matrix. Discussions texte, partage de fichiers, appels audio et vidéo, partage d'écran... Riot doit montrer toutes les possibilités du réseau.

Les applications exploitant Matrix comptent 4 millions d'inscrits, pour 5 000 serveurs recensés quatre ans après les débuts du protocole. Le serveur officiel, Matrix.org, resterait le plus peuplé selon l'équipe, qui ambitionne de devenir le standard des messageries. Riot est une application destinée à démontrer les capacités du protocole, en lui adjoignant le chiffrement des conversations de groupe, via Megolm.

Une matrice pour tous les lier

« L'e-mail a commencé avec un modèle fragmenté, avant de se former autour d'un standard au bout de dix ans. On veut faire la même chose pour la messagerie instantanée. Il n'est pas très sain d'avoir des géants, comme WhatsApp et leurs protocoles propriétaires, qui prennent la main sur le monde. Envoyer un message instantané doit être aussi simple que d'envoyer un e-mail ou un SMS » plaide Amandine Le Pape, directrice des opérations et produits de New Vector.

N'est-ce pas simplement un standard de plus ? « La différence est que Matrix peut agir comme colle entre tous les standards, en l'intégrant dans n'importe quel protocole existant. Plutôt que de créer un 15e standard, on essaie de tous les unifier » justifie encore la responsable. Matrix propose aujourd'hui des ponts vers divers outils tiers, comme IRC, XMPP, Slack, Gitter ou encore Twitter.

En janvier, la jeune société a levé cinq millions de dollars auprès de Status.im. Via une levée de fonds en crypto-monnaie (ICO), Status.im a lui-même récupéré plus de 90 millions de dollars l'été dernier. La promesse : un système d'exploitation aux services fondés sur Ethereum. Selon New Vector, Status.im pourrait également se servir de Matrix, même si le but premier est bien le soutien à la décentralisation d'Internet.

Malgré cet important investissement, l'équipe a encore beaucoup de chemin avant le succès. Le principal défi : fournir une version utilisable de Riot, encore très loin des ténors que sont Slack, Telegram ou WhatsApp.

Des habitués de la conception de services de messagerie

L'équipe d'une quinzaine de personnes, aujourd'hui chez New Vector, a été formée il y a plusieurs années. À ses débuts, elle travaillait au sein du groupe Amdocs, en concevant des services de messagerie vendus en marque blanche à des opérateurs télécoms (comme Sintel ou TIM Brasil). « Fondue d'open source », elle s'est lancée sur le protocole XMPP en 2012, subissant une sacrée douche froide.

« Il est très complexe pour des choses qu'on considérait comme basiques, comme les discussions de groupe. À l'époque, on travaillait sur des applications propriétaires. On a lancé la conception d'un protocole propriétaire puis on a voulu créer un standard ouvert, simple et pragmatique, pour que tout le monde n'ait pas à réinventer la roue à chaque fois » se souvient Amandine Le Pape.

Le projet Matrix a commencé en 2014 au sein d'Amdocs, suivi de Riot. Cette division a perduré au sein du groupe jusqu'à la mi-2017, quand l'équipe a préféré voler de ses propres ailes. Les raisons : les difficultés à embaucher simplement au sein d'un tel groupe et la contribution des tiers, qu'une multinationale peut rebuter.

Depuis la coupure du cordon l'été dernier, New Vector a embauché. Une douzaine de personnes travaillent à temps plein sur le protocole Matrix lui-même, quelques autres sur Riot et des applications pour des tiers. La société compte créer une organisation à but non lucratif pour financer et soutenir le protocole, avec une gouvernance propre.

« On n'a pas immédiatement voulu tomber dans de la standardisation via [des organismes mondiaux comme] l'IETF ou du W3C. On voulait que ça avance et avoir un standard de facto, et non perdre du temps en discussions » justifie l'entreprise, qui compte ouvrir les vannes à l'approche de la version 1.0 dans quelques mois.


New Vector tient un vlog hebdomadaire sur Matrix et Riot pour Patreon

La messagerie de l'État français, un « fork » de Riot

Les contributions des tiers sont totalement libres : Matrix et Riot sont sous licence Apache 2, qui permet d'utiliser le code sans forcément reverser les changements. « Nous avons délibérément choisi une licence très permissive. Nous voulons que Matrix ait autant de succès que possible. Nous ne voulions pas réserver Matrix à un public GPL ou copyleft » justifie  Matthew Hodgson, PDG de l'entreprise et directeur technique.

Citadel de Thales et la future messagerie bleu-blanc-rouge sont donc des « forks » de Riot, soit des versions dérivées indépendantes. New Vector est en contact avec le géant français de la défense, qui exploiterait ses propres briques d'appels audio et vidéo. « Nous espérons qu'ils reverseront certains de leurs travaux, spécifiquement sur la partie mobile, où leurs ajouts seraient très utiles à la communauté » précise Hodgson, qui nourrit des espoirs similaires avec la Dinsic.

L'équipe a appris l'existence du projet fin 2017, étant depuis en discussions avec la direction interministérielle, y compris pour du support. Le « fork » se justifierait par l'intégration de briques d'identification propres à l'État. La contribution à Riot serait bien sur la table.

L'agence nationale de cybersécurité, l'ANSSI, est associée au projet depuis ses débuts. « On est là pour veiller à ce que les questions de sécurité de cette messagerie qui devrait arriver à l'été soient bien prises en compte. Ce n'est pas une messagerie secret défense. On est là avec une messagerie qui se veut hexofonctionnelle avec WhatsApp, Signal et compagnie » a déclaré son directeur, Guillaume Poupard, cette semaine.

L'objectif de l'État est d'héberger ces précieux messages dans un environnement contrôlé. « En contribuant à des souches open source de qualité, on peut en venir à concurrencer des solutions qui se présentent elles-mêmes comme incontournables sur le marché et dans lesquelles, j'insiste, on n'a aucune confiance » ajoute Poupard.

L'interopérabilité en question

Riot pourra-t-il faire oublier WhatsApp ou Slack dans les ministères ? « L'idée est de remplacer aussi bien WhatsApp ou Telegram que Slack. D'autant que de plus en plus de gens utilisent Telegram en remplacement de Slack. La Dinsic fait tout ce qu'il faut pour que Riot fonctionne, y compris en améliorant l'interface utilisateur » répond Amandine Le Pape.

Comme Slack, il est possible d'intégrer des widgets et bots venus de services tiers (comme GitHub, Google Docs ou YouTube), même s'ils sont moins nombreux que ceux du géant mondial. Une quinzaine est maintenue par New Vector, beaucoup proviendraient déjà de la communauté.

Pour le moment, l'interopérabilité avec les messageries propriétaires peut être limitée. Des membres ayant créé des ponts vers WhatsApp auraient vu leurs comptes fermés. « Une fois Matrix plus populaire, on aura les moyens d'aller voir les autres applications pour leur demander d'intégrer le réseau » espère la responsable.

Des serveurs en plein développement

Actuellement, le projet de logiciel serveur le plus mature s'appelle Synapse. Conçu depuis les débuts de Riot par l'équipe, il est la base du principal serveur en ligne, Matrix.org, malgré un certain héritage technique. Selon Amandine Le Pape, « il a un peu le syndrome du prototype passé en production ». Un remplaçant est donc en chantier.

New Vector a démarré la conception d'un serveur en Go, Dendron, avant d'en dériver Dendrite (« Dendron done right »). La société a depuis repris le travail sur Synapse, pour en améliorer les performances, avant de basculer à Dendrite. Le serveur est ainsi passé à Python 3 et a obtenu des « améliorations algorithmiques majeures », pour mieux exploiter la base de données qu'est Matrix.

Dendrite est le projet le plus avancé, aucun des remplaçants de Synapse n'étant prêt à passer en production. « Il y a au moins trois ou quatres projets de prochaine génération, mais tous sont de 50 à 80 % finis » estime Matthew Hodgson. La répartition des fonctions (layering) de Riot a été récemment revue, pour séparer l'application du SDK.

Le choix de Python est assumé, notamment pour servir de base à d'autres implémentations, même si l'équipe regrette celui du vieux framework réseau Twisted.

Un chiffrement taillé pour les groupes et le partage d'historique

L'une des grandes promesses de Riot est le chiffrement optionnel des messages, notamment sur de larges groupes. New Vector a conçu Olm, une implémentation clonant le Double Ratchet utilisé par Signal (la référence du domaine). Sur cette couche auditée en 2016, New Vector conçoit Megolm pour adapter le système aux discussions à plusieurs.

« Toutes les conversations chiffrées utilisent Megolm, mais nous utilisons la couche Olm pour échanger les informations de chiffrement sur le groupe. C'est une solution hybride, bien plus sophistiquée que celle de Signal, parce nous avons ces conversations de groupe. Signal chiffre chaque message individuellement pour chaque participant dans la conversation », ce qui est ingérable pour de larges groupes, explique Matthew Hodgson.

La confidentialité persistante (perfect forward secrecy), qui empêche d'obtenir toute une conversation en déchiffrant un seul message, est l'une des forces de Signal. Elle est optionnelle chez Riot. L'objectif est de partager l'historique d'une conversation avec un nouvel appareil ou un nouvel entrant dans la discussion, ce que ne permet pas cette confidentialité persistante.

L'historique et la clé de déchiffrement sont stockés sur chaque client. La conversation est déchiffrée à chaque affichage à l'utilisateur. Quand un nouvel entrant arrive, les utilisateurs existants peuvent décider de partager ou non cet historique avec lui.

Ce partage, facultatif, est une possible faille assumée par l'équipe. « De toute évidence, ça peut être utilisé par un attaquant pour exfiltrer de l'information » estime Hodgson, qui pense pourtant que l'intérêt de partager l'historique entre appareils est bien supérieur à ce risque. Il faut donc que les utilisateurs mesurent la portée de chaque partage, le choix leur revenant.

Les clients Matrix encore à leurs débuts

Riot est l'application la plus avancée sur le protocole Matrix, mais elle n'est pas la seule. Le site officiel dénombre une trentaine de clients, à des stades très différents de développement. Riot lui-même propose une interface assez austère, sans fonctions avancées comme l'envoi de messages vocaux ou d'éléments « fun » à même d'attirer les utilisateurs.

La communauté conçoit d'autres clients, comme Nheko, qui dispose d'une version Windows. Très léger, il ne supporte pas encore le chiffrement, rendant simplement les messages chiffrés invisibles. Ni appels audio ou vidéo, encore moins de partage d'écran ou de widgets, comme Riot. D'autres logiciels, comme le client multiprotocole Weechat, intègrent bien Matrix, mais cela reste bien minoritaire.

Riot Matrix
L'interface web de Riot. Discussion réalisée sans trucage.

Riot, un ravalement de façade « urgent »

Il est donc primordial que Riot soit utilisable, et c'est pourtant loin d'être le cas. La principale instance, celle de Matrix.org, a de sérieuses difficultés à être fluide. Les messages peuvent mettre plusieurs secondes à s'afficher, les répercussions des actions sont parfois prises en compte de manière aléatoire, des fonctions officielles (comme le partage d'écran via Jitsi) ne marchent pas toujours... L'outil donne l'impression d'essuyer les plâtres.

Le serveur surchargé est en cause, tout comme Riot lui-même sur les lenteurs de l'interface, admettent ses concepteurs. Cette interface « est notre point faible et le résoudre est notre grosse urgence », juge Amandine Le Pape. Après plus de deux ans sans designer, un ravalement de façade a débuté avec un professionnel et une embauche est lancée sur le sujet.

« On travaille beaucoup avec des communautés open source, qui sont nos principaux utilisateurs... Ils cherchent des outils très personnalisables. Ils aiment bien avoir accès à tous les boutons. On se retrouve avec une application dans laquelle un utilisateur de WhatsApp est perdu » déclare sans détour la responsable. Les apports de Thales ou de la Dinsic sont d'autant plus attendus.

Une version 1.0 dans les prochains mois, avec un nouveau nom ?

Les problèmes sont nombreux, y compris sur le chiffrement, encore pénible. Il faut créer un salon, puis activer le chiffrement (en bêta) dans les options. Une fois ceci fait, il peut être nécessaire de relancer le client Riot (ou recharger la page), avant de valider l'empreinte du terminal de chaque correspondant. La méthode devient ingérable avec de nombreux participants.

L'équipe compte supprimer l'obligation pour chaque contact de valider chaque nouvel appareil. Elle veut aussi fournir un moyen de vérifier que la personne avec qui l'on discute est bien celle qu'elle prétend être. Le partage d'historique doit, lui, passer par une fenêtre modale (popup) dédiée.

Une fois l'interface revue, New Vector compte lancer un nouvel audit de son système, cette fois sur l'ensemble de son code. Puis ouvrir au monde sa version 1.0. « On sortira de bêta quand on aura défini une interface utilisateur aussi simple que WhatsApp » promet la société.

Cette future mouture stable pourrait passer par un nouveau nom. « Vector » était déjà devenu « Riot » pour être plus accessible. Désormais, le changement de nom serait provoqué par le studio de jeux vidéo Riot Games (derrière League of Legends), qui goûterait peu de la proximité de leurs noms. Aucune piste n'a encore été fournie pour le prochain.

Un financement diversifié

Sur le long terme, les pistes de financement sont nombreuses. Une offre d'hébergement de serveurs est promise dans les trois prochains mois. Des services hébergés doivent suivre, comme des stickers. New Vector réfléchit à des offres destinées aux créateurs, par exemple aux vidéastes soutenus par les internautes sur Patreon ou les grands noms du marketing. Riot pourrait ainsi intégrer des « paywalls » pour leur permettre de créer des canaux réservés.

Riot intègre aussi un début de magasin d'applications, sur lequel tout est gratuit pour le moment. « C'est par là que passeraient les applications de monétisation, pour rétribuer les gens, faire du transfert d'argent... », avec de premières offres dans les six prochains mois, pense Amandine Le Pape. En attendant, la société vend du support pour les entreprises concevant des messageries fondées sur Matrix, comme Thales.

Enfin, New Vector reçoit 3 500 dollars par mois via une page Patreon. L'argent est destiné au développement du protocole Matrix lui-même, et devrait être redirigé vers l'organisation à but non lucratif en cours de préparation. « Une fois cette organisation en place, cela permettrait de financer le marketing pour le standard, en plus de développements par des prestataires par exemple » précise Le Pape.

Le chemin est donc encore long pour Riot. Après quatre ans passés sur la technique, il est temps d'attirer les utilisateurs, en se frottant aux mastodontes du domaine, avec la promesse de les réunir via un protocole unique. Un défi de taille, alors que le fonctionnement en silo est la base commerciale de nombre d'entre eux. Les prochains mois risquent donc d'être décisifs.


chargement
Chargement des commentaires...