Tox (protocollo)

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Tox
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereMessaggistica istantanea
SviluppatoreProgetto TokTok
Ultima versione0.2.19 (28 marzo 2024)
Sistema operativoLinux
Microsoft Windows
macOS
Android
iOS
FreeBSD
OpenIndiana
Sailfish OS
LinguaggioC
LicenzaGNU GPL v3
(licenza libera)
Sito webtox.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]

Screenshot del messenger qTox, che usa il protocollo Tox, un messaggio è stato inviato da "Joeri" mentre il destinatario è offline, il client mostra all'utente che il messaggio è ancora in transito, quando in realtà il client qTox è in attesa che il destinatario torni online

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) + Vai (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]

  1. ^ tox.chat, https://tox.chat.
  2. ^ github.com, https://github.com/irungentoo/toxcore/commit/f8ccb9adb99fc143e11927a461d06da1b3d5bcba.
  3. ^ build.tox.chat, https://build.tox.chat/view/packages/.
  4. ^ tox.chat, https://tox.chat/faq.html#tox-leak-ip.
  5. ^ gitbook.com, https://www.gitbook.com/book/tox/tox-client-standard/details.
  6. ^ wiki.tox.chat, https://wiki.tox.chat/users/troubleshooting. URL consultato il 26 aprile 2019.
  7. ^ github.com, https://github.com/Tox-Docs/Text/tree/master/src_text.
  8. ^ github.com, https://github.com/mahkoh/Xot.
  9. ^ (EN) Project Tox, https://tox.chat/faq.html#tox-encryption-algorithm. URL consultato il 15 febbraio 2017.
  10. ^ wiki.tox.chat, https://wiki.tox.chat/users/clients.
  11. ^ antidote.im, https://antidote.im.
  12. ^ wiki.tox.chat, https://wiki.tox.chat/clients/antox.
  13. ^ github.com, https://github.com/krobelus/cyanide.
  14. ^ github.com, https://github.com/krobelus/cyanide/commit/b03c7df96d968c056bfa61f396472b0df2cb5bd2.
  15. ^ github.com, https://github.com/KoKuToru/gTox.
  16. ^ wiki.tox.chat, https://wiki.tox.chat/clients/qtox.
  17. ^ wiki.tox.chat, https://wiki.tox.chat/clients/toxic.
  18. ^ wiki.tox.chat, https://wiki.tox.chat/clients/toxy.
  19. ^ github.com, https://github.com/alexbakker/Toxy.
  20. ^ wiki.tox.chat, https://wiki.tox.chat/clients/toxygen. URL consultato il 1º luglio 2016.
  21. ^ github.com, https://github.com/zoff99/ToxAndroidRefImpl.
  22. ^ wiki.tox.chat, https://wiki.tox.chat/clients/utox.
  23. ^ wiki.tox.chat, https://wiki.tox.chat/clients/xwintox.
  24. ^ github.com, https://github.com/JX7P/XwinTox/commit/1bface57d4e6392503a1b64aa471362f711cb510.
  25. ^ wiki.tox.chat, https://wiki.tox.chat/clients/isotoxin.
  26. ^ Github, https://github.com/isotoxin/isotoxin/commits/master.
  27. ^ Copia archiviata, su ratox.2f30.org. URL consultato il 15 dicembre 2020 (archiviato dall'url originale il 7 settembre 2019).
  28. ^ git.2f30.org, http://git.2f30.org/ratox/log.html.
  29. ^ github.com, https://github.com/codedust/WebTox.
  30. ^ github.com, https://github.com/codedust/WebTox/commit/31789c7acb7b9f0027be11c369d242fa01116ccc.
  31. ^ github.com, https://github.com/jin-eld/tox-prpl.
  32. ^ Miranda NG Official Community Forum, https://forum.miranda-ng.org/index.php?topic=2487.msg5960#msg5960.
  33. ^ LWN.net, https://lwn.net/Articles/651003/.
  34. ^ siliconangle.com, http://siliconangle.com/blog/2013/08/05/tox-a-replacement-for-skype-and-your-privacy/.
  35. ^ (DE) golem.de, http://www.golem.de/news/skype-alternative-freier-und-sicherer-videochat-mit-tox-1307-100688.html.
  36. ^ (RU) opennet.ru, http://www.opennet.ru/opennews/art.shtml?num=37542.
  37. ^ (DE) heise.de, http://www.heise.de/netze/meldung/Skype-Alternative-Tox-zum-Ausprobieren-1929033.html.
  38. ^ readwrite.com, http://readwrite.com/2013/08/15/github-new-trending-feature-future.
  39. ^ github.com, https://github.com/irungentoo/ProjectTox-Core/blob/522f90fee138087db660dccc08413c53f388f604/docs/Prevent_Tracking.txt.
  40. ^ google-melange.com, https://www.google-melange.com/gsoc/org2/google/gsoc2014/tox.
  41. ^ google-melange.com, https://www.google-melange.com/gsoc/org2/google/gsoc2015/tox.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]