HOME

TheInfoList



OR:

Tox is a
peer-to-peer Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
instant-messaging and video-calling protocol that offers
end-to-end encryption End-to-end encryption (E2EE) is a method of implementing a secure communication system where only communicating users can participate. No one else, including the system provider, telecom providers, Internet providers or malicious actors, can ...
. The stated goal of the project is to provide secure yet easily accessible communication for everyone. A
reference implementation In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation ...
of the protocol is published as
free and open-source software Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
under the terms of the GNU GPL-3.0-or-later.


History


Inception

An idea of developing a secure peer-to-peer messenger which would later turn into Tox sparked on the anonymous imageboard 4chan amidst the allegations that
Skype Skype () was a proprietary telecommunications application operated by Skype Technologies, a division of Microsoft, best known for IP-based videotelephony, videoconferencing and voice calls. It also had instant messaging, file transfer, ...
provided the NSA with access to their infrastructure and encryption, just before they were bought by Microsoft. The initial commit to
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
was pushed on June 23, 2013, by a user named irungentoo. Unofficial community builds became available as early as on August 23, 2013, with the first official builds made available in October 2013. On July 12, 2014, Tox entered an alpha stage in development and a redesigned download page was created for the occasion.


Tox Foundation controversy

During the first two years of its life, the project's business and monetary side was handled by Tox Foundation, a California-registered corporation. On July 6, 2015 an issue was open on the project's GitHub, where a third party stated that Tox Foundation's sole board member, Sean Qureshi, used an amount of money in the thousands of US dollars to pay for their college tuition, with those funds coming from Tox Foundation's participation in Google Summer of Code. When asked for additional clarification, irungentoo, on behalf of the project's team, confirmed the allegations. On July 11, 2015 the project's infrastructure and repositories were moved to a new locations, due to the fact that Qureshi controlled the original project's domains and servers. In the project's blog the development team has announced their "disassociation" with Tox Foundation and Qureshi in particular, and further addressed the issue. This situation caused many prominent contributors to cease Tox-related activity.


Project's fork and Rust implementation

Sometime during 2016, the original reference implementation saw a steady decline in development activity, with the last known commit currently dated Oct 2018. This caused the project to split, with those interested in continuing the development creating a new fork of Tox core called "c-toxcore" around the end of September 2016. Currently c-toxcore is being developed by a collective known as the TokTok Project. They describe their mission as "to promote universal freedom of expression and to preserve unrestricted information exchange". Their current goals are to continue slow iterative development of the existing core implementation, along with in-parallel development of a new reference implementation in
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH) ...
. Initially, the Rust implementation of the protocol library was split in two halves, one handling most of the grunt work of communication with the network, and another one responsible specifically for bootstrap node operation. In December 2022 those were merged, with developers stating that code was now mature enough to support basic communication and bootstrap node operations using TCP connections. As of June 2023 the development is still ongoing, but no client implementations using Rust core library is available yet.


Security audit and related concerns

Although the original core library implementation and its forks have been available for the general public for almost a decade, none of them have been reviewed by a competent third-party security researcher. In 2017, WireGuard's author Jason A. Donenfeld opened an issue on the project's GitHub page where he stated that c-toxcore is vulnerable to key compromise impersonation (KCI) attacks. Donenfeld attributed his find to the fact that Tox is relying on "homebrew crypto" developed by "non-experts" to facilitate handshakes. He also criticized some other design choices used by Tox developers as well, like using raw ECDH values as encryption keys. This report has caused developers to put an additional disclaimer on the project's GitHub page, stating that Tox is an experimental cryptographic network library that has not been formally audited by an independent third party that specializes in cryptography or cryptanalysis, with a separate disclaimer that users may use it on their own risk. In March 2023, a post on the project's blog stated that one of the community members is working to redesign the cryptographic mechanism used by Tox to perform handshakes using the AKE mechanisms used in the Noise Protocol Framework. This post also contains a detailed explanation of the original vulnerability.


Features


Encryption of traffic

Users are assigned a public and private key, and they connect to each other directly in a fully distributed, peer-to-peer network. Users have the ability to message friends, join chat rooms with friends or strangers, voice/video chat, and send each other files. All traffic over Tox is end-to-end encrypted using the NaCl library, which provides authenticated encryption and perfect forward secrecy.


Additional messaging features

Tox clients aim to provide support for various secure and anonymised communication features; while every client supports messaging, additional features like group messaging, voice and video calling, voice and video conferencing, typing indicators, message read-receipts,
file sharing File sharing is the practice of distributing or providing access to digital media, such as computer programs, multimedia (audio, images and video), documents or electronic books. Common methods of storage, transmission and dispersion include ...
, profile encryption, and desktop streaming are supported to various degrees by mobile and desktop clients. Additional features can be implemented by any client as long as they are supported by the core protocol. Features that are not related to the core networking system are left up to the client. Client developers are strongly encouraged to adhere to the Tox Client Standard in order to maintain cross-client compatibility and uphold best security practices.


Usability as an instant messenger

Though several apps that use the Tox protocol seem similar in function to regular instant messaging apps, the lack of central servers similar to
XMPP Extensible Messaging and Presence Protocol (abbreviation XMPP, originally named Jabber) is an Open standard, open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Ext ...
or
Matrix Matrix (: matrices or matrixes) or MATRIX may refer to: Science and mathematics * Matrix (mathematics), a rectangular array of numbers, symbols or expressions * Matrix (logic), part of a formula in prenex normal form * Matrix (biology), the m ...
currently has the consequence that both parties of the chat need to be online for the message to be sent and received. The Tox enabled messengers deal with this in separate ways: some prevent the user from sending the message if the other party has disconnected, while others show the message as being sent when in reality it is stored in the sender's phone waiting to be delivered when the receiving party reconnects to the network.


Reception

Tox received some significant publicity in its early conceptual stage, catching the attention of global online tech news sites. On August 15, 2013, Tox was number five on
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
's top trending list. Concerns about
metadata Metadata (or metainformation) is "data that provides information about other data", but not the content of the data itself, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive ...
leaks were raised, and developers responded by implementing
Onion routing Onion routing is a technique for anonymous communication over a computer network. In an onion network, messages are encapsulated in layers of encryption, analogous to the layers of an onion. The encrypted data is transmitted through a series o ...
for the friend-finding process. Tox was accepted into the Google Summer of Code as a Mentoring Organization in 2014 and 2015.


See also

* Comparison of instant messaging clients * Comparison of instant messaging protocols * Comparison of VoIP software *
List of free and open-source software packages This is a list of free and open-source software (FOSS) packages, computer software licensed under free software licenses and open-source licenses. Software that fits the Free Software Definition may be more appropriately called free software; ...


References


External links

* {{telecommunications 2013 software Android (operating system) software Communication software Cross-platform software Distributed computing Free communication software Free instant messaging clients Free software programmed in C Instant messaging clients Instant messaging clients for Linux Instant messaging clients that use GTK IOS software MacOS instant messaging clients Onion routing Peer-to-peer Secure communication Videotelephony VoIP protocols VoIP software Windows instant messaging clients