CryptPad v1.10.0 est disponible, à la découverte du service collaboratif chiffré de bout en bout

Release the kraken ! 47
Accès libre
image dediée
Securité TEST
Par
le jeudi 06 juillet 2017 à 11:08
David Legrand

Et si vous pouviez travailler à plusieurs sur un document, avec des échanges chiffrés sans que le serveur ne puisse avoir connaissance du contenu ? C'est la promesse de CryptPad, un projet de recherche exploitant la blockchain qui vient de publier sa nouvelle version.

Il y a quelques mois, nous entendions parler d'un nouveau projet né un soir d'Halloween, exploitant le chiffrementCryptPad. Son objectif était de proposer une solution de partage de document et de travail collaboratif en temps réel.

Un représentant de son équipe, Pierre Bondoerffer, était présent à Pas Sage en Seine la semaine dernière afin de présenter l'outil, et annoncer la nouvelle version 1.10.0 (Kraken) qui est désormais en ligne. Celle-ci apporte quelques améliorations au niveau de l'interface et de l'ergonomie. L'occasion de nous intéresser au fonctionnement du projet et de faire le point.

Une solution qui se veut complète, collaborative et chiffrée E2E

Tout d'abord : qu'est-ce que CryptPad ? L'équipe semble vouloir proposer une forme d'alternative assez simple à Google Drive/Docs, dans la mesure ou l'on retrouve un espace de stockage accompagné de quelques applications d'édition de documents, de code source, de présentation ou de sondage.

Le tout est encore relativement basique, mais le point fort du service se situe de toutes façons dans le fait qu'il s'annonce comme Zero Knowledge, un concept à ne pas confondre avec la preuve à divulgation nulle de connaissance. Ici, il s'agit du fait que le service ne détient pas les clefs de chiffrement utilisées par les utilisateurs en local et ne peut donc pas consulter le contenu. On parle en général de solution de bout en bout, ou E2E (End-to-end) pour les intimes.

Il est donc possible de partager un document, de l'éditer à plusieurs, sans que celui-ci soit stocké en clair sur le serveur. L'usage est ainsi considéré comme privé, mais pas anonyme, prévient l'équipe qui renvoie vers l'utilisation de Tor ou d'un VPN pour ajouter un telle couche de protection.

Basé sur Node.jsCKEditor, CodeMirror et le moteur temps-réel maison ChainPad, son code source est diffusé sous licence AGPL v3 via un dépôt GitHub. Il est proposé sous forme hébergée, mais vous pouvez aussi l'utiliser sur votre propre serveur. Les adeptes de Docker ont droit à une solution spécifique, un package (de test) étant aussi disponible pour Yunohost.

Il est édité par XWiki Labs et en partie financé jusqu'en 2019 par Bpifrance à travers le projet OpenPaaS::NG Research. Le reste du financement doit venir des abonnements, du support pour des tiers, ou du sponsoring pour la mise en place d'une ou plusieurs fonctionnalités en particulier.

Une question d'éthique avant tout

Si le site n'est pas très prolixe (et manque de mentions légales), on peut en apprendre un peu plus sur le projet du côté de son blog officiel. Dans son article initial de février dernier, Caleb James DeLisle explique ses motivations : le besoin d'un service éthique, hors de la pratique de la gratuité contre des données, capable de prouver sa bonne foi à l'utilisateur à travers son concept de « Zero Knowledge ».

Il fait d'ailleurs la différence entre ce discours et l'annonce de solutions « sécurisées », aux modèles économiques divers. Au passage, il assure la promotion d'autres services open source du genre tels que Cryptomator, nCryptPretty Easy Privacy ou encore Riot.im, voire même de solutions propriétaires.

Les mois suivants ont été l'occasion de corriger quelques failles, d'ajouter les abonnements puis diverses fonctionnalités. Malheureusement pas de mettre en place de manière plus visible et lisible une documentation permettant de détailler le fonctionnement de l'ensemble. Une page descriptive est accessible par ici.

Du chiffrement symétrique et de la blockchain

Il faut surtout aller du côté du projet ChainPad pour voir de quoi il retourne. Aussi développé par XWiki Labs, il exploite un chiffrement symétrique (via NaCL) et une clef qui est partagée entre tous les participants. Celle-ci est présente dans l'URL de partage du document (via l'identificateur de fragment), ce qui nécessitera donc de procéder avec prudence. 

L'évolution du document est gérée par transformation opérationnelle. Le dispositif utilise la blockchain telle qu'imaginée par Satoshi Nakamoto et une structure CRDT (Conflict-free replicated data type) notamment utilisée dans Git. Le transport des messages est effectué par des websockets et l'API maison Netflux.

