Tor FAQ


General questions:

Compilation and Installation:

Running Tor:

Running a Tor client:

Running a Tor relay:

Running a Tor hidden service:

Anonymity and Security:

Alternate designs that we don't do (yet):

Abuse

For other questions not yet on this version of the FAQ, see the wiki FAQ for now.


What is Tor?

The name "Tor" can refer to several different components.

The Tor software is a program you can run on your computer that helps keep you safe on the Internet. Tor protects you by bouncing your communications around a distributed network of relays run by volunteers all around the world: it prevents somebody watching your Internet connection from learning what sites you visit, and it prevents the sites you visit from learning your physical location. This set of volunteer relays is called the Tor network. You can read more about how Tor works on the overview page.

The Tor Project is a non-profit (charity) organization that maintains and develops the Tor software.


How is Tor different from other proxies?

A typical proxy provider sets up a server somewhere on the Internet and allows you to use it to relay your traffic. This creates a simple, easy to maintain architecture. The users all enter and leave through the same server. The provider may charge for use of the proxy, or fund their costs through advertisements on the server. In the simplest configuration, you don't have to install anything. You just have to point your browser at their proxy server. Simple proxy providers are fine solutions if you do not want protections for your privacy and anonymity online and you trust the provider from doing bad things. Some simple proxy providers use SSL to secure your connection to them. This may protect you against local eavesdroppers, such as those at a cafe with free wifi Internet.

Simple proxy providers also create a single point of failure. The provider knows who you are and where you browse on the Internet. They can see your traffic as it passes through their server. In some cases, they can see your encrypted traffic as they relay it to your banking site or to ecommerce stores. You have to trust the provider isn't doing any number of things, such as watching your traffic, injecting their own advertisements into your traffic stream, and isn't recording your personal details.

Tor passes your traffic through at least 3 different servers before sending it on to the destination. Tor does not modify, or even know, what you are sending into it. It merely relays your traffic, completely encrypted through the Tor network and has it pop out somewhere else in the world, completely intact. The Tor client is required because we assume you trust your local computer. The Tor client manages the encryption and the path chosen through the network. The relays located all over the world merely pass encrypted packets between themselves.

Doesn't the first server see who I am?
Possibly. A bad first of three servers can see encrypted Tor traffic coming from your computer. It still doesn't know who you are and what you are doing over Tor. It merely sees "This IP address is using Tor". Tor is not illegal anywhere in the world, so using Tor by itself is fine. You are still protected from this node figuring out who you are and where you are going on the Internet.
Can't the third server see my traffic?
Possibly. A bad third of three servers can see the traffic you sent into Tor. It won't know who sent this traffic. If you're using encryption, such as visiting a bank or e-commerce website, or encrypted mail connections, etc, it will only know the destination. It won't be able to see the data inside the traffic stream. You are still protected from this node figuring out who you are and if using encryption, what data you're sending to the destination.


What programs can I use with Tor?

