Parmi les nombreuses nouveautés et évolutions de Salut à Toi pour la version 0.7 à venir, une a un particulièrement grand potentiel : Libervia (l'interface web) est devenu un cadriciel web (ou « framework web »).

« Mais il y en a déjà plein ! » vous entends-je dire… C'est vrai, mais celui-ci est décentralisé.

Construire sur du standard, avoir des outils pour créer décentralisé

Utiliser les comptes existants

Libervia s'appuie donc sur SàT et XMPP pour aider à construire voire reconstruire le web. Quel est l'intérêt ? Et bien déjà l'authentification, chose nécessaire sur la plupart des sites de nos jours, utilise le compte que vous avez déjà. Non je ne parle pas du compte sur le gros truc bleu ou l'oisillon piailleur, mais bien de votre compte XMPP, celui que vous utilisez avec SàT, Movim, Gajim, Conversations ou encore Pidgin, celui dont les données peuvent être chez vous dans votre salon, et avec lequel vous pouvez utiliser n’importe quel nom, celui avec lequel vos faits et gestes ne sont pas épiés.

Le ou la développeur/euse n'a donc pas besoin de gérer cela, et les utilisateurs n'ont pas à recréer un compte à chaque site ou à utiliser un compte centralisé (et ainsi dire aux aspirateurs à données du net où, quand et à quoi ils se connectent).

Autre avantage : on profite de l'existant ; si vous voulez intégrer d'autre moyens de vous authentifier (par exemple utiliser vos comptes GNU/Linux), vous n'avez qu'à activer ce qui va bien sur votre serveur (voir cette liste pour prosody, vous trouverez certainement une liste équivalente pour les autres serveurs.).

pubsub, la base de données décentralisée

XMPP n'est pas une technologie, mais un ensemble de technologies cohérentes, et pubsub est l'une d'elles. Pour mémoire, il s'agit d'enregistrer des données (ou « items ») dans des « nœuds » (qu'on peut voir comme des tables ou collections dans les bases de données), qui sont sur des services.

Un service pouvant être n'importe où sur le réseau, au même endroit que votre serveur web, à l'autre bout de la planète, sur l'intranet ou sur un .onion dans le réseau Tor. Bien sûr il est possible de garder des données localement si nécessaire, notamment pour le cache.

le cache parlons en justement, pubsub a une propriété très intéressante : on peut s'abonner à un nœud pour être prévenu des modifications sur celui ci (ajout/modification ou suppression de données). Ceci permet à Libervia d'avoir un système de cache automatique : une page peut être mise automatiquement en cache et celui-ci peut-être invalidé dès qu'une modification a lieu. Voilà encore de quoi simplifier la vie du développeur, et améliorer les performances côté utilisateur.

faciliter la vie

Libervia a été pensé pour faciliter la vie des développeurs.

changer l'apparence

Le système est entièrement basé sur un moteur de modèles (jinja2), qu'il est très facile d'étendre pour faire de nouveaux thèmes (du simple changement de CSS à la transformation de toute la structure des pages). Il suffit de créer un répertoire avec le nom du thème et de modifier ce que l'on souhaite, et uniquement ce que l'ont souhaite : les pages du thème par défaut vont être utilisées si nécessaire.

Intégration entre serveur et client

Un certain nombre d'outils sont présents pour faciliter l'intégration entre la partie cliente (dans le butineur) et la partie serveur (HTTP). Ainsi par exemple, il suffit de déclarer "dynamic = True" dans votre page Libervia (côté serveur), pour activer automatiquement un système de communication dynamique avec le navigateur (basé sur les websockets). Une méthode permet d'envoyer des données n'importe quand à la page, et une autre est appelée quand des données sont émises depuis le navigateur.