Ici, les blocs contiennent des « Patchs » qui sont un ensemble de modifications apportées au document. Chaque bloc est identifié par une empreinte (SHA256), qui servira notamment à indiquer la référence d'un état précédent. Chaque participant pourra vérifier et valider un patch, avant que celui-ci ne soit appliqué.

Dans la pratique, l'équipe explique le fonctionnement de la sorte : lorsqu'un utilisateur effectue des modifications au sein du document (Authoritative), il créé des opérations qui sont placées dans un espace connu sous le petit nom d'Uncommitted Work.

De manière périodique, ce dernier sera transféré au serveur sous la forme d'un Patch puis renvoyé vers l'ensemble des clients. Lorsqu'un Patch est reçu, il est examiné afin d'en déterminer la validité pour être accepté ou rejeté. Si tout se passe bien, il est appliqué au document directement ou de manière différée selon les cas.

Au final, on se retrouve avec un système qui permet de gérer l'évolution d'un fichier avec une décentralisation du consensus, sans nécessité d'en connaître le contenu. Le stockage semble pouvoir être adapté à différentes solution. Par défaut il s'agit de fichiers mais il est possible de miser plutôt sur une base de données.

Dans la pratique, comment ça marche ?

Pour tester CryptPad, rien de plus simple. Il vous suffit de vous rendre sur le site et de choisir de Créer un pad anonymement. Il vous sera proposé d'indiquer un nom (vous pouvez rester anonyme), vous arriverez ensuite directement dans l'interface d'édition. 

Celle-ci reprend des morceaux de ce que l'on connait avec EtherPad ou encore Google Docs, ce qui ne sera pas forcément du goût de tout le monde. Vous pourrez modifier le titre du document via une ligne auto-éditable sur la partie haute. À sa gauche, un bouton en forme de disque dur vous renverra vers l'interface de gestion des fichiers CryptDrive. 

  • CryptPad 1.10.0
  • CryptPad 1.10.0
  • CryptPad 1.10.0
  • CryptPad 1.10.0

Un bandeau sur la gauche affichera la liste des participants à l'édition du document ou ceux qui sont simplement en train de le regarder. Le lien de partage permet en effet de faire la différence. Pour rappel, celui-ci devra être diffusé avec attention, pour éviter tout problème. On regrettera d'ailleurs de ne pas pouvoir le réinitialiser en cas de fuite.

En haut à droite différentes icônes indiqueront le statut, la latence du système en ms ou permettront d'accéder aux paramètres du compte. Il sera aussi possible d'importer ou d'exporter un pad, de le supprimer, de le sauvegarder comme modèle ou d'en créer un nouveau.

La barre d'édition pourra être cachée. Elle contient l'essentiel des fonctionnalités nécessaire à un tel outil, sans trop de fioritures. Ne vous attendez par contre pas à une gestion de thèmes ou d'options avancées comme vous le trouveriez dans un outil tel que Word. 

Dans l'ensemble le fonctionnement est plutôt réactif, même avec quelques utilisateurs et à travers une connexion classique (ADSL/FTTH). Il faudra néanmoins voir si cela ne pose pas trop de souci si le nombre d'intervenants devient très important et que la qualité des connexions se fait moins bonne.

Usage anonyme, gratuit ou via l'offre payante

On appréciera que l'utilisation sans compte soit assez complète, avec paramètres et accès au Drive. Mais attention, les fichiers non utilisés pourront être supprimés au bout de trois mois. Pour pérenniser votre usage, vous pouvez vous inscrire sur le site avec un simple nom d'utilisateur et un mot de passe. Celui-ci ne pourra pas être modifié pour le moment.

Par défaut, 50 Mo de stockage vous est alloué, et les données des pads de votre navigateur peuvent être importées. Des abonnements sont proposés, chacun incluant un nombre de pads illimité avec des options différentes :

  • 5 euros HT par mois : 1 utilisateur, 5 Go de stockage, support communautaire
  • 10 euros HT par mois : 2 utilisateurs, 20 Go de stockage, support communautaire
  • 15 euros HT par mois : 5 utilisateurs, 50 Go de stockage, support 1 jour ouvré (en français)

Ceux qui veulent simplement soutenir le projet peuvent le faire à travers des dons ou aider à sa traduction. Reste maintenant à voir le projet évoluer, celui-ci devant convaincre des utilisateurs de le suivre pour durer. Il faudra d'ailleurs qu'il subisse un audit complet, ce qui n'a pas encore été le cas.

L'équipe pourrait alors par exemple miser sur une intégration à des offres d'hébergeurs ou s'associer à des outils comme Cozy, qui apparaît comme un bon complément et dont la v3 devrait être bientôt mise en ligne.

CryptPad 1.10.0


chargement
Chargement des commentaires...