TorChat

Last updated
TorChat
Developer(s) TorChat Developers
Initial releaseNovember 2007
Final release 0.9.9.553 (15 September 2012;10 years ago (2012-09-15)) [±]
Preview release
2.0-alpha-14 / 22nd of July, 2012
Repository
Written in Object Pascal
Operating system Linux, Microsoft Windows
Available inMultilingual
Type Instant messaging client
License GPL v3
Website github.com/prof7bit/TorChat

TorChat was a peer-to-peer anonymous instant messenger that used Tor onion services as its underlying network. It provided cryptographically secure text messaging and file transfers. [1] The characteristics of Tor's onion services ensure that all traffic between the clients is encrypted and that it is very difficult to tell who is communicating with whom and where a given client is physically located.

Contents

TorChat is free software licensed under the terms of the GNU General Public License (GPL).

Features

In TorChat every user has a unique alphanumeric ID consisting of 16 characters. This ID will be randomly created by Tor when the client is started the first time, it is basically the .onion address of an onion service. TorChat clients communicate with each other by using Tor to contact the other's onion service (derived from their ID) and exchanging status information, chat messages and other data over this connection. Since onion services can receive incoming connections even if they are behind a router doing network address translation (NAT), TorChat does not need any port forwarding to work.

History

The first public version of TorChat was released in November 2007 [2] [3] by Bernd Kreuss (prof7bit). [4] [1] [5] It is written in Python and used the cross-platform widget toolkit wxPython which made it possible to support a wide range of platforms and operating systems.

The older Windows versions of TorChat were built with py2exe (since 0.9.9.292 replaced with pyinstaller) and came bundled with a copy of Tor readily configured so that it could be run as a portable application right off a USB flash drive without any installation, configuration or account creation.

Between 2008 and 2010 weren't any updated packages, resulting in the bundled version of Tor becoming obsolete and unable to connect to the Tor network, [6] which was the reason for the appearance of forks that basically just replaced the bundled Tor.exe with a current one.[ citation needed ] In December 2010, an official update finally became available that, among some minor bugfixes, also again included an up-to-date Tor.exe.[ citation needed ]

After 2014, all development activity stopped and TorChat has not received any further updates. [7]

Forks

A fork was released for OS X in the summer of 2010 by a French developer. The binary (a Cocoa application) and source-code (Objective-C) bundled in a Xcode 7 project can be downloaded on SourceMac.

A rewrite of the TorChat protocol in Java was created in the beginning of 2012, called jTorChat on Google Code. Containing the latest Tor.exe, it is meant to emulate all the features of the original TorChat protocol, as well as extending the protocols for jTorChat-specific features. Filesharing, while implemented in the original TorChat, is not yet implemented in jTorChat. A new capability in jTorChat is the broadcast mode, which allows a user to send messages to everybody in the network, even if they are not in their buddylist. Also buddy request mode is implemented, which allows a user to request a random user in the jTorChat network to add them. At this stage jTorChat is designed to work effectively on Windows without any configuration, however since its written in Java, it can run on any platform supported by both, Tor and Java itself, making it very portable. The project is actively seeking Java contributors, especially to help debug the GUI interface.

In February 2012, developer Prof7bit moved TorChat to GitHub, [7] as a protest against Google selectively censoring access to TorChat download to certain countries.[ citation needed ] Prof7bit has switched to working on torchat2, which is a rewrite from scratch, using Lazarus and Free Pascal. [8] [ citation needed ]

Security

In 2015 security analysis [9] of TorChat protocol and its Python implementation was conducted. It was found that although the design of TorChat is sound, its implementation has several flaws, which make TorChat users vulnerable to impersonation, communication confirmation and denial-of-service attacks. Despite the flaws found, the use of TorChat might still be secure in a scenario where the peer's onion address does not become known to an adversary interested in attacking the person behind the TorChat address.

See also

Related Research Articles

<span class="mw-page-title-main">Instant messaging</span> Form of communication over the Internet

