Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
users:techfaq [2015/09/07 16:11]
cmotc
users:techfaq [2020/05/23 17:04] (current)
skeleton1 fix link
Line 8: Line 8:
 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. 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/irungentoo/toxcore| core]], and a number of [[users:clients]].+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. 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.
Line 15: Line 15:
  
   * When you are referring to the Tox protocol or in general, you are talking about Tox.   * 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/irungentoo/toxcore| Git]]) +  * 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]])+  * 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]])
  
-==== Technical FAQ ==== 
-=== Servers? === 
-No. 
  
-=== Encryption ===+==== 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 28: 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 35: 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 55: 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.+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 ===== ===== Source =====
  
-=== Where do I get the Tox source code? === +==== Where do I get the Tox source code? ==== 
-The core library: https://github.com/irungentoo/toxcore+The core library: https://github.com/TokTok/c-toxcore
  
-=== How do I compile Tox? === +==== How do I compile Tox? ==== 
-Check out the instructions found in [[http://github.com/irungentoo/toxcore/blob/master/INSTALL.md| INSTALL.md]] in the root of the toxcore repository.+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 ===== ===== Community =====
Print/export