There are two pieces to "Torifying" a program: connection-level anonymity and application-level anonymity. Connection-level anonymity focuses on making sure the application's Internet connections get sent through Tor. This step is normally done by configuring the program to use your Tor client as a "socks" proxy, but there are other ways to do it too. For application-level anonymity, you need to make sure that the information the application sends out doesn't hurt your privacy. (Even if the connections are being routed through Tor, you still don't want to include sensitive information like your name.) This second step needs to be done on a program-by-program basis, which is why we don't yet recommend very many programs for safe use with Tor.

Most of our work so far has focused on the Firefox web browser. The bundles on the download page automatically install the Torbutton Firefox extension if you have Firefox installed. As of version 1.2.0, Torbutton now takes care of a lot of the connection-level and application-level worries.

There are plenty of other programs you can use with Tor, but we haven't researched the application-level anonymity issues on them well enough to be able to recommend a safe configuration. Our wiki has a list of instructions for Torifying specific applications. There's also a list of applications that help you direct your traffic through Tor. Please add to these lists and help us keep them accurate!


Why is it called Tor?

Because Tor is the onion routing network. When we were starting the new next-generation design and implementation of onion routing in 2001-2002, we would tell people we were working on onion routing, and they would say "Neat. Which one?" Even if onion routing has become a standard household term, Tor was born out of the actual onion routing project run by the Naval Research Lab.

(It's also got a fine translation from German and Turkish.)

Note: even though it originally came from an acronym, Tor is not spelled "TOR". Only the first letter is capitalized. In fact, we can usually spot people who haven't read any of our website (and have instead learned everything they know about Tor from news articles) by the fact that they spell it wrong.


Is there a backdoor in Tor?

There is absolutely no backdoor in Tor. Nobody has asked us to put one in, and we know some smart lawyers who say that it's unlikely that anybody will try to make us add one in our jurisdiction (U.S.). If they do ask us, we will fight them, and (the lawyers say) probably win.

We think that putting a backdoor in Tor would be tremendously irresponsible to our users, and a bad precedent for security software in general. If we ever put a deliberate backdoor in our security software, it would ruin our professional reputations. Nobody would trust our software ever again — for excellent reason!

But that said, there are still plenty of subtle attacks people might try. Somebody might impersonate us, or break into our computers, or something like that. Tor is open source, and you should always check the source (or at least the diffs since the last release) for suspicious things. If we (or the distributors) don't give you source, that's a sure sign something funny might be going on. You should also check the PGP signatures on the releases, to make sure nobody messed with the distribution sites.

Also, there might be accidental bugs in Tor that could affect your anonymity. We periodically find and fix anonymity-related bugs, so make sure you keep your Tor versions up-to-date.


Can I distribute Tor on my magazine's CD?

Yes.

The Tor software is free software. This means we give you the rights to redistribute the Tor software, either modified or unmodified, either for a fee or gratis. You don't have to ask us for specific permission.

However, if you want to redistribute the Tor software you must follow our LICENSE. Essentially this means that you need to include our LICENSE file along with whatever part of the Tor software you're distributing.

Most people who ask us this question don't want to distribute just the Tor software, though. They want to distribute the Tor bundles, which typically include Polipo and Vidalia. You will need to follow the licenses for those programs as well. Both of them are distributed under the GNU General Public License. The simplest way to obey their licenses is to include the source code for these programs everywhere you include the bundles themselves. Look for "source" packages on the Vidalia page and the Polipo download page.

Also, you should make sure not to confuse your readers about what Tor is, who makes it, and what properties it provides (and doesn't provide). See our trademark FAQ for details.

Lastly, you should realize that we release new versions of the Tor software frequently, and sometimes we make backward incompatible changes. So if you distribute a particular version of the Tor software, it may not be supported — or even work — six months later. This is a fact of life for all security software under heavy development.


How can I get an answer to my Tor support mail?

Many people send the Tor developers mail privately, or send mail to our internal lists, with questions about their specific setup — they can't get their firewall working right, they can't configure Polipo correctly, or so on. Sometimes our volunteers can answer these mails, but typically they need to spend most of their time on development tasks that will benefit more people. This is especially true if your question is already covered in the documentation or on this FAQ.

So if we don't answer your mail, first check the documentation page, along with this FAQ, to make sure your question isn't already answered. Then read "How to ask questions the smart way". If this doesn't help you, note that we have an IRC channel where you can ask your questions (but if they are still open-ended, ill-formed, or not about Tor, you likely won't get much help there either). Lastly, people on the or-talk mailing list may be able to provide some hints for you, if others have experienced your problems too. Be sure to look over the archives first.

Another strategy is to run a Tor relay for a while, and/or donate money or time to the effort. We're more likely to pay attention to people who have demonstrated interest and commitment to giving back to the Tor community.

If you find your answer, please stick around on the IRC channel or the mailing list and answer questions from others.


Why is Tor so slow?

There are many reasons why the Tor network is currently slow.

Before we answer, though, you should realize that Tor is never going to be blazing fast. Your traffic is bouncing through volunteers' computers in various parts of the world, and some bottlenecks and network latency will always be present. You shouldn't expect to see university-style bandwidth through Tor.

But that doesn't mean that it can't be improved. The current Tor network is quite small compared to the number of people trying to use it, and many of these users don't understand or care that Tor can't currently handle file-sharing traffic load.

For the much more in-depth answer, see Roger's blog post on the topic, which includes both a detailed PDF and a video to go with it.

What can you do to help?


What would The Tor Project do with more funding?

We have about 1800 relays right now, pushing over 150 MB/s average traffic. We have several hundred thousand active users. But the Tor network is not yet self-sustaining.

There are six main development/maintenance pushes that need attention:

We're continuing to move forward on all of these, but at this rate the Tor network is growing faster than the developers can keep up. Now would be an excellent time to add a few more developers to the effort so we can continue to grow the network.

We are also excited about tackling related problems, such as censorship-resistance.

We are proud to have sponsorship and support from the Omidyar Network, the International Broadcasting Bureau, Bell Security Solutions, the Electronic Frontier Foundation, several government agencies and research groups, and hundreds of private contributors.

However, this support is not enough to keep Tor abreast of changes in the Internet privacy landscape. Please donate to the project, or contact our executive director for information on making grants or major donations.


How do I uninstall Tor?

This depends entirely on how you installed it and which operating system you have. If you installed a package, then hopefully your package has a way to uninstall itself. The Windows packages include uninstallers. The proper way to completely remove Tor, Vidalia, Torbutton for Firefox, and Polipo on any version of Windows is as follows:

  1. In your taskbar, right click on Vidalia (the green onion or the black head) and choose exit.
  2. Right click on the taskbar to bring up TaskManager. Look for tor.exe in the Process List. If it's running, right click and choose End Process.
  3. Click the Start button, go to Programs, go to Vidalia, choose Uninstall. This will remove the Vidalia bundle, which includes Tor and Polipo.
  4. Start Firefox. Go to the Tools menu, choose Add-ons. Select Torbutton. Click the Uninstall button.

If you do not follow these steps (for example by trying to uninstall Vidalia, Tor, and Polipo while they are still running), you will need to reboot and manually remove the directory "Program Files\Vidalia Bundle".

For Mac OS X, follow the uninstall directions.

If you installed by source, I'm afraid there is no easy uninstall method. But on the bright side, by default it only installs into /usr/local/ and it should be pretty easy to notice things there.


What are these "sig" files on the download page?

These are PGP signatures, so you can verify that the file you've downloaded is exactly the one that we intended you to get.

Please read the verifying signatures page for details.


How do I compile Tor under Windows?

Try following the steps at tor-win32-mingw-creation.txt.

(Note that you don't need to compile Tor yourself in order to use it. Most people just use the packages available on the download page.)


Why does my Tor executable appear to have a virus or spyware?

Sometimes, overzealous Windows virus and spyware detectors trigger on some parts of the Tor Windows binary. Our best guess is that these are false positives — after all, the anti-virus and anti-spyware business is just a guessing game anyway. You should contact your vendor and explain that you have a program that seems to be triggering false positives. Or pick a better vendor.

In the meantime, we encourage you to not just take our word for it. Our job is to provide the source; if you're concerned, please do recompile it yourself.


Is there a LiveCD or other bundle that includes Tor?

There isn't any official LiveCD at this point. We're still trying to find good solutions and trying to understand the security and anonymity implications of the various options. In the mean time, feel free to check out the list below and use your best judgement:

LiveCDs:

  1. The (Amnesic) Incognito Live System is a Live System aimed at preserving your privacy and anonymity:
    • All outgoing connections to the Internet are forced to go through the Tor network.
    • No trace is left on local storage devices unless explicitely asked.
    • It includes Firefox, Tor, Torbutton, Vidalia graphical Tor controller, Pidgin Instant Messaging client, and lots of other software.
    • It's based upon Debian gnu/linux and comes with the GNOME desktop environment.
  2. TorK LiveCD is Knoppix-based with an emphasis on user-friendliness. You can work anonymously or non-anonymously while TorK tries to keep you informed of the consequences of your activity. The TorK LiveCD is experimental, so the aim is to provide regular releases through 2007 and beyond.
  3. Privatix LiveCD/USB is a debian based live-system including tor, firefox and torbutton which can save bookmarks and other settings or data on an encrypted usb-key

Windows bundles:

  1. Tor Browser Bundle for Windows comes with a pre-configured web browser and is self contained so you can run it from a USB stick.
  2. Tor VM is a successor to JanusVM. It needs testing from you!
  3. JanusVM is a Linux kernel and software running in VMWare that sits between your Windows computer and the Internet, making sure that your Internet traffic is scrubbed and anonymized.
  4. xB Browser, previously known as Torpark, is a Firefox+Tor package for Win32 that can installed on a USB key. It needs a host Win32 operating system.

Not currently maintained as far as we know:

  1. Polippix / Privatlivets Fred is a Danish Knoppix-based LiveCD with Tor and utilities to encrypt IP-telephony. Info and download.
  2. ELE is a Linux LiveCD which is focused on privacy related software. It includes Tor and you can download it at http://www.northernsecurity.net/download/ele/.
  3. Virtual Privacy Machine is a Linux LiveCD that includes Firefox, Privoxy, Tor, some IRC and IM applications, and a set of ipchains rules aimed to prevent non-Tor traffic from accidentally leaving your computer. More information at https://wiki.torproject.org/noreply/VirtualPrivacyMachine.
  4. Anonym.OS is a LiveCD similar to the above but is based on OpenBSD rather than Linux for maximum security. It was designed to be anonymous and secure from the ground up, and thus has some features and limitations not found in other LiveCDs (Tor related or otherwise). You can obtain more information and download Anonym.OS from Kaos.Theory.
  5. Phantomix is a LiveCD for anonymous surfing and chatting based on the most recent KNOPPIX release. It comes preconfigured with Privoxy, Tor and Polipo. You can get it from the Phantomix Website.

Please contact us if you know any others.


Can I control which nodes (or country) are used for entry/exit?

Yes. You can set preferred entry and exit nodes as well as inform Tor which nodes you do not want to use. The following options can be added to your config file "torrc" or specified on the command line:

EntryNodes $fingerprint,$fingerprint,...
A list of preferred nodes to use for the first hop in the circuit, if possible.
ExitNodes $fingerprint,$fingerprint,...
A list of preferred nodes to use for the last hop in the circuit, if possible.
ExcludeNodes $fingerprint,$fingerprint,...
A list of nodes to never use when building a circuit.
ExcludeExitNodes $fingerprint,$fingerprint,...
A list of nodes to never use when picking an exit. Nodes listed in ExcludeNodes are automatically in this list.

We recommend you do not use these — they are intended for testing and may disappear in future versions. You get the best security that Tor can provide when you leave the route selection to Tor; overriding the entry / exit nodes can mess up your anonymity in ways we don't understand.

The EntryNodes and ExitNodes config options are treated as a request, meaning if the nodes are down or seem slow, Tor will still avoid them. You can make the option mandatory by setting StrictExitNodes 1 or StrictEntryNodes 1 — but if you do, your Tor connections will stop working if all of the nodes you have specified become unreachable. See the Tor status pages for some nodes you might pick.

Instead of $fingerprint you can also specify a 2 letter ISO3166 country code in curly braces (for example {de}), or an ip address pattern (for example 255.254.0.0/8), or a node nickname. Make sure there are no spaces between the commas and the list items.

If you want to access a service directly through Tor's SOCKS interface (eg. using ssh via connect.c), another option is to set up an internal mapping in your configuration file using MapAddress. See the manual page for details.


How stable does my relay need to be?

We aim to make setting up a Tor relay easy and convenient:


I'd run a relay, but I don't want to deal with abuse issues.

Great. That's exactly why we implemented exit policies.

Each Tor relay has an exit policy that specifies what sort of outbound connections are allowed or refused from that relay. The exit policies are propagated to Tor clients via the directory, so clients will automatically avoid picking exit relays that would refuse to exit to their intended destination. This way each relay can decide the services, hosts, and networks he wants to allow connections to, based on abuse potential and his own situation. Read the FAQ entry on issues you might encounter if you use the default exit policy, and then read Mike Perry's tips for running an exit node with minimal harassment.

The default exit policy allows access to many popular services (e.g. web browsing), but restricts some due to abuse potential (e.g. mail) and some since the Tor network can't handle the load (e.g. default file-sharing ports). You can change your exit policy using Vidalia's "Sharing" tab, or by manually editing your torrc file. If you want to avoid most if not all abuse potential, set it to "reject *:*" (or un-check all the boxes in Vidalia). This setting means that your relay will be used for relaying traffic inside the Tor network, but not for connections to external websites or other services.

If you do allow any exit connections, make sure name resolution works (that is, your computer can resolve Internet addresses correctly). If there are any resources that your computer can't reach (for example, you are behind a restrictive firewall or content filter), please explicitly reject them in your exit policy — otherwise Tor users will be impacted too.


Should I be a normal relay or bridge relay?

Bridge relays (or "bridges" for short) are Tor relays that aren't listed in the main Tor directory. That means that even an ISP or government trying to filter connections to the Tor network probably won't be able to block all the bridges.

Being a normal relay vs being a bridge relay is almost the same configuration: it's just a matter of whether your relay is listed publically or not.

Right now, there are roughly zero places in the world that filter connections to the Tor network. So getting a lot of bridges running right now is mostly a backup measure, a) in case the Tor network does get blocked somewhere, and b) for people who want an extra layer of security because they're worried somebody will recognize that it's a public Tor relay IP address they're contacting.

So should you run a normal relay or bridge relay? If you have lots of bandwidth, you should definitely run a normal relay — bridge relays see very little use these days. If you're willing to be an exit, you should definitely run a normal relay, since we need more exits. If you can't be an exit and only have a little bit of bandwidth, then flip a coin. Thanks for volunteering!


Why is my Tor relay using so much memory?

If your Tor relay is using more memory than you'd like, here are some tips for reducing its footprint:

  1. If you're on Linux, you may be encountering memory fragmentation bugs in glibc's malloc implementation. That is, when Tor releases memory back to the system, the pieces of memory are fragmented so they're hard to reuse. The Tor tarball ships with OpenBSD's malloc implementation, which doesn't have as many fragmentation bugs (but the tradeoff is higher CPU load). You can tell Tor to use this malloc implementation instead: ./configure --enable-openbsd-malloc
  2. If you're running a fast relay, meaning you have many TLS connections open, you are probably losing a lot of memory to OpenSSL's internal buffers (38KB+ per socket). We've patched OpenSSL to release unused buffer memory more aggressively. If you update to OpenSSL 1.0.0-beta5, Tor's build process will automatically recognize and use this feature.
  3. If you're running on Solaris, OpenBSD, NetBSD, or old FreeBSD, Tor is probably forking separate processes rather than using threads. Consider switching to a better operating system.
  4. If you still can't handle the memory load, consider reducing the amount of bandwidth your relay advertises. Advertising less bandwidth means you will attract fewer users, so your relay shouldn't grow as large. See the MaxAdvertisedBandwidth option in the man page.

All of this said, fast Tor relays do use a lot of ram. It is not unusual for a fast exit relay to use 500-1000 MB of memory.


Why is my Tor relay not named?

We currently use these metrics to determine if your relay should be named:


Tell me about all the keys Tor uses.

Tor uses a variety of different keys, with three goals in mind: 1) encryption to ensure privacy of data within the Tor network, 2) authentication so clients know they're talking to the relays they meant to talk to, and 3) signatures to make sure all clients know the same set of relays.

