

Socket messages are transmitted only in one direction (with the exception of file transfers that are sent in the opposite direction, so as not to compete with text transmission). Thus, both have a pair of sockets (incoming and outgoing) and confidence that the incoming socket is from the same person the outgoing is sent to. Matching the lines confirms that the incoming connection is really from who it "presents". The parties compare sent and received random strings. To do this, Alice sends Bob a message like "ping alice ". So let's say Alice (alice.onion) connects to Bob (bob.onion). However, there is no information about who connects to the hidden service, so the authentication includes the creation of a reverse connection. Tor guarantees that only the creator, the holder of the corresponding key, can control this domain name. Each user has the ability to connect to other users through their TorChat ID. The first part of the name (abc) has a length of 16 characters, may consist of characters 234567abcdefghijklmnopqrstuvwxyz (base32) and serves as a TorChat ID. The client starts its own Tor process or uses an already running Tor, controlling it via the Control port.Įach user has his own hidden service with a domain name like abc.onion, on which he listens to port 11009. There are enough comments in the file, but there is no protocol in text form.Ĭlients interact directly through Tor, there are no servers in the TorChat system. This section is based on the tc_client.py file. It is impossible to find the IP address where the hidden service is running or the IP address of its client. It is impossible to listen to the channel between the client and hidden service or replace the data on this channel. The hidden service domain name cannot be selected without access to the private part of the RSA key. The algorithm for connecting to hidden service is not directly related to the topic of the article, its consideration deserves a separate article. A description of one of these protocols, TorChat, is in the next section. Through such a connection, you can skip different protocols: HTTP (S), SSH, IRC, Bitcoin, and others. Tor creates a TCP connection between the client and hidden service. Tor remembers matching a domain name to a public key in the DHT. To create a domain, an RSA key is created, from the public part of which the hash sum is calculated (in the case of this domain, it is equal to test3unszyhvy7um).

Anyone can get a “domain” of the form test3unszyhvy7um.onion and in a few seconds this site will be available for all users of the Tor network to visit. Tor's anonymity system, which often pops up in the media, serves to anonymously visit and create websites. Introduction, description of Tor and hidden service This article describes the protocol used by TorChat, and the improvements made to the TorChat implementation in Python. TorChat is an anonymous, cross-platform instant messenger that uses the Tor network and encrypts correspondence.
