Deltachat

Depuis un moment maintenant j’utilise DeltaChat, une application de messagerie instantanée. Il en existe déjà beaucoup, des très bien même, mais j’aimerais écrire ici pourquoi je trouve qu’elle vaut le coup de s’y pencher.

Précision: ma position politique globale fait que les messageries instantanées qui promeuvent le capitalisme, le fascisme, l’autoritarisme sont les entités à détruire. Les messageries instantanées qui ne promeuvent pas ça ne doivent pas être en compétition, il ne sert à rien d’en trouver une qui écrase les autres.

C’est quoi

Deltachat est une application semi-libre disponible sur Android, iOS, Windows, Linux et Ubuntu Touch. Semi, car la version de bureau se base sur Electron qui bien que techniquement libre repose sur Google. L’interface est relativement standard, on peut se créer plusieurs profils, chaque profil peut discuter avec plusieurs personnes, en 1-1 ou en groupe. L’entièreté des communications est chiffrée de bout-en-bout via PGP

Deltachat est fait pour fonctionner hors-ligne en priorité. On peut créer des groupes, y ajouter des membres, envoyer des messages sans connexion; tout sera envoyé comme voulu au moment à la prochaine connexion. Les groupes sont totalement égalitaires: il n’y a pas de rôle, tout le monde peut y ajouter ou enlever n’importe qui. Il faut donc veiller à faire confiance aux personnes qui y sont.

Il est possible d’utiliser plusieurs appareils pour un compte donné. Aucun appareil n’est plus important qu’un autre. Le moyen le plus simple pour faire des backups, ainsi, est d’avoir un appareil/bot additionel qui partage le même compte.

Pour ajouter une personne, il faut scanner son qr code ou entrer son lien: c’est une information privée accessible sur demande, et qui garantit le chiffrement de bout en bout (à condition que personne n’ait accès au QR code ou au lien: il vaut mieux scanner le qr code en présentiel, au pire des cas on peut envoyer le lien par un moyen tiers mais on doit faire confiance à ce moyen).

https://securejoin.delta.chat/

Du point de vue technique un compte est simplement une paire de clés PGP. Elle sert tout autant à identifier le compte qu’à chiffrer le contenu. Les messages sont de simples emails chiffrés. Il y a donc une ou plusieurs addresses à provisionner pour chaque compte. Chaque adresse pourra être utilisée pour envoyer et recevoir des messages, en passant par des serveurs mails. On peut utiliser une adresse existante, ou on peut utiliser les relais chatmail. Ce sont des serveurs mails sur lesquels sont ajoutés quelques petits bonus bien utiles pour le mode de fonctionnement de Deltachat:

À noter: tous les détails techniques sont cachés des utilisataires. Il n’y a pas besoin de savoir comment ça marche pour utiliser Deltachat. La seule chose importante à retenir si on vient de l’extérieur: Deltachat envoie et reçoit des emails chiffrés avec PGP. Les emails ont des métadonnées particulières pour fonctionner proprement (modification de message, réaction, groupes, messages webxdc …) mais qui ne sont que des ajouts sur des emails classiques. L’interopérabilité est une base qui ne changera pas.

https://github.com/chatmail/core/blob/main/standards.md

Deltachat réfléchit à la manière de faire des groupes aux rôles hiérarchiques. En attendant d’avoir la solution miracle il est possible de créer des canaux de distribution: c’est comme un groupe, sauf qu’il n’y a qu’un seul compte qui peut écrire, les autres ne peuvent que lire, même pas réagir. Sans être une solution ce sera certainement une brique utile pour y arriver, et est déjà utile aujourd’hui.

Les applications WebXDC

https://webxdc.org/

Le gros point différenciant de Deltachat, ce sont les applications webxdc. Ce sont des documents html+css+js (un peu comme une webapp purement côté client) zippés.

Une application est un fichier partagé à l’intérieur d’un groupe de discussion donné. Les différentes applications à l’intérieur d’une même conversation sont totalement indépendantes: on peut partager plusieurs fois la même application mais elles ne se verront pas.

Pour éviter tout problème les applications sont exécutées dans un environnement cadenassé qui bloque toute communication avec l’extérieur (HTTP, DNS, webrtc, appareil, rien ne passe), sauf envoyer et recevoir des messages dans la conversation. Les messages envoyés dans la conversation seront ainsi reçus par toutes les personnes dans la conversation, accessibles uniquement à l’intérieur de l’application. Et comme les messages sont conservés, la conversation sert aussi de stockage de données.

Les applications WebXDC peuvent aussi ouvrir un canal iroh: c’est un tunnel direct entre les comptes qui sont connectés, chiffré de bout en bout, qui ne passe pas par le serveur (sauf la partie signalisation pour se trouver). Le tunnel permet ainsi de s’affranchir des limites de taille. Tout comme les messages, les paquets sont envoyés à tous les comptes connectés; il n’est pas possible de choisir individuellement dans le tunnel.

D'autres applications s'intéressent à ce format: cheogram et monocles, deux messageries instantanées basées sur XMPP, permettent de les utiliser. Bien sûr vu qu'elles ne parlent que XMPP elles ne peuvent pas dialoguer avec DeltaChat

https://github.com/n0-computer/iroh

Les points qui diffèrent

Par rapport à d’autres messageries voici ce qui m’intéresse et qui fait que je considère Deltachat comme intéressant, sans ordre de préférence:

https://github.com/chatmail/core

https://chaos.social/@delta/113307519686226505

Les limites

Tout n’est pas parfait bien entendu, il y a des points sur lesquels il faudrait plus de clarté:

https://merlinux.eu/