Encryption: first, all connections in Tor use TLS link encryption, so observers can't look inside to see which circuit a given cell is intended for. Further, the Tor client establishes an ephemeral encryption key with each relay in the circuit, so only the exit relay can read the cells. Both sides discard the circuit key when the circuit ends, so logging traffic and then breaking into the relay to discover the key won't work.

Authentication: Every Tor relay has a public decryption key called the "onion key". When the Tor client establishes circuits, at each step it demands that the Tor relay prove knowledge of its onion key. That way the first node in the path can't just spoof the rest of the path. Each relay rotates its onion key once a week.

Coordination: How do clients know what the relays are, and how do they know that they have the right keys for them? Each relay has a long-term public signing key called the "identity key". Each directory authority additionally has a "directory signing key". The directory authorities provide a signed list of all the known relays, and in that list are a set of certificates from each relay (self-signed by their identity key) specifying their keys, locations, exit policies, and so on. So unless the adversary can control a threshold of the directory authorities, he can't trick the Tor client into using other Tor relays.

How do clients know what the directory authorities are? The Tor software comes with a built-in list of location and public key for each directory authority. So the only way to trick users into using a fake Tor network is to give them a specially modified version of the software.

How do users know they've got the right software? When we distribute the source code or a package, we digitally sign it with GNU Privacy Guard. See the instructions on how to check Tor's signatures.

