Imaginez un logiciel libre de communication multimédia tellement ergonomique et immédiat qu’il ne requiert ni configuration spéciale, ni compte en ligne, ni mot de passe. Imaginez qu’il soit construit à partir des dernières technologies pair à pair (P2P), sécurisé avec les meilleurs standards de chiffrement, et que vous puissiez l’utiliser gratuitement, sans frais de licence, pour échanger de la voix et de la vidéo avec un ou plusieurs correspondants. Ce logiciel vient de naître. Il s’appelle Ring et en est à sa toute première version alpha.
Voici quelques précisions techniques recueillies auprès de Guillaume Roguez, consultant senior en logiciel libre chez Savoir-faire Linux et directeur du projet.
Comment Ring est-il né et quelles sont ses caractéristiques fondamentales?
Ring est l’évolution d’un ancien projet, SFLPhone, qui a mûri au cours des dix dernières années et qui reposait sur l’ancien concept des données centralisées. Le changement des technologies et du monde en général a été le cadre directeur de ce logiciel : nous avons complètement réécrit les couches profondes et décidé de le doter de caractéristiques si nouvelles et révolutionnaires que nous devions en changer le nom.
Le concept essentiel est la décentralisation. Ring implémente le DHT : une technologie permettant d’identifier et d’obtenir l’adresse IP de clients connectés à un système réparti en réseau. Du coup, il n’est plus nécessaire de passer par un serveur centralisé sous protocole SIP ou AIX2 pour localiser et appeler un correspondant — même si nous avons conservé ces options de protocole dans le logiciel pour ceux que cela intéresse.
En mode DHT, chaque compte Ring est identifié sur le réseau par une empreinte numérique personnelle communément appelée « hash », un code unique de 40 lettres et chiffres, lié à un certificat d’identification et à une paire de clés asymétriques pour le chiffrement de ses communications. Il s’enregistre lui-même en distribuant son identité non pas à un mais à des « serveurs » équivalents, chaque machine agissant en effet comme serveur d’identité pour les autres. Ces machines peuvent apparaître, disparaître et être remplacées par d’autres à tout moment. La table des hashs contenant l’ensemble des identités des utilisateurs connectés et leurs adresses IP à un instant donné est répartie entre toutes leurs machines.
Pour recourir à une analogie simple, disons que cela se passe un peu comme dans une rue d’un quartier résidentiel. On connaît ses voisins, mais pas les voisins des voisins de ses voisins. Pourtant, il sera facile de les trouver en interrogeant un premier voisin qui en interrogera un autre, et ainsi de suite. Différence notable : les réseaux numériques sont beaucoup plus rapides et efficaces que le bouche à oreilles. (rires)
Peut-on réellement parler de totale confidentialité?
Oui, dans la mesure où cette question est ramenée là où elle résidait auparavant, soit au niveau humain. Quand vous communiquez avec quelqu’un, vous le faites avec confiance envers cette personne. Ring fait en sorte que cette confiance soit conservée et fiable.
Technologiquement, le chiffrement est basé sur le système bien connu des clés asymétriques, avec clé publique et clé privée. Ring utilise cette dernière pour chiffrer les communications sortantes. La clé privée n’est stockée que sur votre machine et n’en sort jamais : vous seul en posséder la copie. Même si une entité quelconque interceptait les paquets de données que vous échangez, vous pouvez être certain qu’elles ne pourra pas en tirer profit.
Un autre aspect très important de la sécurité, c’est le fait que Ring est un logiciel libre sous licence GPLv3. Son code source réside sur les serveurs publics de Savoir-faire Linux. Celui de ses dépendances logicielles est disponible sur les serveurs publics de leurs communautés respectives. Bref, tout est libre, tout est accessible, tout est transparent!
L’utilisateur avancé peut d’ailleurs nous aider à corriger les problèmes : nous acceptons volontiers les contributions. On s’attend à ce que les gens nous fassent part de ce qui ne va pas afin qu’on le corrige, mais ils peuvent aussi le corriger eux-mêmes et nous soumettre leurs correctifs. C’est ce que l’on faisait déjà avec SFLPhone et cela fonctionne très bien.
Quels systèmes d’exploitation Ring supporte-t-il et quelle est sa feuille de route?
Fin avril, nous avons ouvert au public une version alpha, encore très embryonnaire, pour les systèmes 64 bits basée sur Linux (Ubuntu 14.04/14.10 et Fedora 20/21) et Mac OSX. Nous l’avons bien entendu déjà testée à l’interne et avec quelques geeks ici et là, mais nous devons vérifier si tout se passe bien sur un grand réseau distribué. On s’attend à recevoir beaucoup de commentaires et à devoir corriger quelques problèmes. C’est précisément le but de cette première version.
Par la suite, nous aborderons la phase bêta en y ajoutant des fonctionnalités plus avancées et avec deux objectifs principaux :
- Premièrement, la fréquence. Nous voulons en effet être très proches des retours et des besoins de la communauté. Nous offrirons donc des mises à jour fréquentes.
- Deuxièmement, l’interopérabilité. Nous allons travailler sur les plate-formes mobiles comme Android et, parallèlement, sur un portage Windows qui est déjà bien avancé.
Il est en effet dans la logique et les valeurs du logiciel libre de rendre nos outils accessibles au plus grand nombre de personnes possible. Nous avons donc développé Ring en gardant constamment à l’esprit le fait qu’il devait être portable sur un maximum d’architectures. On pense bien entendu aux ordinateurs de bureau et aux plate-formes mobiles, mais aussi (et peut-être même surtout) aux systèmes embarqués qui vont devenir, avec l’Internet des objets, des plate-formes très sensibles dans les années à venir.
» Propos recueillis par ring:6a8da1380eb39e06d76634944384022ca92da937
- Ring apporte contrôle et confidentialité à vos communications texte, voix et vidéo
- Projet Ring : décryptage d’un système de communication décentralisé et sécurisé
- Au cœur de Ring: OpenDHT, une table de hachage distribuée
- Téléchargez Ring > http://ring.cx