Tox (protocol)
Tox is a peer-to-peer instant-messaging and video-calling protocol that offers end-to-end encryption. The stated goal of the project is to provide secure yet easily accessible communication for everyone. A reference implementation of the protocol is published as free and open-source software 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 provided the NSA with access to their infrastructure and encryption, just before they were bought by Microsoft.The initial commit to GitHub 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.
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 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.