In order to be certain that it's really signed by us, you need to have met us in person and gotten a copy of our GPG key fingerprint, or you need to know somebody who has. If you're concerned about an attack on this level, we recommend you get involved with the security community and start meeting people.


You should make every Tor user be a relay.

Requiring every Tor user to be a relay would help with scaling the network to handle all our users, and running a Tor relay may help your anonymity. However, many Tor users cannot be good relays — for example, some Tor clients operate from behind restrictive firewalls, connect via modem, or otherwise aren't in a position where they can relay traffic. Providing service to these clients is a critical part of providing effective anonymity for everyone, since many Tor users are subject to these or similar constraints and including these clients increases the size of the anonymity set.

That said, we do want to encourage Tor users to run relays, so what we really want to do is simplify the process of setting up and maintaining a relay. We've made a lot of progress with easy configuration in the past few years: Vidalia has an easy relay configuration interface, and supports uPnP too. Tor is good at automatically detecting whether it's reachable and how much bandwidth it can offer.

There are five steps we need to address before we can do this though:

First, we need to make Tor stable as a relay on all common operating systems. The main remaining platform is Windows, and we plan to finally address that in 2009. See Section 4.1 of our development roadmap.

Second, we still need to get better at automatically estimating the right amount of bandwidth to allow. See item #7 on the research section of the volunteer page: "Tor doesn't work very well when relays have asymmetric bandwidth (e.g. cable or DSL)". It might be that switching to UDP transport is the simplest answer here — which alas is not a very simple answer at all.