Instant messaging (IM) technology is a type of online chat allowing real-time text transmission over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and triggers a transmission to the recipient(s), who are all connected on a common network. It differs from email in that conversations over instant messaging happen in real-time. Most modern IM applications use push technology and also add other features such as emojis, file transfer, chatbots, voice over IP, or video chat capabilities.

<span class="mw-page-title-main">Pidgin (software)</span> Open-source multi-platform instant messaging client

Pidgin is a free and open-source multi-platform instant messaging client, based on a library named libpurple that has support for many instant messaging protocols, allowing the user to simultaneously log in to various services from a single application, with a single interface for both popular and obsolete protocols, thus avoiding the hassle of having to deal with a new software for each device and protocol.

<span class="mw-page-title-main">XMPP</span> Communications protocol for message-oriented middleware

Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

WASTE is a peer-to-peer and friend-to-friend protocol and software application developed by Justin Frankel at Nullsoft in 2003 that features instant messaging, chat rooms, and file browsing/sharing capabilities. The name WASTE is a reference to Thomas Pynchon's novel The Crying of Lot 49. In the novel, W.A.S.T.E. is an underground postal service.

An anonymous P2P communication system is a peer-to-peer distributed application in which the nodes, which are used to share resources, or participants are anonymous or pseudonymous. Anonymity of participants is usually achieved by special routing overlay networks that hide the physical location of each node from other participants.

The Invisible Internet Project (I2P) is an anonymous network layer that allows for censorship-resistant, peer-to-peer communication. Anonymous connections are achieved by encrypting the user's traffic, and sending it through a volunteer-run network of roughly 55,000 computers distributed around the world. Given the high number of possible paths the traffic can transit, a third party watching a full connection is unlikely. The software that implements this layer is called an "I2P router", and a computer running I2P is called an "I2P node". I2P is free and open sourced, and is published under multiple licenses.

Datagram Transport Layer Security (DTLS) is a communications protocol providing security to datagram-based applications by allowing them to communicate in a way designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the stream-oriented Transport Layer Security (TLS) protocol and is intended to provide similar security guarantees. The DTLS protocol datagram preserves the semantics of the underlying transport—the application does not suffer from the delays associated with stream protocols, but because it uses UDP or SCTP, the application has to deal with packet reordering, loss of datagram and data larger than the size of a datagram network packet. Because DTLS uses UDP or SCTP rather than TCP, it avoids the "TCP meltdown problem", when being used to create a VPN tunnel.

<span class="mw-page-title-main">Twisted (software)</span> Event-driven network programming framework

Twisted is an event-driven network programming framework written in Python and licensed under the MIT License.

<span class="mw-page-title-main">Tribler</span> Peer-to-peer filesharing software and protocol

Tribler is an open source decentralized BitTorrent client which allows anonymous peer-to-peer by default. Tribler is based on the BitTorrent protocol and uses an overlay network for content searching. Due to this overlay network, Tribler does not require an external website or indexing service to discover content. The user interface of Tribler is very basic and focused on ease of use instead of diversity of features. Tribler is available for Linux, Windows, and OS X.

<span class="mw-page-title-main">Tor (network)</span> Free and open-source anonymity network based on onion routing

Tor, short for "The Onion Router," is free and open-source software for enabling anonymous communication. It directs Internet traffic via a free, worldwide, volunteer overlay network that consists of more than seven thousand relays.

<span class="mw-page-title-main">Jami (software)</span> Distributed multimedia communications platform

Jami is a SIP-compatible distributed peer-to-peer softphone and SIP-based instant messenger for Linux, Microsoft Windows, macOS, iOS, and Android. Jami was developed and maintained by the Canadian company Savoir-faire Linux, and with the help of a global community of users and contributors, Jami positions itself as a potential free Skype replacement.

<span class="mw-page-title-main">Instantbird</span> Cross-platform instant messaging client

Instantbird is a discontinued cross-platform instant messaging client based on Mozilla's XULRunner and the open-source library libpurple used in Pidgin. Instantbird is free software available under the GNU General Public License. Over 250 add-ons allow user customization of, and addition of, features. On October 18, 2017, Florian Quèze announced that "... we are stopping development of Instantbird as a standalone product."