Ceci sera encore plus poussé dans la version 0.8, avec l'intégration prévue de transpileurs Python vers Javascript. Libervia utilise jusqu'ici Pyjamas, un projet qui n'est plus maintenu et qui se base sur un Python 2 obsolète. Pour éviter d'être bloqué sur une seule option, le choix sera laissé au développeur d'utiliser un transpileur Python vers Javascript (Brython et Transcrypt sont prévus), du Javascript simple (dit « vanilla »), ou s'il ou elle aime se faire du mal, un cadriciel Javascript à la mode.

Gérer les tâches communes

Un système de traduction est intégré nativement (utilisant Babel), ainsi que des filtres pour les dates, le rendu d'interfaces venant du backend, ou encore la création de formulaires.

Les modèles sont prévus pour êtres réutilisables, ainsi il est simple d'intégrer, par exemple, des commentaires dans une page.

Un écosystème en symbiose

Je m'arrête là pour les fonctionnalités, même si la liste n'est pas finie (il est par exemple possible de générer des sites statiques à la manière d'un Pelican ou d'un Hugo).

Ce nouvel outil a déjà été mis en pratique dans certaines des nouveautés de la version à venir, notamment avec le gestionnaire de tickets et de demande d'intégration de patch (« merge requests ») mentionnés précédemment.

La prochaine version de Salut à Toi est un aboutissement, c'est la première version prévue pour être utilisée en production, et constitue désormais tout un écosystème de communication, de création et de travail collaboratif, compatible avec le reste de la famille XMPP.

Si vous voulez vous tenir à jour vous pouvez consulter mon blog (qui est fait avec Libervia) ou nous rejoindre sur le salon sat@chat.jabberfr.org.

Si vous voulez nous soutenir, vous pouvez soit adhérer à l'association, soit nous aider sur Liberapay.

  • Mo

    Biboumi - XMPP gateway to IRC

    Timothée Jaussoin – pubsub.movim.eu / Movim – Tuesday, 19 September, 2017 - 12:37 - Tuesday, 19 September, 2017 - 12:40

A little recommandation today. We are using #Biboumi on the movim.eu XMPP server to allow our users to connect to the #IRC network using their account. You can find the service at irc.movim.eu.

Biboumi is a really nice IRC #bridge. It is quite simple to deploy and connect to your #XMPP server and is even packaged in many Linux distributions, including Debian!

Once everything is setup correctly (you can find the official documentation on their website) you can simply connect your account to a chatroom by adding a MUC in your bookmarks using this syntax:

#room%irc.server.com@irc.movim.eu

Thanks to the Biboumi team for this awesome piece of software!

  • 7 Like

    Badri Sunderarajan , Vince , Bigou , subadmin , ThurahT , Timofey Kostenko , Miguel A. Arévalo

  • 3 Comments

  • 20 September, 2017 ThurahT

    "Ping timeout" - irc.mozilla.org Now that's funny : )

  • 21 September, 2017 pep.

    +1 For biboumi!
    For debian though, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857658

  • 6 October, 2017 Dominik George

    Installed Biboumi on our pod. Really nice. ejabberd ships with an IRC transport, but that stopped working a while ago.

    Now I have two more bugs on my metres-long to-do list: Help fix the Debian bug mentioned above, and implement correct JID validation in Movim, as I cannot join some of my IRC channels in Movim due to it prohibiting some valid characters in JIDs.

  • Contact publication

    Timothée Jaussoin – Wednesday, 16 August, 2017 - 12:55 - Wednesday, 16 August, 2017 - 12:56

The migration of the #XMPP #Movim server from #Metronome to #ejabberd is close to be done and most of the services are up again, sorry for the connectivity issues that you had those pas few days.

I'll write a longer post about that #migration in the upcomign days on the official Movim blog.
  • Migration

    The honking of Canadian geese overhead caught my attention just long enough for my to snap this shot. Too bad I couldn't get a good photo of their V-formation, as they're quite disorganized in this...

  • 9 Like

    paulfree14 , eriksson , jessicamartinmaresco , Bigou , Nara , Emile Schons , collederas , Hopla , xram

  • 1 Comments

  • 22 August, 2017 Emile Schons

    merci pour ca :) tu es genial!

  • Migration of the Jappix XMPP services to Movim

    Timothée Jaussoin – Wednesday, 26 October, 2016 - 06:50