Third, we need to work on scalability, both of the network (how to stop requiring that all Tor relays be able to connect to all Tor relays) and of the directory (how to stop requiring that all Tor users know about all Tor relays). Changes like this can have large impact on potential and actual anonymity. See Section 5 of the Challenges paper for details. Again, UDP transport would help here.

Fourth, we need to better understand the risks from letting the attacker send traffic through your relay while you're also initiating your own anonymized traffic. Three different research papers describe ways to identify the relays in a circuit by running traffic through candidate relays and looking for dips in the traffic while the circuit is active. These clogging attacks are not that scary in the Tor context so long as relays are never clients too. But if we're trying to encourage more clients to turn on relay functionality too (whether as bridge relays or as normal relays), then we need to understand this threat better and learn how to mitigate it.

Fifth, we might need some sort of incentive scheme to encourage people to relay traffic for others, and/or to become exit nodes. Here are our current thoughts on Tor incentives.

Please help on all of these!


Doesn't Tor enable criminals to do bad things?

For the answer to this question and others, please see our Tor Abuse FAQ.


How do I respond to my ISP about my exit relay?

A collection of templates for successfully responding to ISPs is collected here.



"Tor" and the "Onion Logo" are registered trademarks of The Tor Project, Inc.
Content on this site is licensed under a Creative Commons Attribution 3.0 United States License, unless otherwise noted.

This page is also available in the following languages: Burmese, suomi, français, Italiano, polski, Русский (Russkij), svenska.
How to set the default document language.

Contact Us - Last modified: Wed Apr 7 23:02:38 2010 - Last compiled: Wed Apr 7 23:02:45 2010