Tox (protocole)
Tox est un protocole réseau ouvert de messagerie instantanée, voix sur IP et visioconférence, fonctionnant en pair à pair et chiffré. Le but affiché du projet est de fournir à tous une communication sécurisée et aisée[2] et une alternative à Skype[3]. Une implémentation de référence est disponible sous la licence libre GNU GPL 3 ou supérieure.
Histoire
Tox a débuté le , sur 4chan, dans un sujet concernant la vie privée des utilisateurs de Skype par rapport aux révélations d'Edward Snowden liées à la surveillance globale, lesquelles s'étaient produites quelques semaines auparavant [4]. Le nom de Tox fut suggéré[4] et fut accepté officiellement du fait de son usage persistant.
La publication officielle sur GitHub a été effectuée le par un utilisateur nommé irungentoo[5]. Des binaires de test pré-alpha ont été rendus disponibles aux utilisateurs à partir du .
Des nightly builds de Tox (littéralement des constructions nocturnes, c'est-à-dire des versions réalisées et mises à disposition en soirée ou pendant la nuit) sont continuellement publiées par l'automate Jenkins[6].
Le , Tox est entré dans le stade alpha de son développement et une page de téléchargement rénovée a été créée pour l'occasion[7].
Fonctionnalités
Les utilisateurs se voient assigner une clé publique et une clé privée, puis se connectent les uns aux autres directement dans un réseau pair à pair. Ils ont la possibilité d'envoyer des messages à leurs amis, de se joindre à des salons de discussion avec des amis ou des étrangers, ainsi que de s'échanger des fichiers. Tout est chiffré en utilisant les bibliothèques libsodium (software) (en) ou NaCl (software) (en).
En , les appels audio et vidéo, ainsi que les conférences étaient toujours en cours d'implémentation.
En , ces fonctionnalités étaient prêtes dans tous les clients principaux.
Le client officiel a pour objectif de fournir le support de la messagerie instantanée, des salons de discussion, des appels vocaux et de la visioconférence, de l'indication de frappe, des accusés de réception, de la technologie push to talk, de la technologie de partage de fichiers et du partage d'écran.
Des fonctionnalités supplémentaires peuvent être implémentées par n'importe quel client, du moment qu'elles sont supportées par le protocole principal. Les fonctionnalités qui ne sont pas liées au système principal de réseau sont laissées à la discrétion du client.
Architecture
Principale
L'architecture du projet Tox est basée sur une bibliothèque principale (cœur) établissant le protocole et l'API. La première API stable nommée Toxcore est sortie le , sous le numéro 0.10[8]. Les front-ends des utilisateurs, ou clients, sont construits au-dessus de ce cœur. N'importe qui peut créer un client utilisant le cœur.
Un rapport technique décrivant la conception du cœur, écrit par son développeur irungentoo et mis à jour occasionnellement, est disponible publiquement depuis sur le Jenkins de la Tox Foundation[9].
Protocole
Le cœur de Tox est une implémentation du protocole Tox. Il s'agit donc d'un exemple de la couche application du modèle OSI et probablement de la couche présentation.
Il existe des implémentations du protocole Tox qui ne sont pas issues du projet, tel que par exemple Xot[10].
Tox utilise le format audio Opus et le format vidéo VPX (VP8 en 2015)[11]. Le protocole SIP n'est pas utilisé[11].
Clients
Un client est un programme qui utilise la bibliothèque Tox principale pour communiquer avec d'autres utilisateurs du protocole Tox. Le mock-up du site officiel représente le client GTK+ Venom, mais beaucoup d'autres clients sont disponibles pour une large variété de systèmes[12].
Les clients officiels sont[7] :
Système d'exploitation | Nom du client | Écrit en… |
---|---|---|
Linux, Windows, OS X, BSD, Android | µTox[13] | C (API Win32, Xlib) |
FreeBSD, Linux, OS X, Windows | qTox[14] | C++ (Qt) |
FreeBSD, Linux, OS X | Toxic[15] | C |
Linux, Windows | Toxygen | Python 3 |
FreeBSD, Linux, OpenIndiana | Venom[16] | Vala (GTK+) |
Android | TRIfA[17] | C, Java |
Android | ATox[18] | Kotlin |
iOS (7.0+) | Antidote[19] | Objective-C |
Autres projets utilisant le protocole Tox :
- Otruta : premier projet à utiliser le protocole Tox dans son propre réseau. Otruta est un « outil de talkie-walkie crypto-protégé »[20] à l'usage des activistes pour communiquer dans des situations dangereuses. Aucun code n'a encore été soumis sur la page GitHub. Ce projet a été accepté par le Project Tox dans le cadre du Google Summer of Code 2014[21].
- ToxSync : synchronisation chiffrée de fichiers utilisant le protocole Tox. Synchronise des répertoires entre les dispositifs de l'utilisateur qui utilisent des clients ToxSync. Pas encore fonctionnel (). Constitue une alternative au logiciel BitSync[22].
Il existe aussi un plugin Tox pour Pidgin.
Le client tierce partie ratox, basé sur des tubes nommés et réalisé par plusieurs membres du projet suckless.org, est également disponible[23].
Réception
Tox a fait l'objet d'une énorme couverture médiatique au cours des premières étapes de sa conception, attirant l'attention de sites d'information technologique du monde entier[24],[25],[26],[27].
Le , Tox était numéro cinq sur la liste des projets les plus tendance de GitHub[28].
Des inquiétudes au sujet de fuites de métadonnées ont été soulevées. Les développeurs y ont alors répondu en implémentant un routage en oignon pour le processus de recherche d'amis[29].
La fondation Tox (dont les développeurs se sont séparés depuis[30]) puis le projet Tox a été acceptée par le Google Summer of Code en qualité d'organisation mentor en 2014 et 2015[31],[32].
Références
- « Release 0.2.12 », (consulté le )
- « Tox (site officiel) » (consulté le )
- Richard Hartmann, ProjectTox-Core : Free as in freedom Skype replacement, (lire en ligne)
« Project Tox, also known as Tox, is a FOSS instant messaging application aimed to replace Skype »
- (en) « Daily reminder that Skype reads the URLs you send, your browser profile, sends encrypted data to Microsoft data centers and gives your conversations to the NSA. », Rebecca Black Tech Archive (consulté le )
- (en) « Initial commit », sur GitHub (consulté le )
- (en) « The magical Tox binary build system » (consulté le )
- (en) « The day we've all been waiting for » [archive du ], Tox project (consulté le )
- (en) « First Stable API », sur github.com (consulté le )
- (en) « Technical Report », Tox Foundation (consulté le )
- (en) « Xot » (consulté le )
- (en) « users:techfaq - Tox Wiki », sur wiki.tox.chat (consulté le )
- (en) « Client » (consulté le )
- (en) « uTox » (consulté le )
- (en) « qTox » (consulté le )
- (en) « qTox » (consulté le )
- (en) « Venom » (consulté le )
- (en) « TRIfA », sur github.com (consulté le )
- (en) « ATox » (consulté le )
- (en) « Antidote » (consulté le )
- (en) « Otruta » (consulté le )
- (en) « Project Tox » (consulté le )
- (en) « ToxBox » [archive du ] (consulté le )
- (en) Dimitris Papastamos, « ratox: FIFO based tox client » (consulté le )
- (en) Saroj Kar, « Tox: A Replacement For Skype And Your Privacy? », SiliconANGLE, (consulté le )
- (de) Sebastian Grüner, « Skype-Alternative Freier und sicherer Videochat mit Tox », Golem.de, (consulté le ) (Le tchat vidéo plus libre et sûr avec Tox)
- (ru) « Проект Tox развивает свободную альтернативу Skype », opennet.ru, (consulté le ) (Le projet Tox développe un remlpaçant libre de Skype)
- (de) Manuel Nitschke, « Skype-Alternative Tox zum Ausprobieren », heise.de, (consulté le ) (Tox le remplaçant de Skype testé)
- (en) Matt Asay, « GitHub's new 'Trending' Feature Lets You See The Future », ReadWriteWeb, (consulté le )
- (en) « Prevent_Tracking.txt », sur GitHub (consulté le )
- « News regarding the Tox Project »
- « Project Tox », GSoC 2014 (consulté le )
- « Project Tox », GSoC 2015 (consulté le )