I'm resharing this message from the Movim blog :)


  • Migration of the Jappix XMPP services to Movim

    After some talks between the Movim and Jappix maintainers, it has been decided to migrate the XMPP services of jappix.com to those of movim.eu. Please note that only some of these services will be migrated. In fact only the following XMPP services will stay available: all the jappix.com accounts; the chatrooms service, muc.jappix.com (planned); the PubSub service, pubsub.jappix.com (planned); The registration system of jappix.com has been disabled and the anonymous authentication service, anonymous.jappix.com, has been definitly closed. This migration will take several days, maybe weeks, to give us enough time to stabilize and do all the required checks on the new platform. If you have any questions, do not hesitate to contact us on our XMPP chatroom: movim@conference.movim.eu. Migration des services XMPP de Jappix vers Movim Suite à de nombreux échanges entre les mainteneurs du projet Movim et de la plateforme Jappix, il a été décidé de migrer les services XMPP offerts par jappix.com vers ceux de movim.eu. Veuillez noter que seule une partie des services seront migrés. Ici il est uniquement question de la partie XMPP incluant : l'ensemble des comptes de jappix.com ; le service de salons de discussion muc.jappix.com (en préparation) ; le service PubSub pubsub.jappix.com (en préparation). Sachez également que les inscriptions sur jappix.com ne seront désormais plus possibles et que le service d'authentification anonyme, anonymous.jappix.com, a été fermé. Cette migration risque de prendre quelques jours, voire quelques semaines, afin de s'assurer de la stabilité de la nouvelle plateforme. Si vous avez des questions, n'hésitez pas à venir sur notre salon XMPP : movim@conference.movim.eu.

    Movim 25 October, 2016

  • 1 Like

    John Doge

  • 2 Comments

  • 22 January, 2017 spicewiesel

    that means the development on jappix (the software) was discontinued, right?

  • 26 January, 2017 Timothée Jaussoin

    yup, a while ago already :)

  • Mo

    Migration of the Jappix XMPP services to Movim

    Timothée Jaussoin – pubsub.movim.eu / Movim – Tuesday, 25 October, 2016 - 06:45

After some talks between the Movim and Jappix maintainers, it has been decided to migrate the XMPP services of jappix.com to those of movim.eu.

Please note that only some of these services will be migrated. In fact only the following XMPP services will stay available:

  • all the jappix.com accounts;
  • the chatrooms service, muc.jappix.com (planned);
  • the PubSub service, pubsub.jappix.com (planned);

The registration system of jappix.com has been disabled and the anonymous authentication service, anonymous.jappix.com, has been definitly closed.

This migration will take several days, maybe weeks, to give us enough time to stabilize and do all the required checks on the new platform.

If you have any questions, do not hesitate to contact us on our XMPP chatroom: movim@conference.movim.eu.

Migration des services XMPP de Jappix vers Movim

Suite à de nombreux échanges entre les mainteneurs du projet Movim et de la plateforme Jappix, il a été décidé de migrer les services XMPP offerts par jappix.com vers ceux de movim.eu.

Veuillez noter que seule une partie des services seront migrés. Ici il est uniquement question de la partie XMPP incluant :

  • l'ensemble des comptes de jappix.com ;
  • le service de salons de discussion muc.jappix.com (en préparation) ;
  • le service PubSub pubsub.jappix.com (en préparation).

Sachez également que les inscriptions sur jappix.com ne seront désormais plus possibles et que le service d'authentification anonyme, anonymous.jappix.com, a été fermé.

Cette migration risque de prendre quelques jours, voire quelques semaines, afin de s'assurer de la stabilité de la nouvelle plateforme.

