Projet Berty

Analyse de sécurité d'une messagerie distribuée et sécurisée

Projet 4INFO 2024/2025

Présentation de l'équipe

Encadrants : Gildas Avoine, Olivier Heen

Étudiants : Pierre Hubert, Ala Alkhafaji, Salah Al-bakri, Paul Gasnier, Thibault Didier, Alexandre Leconte et Kevin Tollemer

Contexte

Dans un monde où les échanges numériques sont omniprésents, garantir la confidentialité des communications est devenu une priorité. Les solutions classiques de messagerie sécurisée offrent des niveaux de protection intéressants, mais elles reposent souvent sur des infrastructures centralisées, les rendant vulnérables aux attaques et à la surveillance.

Berty se distingue en proposant une approche innovante : une messagerie distribuée, fonctionnant en pair-à-pair (P2P), éliminant ainsi les points de défaillance uniques. Grâce à un chiffrement avancé et une architecture résistante à la censure, Berty assure des échanges sécurisés, même sans connexion Internet stable.

Objectif du projet

L'objectif de ce projet est d'évaluer la robustesse de l'application de messagerie sécurisée Berty en analysant ses mécanismes de protection contre les menaces potentielles. L'étude vise à identifier d'éventuelles vulnérabilités dans les protocoles cryptographiques, la gestion des données et la résilience du système face à des attaques. L'analyse permet de vérifier si Berty répond effectivement à ses promesses en matière de confidentialité, d'intégrité et de disponibilité des communications.

Spécifications

Berty repose sur une architecture distribuée combinant son interface utilisateur et le cœur réseau Weshnet, développé en interne. Ce dernier utilise des technologies comme IPFS et libp2p pour permettre la communication pair-à-pair sans serveur central. Le chiffrement de bout en bout est renforcé par un système de rotation des clés inspiré de Signal, assurant la confidentialité même en cas de compromission partielle.

Recommandations

Notre analyse s'est concentrée sur les composants développés par Berty Technologies, en particulier Berty (v2.470) et Weshnet (v2.0.4). Cette démarche nous a permis de cibler les parties critiques du système sur lesquelles les développeurs ont un contrôle direct.

Le manque de mises à jour régulières et certaines fragilités constatées dans le code soulèvent des interrogations quant à l'aptitude de Berty à répondre aux exigences d'une utilisation quotidienne et sécurisée. Par ailleurs, la relative instabilité du service et une architecture applicative plus complexe qu'attendu suggèrent que ce projet est plutôt destiné à l'expérimentation pour le moment. De plus, la présence d'éléments centralisés dans l'architecture réseau ainsi que le manque de transparence autour des procédures permettant de devenir un acteur actif du réseau peuvent soulever des questions quant aux garanties offertes par les développeurs.

Code

Le code des composants étudiés du projet est disponible sur les dépôt GitHub de l'organisation Berty Technologies.

  • Berty est le dépôt hébergeant le code source de Berty développé en Go, ainsi que l'application mobile développée en React Native.
  • Weshnet héberge le code source de Weshnet, le protocole sur lequel Berty repose.

Le protocole Weshnet répose sur plusieurs couches réseau, qui sont hors-scope pour le projet d'analyse de sécurité, mais qui restent importants pour la compréhension du projet. Elles sont :

  • OrbitDB est une base de données distribuée réposant sur IPFS
  • IPFS pour InterPlanetary File System, est un standard utilisé pour l'adressage du contenu, compatible avec HTTP, et réposant sur libp2p.
  • libp2p est une bibliothèque réseau open source qui permet d'échanger les données en peer-to-peer.