Tox (protocollo)
Tox software | |
---|---|
Genere | Messaggistica istantanea |
Sviluppatore | Progetto TokTok |
Ultima versione | 0.2.19 (28 marzo 2024) |
Sistema operativo | Linux Microsoft Windows macOS Android iOS FreeBSD OpenIndiana Sailfish OS |
Linguaggio | C |
Licenza | GNU GPL v3 (licenza libera) |
Sito web | tox.chat/ |
Tox è un protocollo di messaggistica istantanea e videochiamata peer-to-peer con crittografia end-to-end. L'obiettivo dichiarato del progetto è quello di fornire comunicazioni sicure ma facilmente accessibili a tutti.[1] Un'implementazione di riferimento del protocollo è pubblicata come software libero secondo i termini della GNU General Public License (GPL) versione 3 o successiva.
Storia
[modifica | modifica wikitesto]Il commit iniziale su GitHub è stato inviato il 23 giugno 2013 da un utente di nome irungentoo.[2] Gli eseguibili sperimentali pre-alpha sono stati resi disponibili agli utenti dal 3 febbraio 2014 in poi, e le build notturne di Tox sono pubblicate da Jenkins Automatron.[3] Il 12 luglio 2014 Tox è entrato nella fase di sviluppo alpha e per l'occasione è stata ridisegnata la pagina di download.
Caratteristiche
[modifica | modifica wikitesto]Crittografia del traffico
[modifica | modifica wikitesto]Agli utenti viene assegnata una chiave pubblica e una privata, e si connettono direttamente tramite una peer-to-peer completamente distribuita. Gli utenti hanno la possibilità di inviare messaggi agli amici, partecipare a chat di gruppo con amici o sconosciuti, chat vocale/video e scambiarsi file. Tutto il traffico su Tox è crittografato end-to-end usando la libreria NaCl, che fornisce cifratura autenticata e perfetta segretezza in avanti.
Distribuzione dell'indirizzo IP agli amici
[modifica | modifica wikitesto]Tox non fa alcun tentativo di occultare il tuo indirizzo IP quando comunica con gli amici, poiché lo scopo di una rete peer-to-peer è la connessione diretta con i propri amici. Esiste una soluzione alternativa di imbustamento delle proprie connessioni Tox attraverso Tor. Tuttavia, un utente non amico non può altrettanto facilmente il tuo indirizzo IP utilizzando solo un Tox ID; si rivela il proprio indirizzo IP a qualcuno solo quando lo si aggiunge all'elenco dei contatti.[4]
Funzionalità di messaggistica aggiuntive
[modifica | modifica wikitesto]I client Tox puntano a fornire supporto per varie funzionalità di comunicazione sicure e anonime; se ogni client supporta la messaggistica, funzionalità aggiuntive come messaggistica di gruppo, chiamate vocali e video, conferenze vocali e video, indicatori di digitazione, conferme di lettura dei messaggi, condivisione di file, crittografia dei profili e condivisione desktop sono supportate a vari livelli da client mobili e desktop. Funzionalità aggiuntive possono essere implementate da qualsiasi client, purché supportate dal protocollo principale. Le funzionalità che non sono collegate alla rete principale sono lasciate a discrezione del client. Gli sviluppatori dei client sono fortemente invitati ad aderire al Tox Client Standard[5] al fine di mantenere la compatibilità tra client e sostenere le migliori pratiche di sicurezza.
Usabilità come messaggistica istantanea
[modifica | modifica wikitesto]Sebbene diverse app che utilizzano il protocollo Tox sembrino simili in funzione alle normali app di messaggistica istantanea, la mancanza di server centrali ha la conseguenza che ambe le parti della chat devono essere online affinché il messaggio venga inviato e ricevuto. Gli applicativi che usano Tox si servono di approcci diversi, alcuni impediscono all'utente di inviare il messaggio se l'altra parte è scollegata, mentre altri mostrano il messaggio come inviato quando in realtà è memorizzato nel telefono del mittente in attesa della consegna, che avverrà quando il destinatario si ricollegherà alla rete.[6]
Architettura
[modifica | modifica wikitesto]Core
[modifica | modifica wikitesto]Il core Tox è una libreria che stabilisce il protocollo e l'API. L'interfaccia dell'utente, o client, sono costruiti al di sopra del core. Chiunque può creare un client utilizzando il core. I documenti tecnici che descrivono il design del Core, scritti dallo sviluppatore principale irungentoo, sono disponibili pubblicamente.[7]
Protocollo
[modifica | modifica wikitesto]Il core di Tox è un'implementazione del protocollo Tox, un esempio del livello di applicazione del modello OSI e magari anche del livello di presentazione. Esistono implementazioni del protocollo Tox non realizzate dal progetto.[8]
Tox usa il formato audio Opus per la trasmissione audio e il formato video VP8 per la trasmissione video.
Crittografia
[modifica | modifica wikitesto]Tox utilizza le primitive crittografiche presenti nella libreria crittografica NaCl, tramite libsodium. In particolare, Tox impiega Curve25519 per i suoi scambi di chiavi, xsalsa20 per la crittografia simmetrica e Poly1305 per i MAC.[9] Poiché il protocollo Tox può essere utilizzato da molte applicazioni diverse e poiché la rete Tox trasmette il nome del client utilizzato, è anche possibile che i client utilizzino una crittografia aggiuntiva quando inviano a client che supportano le stesse funzionalità.
Client
[modifica | modifica wikitesto]Un cliente è un programma che utilizza la libreria principale Tox per comunicare con altri utenti del protocollo Tox. Sono disponibili vari clienti per un'ampia gamma di sistemi; il seguente elenco è incompleto.[10]
Nome | Sistema operativo | Scritto in | Stato di sviluppo e commenti |
---|---|---|---|
Antidote[11] | iOS | Swift | Abbandonato (vedere la pagina GitHub del progetto) |
Antox[12] | Android | Scala, Java | Abbandonato, ultimo aggiornamento dicembre 2017 |
Cyanide[13] | Sailfish OS | C ++ | Abbandonato,[14] ultimo aggiornamento gennaio 2017 |
gTox[15] | Linux | C++ (GTK+ 3 ) | Abbandonato (vedere la pagina GitHub del progetto) |
qTox[16] | Linux, FreeBSD, OS X, Windows | C++ (Qt) | Attivo |
TOK | iOS, Android | Java, Swift, Objective-C | Attivo |
Toxic[17] | Linux, FreeBSD, OpenBSD, DragonflyBSD, NetBSD, Solaris, OS X | C (Ncurses) | Attivo |
Toxy[18] | Windows | C # ( WPF ) | Non mantenuto (vedere la pagina GitHub[19]) |
Toxygen[20] | Linux, Windows | Python ( Qt tramite PySide ) | Attivo |
TRIfA[21] | Android | C, Java | Attivo |
µTox[22] | Linux, FreeBSD, OS X, Windows | C | Attivo |
xWinTox[23] | Linux, FreeBSD, Solaris | C / C++ (FLTK) | Abbandonato,[24] ultimo aggiornamento nel dicembre 2015 |
Isotoxin[25] | Windows | C ++ | Abbandonato[26] ultimo aggiornamento a marzo 2018 |
ratox[27] | Linux, BSD, OS X | C | Attivo[28] |
WebTox[29] | Basato sul Web | HTML5 (client) + Go (server) | Abbandonato,[30] ultimo aggiornamento nel gennaio 2016 |
Esistono anche plugin del protocollo Tox per Pidgin[31] (non più mantenuto, ma funzionante al 30/03/2018) e Miranda NG.[32]
Divisione dalla Tox Foundation
[modifica | modifica wikitesto]L'11 luglio 2015, gli sviluppatori di Tox hanno annunciato ufficialmente la loro divisione dalla Tox Foundation, a causa di "una disputa sull'uso improprio dei fondi donati" da parte del capo e CEO della Tox Foundation, secondo LWN.net.[33] Dato che i dominii sono sotto il controllo della Tox Foundation, lo sviluppo principale del progetto è stato trasferito su nuova infrastruttura, server e dominio.
Ricezione
[modifica | modifica wikitesto]Tox ha ricevuto una significativa pubblicità nella sua fase concettuale iniziale, attirando l'attenzione dei siti di notizie tecnologiche online globali.[34][35][36][37] Il 15 agosto 2013, Tox era il numero cinque nella lista delle migliori tendenze di GitHub.[38] Sono state sollevate preoccupazioni per la perdita di metadati e gli sviluppatori hanno risposto implementando il routing Onion per il processo di ricerca degli amici.[39] Tox è stato accettato nel Google Summer of Code come Mentoring Organization nel 2014 e nel 2015.[40][41]
Note
[modifica | modifica wikitesto]- ^ tox.chat, https://tox.chat .
- ^ github.com, https://github.com/irungentoo/toxcore/commit/f8ccb9adb99fc143e11927a461d06da1b3d5bcba .
- ^ build.tox.chat, https://build.tox.chat/view/packages/ .
- ^ tox.chat, https://tox.chat/faq.html#tox-leak-ip .
- ^ gitbook.com, https://www.gitbook.com/book/tox/tox-client-standard/details .
- ^ wiki.tox.chat, https://wiki.tox.chat/users/troubleshooting . URL consultato il 26 aprile 2019.
- ^ github.com, https://github.com/Tox-Docs/Text/tree/master/src_text .
- ^ github.com, https://github.com/mahkoh/Xot .
- ^ (EN) Project Tox, https://tox.chat/faq.html#tox-encryption-algorithm . URL consultato il 15 febbraio 2017.
- ^ wiki.tox.chat, https://wiki.tox.chat/users/clients .
- ^ antidote.im, https://antidote.im .
- ^ wiki.tox.chat, https://wiki.tox.chat/clients/antox .
- ^ github.com, https://github.com/krobelus/cyanide .
- ^ github.com, https://github.com/krobelus/cyanide/commit/b03c7df96d968c056bfa61f396472b0df2cb5bd2 .
- ^ github.com, https://github.com/KoKuToru/gTox .
- ^ wiki.tox.chat, https://wiki.tox.chat/clients/qtox .
- ^ wiki.tox.chat, https://wiki.tox.chat/clients/toxic .
- ^ wiki.tox.chat, https://wiki.tox.chat/clients/toxy .
- ^ github.com, https://github.com/alexbakker/Toxy .
- ^ wiki.tox.chat, https://wiki.tox.chat/clients/toxygen . URL consultato il 1º luglio 2016.
- ^ github.com, https://github.com/zoff99/ToxAndroidRefImpl .
- ^ wiki.tox.chat, https://wiki.tox.chat/clients/utox .
- ^ wiki.tox.chat, https://wiki.tox.chat/clients/xwintox .
- ^ github.com, https://github.com/JX7P/XwinTox/commit/1bface57d4e6392503a1b64aa471362f711cb510 .
- ^ wiki.tox.chat, https://wiki.tox.chat/clients/isotoxin .
- ^ Github, https://github.com/isotoxin/isotoxin/commits/master .
- ^ Copia archiviata, su ratox.2f30.org. URL consultato il 15 dicembre 2020 (archiviato dall'url originale il 7 settembre 2019).
- ^ git.2f30.org, http://git.2f30.org/ratox/log.html .
- ^ github.com, https://github.com/codedust/WebTox .
- ^ github.com, https://github.com/codedust/WebTox/commit/31789c7acb7b9f0027be11c369d242fa01116ccc .
- ^ github.com, https://github.com/jin-eld/tox-prpl .
- ^ Miranda NG Official Community Forum, https://forum.miranda-ng.org/index.php?topic=2487.msg5960#msg5960 .
- ^ LWN.net, https://lwn.net/Articles/651003/ .
- ^ siliconangle.com, http://siliconangle.com/blog/2013/08/05/tox-a-replacement-for-skype-and-your-privacy/ .
- ^ (DE) golem.de, http://www.golem.de/news/skype-alternative-freier-und-sicherer-videochat-mit-tox-1307-100688.html .
- ^ (RU) opennet.ru, http://www.opennet.ru/opennews/art.shtml?num=37542 .
- ^ (DE) heise.de, http://www.heise.de/netze/meldung/Skype-Alternative-Tox-zum-Ausprobieren-1929033.html .
- ^ readwrite.com, http://readwrite.com/2013/08/15/github-new-trending-feature-future .
- ^ github.com, https://github.com/irungentoo/ProjectTox-Core/blob/522f90fee138087db660dccc08413c53f388f604/docs/Prevent_Tracking.txt .
- ^ google-melange.com, https://www.google-melange.com/gsoc/org2/google/gsoc2014/tox .
- ^ google-melange.com, https://www.google-melange.com/gsoc/org2/google/gsoc2015/tox .
Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su Tox
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su tox.chat.
- (EN) Blog ufficiale, su blog.tox.chat.
- (EN) Tox, su GitHub.
- Repository sorgenti di Tox, su github.com.
- (EN) Tox, su Free Software Directory.
- Software per la messaggistica istantanea liberi
- Software per Linux
- Software libero per Microsoft Windows
- Software libero per macOS
- Software libero in C
- Software con licenza GNU GPL v3
- Software del 2014
- Software per VoIP
- Software per iOS
- Software per la messaggistica istantanea
- Calcolo distribuito
- Software multipiattaforma
- Software libero per Android
- Software del 2013