Si vous avez des questions, n'hésitez pas à venir sur notre salon XMPP : movim@conference.movim.eu.

  • 2 Comments

  • 25 October, 2016 Stanislav N.

    Is that means that Jappix development will stop?

  • 25 October, 2016 postblue

    @pztrn Jappix dev has stopped on 10 Jun https://github.com/jappix/jappix/commit/941df95f4d4f89c6b8b1e35753d6444342a8726b

  • Cryptocat, ou le piège du client magique

    Timothée Jaussoin – Wednesday, 6 April, 2016 - 21:35 - Wednesday, 4 May, 2016 - 10:35

Il y a quelques jours je suis tombé sur un article annonçant la sortie de la nouvelle mouture du client de messagerie sécurisé Cryptocat. Je ne m'étais jamais réellement penché sur ce client car il faisait, selon moi, partie des dizaines d'autres clients surfant sur la vague des messageries instantanées chiffrées sorties suite aux révélations d'E.Snowden. J'ai donc voulu creuser un peu et voir de quoi il était composé.

Comme vous le savez peut-être, je travaille moi-même sur un client de messagerie "sociale" appelée Movim exploitant le protocole XMPP. J'essaye, au travers de ce projet, de montrer aux gens qu'il est parfaitement possible de créer une solution à la fois sécurisée, standard et décentralisée tout en offrant une interface agréable et simple à comprendre. Petite précision toutefois: Movim ne possède pas (encore, mais j'y travaille) de fonctionnalité de chiffrement de bout en bout. Néanmoins il est possible de faire ce genre de chiffrement sur XMPP de façon standard et compatible avec des technologies standardisées comme OTR et le récent OMEMO (c'est d'ailleurs cette norme que j'ai décidé d'implémenter dans Movim).

La chose que je trouve dommage avec tous ces services et clients c'est qu'ils ne sont pas compatibles entre eux. Pourtant il existe aujourd'hui plusieurs clients XMPP proposant la norme OTR et OMEMO mais qui ne sont malheureusement pas si connus et médiatisés que les autres. Je mentionnerais en particulier l'excellent Conversations (sur Android) dont l'équipe est à l'origine de la norme OMEMO (qui est elle-même une implémentation de la norme Axolotl dans XMPP, notamment utilisée sur le client Signal).

Étant un peu curieux par nature je me suis plongé dans le code source de la nouvelle version de ce cher Cryptocat pour regarder un peu ce qu'il a dans le ventre.

Ni une, ni deux, je clone le dépôt sur ma machine et je commence à explorer le code.

Première surprise !

Avant même d'ouvrir le moindre fichier j'avais déjà un petit sourire en coin en voyant le nom de certains d'entre eux dans le répertoire src/js/.

axolotl.js
omemo.js
xmpp.js

Tiens, tiens, tiens. Un petit tour sur la page Security du site me confirme bien ça. Cryptocat utilise XMPP comme transport et OMEMO comme méthode de chiffrement. Le reste du blabla n'est rien d'autre qu'une réexplication de la norme Axolotl sans pour autant la mentionner.

Donc Cryptocat est un client XMPP, en Javascript, avec la norme OMEMO par dessus.

XMPP…

Je ne me suis pas particulièrement penché sur la partie chiffrement du projet, j'avoue ne pas avoir assez de compétences en cryptographie pour offrir une critique constructive et je pense que l'auteur du projet est bien plus expérimenté que moi là dessus. Je salue par ailleurs sa volonté de transparence à ce propos. Néanmoins je commence à bien connaitre le protocole XMPP et je sais que son point fort est la possibilité d'interconnecter les serveurs entre eux et de laisser le choix du serveur à utiliser aux utilisateurs.

L'interconnexion est une fonctionnalité que j'estime nécessaire car d'une part, elle permet aux utilisateurs d'avoir le choix du serveur sur lequel ils iront déposer leurs données et d'autre part, elle décentralise les points d'échange du réseau (et rend ainsi plus difficile la censure et l'écoute du réseau).

Après avoir regardé plus en détails le fichier xmpp.js j'ai enfin la confirmation de ce dont je me doutais jusque là.

jid: username   '@crypto.cat',
server: 'crypto.cat',

Oui, il y a bien un serveur XMPP écrit en dur dans le code source du projet.

Explorons un petit peu le serveur crypto.cat

Le site XMPP IM Observatory nous retourne une note de A pour la sécurité du serveur, ici rien à dire. Par contre je découvre que l'interconnexion avec les autres serveurs du réseau n'est pas autorisée. La connexion entre le client Javascript et le serveur se fait au moyen d'un Websocket et le serveur XMPP est un serveur Prosody tout bête.

Cryptocat n'est donc pas qu'une application de chat offerte par Nadim Kobeissi, mais aussi un service centralisé auquel les utilisateurs sont contraints de se connecter (sauf s'ils changent le code source du client, ce qui est possible, mais combien le feront ?).

Précisions sur le chiffrement de bout en bout dans XMPP

Le chiffrement de bout en bout est une très grande avancée dans l'anonymisation des données échangées. Néanmoins il ne permet pas tout. Sur XMPP par exemple il faut savoir que OTR et OMEMO ne chiffrent que le contenu des messages et pas la signalisation qui les accompagne (certains diront les métadonnées). Mais que pouvons nous trouver dans ces métadonnées ? Et bien l'identifiant de l'émetteur et du destinataire du message mais aussi beaucoup d'autres choses pouvant êtres sensibles. Une page sur le Wiki de Reporters Sans Frontieres résume plutôt bien tout ça. Ces informations peuvent être conservées dans des historiques et journaux sur les serveurs XMPP.

En choisissant de centraliser son service sur un seul et unique serveur (qui semble être hébergé dans le datacenter d'OVH à Roubaix) l'auteur de Cryptocat a aussi fait le choix de concentrer l'intégralité du trafic de sa plateforme sur un seul et unique point du réseau Internet.

Cela me serait égal si toutes ces informations étaient précisées sur le site du projet, au moins de façon temporaire si l'objectif à terme était de permettre la connexion à d'autres serveurs XMPP. Mais je trouve vraiment dommage qu'il ait tu ces informations.

Petit bonus, qu'en est-il de la v1 de Cryptocat ?

Même si je salue le fait d'utiliser des normes comme XMPP et OMEMO dans Cryptocat, j'ai quand même jeté un œil à la première version du projet pour voir sur quelle architecture il s'était basé.

Sans grande surprise la première version se base également sur XMPP et OTR. Néanmoins elle permettait de changer le serveur XMPP sur lequel le client se connectait. J'espère donc qu'il sera également possible de faire la même chose sur la seconde version.

Pas de quoi s'inquiéter donc ?

Oui, pour le moment pas de quoi crier au scandale mais je souhaiterais que Nadim soit aussi transparent sur l'architecture de son projet que sur les méthodes de chiffrement qu'il utilise au sein de son application.

Je pense qu'il est aussi important d'informer les utilisateurs de comment sont protégées leurs messages mais aussi par où et comment ceux-ci sont acheminés.

Dernière petite question, pourquoi vouloir à tout prix fermer la plateforme alors que XMPP permet nativement l'interconnexion avec les autres réseaux ?

En bref, si vous voulez avoir les mêmes fonctionnalités que Cryptocat, plus tous les avantages de XMPP (interconnexion, gestion de l'historique, profiles, notifications, accusés de réception…) tournez vous vers des clients comme Conversations ou Gajim (et bientôt Movim concernant le chiffrement je vous promet !).

That's all folks !

Le dernier article de la série sur l'installation d'un blog XMPP avec Libervia est en ligne ! Ce coup-ci nous allons voir comment on publie avec Libervia, et comment il est possible de publier depuis un éditeur comme Vim…
À lire sur http://www.goffi.org/blog/goffi/02bfcc6c-f82f-4bc9-b12b-aef8d5a19fc2 (Si vous lisez depuis un client XMPP comme Libervia, Movim ou Jappix, vous pouvez commenter le billet).