<span class="mw-page-title-main">Socket.IO</span> Library for realtime web applications

Socket.IO is an event-driven library for real-time web applications. It enables real-time, bi-directional communication between web clients and servers. It consists of two components: a client, and a server. Both components have a nearly identical API.

<span class="mw-page-title-main">Twister (software)</span> Blog software

Twister is a decentralised, experimental peer-to-peer microblogging program. The system uses end-to-end encryption to safeguard communications. It is based on both BitTorrent- and Bitcoin-like protocols and has been likened to a distributed version of Twitter.

<span class="mw-page-title-main">Tox (protocol)</span> Distributed protocol for telephony and instant messaging

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.

<span class="mw-page-title-main">Ricochet (software)</span> Instant messaging software

Ricochet or Ricochet IM is a free software, multi-platform, instant messaging software project originally developed by John Brooks and later adopted as the official instant messaging client project of the Invisible.im group. A goal of the Invisible.im group is to help people maintain privacy by developing a "metadata free" instant messaging client.

<span class="mw-page-title-main">Gitter</span> Open source messaging software

Gitter is an open-source instant messaging and chat room system for developers and users of GitLab and GitHub repositories. Gitter is provided as software-as-a-service, with a free option providing all basic features and the ability to create a single private chat room, and paid subscription options for individuals and organisations, which allows them to create arbitrary numbers of private chat rooms.

<span class="mw-page-title-main">WebTorrent</span> Peer-to-peer web-based torrent client

WebTorrent is a peer-to-peer (P2P) streaming torrent client written in JavaScript, from the same author, Feross Aboukhadijeh, of YouTube Instant, and the team at WebTorrent and on GitHub, for use in web browsers, as well as a WebTorrent Desktop stand alone version able to bridge WebTorrent and BitTorrent serverless networks.

<span class="mw-page-title-main">Xabber</span> Open source instant messaging software

Xabber is a XMPP client for the Android Operating System. It is developed as an open source Project on GitHub and is licensed under the GNU GPL v.3 license. The original developers are from a software company called Redsolution, Inc. Xabber is available on the Android Play Store and on F-Droid.

<span class="mw-page-title-main">Conversations (software)</span> Free software instant messaging client for the XMPP protocol

Conversations is a free software, instant messaging client application software for Android. It is largely based on recognized open standards such as the Extensible Messaging and Presence Protocol (XMPP) and Transport Layer Security (TLS).

References

  1. 1 2 "Interview with Bernd Kreuss of TorChat". Free Software Foundation. Archived from the original on 2014-02-02. Retrieved 2014-01-28.
  2. Zetter, Kim (2014-09-17). "Middle-School Dropout Codes Clever Chat Program That Foils NSA Spying". Wired. Retrieved 25 February 2021. TorChat, a peer-to-peer instant messaging program released in 2007 that used Tor hidden services to transmit communications. TorChat had a number of implementation problems when it came out, however, and has largely been abandoned by users and its developers.
  3. prof7bit (25 November 2007). "torchat". Google Code. Archived from the original on 25 November 2007. Retrieved 25 February 2021.
  4. "Bernd Kreuss (prof7bit)". Gist. GitHub. Archived from the original on 17 January 2018. Retrieved 25 February 2021.
  5. "TorChat - Free Software Directory". Archived from the original on 2013-10-09.
  6. "Tor project blog". Blog.torproject.org. Archived from the original on 2014-02-02. Retrieved 2014-01-28.
  7. 1 2 "TorChat2". GitHub . 8 December 2021. Archived from the original on 8 December 2013. Retrieved 6 February 2012.
  8. K, Bernd (2022-08-21), TorChat2, archived from the original on 2022-08-31, retrieved 2022-08-31
  9. Viigipuu, Rain (2015). Security Analysis of Instant Messenger TorChat (PDF) (Master's Thesis). Tallinn University of Technology. Archived (PDF) from the original on 20 August 2022. Retrieved 24 August 2022.