... provides a library and a command-line tool named wormhole, which makes it possible to get arbitrary-sized files and directories (or short pieces of text) from one computer to another. The two endpoints are identified by using identical "wormhole codes": in general, the sending machine generates and displays the code, which must then be typed into the receiving machine.
This is by far the simplest way to send files securely between two endpoints that the Whonix developers have encountered.
The wormhole tool uses PAKE “Password-Authenticated Key Exchange” [archive], a family of cryptographic algorithms that uses a short low-entropy password to establish a strong high-entropy shared key.  The codes are short and human-pronounceable, using a phonetically-distinct wordlist. The receiving side offers tab-completion on the codewords, so usually only a few characters must be typed. Wormhole codes are single-use and do not need to be memorized.
The following example shows the output related to sending the file "README.md" with Magic-Wormhole. Replace README.md with the name of any file in the home directory. 
% wormhole send README.md
Sending 7924 byte file named 'README.md'
On the other computer, please run: wormhole receive
Wormhole code is: 7-crossover-clockwork
100%|=========================| 7.92K/7.92K [00:00<00:00, 6.02MB/s]
File sent.. waiting for confirmation
Confirmation received. Transfer complete.
% wormhole receive
Enter receive wormhole code: 7-crossover-clockwork
Receiving file (7924 bytes) into: README.md
ok? (y/n): y
100%|===========================| 7.92K/7.92K [00:00<00:00, 120KB/s]
Received file written to README.md
The secret wormhole code must not be sent over an insecure channel, as an adversary can perform a Man-in-the-Middle (MITM) Attack and intercept transfers with complete reliability.
By default, wormhole codes contain 16 bits of entropy. If an attacker can intercept your network connection -- either by owning your network or owning the rendezvous server -- they can attempt an attack. They will have a one-in-65536 chance of successfully guessing the code, allowing them to pose as your intended partner. If they succeed, they can immediately start a new wormhole (using the same code), allowing your partner to connect to them instead of you. By passing, observing, and possibly modifying messages between these two connections, they could perform an MITM attack. 
Basic probability suggests that peers will see a large number of "WrongPasswordErrors" before the attacker is likely to successfully guess any wormhole code. In fact, about 32,000 failures would be reported before they have a 50 percent chance of being successful. If many failures emerge and it appears someone is trying to guess the codes, it is possible to make a longer code and significantly reduce adversary chances, for example:
wormhole send --code-length=4.
Peer-to-Peer (P2P) File Sharing
P2P is defined as: 
Stands for "Peer to Peer." In a P2P network, the "peers" are computer systems which are connected to each other via the Internet. Files can be shared directly between systems on the network without the need of a central server. In other words, each computer on a P2P network becomes a file server as well as a client.
In simple terms, any computer can join a P2P network with an Internet connection and the use of available P2P software. Popular, functional P2P applications include uTorrent, BitTorrent, Soulseek, Shareaza, WireShare, Gnutella, Vuze and FrostWire.  Once connected to the P2P network, it is possible to access thousands of other systems on the network, while other users can search for files on your computer (in a specially designated folder). 
Keep the following factors in mind if P2P programs are used over Tor:
- Whonix ™ keeps your IP address hidden while BitTorrent and other file sharing/P2P programs are in use. Whonix ™ also protects against de-anonymization attacks outlined in the next section.
- Torrent clients can be fingerprinted, so periodically start fresh from a clean snapshot and reinstall the torrent client.
- The Tor network suffers from limited bandwidth shared among 2 million users. Please be conscious of how much is downloaded/uploaded with these programs: a single, 500MB media file can equal several hours of browsing for another user.
- Violation of copyright laws risks harassment against exit nodes. To learn more about legal protections for file sharing in your jurisdiction, see: Legal aspects of file sharing [archive].
- If P2P must be used, please disable torrent seeding [archive].  Compared to ordinary downloads over FTP/HTTP, constant P2P uploading has harmful impacts upon Tor network resources.
The Tor Project Opinion
Over the last decade, the Tor Project has been fairly consistent in advising against torrenting over the Tor network. In response to the 2010 paper Compromising Tor Anonymity Exploiting P2P Information Leakage [archive] -- which detailed P2P information leakage over Tor that could compromise a (non-Whonix) user's identity -- Roger Dingledine [archive] stated in 2010:
Combined, they present a variety of reasons why running any Bittorrent traffic over Tor isn't going to get you the privacy that you might want. So what's the fix? There are two answers here. The first answer is "don't run Bittorrent over Tor". We've been saying for years not to run Bittorrent over Tor, because the Tor network can't handle the load [archive]; perhaps these attacks will convince more people to listen. The second answer is that if you want your Bittorrent client to actually provide privacy when using a proxy, you need to get the application and protocol developers to fix their applications and protocols. Tor can't keep you safe if your applications leak your identity [archive].
In the same post, Tor developer phobos stated: 
bittorrent is not designed to be private nor anonymous. We've said for years to not use bittorrent over tor because it will screw the user in some way. Now we have an example of at least one of those ways.
That does not mean that divergent opinions do not exist. For example, former Tor developer Jacob Appelbaum stated in 2011: 
... I'm not clear that it will harm the network if Tails includes a BitTorrent client. I think that the harm comes when someone runs a few seeding boxes through Tor and doesn't bother to add any capacity to the network at all. ...
Similarly, in the same thread former Tor executive director Andrew Lewman stated: 
... There are completely legitimate uses of bittorrent over Tor. I've talked to people who want to get their ISO of Fedora or Ubuntu from outside their country, so they bt over tor to do so. ... I'm fully aware that the tor codebase punishes me for doing large downloads over Tor, so be it. ...
Torrent Client Fingerprinting
Several fingerprinting risks exist for torrent clients:
- On initial startup, torrent clients generate a unique peer ID for the Distributed Hash Table (DHT) [archive] network.  In effect, the "RandomNumbers" component of the peer ID could be used to identify a client.
- Another identifier concerns node IDs, which are persistent unless the user clears their DHT information and rejoins the network (which is uncommon).
- It is reported trackers can set cookies in the client - for example a newer version of qbittorrent allows you to see and manage those from the GUI.
To avoid leaving a long-lived trail of download activity, it is recommended to periodically start fresh from a clean snapshot and to delete the torrent client's user data folder. Note: the torrent client's user data folder is likely - depending on the torrent client - different from the download folder. Clearing the download folder likely does not remove unique IDs.
- https://github.com/warner/magic-wormhole [archive]
- https://magic-wormhole.readthedocs.io/en/latest/ [archive]
- https://magic-wormhole.readthedocs.io/en/latest/welcome.html#design [archive]
- https://github.com/warner/magic-wormhole/blob/master/docs/tor.md [archive]
- https://web.archive.org/web/20190817162545/https:/twitter.com/str4d/status/1153247233044860928 [archive]
- https://github.com/warner/magic-wormhole.rs [archive]
- https://magic-wormhole.readthedocs.io/en/latest/welcome.html#example [archive]
- https://magic-wormhole.readthedocs.io/en/latest/attacks.html#low-probability-man-in-the-middle-attacks [archive]
- https://techterms.com/definition/p2p [archive]
- https://www.blogsdna.com/923/top-20-best-peer-2-peer-p2p-file-sharing-programs-applications-software.htm [archive]
- How seeding works in torrent? [archive]:
Seed is a person who has a torrent file open in their client (let's say the same file you are trying to download) and the only difference between you and them is that they have the complete file downloaded already and are now "seeding" - sharing the file with peers but not downloading any parts of the file from others.
- https://blog.torproject.org/comment/5541#comment-5541 [archive]
- https://lists.torproject.org/pipermail/tor-talk/2011-December/022376.html [archive]
- https://lists.torproject.org/pipermail/tor-talk/2011-December/022369.html [archive]
- https://security.stackexchange.com/questions/37167/can-bittorrent-clients-be-fingerprinted [archive]
This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! Read, understand and agree to Conditions for Contributions to Whonix ™, then Edit! Edits are held for moderation.
Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP. Whonix ™ is a trademark. Whonix ™ is a licensee [archive] of the Open Invention Network [archive]. Unless otherwise noted, the content of this page is copyrighted and licensed under the same Freedom Software license as Whonix ™ itself. (Why?)