Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
users:techfaq [2015/09/07 15:51] – created, migrated old FAQ content technical settings, going to rewrite some of these answers. cmotcusers:techfaq [2020/05/23 17:04] (current) – fix link skeleton1
Line 1: Line 1:
-==== Technical FAQ ==== +===== Technical FAQ ===== 
-=== Servers? === +Please note the [[users:faq#warning]].
-No.+
  
-=== Encryption ===+===== What is Tox? (Advanced) ===== 
 + 
 +Tox provides an [[users:FAQ#Encryption|encrypted]], distributed, and extensible peer-to-peer platform that can be used for various forms of communication. We intend Tox to be used as a multimedia messenger, but many people have shown us that Tox can be used for a lot more than just instant messaging. For the sake of simplicity, the rest of this page will explain how Tox operates as its intended use. 
 + 
 +Tox users are connected by a modified version of [[https://en.wikipedia.org/wiki/Distributed_hash_table | DHT]], and bootstrap nodes are used to assist connections to the pool. The hash table consists of each Tox ID and an encrypted entry of each users' IP, which is only readable when a friend request is made with a proper Tox ID, including the nospam. When a user friends another user, their IPs are exchanged in order to facilitate a direct connection. Once a handshake occurs, a connection is established, and users converse through a crypto stream. 
 + 
 +It consists of a [[https://github.com/TokTok/c-toxcore| core]], and a number of [[:clients]]. [[http://cr.yp.to/highspeed/coolnacl-20120725.pdf| Go here]] for more information about the advantages of NaCl, libsodium, and peer-reviewed cryptographic primitives. 
 + 
 +Tox is just the core, the part of the program which handles the messages and encryption, for instance. But it can only function in the context of a complete instant messaging program. All the fancy user interfaces you see all over the place, are the clients. The client is a separate program which utilizes the core, providing a convenient way to use the program. So when you use Tox, you are in fact using one of the clients. The most clients are graphical clients, in other words, you will make use of all kinds of graphical elements which are part of the client. You usually won't get to see the core (unless you look into the source on GitHub). There are various clients available which each have a different name, are independent from each-other, in various programming languages. 
 + 
 +For example, file sharing and A/V (audio and video) are handled by the core, but the (for example!) pop-ups, per-person volume sliding bars, friends list etc, buttons etc. are all handled by the client. 
 + 
 +  * When you are referring to the Tox protocol or in general, you are talking about Tox. 
 +  * When you are referring to the Tox program itself, you are talking about the Tox core, usually written as toxcore (see the [[https://github.com/TokTok/c-toxcore| Git]]) 
 +  * When you are referring to one of the clients, you should mention the name of the client instead of 'Tox' or 'toxcore', such as [[clients:Toxic]] or [[clients:qTox]] (see [[:clients]]) 
 + 
 + 
 +==== Does Tox Rely on Central Servers? ==== 
 +No. That said, in some situations a client will choose to use central node to jump onto the distributed network. 
 + 
 +==== Encryption ====
  
 Encryption makes it impossible for anyone who is not the sender or recipient of a message to know content of message. All Tox communications (text, audio, video, file transfers, etc) are encrypted. That includes [[https://en.wikipedia.org/wiki/Forward_secrecy|perfect forward secrecy]], so all other Tox sessions (including those with the same friend) are safe in the case that someone manages to decrypt one session. This is not negotiable; it is the only mode Tox will operate in. Encryption makes it impossible for anyone who is not the sender or recipient of a message to know content of message. All Tox communications (text, audio, video, file transfers, etc) are encrypted. That includes [[https://en.wikipedia.org/wiki/Forward_secrecy|perfect forward secrecy]], so all other Tox sessions (including those with the same friend) are safe in the case that someone manages to decrypt one session. This is not negotiable; it is the only mode Tox will operate in.
Line 9: Line 28:
 Thanks to [[https://en.wikipedia.org/wiki/Public-key_cryptography| public key cryptography]], it is also impossible to pretend to be another Tox user, unless you were to steal that user's private key. Thanks to [[https://en.wikipedia.org/wiki/Public-key_cryptography| public key cryptography]], it is also impossible to pretend to be another Tox user, unless you were to steal that user's private key.
  
-== Which encryption algorithms does Tox employ? == +=== Which encryption algorithms does Tox employ? === 
-Tox uses the encryption algorithms present in the NaCl crypto library.+Tox uses the encryption algorithms present in the [[http://nacl.cr.yp.to/NaCl crypto library]], via [[http://doc.libsodium.org/| libsodium]]
  
 > “<irungentoo> (…) curve25519 for the key exchange, xsalsa20 for the encryption and poly1305 for the MAC” > “<irungentoo> (…) curve25519 for the key exchange, xsalsa20 for the encryption and poly1305 for the MAC”
Line 16: Line 35:
 More info: https://github.com/irungentoo/toxcore/blob/master/docs/updates/Crypto.md More info: https://github.com/irungentoo/toxcore/blob/master/docs/updates/Crypto.md
  
-== How does Tox's Encryption compare to OTR? ==+=== How does Tox's Encryption compare to OTR? ===
 The encryption used in Tox not only provides same features as OTR, but is also the default, and only operation mode of Tox. The encryption used in Tox not only provides same features as OTR, but is also the default, and only operation mode of Tox.
  
-=== Can I use Tox over Tor? ===+==== Can I use Tox over Tor? ====
 Yes! See [[users:Tox_over_Tor_(ToT) | Tox over Tor (ToT)]]. Yes! See [[users:Tox_over_Tor_(ToT) | Tox over Tor (ToT)]].
  
-=== Where can I find a public DHT node to bootstrap with? ===+==== Where can I find a public DHT node to bootstrap with? ====
 Check out [[users:nodes]] for an updated list. Check out [[users:nodes]] for an updated list.
  
-=== What is used for A/V? ===+==== What is used for A/V? ====
 Opus for audio and VPX (currently 8) for video. Opus for audio and VPX (currently 8) for video.
  
 SIP is not being used. SIP is not being used.
  
-=== Can data sent through Tox be corrupted? ===+==== Can data sent through Tox be corrupted? ====
  
 > “<irungentoo> toxcore packets are encrypted with MACed crypto so data will never be corrupted in transit” > “<irungentoo> toxcore packets are encrypted with MACed crypto so data will never be corrupted in transit”
Line 36: Line 55:
 It basically means that data won't ever be corrupted when sending between Tox clients. It basically means that data won't ever be corrupted when sending between Tox clients.
  
-=== What is stopping people from tracking me through the public DHT? ===+==== What is stopping people from tracking me through the public DHT? ===
 + 
 +Tox generates a temporary public/private key pair used to make connections to peers in the DHT. Onion routing is used to store and locate Tox IDs, to make it more difficult to, for example, associate Alice and Bob together by who they are looking for in the network. [[https://github.com/irungentoo/toxcore/blob/5ea703c844b12e86702c35b53b0b798fe5f86634/docs/Prevent_Tracking.txt| 1]] 
 + 
 +===== Source ===== 
 + 
 +==== Where do I get the Tox source code? ==== 
 +The core library: https://github.com/TokTok/c-toxcore 
 + 
 +==== How do I compile Tox? ==== 
 +Check out the instructions found in [[https://github.com/TokTok/c-toxcore/blob/master/INSTALL.md| INSTALL.md]] in the root of the toxcore repository. 
 + 
 +===== Community ===== 
 + 
 +For more information on the communicating with the Tox community, see [[users:community]].
  
-Tox generates a temporary public/private key pair used to make connections to peers in the DHT. Onion routing is used to store and locate Tox IDsto make it more difficult to, for example, associate Alice and Bob together by who they are looking for in the network.+===== Troubleshooting ===== 
 +For information on troubleshooting known issues in Tox, see [[users:troubleshooting]].
  
 +===== Contribution =====
 +As an open source project, Tox needs developers first and foremost. Graphic designers are very welcome too. Adventurous users can test and report bugs, translators will be necessary later on to translate stuff, and this wiki could always use another pair of hands! For more information on contributing to Tox, see [[users:contributing]].
Print/export