# Tox (protocol)

Tox és un protocol p2p de missatgeria instantània i videoconferència amb xifrat d'extrem a extrem. L'objectiu del projecte és proporcionar comunicacions segures i de fàcil ús, sense intromissions ni intermediaris. La implementació de referència és publicada en programari lliure sota els termes de la Llicència Pública General de GNU (GNU GPL), versió 3 o posterior.

## Història

Tox va ser ideat per la comunitat del fòrum de tecnologic del web 4chan com a contrapartida a les revelacions d'espionatge massiu fetes per Edward Snowden, entre les quals s'acusava a Skype de cooperar amb la NSA. El primer codi Tox va ser publicat el 23 juny de 2013 per un usuari anomenat irungentoo. I les primeres versions de prova van aparèixer el 3 de febrer de 2014.

## Característiques

Tox utilitza criptografia de clau pública amb Perfect forward secrecy(secret més encara) per assegurar la privadesa i integritat de les comunicacions. Per a això es va utilitzar la llibreria NaCl. Els usuaris es connecten de forma directa en una xarxa de parells, per la qual cosa la informació xifrada mai passa per un servidor central. Els usuaris tenen la capacitat de sol·licitar l'acceptació d'altres usuaris, escriure's entre si, unir-se a canals grupals amb amics i desconeguts, parlar via veu i vídeo i enviar arxius.
Encara que tots els clients suporten missatgeria bàsica, algunes característiques com ara la videoconferències, el xat grupal, la compartició de l'escriptori i l'intercanvi d'arxius només són presents en alguns clients. Les característiques addicionals poden ser implementades per qualsevol client sempre que ja existeixi la infraestructura al protocol.

## Arquitectura
### Nucli

Toxcore és una llibreria que estableix el protocol de comunicacions i una API. Els front-ends per a usuaris, també anomenats "clients", es construeixen a partir d'aquest nucli. Qualsevol programador pot crear un client a partir d'aquesta llibreria.

### Protocol

Tox és una implementació del protocol Tox, un exemple de capa d'aplicació i presentació en model OSI (model d'interconnexió de sistemes oberts). S'han fet implementacions alternatives del mateix protocol, com ara el Xot.
Tox utilitza el format d'àudio Opus i el format de vídeo VP8.

### Criptografia

Tox utilitza els primaris criptogràfics de la llibreria NaCl, o libsodium per ser més precisos. Específicament, l'algorisme de corba el·líptica 25519 per al seu intercanvi de claus, l'algorisme xsalsa20 per a la criptografia asimètrica, i Poly1305 com a codi d'autenticació de missatge; tots ells realitzats pel Dr. Daniel Bernstein.

### Clients

El terme "client" en el context d'una arquitectura de xarxa d'igual a igual (com la de Tox) no fa referència a una separació entre aplicacions clients i servidors de xarxa. No existeixen servidors a la xarxa de Tox. Un client és qualsevol aplicació que usa la biblioteca Tox per comunicar-se directament amb altres clients, segons el protocol implementat en aquesta biblioteca. Hi ha una diversitat de clients amb diferents graus de maduresa per a diverses plataformes. La següent és una llista incompleta:
| Nom | Sistema operatiu | Escrit en |
| Antidote | iOS | Objective-C |
| Antox | Android | Scala, Java |
| Cyanide | Sailfish US | C++ |
| gTox | GNU/Linux | C++ (GTK+ 3) |
| qTox | GNU/Linux, FreeBSD, US X, Windows | C++ (Qt) |
| Toxic | GNU/Linux, BSD, US X | C (Ncurses) |
| Toxy | Windows | C# (WPF) |
| Toxygen | GNU/Linux, Windows | Python (Qt via PySide) |
| µTox | GNU/Linux, FreeBSD, US X, Windows | C (Win32 API, Xlib) |
| xWinTox | GNU/Linux, Solaris, BSD | C/C++ (FLTK) |
| Isotoxin | Windows | C/C++ |
| ratox | GNU/Linux, BSD, US X | C |

## Ressenyes

Tox va rebre certa publicitat significativa durant la primera etapa conceptual, cridant l'atenció de diverses webs de noticies sobre tecnologia. Cap al 15 d'agost de 2013 Tox figurava en el número cinc de la llista de tendències de GitHub. Alguns van expressar preocupació per filtracions de metadades, i els desenvolupadors van respondre implementant l'onion routing per al procés de descobriment d'amics. Tox va ser acceptat al Google Summer of Code del 2014 i del 2015.

## Referències

* ↑ «Initial commit». [Consulta: 18 febrer 2014].
* ↑ «Toxcore Documentation». [Consulta: 7 novembre 2015].
* ↑ «Xot». [Consulta: 6 maig 2014].
* ↑ «A New Kind of Instant Messaging» (en anglès). [Consulta: 15 febrer 2017].
* ↑ «clients - Tox Wiki» (en anglès). [Consulta: 5 març 2018].
* ↑ «Skype-Alternative: Freier und sicherer Videochat mit Tox - Golem.de» (en alemany). Golem.de.
* ↑ «Tox: A Replacement for Skype and Your Privacy? - SiliconANGLE» (en anglès). SiliconANGLE, 05-08-2013.
* ↑ «OpenNews: Проект Tox развивает свободную альтернативу Skype». [Consulta: 5 març 2018].
* ↑ «GitHub's New 'Trending' Feature Lets You See The Future - ReadWrite» (en anglès). ReadWrite, 15-08-2013.
* ↑ «irungentoo/toxcore» (en anglès). [Consulta: 5 març 2018].

## Enllaços externs

* Tox wiki
* Especificació Tox Arxivat 2017-01-09 a Wayback Machine.
* Estàndard per a clients Tox