Hier est sortie la nouvelle version de la distribution GNU/Linux Fedora. Dans la nouvelle Fedora 35, il y a plein de nouvelles choses, dont quelques unes dont je suis l'auteur.

J'ai le plaisir, et l'immense privilège, de vous annoncer le support de l'encryption de bout-en-bout dans la messagerie instantannée XMPP. Utilisable et exploitable par n'importe quel client XMPP écrit dans le langage Python. Dans la distribution Fedora, on trouve le client Poezio qui est écrit en langage Python, par exemple.

J'ai aussi ajouté le plugin de Poezio, pour le support de cette nouvelle génération d'encryption de bout-en-bout.

Cette nouvelle génération a été développé en 2014, par des universitaires, mais aussi par la société Signal (l'application de SMS chiffrés). Elle apporte de nouvelles fonctionnalités notament le chiffrement vers plusieurs destinataires d'un coup, et rend possible le chiffrement d'une conversation dans un salon de discussion. Les clés de chiffrement ont une taille réduite et reposent sur les algorithmes de chiffrement X3DH, XEdDSA et DoubleRatchet. Son application dans la messagerie instantannée XMPP se nomme "chiffrement OMEMO".

Pour ajouter le support de OMEMO dans Poezio, il a fallu ajouter le support dans les bibliothèques Python. Il en est de même pour le support des algorithmes de chiffrement X3DH, XEdDSA, et DoubleRatchet. Tous les programmes en Python peuvent désormais exploiter ces algorithmes dans Fedora 35.

Client XMPP Profanity

Au début de ce projet, j'avais constaté qu'il n'y avait qu'un seul client en terminal qui était facilement utilisable, et qui pouvait supporter le chiffrement OMEMO via un plugin. Je passe littéralement ma vie dans les terminaux, soit dans une session GNOME, soit dans un TTY, avec le multiplexeur Tmux. Face à ce manque de choix, j'ai ajouté dans la nouvelle Fedora 35 le client XMPP Profanity.

Profanity est un client en terminal qui supporte nativement le chiffrement OMEMO. Presque toutes les dépendances de ce client étaient déjà présentes dans la distribution, sauf la bibliothèque C pour le support du protocole XMPP (libstrophe).

xmppc (Commande pour XMPP)

L'avantage des bibliothèques partagées est qu'elles sont réutilisables à l'infini. Et en ajoutant cette dernière, tous les logiciels écrits en C peuvent désormais exploiter le protocole XMPP.

C'est ce qui m'a permis d'ajouter un dernier programme : xmppc est un petit logiciel en ligne de commande écrit en C, qui permet d'envoyer des messages comme la commande "mail". Il est très utile pour les tâches planifiées, et peut être utilisé avec systemd, cron, atd, procmail etc...

Fin de projet

J'ai débuté ce projet en décembre 2020 dans la branche de développement de Fedora, qui allait donner la version 35. Une Fedora 35 Exceptionnelle, et j'en suis très fier.