[tor-commits] [webwml/staging] faq: fix indention (no content change)

hiro at torproject.org hiro at torproject.org
Mon Aug 27 11:02:57 UTC 2018


commit 5e8d08aba67e00bcc64e30189085b1d55f90866a
Author: traumschule <traumschuleriebau at riseup.net>
Date:   Tue Aug 21 22:20:53 2018 +0200

    faq: fix indention (no content change)
---
 docs/en/faq.wml | 3842 +++++++++++++++++++++++++++----------------------------
 1 file changed, 1891 insertions(+), 1951 deletions(-)

diff --git a/docs/en/faq.wml b/docs/en/faq.wml
index 86e21a8a..04718a37 100644
--- a/docs/en/faq.wml
+++ b/docs/en/faq.wml
@@ -15,13 +15,14 @@
     <hr>
 
     <a id="general"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#general">General questions:</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#general">General
+    questions:</a></h4>
     <ul>
     <li><a href="#WhatIsTor">What is Tor?</a></li>
-    <li><a href="#Torisdifferent">How is Tor different from other
-proxies?</a></li>
-    <li><a href="#CompatibleApplications">What programs can I use with
-    Tor?</a></li>
+    <li><a href="#Torisdifferent">How is Tor different from other proxies?
+    </a></li>
+    <li><a href="#CompatibleApplications">What programs can I use with Tor?
+    </a></li>
     <li><a href="#WhyCalledTor">Why is it called Tor?</a></li>
     <li><a href="#Backdoor">Is there a backdoor in Tor?</a></li>
     <li><a href="#DistributingTor">Can I distribute Tor?</a></li>
@@ -30,22 +31,23 @@ proxies?</a></li>
     <li><a href="#WhySlow">Why is Tor so slow?</a></li>
     <li><a href="#FileSharing">How can I share files anonymously through Tor?
     </a></li>
-    <li><a href="#Funding">What would The Tor Project do with more
-    funding?</a></li>
+    <li><a href="#Funding">What would The Tor Project do with more funding?
+    </a></li>
     <li><a href="#IsItWorking">How can I tell if Tor is working, and that my
     connections really are anonymized?</a></li>
     <li><a href="#Mobile">Can I use Tor on my phone or mobile device?</a></li>
-    <li><a href="#OutboundPorts">Which outbound ports must be open when
-    using Tor as a client?</a></li>
+    <li><a href="#OutboundPorts">Which outbound ports must be open when using
+    Tor as a client?</a></li>
     <li><a href="#FTP">How do I use my browser for ftp with Tor?</a></li>
-    <li><a href="#NoDataScrubbing">Does Tor remove personal information
-    from the data my application sends?</a></li>
-    <li><a href="#Metrics">How many people use Tor? How many relays or
-    exit nodes are there?</a></li>
+    <li><a href="#NoDataScrubbing">Does Tor remove personal information from
+    the data my application sends?</a></li>
+    <li><a href="#Metrics">How many people use Tor? How many relays or exit
+    nodes are there?</a></li>
     </ul>
 
     <a id="comp-install"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#comp-install">Compilation and Installation:</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#comp-install">
+    Compilation and Installation:</a></h4>
 
     <ul>
     <li><a href="#HowUninstallTor">How do I uninstall Tor?</a></li>
@@ -56,12 +58,13 @@ proxies?</a></li>
     <li><a href="#VirusFalsePositives">Why does my Tor executable appear to
     have a virus or spyware?</a></li>
     <li><a href="#tarballs">How do I open a .tar.gz or .tar.xz file?</a></li>
-    <li><a href="#LiveCD">Is there a LiveCD or other bundle that
-includes Tor?</a></li>
+    <li><a href="#LiveCD">Is there a LiveCD or other bundle that includes Tor?
+    </a></li>
     </ul>
 
     <a id="tbb"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#tbb">Tor Browser (general):</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#tbb">Tor Browser
+    (general):</a></h4>
     <ul>
 
     <li><a href="#TBBFlash">Why can't I view videos on YouTube and other
@@ -70,13 +73,12 @@ includes Tor?</a></li>
     </a></li>
     <li><a href="#SophosOnMac">I'm using the Sophos anti-virus
     software on my Mac, and Tor starts but I can't browse anywhere.</a></li>
-    <li><a href="#XPCOMError">When I start Tor Browser I get an 
-error message: "Cannot load XPCOM".</a></li>
+    <li><a href="#XPCOMError">When I start Tor Browser I get an  error message:
+    "Cannot load XPCOM".</a></li>
     <li><a href="#TBBOtherExtensions">Can I install other Firefox
     extensions? Which extensions should I avoid using?</a></li>
-    <li><a href="#TBBJavaScriptEnabled">Why is NoScript configured to
-allow JavaScript by default in Tor Browser?  Isn't that
-unsafe?</a></li>
+    <li><a href="#TBBJavaScriptEnabled">Why is NoScript configured to allow
+    JavaScript by default in Tor Browser?  Isn't that unsafe?</a></li>
     <li><a href="#TBBOtherBrowser">I want to use Chrome/IE/Opera/etc
     with Tor.</a></li>
     <li><a href="#GoogleCAPTCHA">Google makes me solve a CAPTCHA or tells
@@ -94,7 +96,8 @@ unsafe?</a></li>
     </ul>
 
     <a id="tbb-3plus"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#tbb-3plus">Tor Browser (3.x and later):</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#tbb-3plus">Tor
+    Browser (3.x and later):</a></h4>
 
     <ul>
     <li><a href="#DisableJS">How do I disable JavaScript?</a></li>
@@ -110,7 +113,8 @@ unsafe?</a></li>
     </ul>
 
     <a id="advanced"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#advanced">Advanced Tor usage:</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#advanced">Advanced
+    Tor usage:</a></h4>
 
     <ul>
     <li><a href="#torrc">I'm supposed to "edit my torrc". What does
@@ -121,40 +125,43 @@ unsafe?</a></li>
     <li><a href="#DoesntWork">Tor is running, but it's not working
     correctly.</a></li>
     <li><a href="#TorCrash">My Tor keeps crashing.</a></li>
-    <li><a href="#ChooseEntryExit">Can I control which nodes (or
-country)
+    <li><a href="#ChooseEntryExit">Can I control which nodes (or country)
     are used for entry/exit?</a></li>
     <li><a href="#FirewallPorts">My firewall only allows a few outgoing
     ports.</a></li>
-    <li><a href="#DefaultExitPorts">Is there a list of default exit ports?</a></li>
+    <li><a href="#DefaultExitPorts">Is there a list of default exit ports?
+    </a></li>
     <li><a href="#WarningsAboutSOCKSandDNSInformationLeaks">I keep seeing
     these warnings about SOCKS and DNS information leaks. Should I
     worry?</a></li>
     <li><a href="#SocksAndDNS">How do I check if my application that uses
     SOCKS is leaking DNS requests?</a></li>
-    <li><a href="#TorClientOnADifferentComputerThanMyApplications">I want to run my Tor client on a
+    <li><a href="#TorClientOnADifferentComputerThanMyApplications">I want to
+    run my Tor client on a
     different computer than my applications.</a></li>
     <li><a href="#ServerClient">Can I install Tor on a central server, and
     have my clients connect to it?</a></li>
     </ul>
 
     <a id="relay"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#relay">Running a Tor relay:</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#relay">Running a
+    Tor relay:</a></h4>
     <ul>
 
     <li><a href="#HowDoIDecide">How do I decide if I should run a relay?
     </a></li>
-    <li><a href="#MostNeededRelayType">What type of relays are most needed?</a></li>
+    <li><a href="#MostNeededRelayType">What type of relays are most needed?
+    </a></li>
     <li><a href="#WhyIsntMyRelayBeingUsedMore">Why isn't my relay being
     used more?</a></li>
-    <li><a href="#IDontHaveAStaticIP">Can I run a Tor relay using a dynamic IP address?</a></li>
+    <li><a href="#IDontHaveAStaticIP">Can I run a Tor relay using a dynamic IP
+    address?</a></li>
     <li><a href="#IPv6Relay">Can I use IPv6 on my relay?</a></li>
     <li><a href="#PortscannedMore">Why do I get portscanned more often
     when I run a Tor relay?</a></li>
     <li><a href="#HighCapacityConnection">How can I get Tor to fully
     make use of my high capacity connection?</a></li>
-    <li><a href="#RelayFlexible">How stable does my relay need to
-be?</a></li>
+    <li><a href="#RelayFlexible">How stable does my relay need to be?</a></li>
     <li><a href="#BandwidthShaping">What bandwidth shaping options are
     available to Tor relays?</a></li>
     <li><a href="#LimitTotalBandwidth">How can I limit the total amount
@@ -180,15 +187,15 @@ be?</a></li>
     keep the same key?</a></li>
     <li><a href="#OfflineED25519">How do offline ed25519 identity keys work?
     What do I need to know?</a></li>
-    <li><a href="#MultipleRelays">I want to run more than one
-relay.</a></li>
+    <li><a href="#MultipleRelays">I want to run more than one relay.</a></li>
     <li><a href="#NTService">How do I run my Tor relay as an NT service?
     </a></li>
     <li><a href="#VirtualServer">Can I run a Tor relay from my virtual server
     account?</a></li>
     <li><a href="#WrongIP">My relay is picking the wrong IP address.</a></li>
     <li><a href="#BehindANAT">I'm behind a NAT/Firewall</a></li>
-    <li><a href="#OutgoingFirewall">How should I configure the outgoing filters on my relay?</a></li>
+    <li><a href="#OutgoingFirewall">How should I configure the outgoing filters
+    on my relay?</a></li>
     <li><a href="#RelayMemory">Why is my Tor relay using so much memory?
     </a></li>
     <li><a href="#BetterAnonymity">Do I get better anonymity if I run a relay?
@@ -200,15 +207,18 @@ relay.</a></li>
     </ul>
 
     <a id="onion-services"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#onion-services">Tor onion services:</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#onion-services">
+    Tor onion services:</a></h4>
 
     <ul>
     <li><a href="#AccessOnionServices">How do I access onion services?</a></li>
-    <li><a href="#ProvideAnOnionService">How do I provide an onion service?</a></li>
+    <li><a href="#ProvideAnOnionService">How do I provide an onion service?
+    </a></li>
     </ul>
 
     <a id="dev"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#dev">Development:</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#dev">Development:
+    </a></h4>
 
     <ul>
     <li><a href="#VersionNumbers">What do these weird version numbers
@@ -223,7 +233,8 @@ relay.</a></li>
     </ul>
 
     <a id="anonsec"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#anonsec">Anonymity and Security:</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#anonsec">Anonymity
+    and Security:</a></h4>
     <ul>
     <li><a href="#WhatProtectionsDoesTorProvide">What protections does Tor
     provide?</a></li>
@@ -231,8 +242,7 @@ relay.</a></li>
     communications? Isn't that bad? </a></li>
     <li><a href="#AmITotallyAnonymous">So I'm totally anonymous if I use
     Tor?</a></li>
-    <li><a href="#KeyManagement">Tell me about all the keys Tor
-uses.</a></li>
+    <li><a href="#KeyManagement">Tell me about all the keys Tor uses.</a></li>
     <li><a href="#EntryGuards">What are Entry Guards?</a></li>
     <li><a href="#ChangePaths">How often does Tor change its paths?</a></li>
     <li><a href="#CellSize">Tor uses hundreds of bytes for every IRC line. I
@@ -248,17 +258,18 @@ uses.</a></li>
     Tor with only 3 hops?</a></li>
     <li><a href="#AttacksOnOnionRouting">What attacks remain against onion
     routing?</a></li>
-    <li><a href="#LearnMoreAboutAnonymity">Where can I learn more about anonymity?</a></li>
+    <li><a href="#LearnMoreAboutAnonymity">Where can I learn more about
+    anonymity?</a></li>
     </ul>
 
     <a id="altdesigns"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#altdesigns">Alternate designs that we don't do (yet):</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#altdesigns">
+    Alternate designs that we don't do (yet):</a></h4>
 
     <ul>
     <li><a href="#EverybodyARelay">You should make every Tor user be a
     relay.</a></li>
-    <li><a href="#TransportIPnotTCP">You should transport all IP
-packets,
+    <li><a href="#TransportIPnotTCP">You should transport all IP packets,
     not just TCP packets.</a></li>
     <li><a href="#HideExits">You should hide the list of Tor relays,
     so people can't block the exits.</a></li>
@@ -283,19 +294,20 @@ packets,
     </ul>
 
     <a id="abuse"></a>
-    <h4 style="margin-bottom: 18px"><a class="anchor" href="#abuse">Abuse:</a></h4>
+    <h4 style="margin-bottom: 18px"><a class="anchor" href="#abuse">Abuse:
+    </a></h4>
     <ul>
-    <li><a href="#Criminals">Doesn't Tor enable criminals to do bad
-things?</a></li>
+    <li><a href="#Criminals">Doesn't Tor enable criminals to do bad things?
+    </a></li>
     <li><a href="#RespondISP">How do I respond to my ISP about my exit
     relay?</a></li>
-    <li><a href="#HelpPoliceOrLawyers">I have questions about
-   a Tor IP address for a legal case.</a></li>
+    <li><a href="#HelpPoliceOrLawyers">I have questions about a Tor IP address
+    for a legal case.</a></li>
     </ul>
 
     <p>For other questions not yet on this version of the FAQ, see the
-<a
-    href="<wikifaq>">wiki FAQ</a> for now.</p>
+    <a href="<wikifaq>">wiki FAQ</a> for now.
+    </p>
 
     <hr>
 
@@ -331,86 +343,65 @@ things?</a></li>
     <hr>
 
     <a id="Torisdifferent"></a>
-    <h3><a class="anchor" href="#Torisdifferent">How is Tor different
-from other proxies?</a></h3>
-    <p>
-    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 to not do
-bad
-things.  Some simple proxy providers use SSL to secure your connection
-to them, which protects you against local eavesdroppers, such as those at a
-cafe with free wifi Internet.
-    </p>
-    <p>
-    Simple proxy providers also create a single point of failure.  The
-provider
-knows both who you are and what you browse on the Internet.  They can see
-your
-traffic as it passes through their server.  In some cases, they can even
-see
-inside your
-encrypted traffic as they relay it to your banking site or to ecommerce
-stores.
-You have to trust the provider isn't
-watching your traffic, injecting their own advertisements into your
-traffic
-stream, or recording your personal details.
-    </p>
-    <p>
-    Tor passes your traffic through at least 3 different servers before
-sending
-it on to the destination. Because there's a separate layer of encryption
-for
-each of the three relays, somebody watching your Internet connection
-can't modify, or read, what you are
-sending into the Tor network. Your traffic is encrypted between the Tor
-client (on your computer) and where it pops out somewhere else in the
-world.
-</p>
+    <h3><a class="anchor" href="#Torisdifferent">How is Tor different from other
+    proxies?</a></h3>
+    <p>
+    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 to not do bad
+    things.  Some simple proxy providers use SSL to secure your connection
+    to them, which protects you against local eavesdroppers, such as those at a
+    cafe with free wifi Internet.
+    </p>
+    <p>
+    Simple proxy providers also create a single point of failure. The provider
+    knows both who you are and what you browse on the Internet. They can see
+    your traffic as it passes through their server.  In some cases, they can
+    even see inside your encrypted traffic as they relay it to your banking
+    site or to ecommerce stores.
+    You have to trust the provider isn't watching your traffic, injecting their
+    own advertisements into your traffic stream, or recording your personal
+    details.
+    </p>
+    <p>
+    Tor passes your traffic through at least 3 different servers before sending
+    it on to the destination. Because there's a separate layer of encryption for
+    each of the three relays, somebody watching your Internet connection can't
+    modify, or read, what you are sending into the Tor network. Your traffic is
+    encrypted between the Tor client (on your computer) and where it pops out
+    somewhere else in the world.
+    </p>
     <p>
     <dl>
-    <dt>Doesn't the first server see who I am?</dt><dd>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 both who you are and where you are going on the Internet.</dd>
-    <dt>Can't the third server see my traffic?</dt><dd>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 (like
-HTTPS), it will only know the destination. See <a
-href="https://www.eff.org/pages/tor-and-https">this visualization of
-Tor and HTTPS</a> to understand how Tor and HTTPS interact.
-</dd>
+    <dt>Doesn't the first server see who I am?</dt>
+    <dd>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 both who you are and where you
+    are going on the Internet.
+    </dd>
+    <dt>Can't the third server see my traffic?</dt>
+    <dd>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
+    (like HTTPS), it will only know the destination. See
+    <a href="https://www.eff.org/pages/tor-and-https">this visualization of Tor
+    and HTTPS</a> to understand how Tor and HTTPS interact.
+    </dd>
     </dl>
     </p>
 
     <hr>
 
-
     <a id="CompatibleApplications"></a>
-    <h3><a class="anchor" href="#CompatibleApplications">What programs
-can I use with Tor?</a></h3>
+    <h3><a class="anchor" href="#CompatibleApplications">What programs can I
+    use with Tor?</a></h3>
 
     <p>
     Most people use Tor Browser,
@@ -432,8 +423,7 @@ can I use with Tor?</a></h3>
     <hr>
 
     <a id="WhyCalledTor"></a>
-    <h3><a class="anchor" href="#WhyCalledTor">Why is it called
-Tor?</a></h3>
+    <h3><a class="anchor" href="#WhyCalledTor">Why is it called Tor?</a></h3>
 
     <p>
     Because Tor is the onion routing network. When we were starting the
@@ -450,21 +440,17 @@ Tor?</a></h3>
     </p>
 
     <p>
-    Note: even though it originally came from an acronym, Tor is not
-spelled
+    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
+    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.
     </p>
 
     <hr>
 
     <a id="Backdoor"></a>
-    <h3><a class="anchor" href="#Backdoor">Is there a backdoor in
-Tor?</a></h3>
+    <h3><a class="anchor" href="#Backdoor">Is there a backdoor in Tor?</a></h3>
 
     <p>
     There is absolutely no backdoor in Tor.  We know some smart lawyers
@@ -474,27 +460,25 @@ Tor?</a></h3>
     </p>
 
     <p>
-    We will <a
-    href="https://media.ccc.de/v/31c3_-_6251_-_en_-_saal_1_-_201412301400_-_state_of_the_onion_-_jacob_-_arma">never</a>
-    put a backdoor in Tor.
-    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!
+    We will
+    <a href="https://media.ccc.de/v/31c3_-_6251_-_en_-_saal_1_-_201412301400_-_state_of_the_onion_-_jacob_-_arma">
+    never</a> put a backdoor in Tor.
+    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!
     </p>
 
     <p>
-    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 <a href="<page
-    docs/verifying-signatures>">PGP signatures</a> on the releases, to
-    make sure nobody messed with the distribution sites.
+    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
+    <a href="<page docs/verifying-signatures>">PGP signatures</a> on the
+    releases, to make sure nobody messed with the distribution sites.
     </p>
 
     <p>
@@ -506,8 +490,7 @@ Tor?</a></h3>
     <hr>
 
     <a id="DistributingTor"></a>
-    <h3><a class="anchor" href="#DistributingTor">Can I distribute
-Tor?</a></h3>
+    <h3><a class="anchor" href="#DistributingTor">Can I distribute Tor?</a></h3>
 
     <p>
     Yes.
@@ -550,8 +533,7 @@ Tor?</a></h3>
     <hr>
 
     <a id="SupportMail"></a>
-    <h3><a class="anchor" href="#SupportMail">How can I get
-support?</a></h3>
+    <h3><a class="anchor" href="#SupportMail">How can I get support?</a></h3>
 
     <p>See the <a href="<page about/contact>#support">Support section
     on the contact page</a>.
@@ -575,32 +557,24 @@ support?</a></h3>
     </p>
 
     <p>
-    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
+    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.
     </p>
 
     <p>
-    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
+    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.
     </p>
 
     <p>
-    For the much more in-depth answer, see <a
-    href="<blog>why-tor-is-slow">Roger's blog
-    post on the topic</a>, which includes both a detailed PDF and a
-video
-    to go with it.
+    For the much more in-depth answer, see
+    <a href="<blog>why-tor-is-slow">Roger's blog post on the topic</a>,
+    which includes both a detailed PDF and a video to go with it.
     </p>
 
     <p>
@@ -610,10 +584,8 @@ video
     <ul>
 
     <li>
-    <a href="<page docs/tor-doc-relay>">Configure your Tor to relay
-traffic
-    for others</a>. Help make the Tor network large enough that we can
-handle
+    <a href="<page docs/tor-doc-relay>">Configure your Tor to relay traffic
+    for others</a>. Help make the Tor network large enough that we can handle
     all the users who want privacy and security on the Internet.
     </li>
 
@@ -625,49 +597,37 @@ handle
     </li>
 
     <li>
-    There are some bottlenecks in the current Tor network. Help us
-design
-    experiments to track down and demonstrate where the problems are,
-and
+    There are some bottlenecks in the current Tor network. Help us design
+    experiments to track down and demonstrate where the problems are, and
     then we can focus better on fixing them.
     </li>
 
     <li>
     Tor needs some architectural changes too. One important change is to
-    start providing <a href="#EverybodyARelay">better service to people
-who
-    relay traffic</a>. We're working on this, and we'll finish faster if
-we
+    start providing <a href="#EverybodyARelay">better service to people who
+    relay traffic</a>. We're working on this, and we'll finish faster if we
     get to spend more time on it.
     </li>
 
     <li>
-    Help do other things so we can do the hard stuff. Please take a
-moment
-    to figure out what your skills and interests are, and then <a
-href="<page
-    getinvolved/volunteer>">look at our volunteer page</a>.
+    Help do other things so we can do the hard stuff. Please take a moment
+    to figure out what your skills and interests are, and then
+    <a href="<page getinvolved/volunteer>">look at our volunteer page</a>.
     </li>
 
     <li>
-    Help find sponsors for Tor. Do you work at a company or government
-agency
+    Help find sponsors for Tor. Do you work at a company or government agency
     that uses Tor or has a use for Internet privacy, e.g. to browse the
-    competition's websites discreetly, or to connect back to the home
-servers
-    when on the road without revealing affiliations? If your
-organization has
-    an interest in keeping the Tor network working, please contact them
-about
-    supporting Tor. Without sponsors, Tor is going to become even
-slower.
+    competition's websites discreetly, or to connect back to the home servers
+    when on the road without revealing affiliations? If your organization has
+    an interest in keeping the Tor network working, please contact them about
+    supporting Tor. Without sponsors, Tor is going to become even slower.
     </li>
 
     <li>
     If you can't help out with any of the above, you can still help out
-    individually by <a href="<page donate/donate>">donating a bit of
-money to the
-    cause</a>. It adds up!
+    individually by <a href="<page donate/donate>">donating a bit of money to
+    the cause</a>. It adds up!
     </li>
 
     </ul>
@@ -682,71 +642,58 @@ money to the
     File sharing (peer-to-peer/P2P) is widely unwanted in the Tor network,
     and exit nodes are configured to block file sharing traffic by default.
     Tor is not really designed for it, and file sharing through Tor slows
-    down everyone's browsing. Also, Bittorrent over Tor <a
-    href="https://blog.torproject.org/blog/bittorrent-over-tor-isnt-good-idea">
+    down everyone's browsing. Also, Bittorrent over Tor
+    <a href="https://blog.torproject.org/blog/bittorrent-over-tor-isnt-good-idea">
     is not anonymous</a>!
     </p>
 
     <hr>
 
     <a id="Funding"></a>
-    <h3><a class="anchor" href="#Funding">What would The Tor Project do
-with more funding?</a></h3>
+    <h3><a class="anchor" href="#Funding">What would The Tor Project do with
+    more funding?</a></h3>
 
     <p>
-    The Tor network's <a
-href="https://metrics.torproject.org/networksize.html">several thousand</a>
-    relays push <a
-href="https://metrics.torproject.org/bandwidth.html">around 100 Gbps on
-average</a>. We have <a
-href="https://metrics.torproject.org/userstats-relay-country.html">millions of
-    daily users</a>. But the Tor network is not yet self-sustaining.
+    The Tor network's
+    <a href="https://metrics.torproject.org/networksize.html">several thousand
+    </a> relays push <a href="https://metrics.torproject.org/bandwidth.html">
+    around 100 Gbps on average</a>. We have
+    <a href="https://metrics.torproject.org/userstats-relay-country.html">
+    millions of daily users</a>. But the Tor network is not yet self-sustaining.
     </p>
 
     <p>
-    There are six main development/maintenance pushes that need
-attention:
+    There are six main development/maintenance pushes that need attention:
     </p>
 
     <ul>
 
     <li>
-    Scalability: We need to keep scaling and decentralizing the Tor
-    architecture so it can handle thousands of relays and millions of
-    users. The upcoming stable release is a major improvement, but
-there's
-    lots more to be done next in terms of keeping Tor fast and stable.
+    Scalability: We need to keep scaling and decentralizing the Tor architecture
+    so it can handle thousands of relays and millions of users. The upcoming
+    stable release is a major improvement, but there's lots more to be done next
+    in terms of keeping Tor fast and stable.
     </li>
 
     <li>
-    User support: With this many users, a lot of people are asking
-questions
-    all the time, offering to help out with things, and so on. We need
-good
-    clean docs, and we need to spend some effort coordinating
-volunteers.
+    User support: With this many users, a lot of people are asking questions
+    all the time, offering to help out with things, and so on. We need good
+    clean docs, and we need to spend some effort coordinating volunteers.
     </li>
 
     <li>
-    Relay support: the Tor network is run by volunteers, but they still
-need
+    Relay support: the Tor network is run by volunteers, but they still need
     attention with prompt bug fixes, explanations when things go wrong,
-    reminders to upgrade, and so on. The network itself is a commons,
-and
-    somebody needs to spend some energy making sure the relay operators
-stay
-    happy. We also need to work on stability on some platforms —
-e.g.,
+    reminders to upgrade, and so on. The network itself is a commons, and
+    somebody needs to spend some energy making sure the relay operators stay
+    happy. We also need to work on stability on some platforms — e.g.,
     Tor relays have problems on Win XP currently.
     </li>
 
     <li>
-    Usability: Beyond documentation, we also need to work on usability
-of the
-    software itself. This includes installers, clean GUIs, easy
-configuration
-    to interface with other applications, and generally automating all
-of
+    Usability: Beyond documentation, we also need to work on usability of the
+    software itself. This includes installers, clean GUIs, easy configuration
+    to interface with other applications, and generally automating all of
     the difficult and confusing steps inside Tor.
     Usability for privacy software has never been easy.
     </li>
@@ -754,22 +701,18 @@ of
     <li>
     Incentives: We need to work on ways to encourage people to configure
     their Tors as relays and exit nodes rather than just clients.
-    <a href="#EverybodyARelay">We need to make it easy to become a
-relay,
+    <a href="#EverybodyARelay">We need to make it easy to become a relay,
     and we need to give people incentives to do it.</a>
     </li>
 
     <li>
-    Research: The anonymous communications field is full
-    of surprises and gotchas. In our copious free time, we
-    also help run top anonymity and privacy conferences like <a
-    href="http://petsymposium.org/">PETS</a>. We've identified a set of
-    critical <a href="<page getinvolved/volunteer>#Research">Tor
-research questions</a>
-    that will help us figure out how to make Tor secure against the
-variety of
-    attacks out there. Of course, there are more research questions
-waiting
+    Research: The anonymous communications field is full of surprises and
+    gotchas. In our copious free time, we also help run top anonymity and
+    privacy conferences like <a href="http://petsymposium.org/">PETS</a>.
+    We've identified a set of critical
+    <a href="<page getinvolved/volunteer>#Research">Tor research questions</a>
+    that will help us figure out how to make Tor secure against the variety of
+    attacks out there. Of course, there are more research questions waiting
     behind these.
     </li>
 
@@ -777,11 +720,9 @@ waiting
 
     <p>
     We're continuing to move forward on all of these, but at this rate
-    <a href="#WhySlow">the Tor network is growing faster than the
-developers
+    <a href="#WhySlow">the Tor network is growing faster than the developers
     can keep up</a>.
-    Now would be an excellent time to add a few more developers to the
-effort
+    Now would be an excellent time to add a few more developers to the effort
     so we can continue to grow the network.
     </p>
 
@@ -791,22 +732,17 @@ effort
     </p>
 
     <p>
-    We are proud to have <a href="<page about/sponsors>">sponsorship and
-support</a>
-    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.
+    We are proud to have
+    <a href="<page about/sponsors>">sponsorship and support</a> 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.
     </p>
 
     <p>
-    However, this support is not enough to keep Tor abreast of changes
-in the
-    Internet privacy landscape. Please <a href="<page
-donate/donate>">donate</a>
-    to the project, or <a href="<page about/contact>">contact</a> our
-executive
+    However, this support is not enough to keep Tor abreast of changes in the
+    Internet privacy landscape. Please <a href="<page donate/donate>">donate</a>
+    to the project, or <a href="<page about/contact>">contact</a> our executive
     director for information on making grants or major donations.
     </p>
 
@@ -827,8 +763,8 @@ executive
     <hr>
 
     <a id="OutboundPorts"></a>
-    <h3><a class="anchor" href="#OutboundPorts">Which outbound ports must be open when
-    using Tor as a client?</a></h3>
+    <h3><a class="anchor" href="#OutboundPorts">Which outbound ports must be
+    open when using Tor as a client?</a></h3>
     <p>
     Tor may attempt to connect to any port that is advertised in the
     directory as an ORPort (for making Tor connections) or a DirPort (for
@@ -837,11 +773,11 @@ executive
     ports too.
     </p>
     <p>
-    When using Tor as a client, you could probably get away with opening only those four
-    ports. Since Tor does all its connections in the background, it will retry
-    ones that fail, and hopefully you'll never have to know that it failed, as
-    long as it finds a working one often enough. However, to get the most
-    diversity in your entry nodes — and thus the most security
+    When using Tor as a client, you could probably get away with opening only
+    those four ports. Since Tor does all its connections in the background, it
+    will retry ones that fail, and hopefully you'll never have to know that it
+    failed, as long as it finds a working one often enough. However, to get the
+    most diversity in your entry nodes — and thus the most security
     — as well as the most robustness in your connectivity, you'll
     want to let it connect to all of them.
     See the FAQ entry on <a href="#FirewallPorts">firewalled ports</a> if
@@ -857,8 +793,9 @@ executive
 
     <p>
     There are sites you can visit that will tell you if you appear to be
-    coming through the Tor network. Try the <a href="https://check.torproject.org">
-    Tor Check</a> site and see whether it thinks you are using Tor or not.
+    coming through the Tor network. Try the
+    <a href="https://check.torproject.org">Tor Check</a> site and see whether
+    it thinks you are using Tor or not.
     </p>
 
     <hr>
@@ -902,95 +839,89 @@ executive
     <hr>
 
     <a id="CompilationAndInstallation"></a>
-    <h2><a class="anchor" href="#CompilationAndInstallation">Compilation And Installation:</a></h2>
+    <h2><a class="anchor" href="#CompilationAndInstallation">Compilation And
+    Installation:</a></h2>
 
     <a id="HowUninstallTor"></a>
-    <h3><a class="anchor" href="#HowUninstallTor">How do I uninstall
-Tor?</a></h3>
+    <h3><a class="anchor" href="#HowUninstallTor">How do I uninstall Tor?
+    </a></h3>
 
     <p>
-    Tor Browser does not install itself in the classic sense of
-applications. You just simply delete the folder or directory named "Tor
-Browser" and it is removed from your system.
+    Tor Browser does not install itself in the classic sense of applications.
+    You just simply delete the folder or directory named "Tor Browser" and it
+    is removed from your system.
     </p>
 
     <p>
-    If this is not related to Tor Browser, uninstallation 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.
+    If this is not related to Tor Browser, uninstallation 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.
     </p>
 
     <p>
-    For Mac OS X, follow the <a
-    href="<page docs/tor-doc-osx>#uninstall">uninstall directions</a>.
+    For Mac OS X, follow the
+    <a href="<page docs/tor-doc-osx>#uninstall">uninstall directions</a>.
     </p>
 
     <p>
-    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.
+    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.
     </p>
 
     <hr>
 
     <a id="PGPSigs"></a>
-    <h3><a class="anchor" href="#PGPSigs">What are these "sig" files on
-the download page?</a></h3>
-
-    <p>
-    These are PGP signatures, so you can verify that the file you've
-downloaded is
-    exactly the one that we intended you to get.
-    </p>
-
-    <p>
-    Please read the <a
-    href="<page docs/verifying-signatures>">verifying signatures</a>
-page for details.
-    </p>
-
-<hr>
-
-<a id="GetTor"></a>
-<h3><a class="anchor" href="#GetTor">Your website is blocked in my
-country. How do I download Tor?</a></h3>
-
-<p>
-Some government or corporate firewalls censor connections to Tor's
-website. In those cases, you have three options. First, get it from
-a friend — <a href="<page projects/torbrowser>">Tor Browser</a>
-fits nicely on a USB key. Second, find the <a
-href="https://encrypted.google.com/search?q=tor+mirrors">google
-cache</a>
-for the <a href="<page getinvolved/mirrors>">Tor mirrors</a> page
-and see if any of those copies of our website work for you. Third,
-you can download Tor Browser via email: log in to your email account
-and send an email to '<tt>gettor at torproject.org</tt>' with one of the
-following words in the body of the message: <tt>windows</tt>,
-<tt>osx</tt> or <tt>linux</tt> (case insensitive).
-You will receive a reply with links from popular cloud services to
-download Tor Browser for Windows, Mac OS X or Linux, depending on the
-option you chose. Currently, the only cloud service supported is
-Dropbox. If you send a blank message or anything different from the
-options mentioned, you will receive a help message with detailed
-instructions to ask for Tor Browser via email. Please note that you
-can use this service from any email address: gmail, yahoo, hotmail,
-riseup, etc. The only restriction is that you can do a maximum of
-three requests in a row, after that you'll have to wait 20 minutes to
-use it again. See the <a href="../projects/gettor.html">GetTor</a>
-section for more information.
-</p>
-
-<p>
-Be sure to <a href="<page docs/verifying-signatures>">verify the
-signature</a>
-of any package you download, especially when you get it from somewhere
-other than our official HTTPS website.
-</p>
+    <h3><a class="anchor" href="#PGPSigs">What are these "sig" files on the
+    download page?</a></h3>
+
+    <p>
+    These are PGP signatures, so you can verify that the file you've downloaded
+    is exactly the one that we intended you to get.
+    </p>
+
+    <p>
+    Please read the
+    <a href="<page docs/verifying-signatures>">verifying signatures</a>
+    page for details.
+    </p>
+
+    <hr>
+
+    <a id="GetTor"></a>
+    <h3><a class="anchor" href="#GetTor">Your website is blocked in my country.
+    How do I download Tor?</a></h3>
+
+    <p>
+    Some government or corporate firewalls censor connections to Tor's website.
+    In those cases, you have three options. First, get it from a friend —
+    <a href="<page projects/torbrowser>">Tor Browser</a> fits nicely on a USB
+    key. Second, find the
+    <a href="https://encrypted.google.com/search?q=tor+mirrors">google cache</a>
+    for the <a href="<page getinvolved/mirrors>">Tor mirrors</a> page and see if
+    any of those copies of our website work for you. Third, you can download Tor
+    Browser via email: log in to your email account and send an email to
+    '<tt>gettor at torproject.org</tt>' with one of the following words in the
+    body of the message: <tt>windows</tt>, <tt>osx</tt> or <tt>linux</tt>
+    (case insensitive).
+    You will receive a reply with links from popular cloud services to download
+    Tor Browser for Windows, Mac OS X or Linux, depending on the option you
+    chose. Currently, the only cloud service supported is Dropbox. If you send
+    a blank message or anything different from the options mentioned, you will
+    receive a help message with detailed instructions to ask for Tor Browser
+    via email. Please note that you can use this service from any email address:
+    gmail, yahoo, hotmail, riseup, etc. The only restriction is that you can do
+    a maximum of three requests in a row, after that you'll have to wait 20
+    minutes to use it again. See the
+    <a href="../projects/gettor.html">GetTor</a> section for more information.
+    </p>
+
+    <p>
+    Be sure to <a href="<page docs/verifying-signatures>">verify the
+    signature</a> of any package you download, especially when you get it from
+    somewhere other than our official HTTPS website.
+    </p>
 
     <hr>
 
@@ -1005,6 +936,7 @@ other than our official HTTPS website.
     that you have a program that seems to be triggering false positives. Or
     pick a better vendor.
     </p>
+
     <p>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.</p>
@@ -1019,7 +951,11 @@ other than our official HTTPS website.
     Tar is a common archive utility for Unix and Linux systems. If your
     system has a mouse, you can usually open them by double clicking.
     Otherwise open a command prompt and execute</p>
-    <pre>tar xzf <FILENAME>.tar.gz</pre> or <pre>tar xJf <FILENAME>.tar.xz</pre>
+
+    <pre>tar xzf <FILENAME>.tar.gz</pre>
+    or
+    <pre>tar xJf <FILENAME>.tar.xz</pre>
+
     <p>
     as documented on tar's man page.
     </p>
@@ -1027,373 +963,380 @@ other than our official HTTPS website.
     <hr>
 
     <a id="LiveCD"></a>
-    <h3><a class="anchor" href="#LiveCD">Is there a LiveCD or other
-bundle that includes Tor?</a></h3>
+    <h3><a class="anchor" href="#LiveCD">Is there a LiveCD or other bundle that
+    includes Tor?</a></h3>
 
     <p>
     Yes.  Use <a href="https://tails.boum.org/">The Amnesic Incognito
     Live System</a> or <a href="<page projects/torbrowser>">Tor Browser</a>.
     </p>
 
-<hr>
-
-<a id="TBBGeneral"></a>
-<h2><a class="anchor" href="#TBBGeneral">Tor Browser (general):</a></h2>
-
-<a id="TBBFlash"></a>
-<h3><a class="anchor" href="#TBBFlash">Why can't I view videos on
-some Flash-based sites?</a></h3>
-
-<p>
-Some sites require third party browser plugins such as Flash.
-Plugins operate independently from Firefox and can perform
-activity on your computer that ruins your anonymity. This includes
-but is not limited to: completely disregarding
-proxy settings, querying your <a
-href="http://forums.sun.com/thread.jspa?threadID=5162138&messageID=9618376">
-local IP address</a>, and <a
-href="http://epic.org/privacy/cookies/flash.html">storing their own
-cookies</a>. It is possible to use a LiveCD solution such as
-or <a href="https://tails.boum.org/">The Amnesic Incognito Live System</a>
-that creates a secure, transparent proxy to protect you from proxy bypass,
-however issues with local IP address discovery and Flash cookies still remain.
-</p>
-
-<hr>
-
-<a id="Ubuntu"></a>
-<h3><a class="anchor" href="#Ubuntu">
-I'm using Ubuntu and I can't start Tor Browser.</a></h3>
-<p>
-You'll need to tell Ubuntu that you want the ability to execute shell scripts
-from the graphical interface. Open "Files" (Unity's explorer), open
-Preferences-> Behavior Tab -> Set "Run executable text files when they are
-opened" to "Ask every time", then OK.
-</p>
-<p>You can also start Tor Browser from the command line by running </p>
-<pre>./start-tor-browser</pre>
-<p>
-from inside the Tor Browser directory.
-</p>
-
-<hr>
-
-<a id="SophosOnMac"></a>
-<h3><a class="anchor" href="#SophosOnMac">I'm using the Sophos anti-virus
+    <hr>
+
+    <a id="TBBGeneral"></a>
+    <h2><a class="anchor" href="#TBBGeneral">Tor Browser (general):</a></h2>
+
+    <a id="TBBFlash"></a>
+    <h3><a class="anchor" href="#TBBFlash">Why can't I view videos on some
+    Flash-based sites?</a></h3>
+
+    <p>
+    Some sites require third party browser plugins such as Flash.
+    Plugins operate independently from Firefox and can perform activity on your
+    computer that ruins your anonymity. This includes but is not limited to:
+    completely disregarding proxy settings, querying your
+    <a href="http://forums.sun.com/thread.jspa?threadID=5162138&messageID=9618376">
+    local IP address</a>, and
+    <a href="http://epic.org/privacy/cookies/flash.html">storing their
+    owncookies</a>. It is possible to use a LiveCD solution such as or
+    <a href="https://tails.boum.org/">The Amnesic Incognito Live System</a>
+    that creates a secure, transparent proxy to protect you from proxy bypass,
+    however issues with local IP address discovery and Flash cookies still remain.
+    </p>
+
+    <hr>
+
+    <a id="Ubuntu"></a>
+    <h3><a class="anchor" href="#Ubuntu">I'm using Ubuntu and I can't start Tor
+    Browser.</a></h3>
+    <p>
+    You'll need to tell Ubuntu that you want the ability to execute shell
+    scripts from the graphical interface. Open "Files" (Unity's explorer), open
+    Preferences-> Behavior Tab -> Set "Run executable text files when they are
+    opened" to "Ask every time", then OK.
+    </p>
+
+    <p>You can also start Tor Browser from the command line by running </p>
+
+    <pre>./start-tor-browser</pre>
+
+    <p>
+    from inside the Tor Browser directory.
+    </p>
+
+    <hr>
+
+    <a id="SophosOnMac"></a>
+    <h3><a class="anchor" href="#SophosOnMac">I'm using the Sophos anti-virus
     software on my Mac, and Tor starts but I can't browse anywhere.</a></h3>
-<p>
-You'll need to modify Sophos anti-virus so that Tor can connect to the
-internet. Go to Preferences -> Web Protection -> General, and turn off
-the protections for "Malicious websites" and "Malicious downloads".
-</p>
-<p>
-We encourage affected Sophos users to contact Sophos support about
-this issue.
-</p>
-
-<hr>
-
-<a id="XPCOMError"></a>
-<h3><a class="anchor" href="#XPCOMError">When I start Tor Browser I get an 
-error message: "Cannot load XPCOM".</a></h3>
-
-<p>
-This <a 
-href="https://trac.torproject.org/projects/tor/ticket/10789">problem</a> is 
-specifically caused by the Webroot SecureAnywhere Antivirus software. 
-From the Webroot control panel, go to Identity Protection → Application 
-Protection, and set all the files in your Tor Browser folder to 'Allow'. 
-We encourage affected Webroot users to contact Webroot support about this 
-issue.
-</p>
-
-<hr>
-
-<a id="TBBOtherExtensions"></a>
-<h3><a class="anchor" href="#TBBOtherExtensions">Can I install other
-Firefox extensions?</a></h3>
-
-<p>
-Tor Browser is free software, so there is nothing preventing you from
-modifying it any way you like. However, we do not recommend installing any
-additional Firefox add-ons with Tor Browser. Add-ons can break
-your anonymity in a number of ways, including browser fingerprinting and
-bypassing proxy settings.
-</p>
-<p>
-Some people have suggested we include ad-blocking software or
-anti-tracking software with Tor Browser. Right now, we do not
-think that's such a good idea. Tor Browser aims to provide
-sufficient privacy that additional add-ons to stop ads and trackers are
-not necessary. Using add-ons like these may cause some sites to break, which
-<a href="https://www.torproject.org/projects/torbrowser/design/#philosophy">
-we don't want to do</a>. Additionally, maintaining a list of "bad" sites that
-should be black-listed provides another opportunity to uniquely fingerprint
-users.
-</p>
-
-<hr>
-
-<a id="TBBJavaScriptEnabled"></a>
-<a id="TBBCanIBlockJS"></a>
-<h3><a class="anchor" href="#TBBJavaScriptEnabled">Why is NoScript
-configured to allow JavaScript by default in Tor Browser?
-Isn't that unsafe?</a></h3>
-
-<p>
-We configure NoScript to allow JavaScript by default in Tor
-Browser because many websites will not work with JavaScript
-disabled.  Most users would give up on Tor entirely if a website
-they want to use requires JavaScript, because they would not know
-how to allow a website to use JavaScript (or that enabling
-JavaScript might make a website work).
-</p>
-
-<p>
-There's a tradeoff here. On the one hand, we should leave
-JavaScript enabled by default so websites work the way
-users expect. On the other hand, we should disable JavaScript
-by default to better protect against browser vulnerabilities (<a
-href="https://blog.torproject.org/blog/tor-security-advisory-old-tor-browser-bundles-vulnerable">
-not just a theoretical concern!</a>). But there's a third issue: websites
-can easily determine whether you have allowed JavaScript for them,
-and if you disable JavaScript by default but then allow a few websites
-to run scripts (the way most people use NoScript), then your choice of
-whitelisted websites acts as a sort of cookie that makes you recognizable
-(and distinguishable), thus harming your anonymity.
-</p>
-
-<p>
-Ultimately, we want the default Tor bundles to use
-a combination of firewalls (like the iptables rules
-in <a href="https://tails.boum.org/">Tails</a>) and <a
-href="https://trac.torproject.org/projects/tor/ticket/7680">sandboxes</a>
-to make JavaScript not so scary. In
-the shorter term, TBB 3.0 will hopefully <a
-href="https://trac.torproject.org/projects/tor/ticket/9387">allow users
-to choose their JavaScript settings more easily</a> — but the
-partitioning concern will remain.
-</p>
-
-<p>
-Until we get there, feel free to leave JavaScript on or off depending
-on your security, anonymity, and usability priorities.
-</p>
-
-<hr>
-
-<a id="TBBOtherBrowser"></a>
-<h3><a class="anchor" href="#TBBOtherBrowser">I want to use
-Chrome/IE/Opera/etc with Tor.</a></h3>
-
-<p>
-In short, using any browser besides Tor Browser with Tor is a
-really bad idea.
-</p>
-
-<p>
-Our efforts to work with the Chrome team to <a
-href="https://blog.torproject.org/blog/google-chrome-incognito-mode-tor-and-fingerprinting">add
-missing APIs</a> were unsuccessful, unfortunately. Currently, it is impossible
-to use other browsers and get the same level of protections as when using
-Tor Browser.
-</p>
-
-<hr>
-
-<a id="GoogleCAPTCHA"></a>
-<h3><a class="anchor" href="#GoogleCAPTCHA">Google makes me solve a
-CAPTCHA or tells me I have spyware installed.</a></h3>
-
-<p>
-This is a known and intermittent problem; it does not mean that Google
-considers Tor to be spyware.
-</p>
-
-<p>
-When you use Tor, you are sending queries through exit relays that are
-also shared by thousands of other users. Tor users typically see this
-message when many Tor users are querying Google in a short period of time.
-Google interprets the high volume of traffic from a single IP address
-(the exit relay you happened to pick) as somebody trying to "crawl" their
-website, so it slows down traffic from that IP address for a short time.
-</p>
-<p>
-An alternate explanation is that Google tries to detect certain
-kinds of spyware or viruses that send distinctive queries to Google
-Search. It notes the IP addresses from which those queries are received
-(not realizing that they are Tor exit relays), and tries to warn any
-connections coming from those IP addresses that recent queries indicate
-an infection.
-</p>
-
-<p>
-To our knowledge, Google is not doing anything intentionally specifically
-to deter or block Tor use. The error message about an infected machine
-should clear up again after a short time.
-</p>
-
-<hr />
-
-<a id="ForeignLanguages"></a>
-<h3><a class="anchor" href="#ForeignLanguages">
-Why does Google show up in foreign languages?</a></h3>
-
-<p>
- Google uses "geolocation" to determine where in the world you are, so it
- can give you a personalized experience. This includes using the language
- it thinks you prefer, and it also includes giving you different results
- on your queries.
-</p>
-<p>
-If you really want to see Google in English you can click the link that
-provides that. But we consider this a feature with Tor, not a bug --- the
-Internet is not flat, and it in fact does look different depending on
-where you are. This feature reminds people of this fact.
-</p>
-<p>
-Note that Google search URLs take name/value pairs as arguments and one
-of those names is "hl". If you set "hl" to "en" then Google will return
-search results in English regardless of what Google server you have been
-sent to. On a query this looks like:
-</p>
-<pre>https://encrypted.google.com/search?q=online%20anonymity&hl=en</pre>
-<p>
-Another method is to simply use your country code for accessing Google.
-This can be google.be, google.de, google.us and so on.
-</p>
-<hr />
-<a id="GmailWarning"></a>
-<h3><a class="anchor" href="#GmailWarning">Gmail warns me that my
-account may have been compromised.</a></h3>
-
-<p>
-Sometimes, after you've used Gmail over Tor, Google presents a
-pop-up notification that your account may have been compromised.
-The notification window lists a series of IP addresses and locations
-throughout the world recently used to access your account.
-</p>
-
-<p>
-In general this is a false alarm: Google saw a bunch of logins from
-different places, as a result of running the service via Tor, and
-decided
-it was a good idea to confirm the account was being accessed by it's
-rightful owner.
-</p>
-
-<p>
-Even though this may be a biproduct of using the service via tor,
-that doesn't mean you can entirely ignore the warning. It is
-<i>probably</i> a false positive, but it might not be since it is
-possible for someone to hijack your Google cookie.
-</p>
-
-<p>
-Cookie hijacking is possible by either physical access to your computer
-or by watching your network traffic.  In theory only physical access
-should compromise your system because Gmail and similar services
-should only send the cookie over an SSL link. In practice, alas, it's <a
-href="http://fscked.org/blog/fully-automated-active-https-cookie-
-hijacking">
-way more complex than that</a>.
-</p>
-
-<p>
-And if somebody <i>did</i> steal your google cookie, they might end
-up logging in from unusual places (though of course they also might
-not). So the summary is that since you're using Tor, this security
-measure that Google uses isn't so useful for you, because it's full of
-false positives. You'll have to use other approaches, like seeing if
-anything looks weird on the account, or looking at the timestamps for
-recent logins and wondering if you actually logged in at those times.
-</p>
-
-<hr>
-
-<a id="NeedToUseAProxy"></a>
-<h3><a class="anchor" href="#NeedToUseAProxy">My internet connection
-requires an HTTP or SOCKS Proxy</a></h3>
-
-<p>
-You can set Proxy IP address, port, and authentication information in
-Tor Browser's Network Settings. If you're using Tor another way, check
-out the HTTPProxy and HTTPSProxy config options in the <a
-href="<page docs/tor-manual>">man page</a>,
-and modify your torrc file accordingly. You will need an HTTP proxy for
-doing GET requests to fetch the Tor directory, and you will need an
-HTTPS proxy for doing CONNECT requests to get to Tor relays. (It's fine
-if they're the same proxy.) Tor also recognizes the torrc options
-Socks4Proxy and Socks5Proxy.
-</p>
-<p>
-Also read up on the HTTPProxyAuthenticator and HTTPSProxyAuthenticator
-options if your proxy requires auth. We only support basic auth currently,
-but if you need NTLM authentication, you may find <a
-href="http://archives.seul.org/or/talk/Jun-2005/msg00223.html">this post
-in the archives</a> useful.
-</p>
-<p>
-If your proxies only allow you to connect to certain ports, look at the
-entry on <a href="#FirewallPorts">Firewalled clients</a> for how
-to restrict what ports your Tor will try to access.
-</p>
-
-<hr>
-
-
-<a id="TBBSocksPort"></a>
-<h3><a class="anchor" href="#TBBSocksPort">
-I want to run another application through Tor.</a></h3>
-
-<p>
-If you are trying to use some external application with Tor, step zero
-should be to <a href="<page download/download>#warning">reread the set
-of warnings</a> for ways you can screw up. Step one should be to try
-to use a SOCKS proxy rather than an HTTP proxy.
-Typically Tor listens for SOCKS connections on port 9050. Tor Browser listens
-on port 9150.
-</p>
-
-<p>
-If your application doesn't support SOCKS proxies, feel free to install <a
-href="http://www.privoxy.org/">privoxy</a>.
-However, please realize that this approach is not recommended for novice
-users. Privoxy has an <a
-href="http://www.privoxy.org/faq/misc.html#TOR">example
-configuration</a> of Tor and Privoxy.
-</p>
-
-<p>
-If you're unable to use the application's native proxy settings, all hope is
-not lost. See <a href="#CantSetProxy">below</a>.
-</p>
-
-<hr>
-
-<a id="CantSetProxy"></a>
-<h3><a class="anchor" href="#CantSetProxy">What should I do if I can't
-set a proxy with my application?</a></h3>
-
-<p>
-On Unix, we recommend you give <a
-href="https://github.com/dgoulet/torsocks/">torsocks</a> a try.
-Alternative proxifying tools like <a
-href="http://www.dest-unreach.org/socat/">socat</a> and <a
-href="http://proxychains.sourceforge.net/">proxychains</a> are also
-available.</p>
-<p>
-The Windows way to force applications through Tor is less clear. <a
-href="http://freecap.ru/eng/">Some</a> <a
-href="http://www.freehaven.net/~aphex/torcap/">tools</a> have been <a
-href="http://www.crowdstrike.com/community-tools/index.html#tool-79">proposed
-</a>, but we'd also like to see further testing done here.
-</p>
-
-<hr>
-
-<a id="TBB3.x"></a>
-<h2><a class="anchor" href="#TBB3.x">Tor Browser (3.x and later):</a></h2>
+
+    <p>
+    You'll need to modify Sophos anti-virus so that Tor can connect to the
+    internet. Go to Preferences -> Web Protection -> General, and turn off
+    the protections for "Malicious websites" and "Malicious downloads".
+    </p>
+
+    <p>
+    We encourage affected Sophos users to contact Sophos support about
+    this issue.
+    </p>
+
+    <hr>
+
+    <a id="XPCOMError"></a>
+    <h3><a class="anchor" href="#XPCOMError">When I start Tor Browser I get an
+    error message: "Cannot load XPCOM".</a></h3>
+
+    <p>
+    This <a href="https://trac.torproject.org/projects/tor/ticket/10789">
+    problem</a> is specifically caused by the Webroot SecureAnywhere Antivirus
+    software.
+    From the Webroot control panel, go to Identity Protection → Application
+    Protection, and set all the files in your Tor Browser folder to 'Allow'.
+    We encourage affected Webroot users to contact Webroot support about this
+    issue.
+    </p>
+
+    <hr>
+
+    <a id="TBBOtherExtensions"></a>
+    <h3><a class="anchor" href="#TBBOtherExtensions">Can I install other
+    Firefox extensions?</a></h3>
+
+    <p>
+    Tor Browser is free software, so there is nothing preventing you from
+    modifying it any way you like. However, we do not recommend installing any
+    additional Firefox add-ons with Tor Browser. Add-ons can break
+    your anonymity in a number of ways, including browser fingerprinting and
+    bypassing proxy settings.
+    </p>
+
+    <p>
+    Some people have suggested we include ad-blocking software or anti-tracking
+    software with Tor Browser. Right now, we do not think that's such a good
+    idea. Tor Browser aims to provide sufficient privacy that additional add-ons
+    to stop ads and trackers are not necessary. Using add-ons like these may
+    cause some sites to break, which
+    <a href="https://www.torproject.org/projects/torbrowser/design/#philosophy">
+    we don't want to do</a>. Additionally, maintaining a list of "bad" sites
+    that should be black-listed provides another opportunity to uniquely
+    fingerprint users.
+    </p>
+
+    <hr>
+
+    <a id="TBBJavaScriptEnabled"></a>
+    <a id="TBBCanIBlockJS"></a>
+    <h3><a class="anchor" href="#TBBJavaScriptEnabled">Why is NoScript
+    configured to allow JavaScript by default in Tor Browser?
+    Isn't that unsafe?</a></h3>
+
+    <p>
+    We configure NoScript to allow JavaScript by default in Tor Browser because
+    many websites will not work with JavaScript disabled. Most users would give
+    up on Tor entirely if a website they want to use requires JavaScript,
+    because they would not know how to allow a website to use JavaScript
+    (or that enabling JavaScript might make a website work).
+    </p>
+
+    <p>
+    There's a tradeoff here. On the one hand, we should leave JavaScript
+    enabled by default so websites work the way users expect. On the other hand,
+    we should disable JavaScript by default to better protect against browser
+    vulnerabilities (
+    <a href="https://blog.torproject.org/blog/tor-security-advisory-old-tor-browser-bundles-vulnerable">
+    not just a theoretical concern!</a>). But there's a third issue: websites
+    can easily determine whether you have allowed JavaScript for them, and if
+    you disable JavaScript by default but then allow a few websites to run
+    scripts (the way most people use NoScript), then your choice of whitelisted
+    websites acts as a sort of cookie that makes you recognizable (and
+    distinguishable), thus harming your anonymity.
+    </p>
+
+    <p>
+    Ultimately, we want the default Tor bundles to use a combination of
+    firewalls (like the iptables rules in
+    <a href="https://tails.boum.org/">Tails</a>) and
+    <a href="https://trac.torproject.org/projects/tor/ticket/7680">sandboxes</a>
+    to make JavaScript not so scary. In the shorter term, TBB 3.0 will hopefully
+    <a href="https://trac.torproject.org/projects/tor/ticket/9387">allow users
+    to choose their JavaScript settings more easily</a> — but the
+    partitioning concern will remain.
+    </p>
+
+    <p>
+    Until we get there, feel free to leave JavaScript on or off depending
+    on your security, anonymity, and usability priorities.
+    </p>
+
+    <hr>
+
+    <a id="TBBOtherBrowser"></a>
+    <h3><a class="anchor" href="#TBBOtherBrowser">I want to use
+    Chrome/IE/Opera/etc with Tor.</a></h3>
+
+    <p>
+    In short, using any browser besides Tor Browser with Tor is a really bad idea.
+    </p>
+
+    <p>
+    Our efforts to work with the Chrome team to
+    <a href="https://blog.torproject.org/blog/google-chrome-incognito-mode-tor-and-fingerprinting">
+    add missing APIs</a> were unsuccessful, unfortunately. Currently, it is
+    impossible to use other browsers and get the same level of protections as
+    when using Tor Browser.
+    </p>
+
+    <hr>
+
+    <a id="GoogleCAPTCHA"></a>
+    <h3><a class="anchor" href="#GoogleCAPTCHA">Google makes me solve a CAPTCHA
+    or tells me I have spyware installed.</a></h3>
+
+    <p>
+    This is a known and intermittent problem; it does not mean that Google
+    considers Tor to be spyware.
+    </p>
+
+    <p>
+    When you use Tor, you are sending queries through exit relays that are
+    also shared by thousands of other users. Tor users typically see this
+    message when many Tor users are querying Google in a short period of time.
+    Google interprets the high volume of traffic from a single IP address
+    (the exit relay you happened to pick) as somebody trying to "crawl" their
+    website, so it slows down traffic from that IP address for a short time.
+    </p>
+
+    <p>
+    An alternate explanation is that Google tries to detect certain kinds of
+    spyware or viruses that send distinctive queries to Google Search. It notes
+    the IP addresses from which those queries are received (not realizing that
+    they are Tor exit relays), and tries to warn any connections coming from
+    those IP addresses that recent queries indicate an infection.
+    </p>
+
+    <p>
+    To our knowledge, Google is not doing anything intentionally specifically
+    to deter or block Tor use. The error message about an infected machine
+    should clear up again after a short time.
+    </p>
+
+    <hr />
+
+    <a id="ForeignLanguages"></a>
+    <h3><a class="anchor" href="#ForeignLanguages">
+    Why does Google show up in foreign languages?</a></h3>
+
+    <p>
+    Google uses "geolocation" to determine where in the world you are, so it
+    can give you a personalized experience. This includes using the language
+    it thinks you prefer, and it also includes giving you different results
+    on your queries.
+    </p>
+
+    <p>
+    If you really want to see Google in English you can click the link that
+    provides that. But we consider this a feature with Tor, not a bug --- the
+    Internet is not flat, and it in fact does look different depending on
+    where you are. This feature reminds people of this fact.
+    </p>
+
+    <p>
+    Note that Google search URLs take name/value pairs as arguments and one
+    of those names is "hl". If you set "hl" to "en" then Google will return
+    search results in English regardless of what Google server you have been
+    sent to. On a query this looks like:
+    </p>
+
+    <pre>https://encrypted.google.com/search?q=online%20anonymity&hl=en</pre>
+
+    <p>
+    Another method is to simply use your country code for accessing Google.
+    This can be google.be, google.de, google.us and so on.
+    </p>
+
+    <hr />
+
+    <a id="GmailWarning"></a>
+    <h3><a class="anchor" href="#GmailWarning">Gmail warns me that my account
+    may have been compromised.</a></h3>
+
+    <p>
+    Sometimes, after you've used Gmail over Tor, Google presents a pop-up
+    notification that your account may have been compromised.
+    The notification window lists a series of IP addresses and locations
+    throughout the world recently used to access your account.
+    </p>
+
+    <p>
+    In general this is a false alarm: Google saw a bunch of logins from
+    different places, as a result of running the service via Tor, and decided
+    it was a good idea to confirm the account was being accessed by it's
+    rightful owner.
+    </p>
+
+    <p>
+    Even though this may be a biproduct of using the service via tor, that
+    doesn't mean you can entirely ignore the warning. It is <i>probably</i> a
+    false positive, but it might not be since it is possible for someone to
+    hijack your Google cookie.
+    </p>
+
+    <p>
+    Cookie hijacking is possible by either physical access to your computer or
+    by watching your network traffic.  In theory only physical access should
+    compromise your system because Gmail and similar services should only send
+    the cookie over an SSL link. In practice, alas, it's
+    <a href="http://fscked.org/blog/fully-automated-active-https-cookie-hijacking">
+    way more complex than that</a>.
+    </p>
+
+    <p>
+    And if somebody <i>did</i> steal your google cookie, they might end up
+    logging in from unusual places (though of course they also might not). So
+    the summary is that since you're using Tor, this security measure that
+    Google uses isn't so useful for you, because it's full of false positives.
+    You'll have to use other approaches, like seeing if anything looks weird on
+    the account, or looking at the timestamps for recent logins and wondering
+    if you actually logged in at those times.
+    </p>
+
+    <hr>
+
+    <a id="NeedToUseAProxy"></a>
+    <h3><a class="anchor" href="#NeedToUseAProxy">My internet connection
+    requires an HTTP or SOCKS Proxy</a></h3>
+
+    <p>
+    You can set Proxy IP address, port, and authentication information in
+    Tor Browser's Network Settings. If you're using Tor another way, check out
+    the HTTPProxy and HTTPSProxy config options in the
+    <a href="<page docs/tor-manual>">man page</a>, and modify your torrc file
+    accordingly. You will need an HTTP proxy for doing GET requests to fetch
+    the Tor directory, and you will need an HTTPS proxy for doing CONNECT
+    requests to get to Tor relays. (It's fine if they're the same proxy.)
+    Tor also recognizes the torrc options Socks4Proxy and Socks5Proxy.
+    </p>
+
+    <p>
+    Also read up on the HTTPProxyAuthenticator and HTTPSProxyAuthenticator
+    options if your proxy requires auth. We only support basic auth currently,
+    but if you need NTLM authentication, you may find
+    <a href="http://archives.seul.org/or/talk/Jun-2005/msg00223.html">this post
+    in the archives</a> useful.
+    </p>
+
+    <p>
+    If your proxies only allow you to connect to certain ports, look at the
+    entry on <a href="#FirewallPorts">Firewalled clients</a> for how
+    to restrict what ports your Tor will try to access.
+    </p>
+
+    <hr>
+
+    <a id="TBBSocksPort"></a>
+    <h3><a class="anchor" href="#TBBSocksPort">I want to run another
+    application through Tor.</a></h3>
+
+    <p>
+    If you are trying to use some external application with Tor, step zero
+    should be to <a href="<page download/download>#warning">reread the set
+    of warnings</a> for ways you can screw up. Step one should be to try
+    to use a SOCKS proxy rather than an HTTP proxy.
+    Typically Tor listens for SOCKS connections on port 9050. Tor Browser
+    listens on port 9150.
+    </p>
+
+    <p>
+    If your application doesn't support SOCKS proxies, feel free to install
+    <a href="http://www.privoxy.org/">privoxy</a>.
+    However, please realize that this approach is not recommended for novice
+    users. Privoxy has an
+    <a href="http://www.privoxy.org/faq/misc.html#TOR">
+    example configuration</a> of Tor and Privoxy.
+    </p>
+
+    <p>
+    If you're unable to use the application's native proxy settings, all hope is
+    not lost. See <a href="#CantSetProxy">below</a>.
+    </p>
+
+    <hr>
+
+    <a id="CantSetProxy"></a>
+    <h3><a class="anchor" href="#CantSetProxy">What should I do if I can't
+    set a proxy with my application?</a></h3>
+
+    <p>
+    On Unix, we recommend you give
+    <a href="https://github.com/dgoulet/torsocks/">torsocks</a> a try.
+    Alternative proxifying tools like
+    <a href="http://www.dest-unreach.org/socat/">socat</a> and
+    <a href="http://proxychains.sourceforge.net/">proxychains</a> are also
+    available.</p>
+
+    <p>
+    The Windows way to force applications through Tor is less clear.
+    <a href="http://freecap.ru/eng/">Some</a>
+    <a href="http://www.freehaven.net/~aphex/torcap/">tools</a> have been
+    <a href="http://www.crowdstrike.com/community-tools/index.html#tool-79">
+    proposed</a>, but we'd also like to see further testing done here.
+    </p>
+
+    <hr>
+
+    <a id="TBB3.x"></a>
+    <h2><a class="anchor" href="#TBB3.x">Tor Browser (3.x and later):</a></h2>
     <a id="WhereDidVidaliaGo"></a>
     <h3><a class="anchor" href="#WhereDidVidaliaGo">Where did the world map
     (Vidalia) go?</a></h3>
@@ -1456,17 +1399,18 @@ href="http://www.crowdstrike.com/community-tools/index.html#tool-79">proposed
 
     <p>
     We're working on ways to make the behavior less surprising, e.g. a popup
-    warning or auto restoring tabs. See ticket <a
-    href="https://trac.torproject.org/projects/tor/ticket/9906">#9906</a> and
-    ticket <a
-    href="https://trac.torproject.org/projects/tor/ticket/10400">#10400</a>
+    warning or auto restoring tabs. See ticket
+    <a href="https://trac.torproject.org/projects/tor/ticket/9906">#9906</a>
+    and ticket
+    <a href="https://trac.torproject.org/projects/tor/ticket/10400">#10400</a>
     to follow progress there.
     </p>
 
     <hr>
 
     <a id="ConfigureRelayOrBridge"></a>
-    <h3><a class="anchor" href="#ConfigureRelayOrBridge">How do I configure Tor as a relay or bridge?</a></h3>
+    <h3><a class="anchor" href="#ConfigureRelayOrBridge">How do I configure Tor
+    as a relay or bridge?</a></h3>
 
     <p>
     You've got three options.
@@ -1475,8 +1419,8 @@ href="http://www.crowdstrike.com/community-tools/index.html#tool-79">proposed
     <p>
     First (best option), if you're on Linux, you can install the system
     Tor package (e.g. apt-get install tor) and then set it up to be a relay
-    (<a href="https://www.torproject.org/docs/tor-relay-debian">instructions</a>).
-    You can then use TBB independent of that.
+    (<a href="https://www.torproject.org/docs/tor-relay-debian">
+    instructions</a>). You can then use TBB independent of that.
     </p>
 
 
@@ -1484,6 +1428,7 @@ href="http://www.crowdstrike.com/community-tools/index.html#tool-79">proposed
     Second (complex option), you can edit your torrc file (in Data/Tor/torrc)
     directly to add the following lines:
     </p>
+
     <pre>
     ORPort 443
     Exitpolicy reject *:*
@@ -1497,12 +1442,12 @@ href="http://www.crowdstrike.com/community-tools/index.html#tool-79">proposed
     from 2000?</a></h3>
 
     <p>One of the huge new features in TBB 3.x is the "deterministic build"
-    process, which allows many people to build Tor Browser and
-    verify that they all make exactly the same package. See Mike's <a
-    href="https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise">first
-    blog</a> post for the motivation, and his <a
-    href="https://blog.torproject.org/blog/deterministic-builds-part-two-technical-details">second
-    blog post</a> for the technical details of how we do it.
+    process, which allows many people to build Tor Browser and verify that they
+    all make exactly the same package. See Mike's
+    <a href="https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise">
+    first blog</a> post for the motivation, and his
+    <a href="https://blog.torproject.org/blog/deterministic-builds-part-two-technical-details">
+    second blog post</a> for the technical details of how we do it.
     </p>
 
     <p>Part of creating identical builds is having everybody use the same
@@ -1511,292 +1456,301 @@ href="http://www.crowdstrike.com/community-tools/index.html#tool-79">proposed
 
     <hr>
 
-    <a id="TBBSourceCode"></a>
-    <h3><a class="anchor" href="#TBBSourceCode">Where is the source code for
-    Tor Browser? How do I verify a build?</a></h3>
+    <a id="TBBSourceCode"></a>
+    <h3><a class="anchor" href="#TBBSourceCode">Where is the source code for
+    Tor Browser? How do I verify a build?</a></h3>
+
+    <p>
+    Tor Browser is built from the
+    <a href="https://gitweb.torproject.org/builders/tor-browser-build.git/">
+    tor-browser-build.git git repository</a>. You can have a look at the
+    <a href="https://gitweb.torproject.org/builders/tor-browser-build.git/tree/README">
+    README file</a> for the build instructions.
+    There is also some informations in the
+    <a href="https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser/Hacking">
+    Tor Browser Hacking Guide</a>.
+    </p>
+
+    <hr>
+
+    <a id="AdvancedTorUsage"></a>
+    <h2><a class="anchor" href="#AdvancedTorUsage">Advanced Tor usage:</a></h2>
+
+    <a id="torrc"></a>
+    <h3><a class="anchor" href="#torrc">I'm supposed to "edit my torrc".
+    What does that mean?</a></h3>
+
+    <p>
+    Tor uses a text file called torrc that contains configuration
+    instructions for how your Tor program should behave. The default
+    configuration should work fine for most Tor users.
+    </p>
+
+    <p>
+    If you installed Tor Browser on Windows or Linux, look for
+    <code>Browser/TorBrowser/Data/Tor/torrc</code> inside your Tor Browser
+    directory.
+    If you're on macOS, the torrc is in
+    <code>~/Library/Application Support/TorBrowser-Data/Tor</code>.
+    To get to it, press cmd-shift-g while in Finder and copy/paste that
+    directory into the box that appears.
+    </p>
+
+    <p>
+    Otherwise, if you are using Tor without Tor Browser, it looks for the
+    torrc file in <code>/usr/local/etc/tor/torrc</code> if you compiled tor
+    from source, and <code>/etc/tor/torrc</code> or <code>/etc/torrc</code>
+    if you installed a pre-built package.
+    </p>
+
+    <p>
+    Once you've created or changed your torrc file, you will need to restart
+    tor for the changes to take effect. (For advanced users, note that
+    you actually only need to send Tor a HUP signal, not actually restart it.)
+    </p>
+
+    <p>
+    For other configuration options you can use, see the
+    <a href="<page docs/tor-manual>">Tor manual page</a>. Have a look at
+    <a href="https://gitweb.torproject.org/tor.git/tree/src/config/torrc.sample.in">
+    the sample torrc file</a> for hints on common configurations. Remember, all
+    lines beginning with # in torrc are treated as comments and have no effect
+    on Tor's configuration.
+    </p>
+
+    <hr>
+
+    <a id="Logs"></a>
+    <h3><a class="anchor" href="#Logs">How do I set up logging, or see Tor's
+    logs?</a></h3>
+
+    <p>
+    You'll have to go find the log files by
+    hand. Here are some likely places for your logs to be:
+    </p>
+
+    <ul>
+      <li>On OS X, Debian, Red Hat, etc, the logs are in /var/log/tor/
+      </li>
+      <li>On Windows, there are no default log files currently. If you enable
+      logs in your torrc file, they default to <code>\username\Application
+      Data\tor\log\</code> or <code>\Application Data\tor\log\</code>
+      </li>
+      <li>If you compiled Tor from source, by default your Tor logs to
+      <a href="http://en.wikipedia.org/wiki/Standard_streams">"stdout"</a>
+      at log-level notice. If you enable logs in your torrc file, they
+      default to <code>/usr/local/var/log/tor/</code>.
+      </li>
+    </ul>
+
+    <p>
+    To change your logging setup by hand, <a href="#torrc">edit your
+    torrc</a>
+    and find the section (near the top of the file) which contains the
+    following line:
+    </p>
+
+    <pre>
+    \## Logs go to stdout at level "notice" unless redirected by something
+    \## else, like one of the below lines.
+    </pre>
+
+    <p>
+    For example, if you want Tor to send complete debug, info, notice, warn,
+    and err level messages to a file, append the following line to the end
+    of the section:
+    </p>
+
+    <pre>
+    Log debug file c:/program files/tor/debug.log
+    </pre>
+
+    <p>
+    Replace <code>c:/program files/tor/debug.log</code> with a directory
+    and filename for your Tor log.
+    </p>
+
+    <hr>
+
+    <a id="LogLevel"></a>
+    <h3><a class="anchor" href="#LogLevel">What log level should I use?</a></h3>
+
+    <p>
+    There are five log levels (also called "log severities") you might see in
+    Tor's logs:
+    </p>
+
+    <ul>
+
+    <li>"err": something bad just happened, and we can't recover. Tor will
+    exit.</li>
+    <li>"warn": something bad happened, but we're still running. The bad
+    thing might be a bug in the code, some other Tor process doing something
+    unexpected, etc. The operator should examine the message and try to
+    correct the problem.</li>
+    <li>"notice": something the operator will want to know about.</li>
+    <li>"info": something happened (maybe bad, maybe ok), but there's
+    nothing you need to (or can) do about it.</li>
+    <li>"debug": for everything louder than info. It is quite loud indeed.</li>
+
+    </ul>
+
+    <p>
+    Alas, some of the warn messages are hard for ordinary users to correct --
+    the developers are slowly making progress at making Tor automatically react
+    correctly for each situation.
+    </p>
+
+    <p>
+    We recommend running at the default, which is "notice". You will hear about
+    important things, and you won't hear about unimportant things.
+    </p>
+
+    <p>
+    Tor relays in particular should avoid logging at info or debug in normal
+    operation, since they might end up recording sensitive information in
+    their logs.
+    </p>
+
+    <hr>
+
+    <a id="DoesntWork"></a>
+    <h3><a class="anchor" href="#DoesntWork">I installed Tor but it's not
+    working.</a></h3>
+
+    <p>
+    Once you've got Tor Browser up and running, the first question to ask is
+    whether your Tor client is able to establish a circuit.
+    </p>
+
+    <p>If Tor can establish a circuit, Tor Browser will automatically launch
+    the browser for you. You can also check in the <a href="#Logs">Tor logs</a>
+    for a line saying that Tor "has successfully opened a circuit. Looks like
+    client functionality is working."
+    </p>
+
+    <p>
+    If Tor can't establish a circuit, here are some hints:
+    </p>
+
+    <ol>
+
+    <li>Check your system clock. If it's more than a few hours off, Tor will
+    refuse to build circuits. For Microsoft Windows users, synchronize your
+    clock under the clock -> Internet time tab. In addition, correct the
+    day and date under the 'Date & Time' Tab. Also make sure your time
+    zone is correct.</li>
+    <li>Is your Internet connection <a href="#FirewallPorts">firewalled
+    by port</a>, or do you normally need to use a
+    <a href="<#NeedToUseAProxy">proxy</a>?
+    </li>
+    <li>Are you running programs like Norton Internet Security or SELinux that
+    block certain connections, even though you don't realize they do? They
+    could be preventing Tor from making network connections.</li>
+    <li>Are you in China, or behind a restrictive corporate network firewall
+    that blocks the public Tor relays? If so, you should learn about
+    <a href="<page docs/bridges>">Tor bridges</a>.</li>
+    <li>Check your <a href="#Logs">Tor logs</a>. Do they give you any hints
+    about what's going wrong?</li>
+
+    </ol>
+
+    <hr />
+
+    <a id="TorCrash"></a>
+    <h3><a class="anchor" href="#TorCrash">My Tor keeps crashing.</a></h3>
+    <p>
+    We want to hear from you! There are supposed to be zero crash bugs in Tor.
+    This FAQ entry describes the best way for you to be helpful to us. But even
+    if you can't work out all the details, we still want to hear about it, so
+    we can help you track it down.
+    </p>
+    <p>
+    First, make sure you're using the latest version of Tor (either the latest
+    stable or the latest development version).
+    </p>
+
+    <p>
+    Second, make sure your version of libevent is new enough. We recommend at
+    least libevent 1.3a.
+    </p>
+
+    <p>
+    Third, see if there's already an entry for your bug in the
+    <a href="https://bugs.torproject.org/">Tor bugtracker</a>. If so, check if
+    there are any new details that you can add.
+    </p>
+
+    <p>
+    Fourth, is the crash repeatable? Can you cause the crash? Can you isolate
+    some of the circumstances or config options that make it happen? How
+    quickly or often does the bug show up?
+    Can you check if it happens with other versions of Tor, for example the
+    latest stable release?
+    </p>
+
+    <p>
+    Fifth, what sort of crash do you get?
+    </p>
+
+    <ul>
+
+    <li>
+    Does your Tor log include an "assert failure"? If so, please tell us that
+    line, since it helps us figure out what's going on. Tell us the previous
+    couple of log messages as well, especially if they seem important.
+    </li>
+    <li>
+    If it says "Segmentation fault - core dumped" then you need to do a bit
+    more to track it down. Look for a file like "core" or "tor.core" or
+    "core.12345" in your current directory, or in your Data Directory.
+    If it's there, run "gdb tor core" and then "bt", and include the output.
+    If you can't find a core, run "ulimit -c unlimited", restart Tor, and try
+    to make it crash again. (This core thing will only work on Unix -- alas,
+    tracking down bugs on Windows is harder. If you're on Windows, can you get
+    somebody to duplicate your bug on Unix?)
+    </li>
+
+    <li>
+    If Tor simply vanishes mysteriously, it probably is a segmentation fault
+    but you're running Tor in the background (as a daemon) so you won't notice.
+    Go look at the end of your log file, and look for a core file as above.
+    If you don't find any good hints, you should consider running Tor in the
+    foreground (from a shell) so you can see how it dies. Warning: if you
+    switch to running Tor in the foreground, you might start using a different
+    torrc file, with a different default Data Directory; see the
+    <a href="#UpgradeOrMove">relay-upgrade FAQ entry</a>
+    for details.
+    </li>
+    <li>
+    If it's still vanishing mysteriously, perhaps something else is killing it?
+    Do you have resource limits (ulimits) configured that kill off processes
+    sometimes? On Linux, try running "dmesg" to see if the out-of-memory killer
+    removed your process. (Tor will exit cleanly if it notices that it's run
+    out of memory, but in some cases it might not have time to notice.) In very
+    rare circumstances, hardware problems could also be the culprit.
+    </li>
+    </ul>
 
     <p>
-    Tor Browser is built from the <a href="https://gitweb.torproject.org/builders/tor-browser-build.git/">tor-browser-build.git git repository</a>. You can have a look at the <a href="https://gitweb.torproject.org/builders/tor-browser-build.git/tree/README">README file</a> for the build instructions. There is also some informations in the <a href="https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser/Hacking">Tor Browser Hacking Guide</a>.
-    </p>
-
-
-<hr>
-
-<a id="AdvancedTorUsage"></a>
-<h2><a class="anchor" href="#AdvancedTorUsage">Advanced Tor usage:</a></h2>
-
-<a id="torrc"></a>
-<h3><a class="anchor" href="#torrc">I'm supposed to "edit my torrc".
-What does that mean?</a></h3>
-
-<p>
-Tor uses a text file called torrc that contains configuration
-instructions for how your Tor program should behave. The default
-configuration should work fine for most Tor users.
-</p>
-<p>
-If you installed Tor Browser on Windows or Linux, look for
-<code>Browser/TorBrowser/Data/Tor/torrc</code> inside your Tor Browser
-directory.
-If you're on macOS, the torrc is in <code>~/Library/Application Support/TorBrowser-Data/Tor</code> .
-To get to it, press cmd-shift-g while in Finder and copy/paste that directory
-into the box that appears.
-</p>
-<p>
-Otherwise, if you are using Tor without Tor Browser, it looks for the
-torrc file in <code>/usr/local/etc/tor/torrc</code> if you compiled tor
-from source, and <code>/etc/tor/torrc</code> or <code>/etc/torrc</code>
-if you installed a pre-built package.
-</p>
-
-<p>
-Once you've created or changed your torrc file, you will need to restart
-tor for the changes to take effect. (For advanced users, note that
-you actually only need to send Tor a HUP signal, not actually restart
-it.)
-</p>
-
-<p>
-If you are looking for Tor's data directory: for TBB it's <var>Data/Tor/</var>,
-and for most system packages it's <var>/var/lib/tor/</var>. Run as user tor
-stores things in <var>$HOME/.tor</var> on Unix.
-</p>
-
-<p>
-For other configuration options you can use, see the <a href="<page
-docs/tor-manual>">Tor manual page</a>. Have a look at <a
-href="https://gitweb.torproject.org/tor.git/tree/src/config/torrc.sample.in">
-the sample torrc file</a> for hints on common configurations. Remember, all
-lines beginning with # in torrc are treated as comments and have no effect
-on Tor's configuration.
-</p>
-
-<hr>
-
-<a id="Logs"></a>
-<h3><a class="anchor" href="#Logs">How do I set up logging, or see Tor's
-logs?</a></h3>
-
-<p>
-You'll have to go find the log files by
-hand. Here are some likely places for your logs to be:
-</p>
-
-<ul>
-<li>On OS X, Debian, Red Hat, etc, the logs are in /var/log/tor/
-</li>
-<li>On Windows, there are no default log files currently. If you enable
-logs in your torrc file, they default to <code>\username\Application
-Data\tor\log\</code> or <code>\Application Data\tor\log\</code>
-</li>
-<li>If you compiled Tor from source, by default your Tor logs to <a
-href="http://en.wikipedia.org/wiki/Standard_streams">"stdout"</a>
-at log-level notice. If you enable logs in your torrc file, they
-default to <code>/usr/local/var/log/tor/</code>.
-</li>
-</ul>
-
-<p>
-To change your logging setup by hand, <a href="#torrc">edit your
-torrc</a>
-and find the section (near the top of the file) which contains the
-following line:
-</p>
-
-<pre>
-\## Logs go to stdout at level "notice" unless redirected by something
-\## else, like one of the below lines.
-</pre>
-
-<p>
-For example, if you want Tor to send complete debug, info, notice, warn,
-and err level messages to a file, append the following line to the end
-of the section:
-</p>
-
-<pre>
-Log debug file c:/program files/tor/debug.log
-</pre>
-
-<p>
-Replace <code>c:/program files/tor/debug.log</code> with a directory
-and filename for your Tor log.
-</p>
-
-<hr>
-
-
-<a id="LogLevel"></a>
-<h3><a class="anchor" href="#LogLevel">What log level should I use?</a></h3>
-
-<p>
-There are five log levels (also called "log severities") you might see in
-Tor's logs:
-</p>
-
-<ul>
-    <li>"err": something bad just happened, and we can't recover. Tor will
-    exit.</li>
-    <li>"warn": something bad happened, but we're still running. The bad
-    thing might be a bug in the code, some other Tor process doing something
-    unexpected, etc. The operator should examine the message and try to
-    correct the problem.</li>
-    <li>"notice": something the operator will want to know about.</li>
-    <li>"info": something happened (maybe bad, maybe ok), but there's
-    nothing you need to (or can) do about it.</li>
-    <li>"debug": for everything louder than info. It is quite loud indeed.</li>
-</ul>
-
-<p>
-Alas, some of the warn messages are hard for ordinary users to correct -- the
-developers are slowly making progress at making Tor automatically react
-correctly for each situation.
-</p>
-
-<p>
-We recommend running at the default, which is "notice". You will hear about
-important things, and you won't hear about unimportant things.
-</p>
-
-<p>
-Tor relays in particular should avoid logging at info or debug in normal
-operation, since they might end up recording sensitive information in
-their logs.
-</p>
-
-<hr>
-
-<a id="DoesntWork"></a>
-<h3><a class="anchor" href="#DoesntWork">I installed Tor but it's not
-working.</a></h3>
-
-<p>
-Once you've got Tor Browser up and running, the first question to
-ask is whether your Tor client is able to establish a circuit.
-</p>
-
-<p>If Tor can establish a circuit, Tor Browser will
-automatically launch the browser for you. You can also check in the
-<a href="#Logs">Tor logs</a> for
-a line saying that Tor "has successfully opened a circuit. Looks like
-client functionality is working."
-</p>
-
-<p>
-If Tor can't establish a circuit, here are some hints:
-</p>
-
-<ol>
-<li>Check your system clock. If it's more than a few hours off, Tor will
-refuse to build circuits. For Microsoft Windows users, synchronize your
-clock under the clock -> Internet time tab. In addition, correct the
-day and date under the 'Date & Time' Tab. Also make sure your time
-zone is correct.</li>
-<li>Is your Internet connection <a href="#FirewallPorts">firewalled
-by port</a>, or do you normally need to use a <a
-href="<#NeedToUseAProxy">proxy</a>?
-</li>
-<li>Are you running programs like Norton Internet Security or SELinux
-that
-block certain connections, even though you don't realize they do? They
-could be preventing Tor from making network connections.</li>
-<li>Are you in China, or behind a restrictive corporate network firewall
-that blocks the public Tor relays? If so, you should learn about <a
-href="<page docs/bridges>">Tor bridges</a>.</li>
-<li>Check your <a href="#Logs">Tor logs</a>. Do they give you any hints
-about what's going wrong?</li>
-</ol>
-
-<hr />
-
-<a id="TorCrash"></a>
-<h3><a class="anchor" href="#TorCrash">My Tor keeps crashing.</a></h3>
-<p>
- We want to hear from you! There are supposed to be zero crash bugs in Tor.
- This FAQ entry describes the best way for you to be helpful to us. But even
- if you can't work out all the details, we still want to hear about it, so
- we can help you track it down.
-</p>
-<p>
-First, make sure you're using the latest version of Tor (either the latest
-stable or the latest development version).
-</p>
-<p>
-Second, make sure your version of libevent is new enough. We recommend at
-least libevent 1.3a.
-</p>
-<p>
-Third, see if there's already an entry for your bug in the <a
-href="https://bugs.torproject.org/">Tor bugtracker</a>. If so,
-check if there are any new details that you can add.
-</p>
-<p>
-Fourth, is the crash repeatable? Can you cause the crash? Can
-you isolate some of the circumstances or config options that
-make it happen? How quickly or often does the bug show up?
-Can you check if it happens with other versions of Tor, for
-example the latest stable release?
-</p>
-<p>
-Fifth, what sort of crash do you get?
-</p>
-<ul>
-<li>
-Does your Tor log include an "assert failure"? If so, please
-tell us that line, since it helps us figure out what's going on.
-Tell us the previous couple of log messages as well, especially
-if they seem important.
-</li>
-<li>
-If it says "Segmentation fault - core dumped" then you need to
-do a bit more to track it down. Look for a file like "core" or
-"tor.core" or "core.12345" in your current directory, or in your
-Data Directory. If it's there, run "gdb tor core" and then "bt",
-and include the output. If you can't find a core, run "ulimit -c
-unlimited", restart Tor, and try to make it crash again. (This core
-thing will only work on Unix -- alas, tracking down bugs on Windows
-is harder. If you're on Windows, can you get somebody to duplicate
-your bug on Unix?)
-</li>
-<li>
-If Tor simply vanishes mysteriously, it probably is a segmentation
-fault but you're running Tor in the background (as a daemon) so you
-won't notice. Go look at the end of your log file, and look for a
-core file as above. If you don't find any good hints, you should
-consider running Tor in the foreground (from a shell) so you can
-see how it dies. Warning: if you switch to running Tor in the foreground,
-you might start using a different torrc file, with a different default
-Data Directory; see the <a href="#UpgradeOrMove">relay-upgrade FAQ entry</a>
-for details.
-</li>
-<li>
-If it's still vanishing mysteriously, perhaps something else is killing it?
-Do you have resource limits (ulimits) configured that kill off processes
-sometimes? On Linux, try running
-"dmesg" to see if the out-of-memory killer removed your process. (Tor will
-exit cleanly if it notices that it's run out of memory, but in some cases
-it might not have time to notice.) In very rare circumstances, hardware
-problems could also be the culprit.
-</li>
-</ul>
-<p>
-Sixth, if the above ideas don't point out the bug, consider increasing your
-log level to "loglevel debug". You can look at the log-configuration FAQ
-entry for instructions on what to put in your torrc file. If it usually
-takes a long time for the crash to show up, you will want to reserve a whole
-lot of disk space for the debug log. Alternatively, you could just send
-debug-level logs to the screen (it's called "stdout" in the torrc), and then
-when it crashes you'll see the last couple of log lines it had printed.
-(Note that running with verbose logging like this will slow Tor down
-considerably, and note also that it's generally not a good idea security-wise
-to keep logs like this sitting around.)
-</p>
-
-<hr />
+    Sixth, if the above ideas don't point out the bug, consider increasing your
+    log level to "loglevel debug". You can look at the log-configuration FAQ
+    entry for instructions on what to put in your torrc file. If it usually
+    takes a long time for the crash to show up, you will want to reserve a
+    whole lot of disk space for the debug log. Alternatively, you could just
+    send debug-level logs to the screen (it's called "stdout" in the torrc),
+    and then when it crashes you'll see the last couple of log lines it had
+    printed.
+    (Note that running with verbose logging like this will slow Tor down
+    considerably, and note also that it's generally not a good idea
+    security-wise to keep logs like this sitting around.)
+    </p>
+
+    <hr />
 
     <a id="ChooseEntryExit"></a>
-    <h3><a class="anchor" href="#ChooseEntryExit">Can I control which
-nodes (or country) are used for entry/exit?</a></h3>
+    <h3><a class="anchor" href="#ChooseEntryExit">Can I control which nodes
+    (or country) are used for entry/exit?</a></h3>
 
     <p>
     Yes. You can set preferred entry and exit nodes as well as
@@ -1840,62 +1794,56 @@ versions.
     <a href="<page docs/tor-manual>">manual</a>.
     </p>
     <p>
-    Instead of <tt>$fingerprint</tt> you can also specify a <a
-
-href="https://secure.wikimedia.org/wikipedia/en/wiki/ISO_3166-1_alpha-2"
->2
-    letter ISO3166 country code</a> in curly braces (for example <tt>{de}</tt>),
-    or an ip address pattern (for example 255.254.0.0/8).
-    Make sure there are no spaces between the commas and the
-    list items.
+    Instead of <tt>$fingerprint</tt> you can also specify a
+    <a href="https://secure.wikimedia.org/wikipedia/en/wiki/ISO_3166-1_alpha-2">
+    2 letter ISO3166 country code</a> in curly braces (for example
+    <tt>{de}</tt>), or an ip address pattern (for example 255.254.0.0/8).
+    Make sure there are no spaces between the commas and the list items.
     </p>
+
     <p>
-    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
-<tt>MapAddress</tt>.
+    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 <tt>MapAddress</tt>.
     See the manual page for details.
     </p>
 
     <hr>
 
-<a id="FirewallPorts"></a>
-<h3><a class="anchor" href="#FirewallPorts">My firewall only allows a
-few outgoing ports.</a></h3>
-
-<p>
-If your firewall works by blocking ports, then you can tell Tor to only
-use the ports when you start your Tor Browser. Or you can add the ports
-that your firewall permits by adding "FascistFirewall 1"
-to
-your <a href="<page docs/faq>#torrc">torrc
-configuration file</a>.
-By default, when you set this Tor assumes that your firewall allows only
-port 80 and port 443 (HTTP and HTTPS respectively). You can select a
-different set of ports with the FirewallPorts torrc option.
-</p>
-
-<p>
-If you want to be more fine-grained with your controls, you can also
-use the ReachableAddresses config options, e.g.:
-</p>
-
-<pre>
-  ReachableDirAddresses *:80
-  ReachableORAddresses *:443
-</pre>
-
-<hr>
+    <a id="FirewallPorts"></a>
+    <h3><a class="anchor" href="#FirewallPorts">My firewall only allows a
+    few outgoing ports.</a></h3>
+
+    <p>
+    If your firewall works by blocking ports, then you can tell Tor to only
+    use the ports when you start your Tor Browser. Or you can add the ports
+    that your firewall permits by adding "FascistFirewall 1" to your
+    <a href="<page docs/faq>#torrc">torrc configuration file</a>.
+    By default, when you set this Tor assumes that your firewall allows only
+    port 80 and port 443 (HTTP and HTTPS respectively). You can select a
+    different set of ports with the FirewallPorts torrc option.
+    </p>
+
+    <p>
+    If you want to be more fine-grained with your controls, you can also
+    use the ReachableAddresses config options, e.g.:
+    </p>
+
+    <pre>
+      ReachableDirAddresses *:80
+      ReachableORAddresses *:443
+    </pre>
+
+    <hr>
 
     <a id="DefaultExitPorts"></a>
     <h3><a class="anchor" href="#DefaultExitPorts">Is there a list of default exit
     ports?</a></h3>
     <p>
-The default open ports are listed below but keep in mind that, any port or
-ports can be opened by the relay operator by configuring it in torrc or
-modifying the source code. But the default according to src/or/policies.c
-from the source code release tor-0.2.4.16-rc is:
+    The default open ports are listed below but keep in mind that, any port or
+    ports can be opened by the relay operator by configuring it in torrc or
+    modifying the source code. But the default according to src/or/policies.c
+    from the source code release tor-0.2.4.16-rc is:
     </p>
     <pre>
   reject 0.0.0.0/8
@@ -1985,11 +1933,14 @@ from the source code release tor-0.2.4.16-rc is:
     network to look up hostnames remotely; if you resolve hostnames to IPs
     with tor-resolve, then pass the IPs to your applications, you'll be fine.
     (Tor will still give the warning, but now you know what it means.) </li>
-<!-- I'm not sure if this project is still maintained or not
 
-<li>You can use TorDNS as a local DNS server to rectify the DNS leakage. See the Torify HOWTO for info on how to run particular applications anonymously. </li>
-!-->
+    <!-- I'm not sure if this project is still maintained or not
+    <li>You can use TorDNS as a local DNS server to rectify the DNS leakage.
+    See the Torify HOWTO for info on how to run particular applications
+    anonymously.</li>
+    !-->
     </ul>
+
     <p>If you think that you applied one of the solutions properly but still
     experience DNS leaks please verify there is no third-party application
     using DNS independently of Tor. Please see <a
@@ -2000,8 +1951,8 @@ from the source code release tor-0.2.4.16-rc is:
     <hr>
 
     <a id="SocksAndDNS"></a>
-    <h3><a class="anchor" href="#SocksAndDNS">How do I check if my application that uses
-    SOCKS is leaking DNS requests?</a></h3>
+    <h3><a class="anchor" href="#SocksAndDNS">How do I check if my application
+    that uses SOCKS is leaking DNS requests?</a></h3>
 
     <p>
     These are two steps you need to take here. The first is to make sure
@@ -2035,8 +1986,8 @@ from the source code release tor-0.2.4.16-rc is:
     <hr>
 
     <a id="TorClientOnADifferentComputerThanMyApplications"></a>
-    <h3><a class="anchor" href="#TorClientOnADifferentComputerThanMyApplications">I
-    want to run my Tor client on a different computer than my applications.
+    <h3><a class="anchor" href="#TorClientOnADifferentComputerThanMyApplications">
+    I want to run my Tor client on a different computer than my applications.
     </a></h3>
     <p>
     By default, your Tor client only listens for applications that
@@ -2068,11 +2019,11 @@ from the source code release tor-0.2.4.16-rc is:
      key all around.
     </p>
     <p>
-Configuration is simple, editing your torrc file's SocksListenAddress
-according to the following examples:
+    Configuration is simple, editing your torrc file's SocksListenAddress
+    according to the following examples:
     </p>
-    <pre>
 
+    <pre>
   #This provides local interface access only,
   #needs SocksPort to be greater than 0
   SocksListenAddress 127.0.0.1
@@ -2083,27 +2034,33 @@ according to the following examples:
   #Accept from all interfaces
   SocksListenAddress 0.0.0.0:9100
    </pre>
+
     <p>
-You can state multiple listen addresses, in the case that you are
-part of several networks or subnets.
+    You can state multiple listen addresses, in the case that you are
+    part of several networks or subnets.
     </p>
+
     <pre>
-  SocksListenAddress 192.168.x.x:9100 #eth0
-  SocksListenAddress 10.x.x.x:9100 #eth1
+      SocksListenAddress 192.168.x.x:9100 #eth0
+      SocksListenAddress 10.x.x.x:9100 #eth1
     </pre>
+
     <p>
-After this, your clients on their respective networks/subnets would specify
-a socks proxy with the address and port you specified SocksListenAddress
-to be.
+    After this, your clients on their respective networks/subnets would specify
+    a socks proxy with the address and port you specified SocksListenAddress
+    to be.
     </p>
+
     <p>
-Please note that the SocksPort configuration option gives the port ONLY for
-localhost (127.0.0.1). When setting up your SocksListenAddress(es), you need
-to give the port with the address, as shown above.
+    Please note that the SocksPort configuration option gives the port ONLY for
+    localhost (127.0.0.1). When setting up your SocksListenAddress(es), you need
+    to give the port with the address, as shown above.
+    </p>
+
     <p>
-If you are interested in forcing all outgoing data through the central Tor
-client/relay, instead of the server only being an optional proxy, you may find
-the program iptables (for *nix) useful.
+    If you are interested in forcing all outgoing data through the central Tor
+    client/relay, instead of the server only being an optional proxy, you may
+    find the program iptables (for *nix) useful.
     </p>
 
     <hr>
@@ -2115,23 +2072,32 @@ the program iptables (for *nix) useful.
     <h3><a class="anchor" href="#HowDoIDecide">How do I decide if I should
     run a relay?</a></h3>
     <p>
-    We're looking for people with reasonably reliable Internet connections,
-    that have at least 1 MByte/second (that is 8 MBit/second) available bandwidth each way. If that's you, please
-    consider <a href="<wiki>TorRelayGuide">running a Tor relay</a>.
+    We're looking for people with reasonably reliable Internet connections, 
+    that have at least 1 MByte/second (that is 8 MBit/second) available
+    bandwidth each way. If that's you, please consider
+    <a href="<wiki>TorRelayGuide">running a Tor relay</a>.
     </p>
+
     <p>
-    Even if you do not have at least 8 MBit/s of available bandwidth you can still help the Tor network by running a <a href="<page docs/pluggable-transports>#operator">Tor bridge with obfs4 support</a>. In that case you should have at least 1 MBit/s of available bandwidth.
+    Even if you do not have at least 8 MBit/s of available bandwidth you can
+    still help the Tor network by running a
+    <a href="<page docs/pluggable-transports>#operator">Tor bridge with obfs4
+    support</a>.
+    In that case you should have at least 1 MBit/s of available bandwidth.
     </p>
 
     <hr>
 
     <a id="MostNeededRelayType"></a>
-    <h3><a class="anchor" href="#MostNeededRelayType">What type of relays are most needed?</a></h3>
+    <h3><a class="anchor" href="#MostNeededRelayType">What type of relays are
+    most needed?</a></h3>
     <p>
     <ul>
-    <li>The exit relay is the most needed relay type but it also comes with the highest legal exposure and risk (and you
-    should NOT run them from your home).</li>
-    <li>If you are looking to run a relay with minimal effort, fast guard relays are also very useful</li>
+    <li>The exit relay is the most needed relay type but it also comes with the
+    highest legal exposure and risk (and you should NOT run them from your
+    home).</li>
+    <li>If you are looking to run a relay with minimal effort, fast guard
+    relays are also very useful</li>
     <li>followed by bridges.</li>
     </ul>
     </p>
@@ -2160,8 +2126,8 @@ the program iptables (for *nix) useful.
     <hr>
 
     <a id="IDontHaveAStaticIP"></a>
-    <h3><a class="anchor" href="#IDontHaveAStaticIP">Can I run a Tor relay using a
-    dynamic IP address?</a></h3>
+    <h3><a class="anchor" href="#IDontHaveAStaticIP">Can I run a Tor relay
+    using a dynamic IP address?</a></h3>
 
     <p>
     Tor can handle relays with dynamic IP addresses just fine. Just leave
@@ -2174,11 +2140,12 @@ the program iptables (for *nix) useful.
     <h3><a class="anchor" href="#IPv6Relay">Can I use IPv6 on my relay?</a></h3>
 
     <p>
-    Tor has <a href="<wiki>org/roadmaps/Tor/IPv6Features">partial</a> support for IPv6 and we
-    encourage every relay operator to <a href="<wiki>TorRelayGuide#IPv6">enable IPv6 functionality
-    </a> in their torrc configuration files when IPv6 connectivity is available.
-    For the time being Tor will require IPv4 addresses on relays, you can not run a Tor relay
-    on a host with IPv6 addresses only.
+    Tor has <a href="<wiki>org/roadmaps/Tor/IPv6Features">partial</a> support
+    for IPv6 and we encourage every relay operator to
+    <a href="<wiki>TorRelayGuide#IPv6">enable IPv6 functionality</a> in their
+    torrc configuration files when IPv6 connectivity is available.
+    For the time being Tor will require IPv4 addresses on relays, you can not
+    run a Tor relay on a host with IPv6 addresses only.
     </p>
 
     <hr>
@@ -2202,27 +2169,27 @@ the program iptables (for *nix) useful.
     world. We recommend that you bind your socksport to local networks only.
     </p>
     <p>
-    In any case, you need to keep up to date with your security. See this <a
-    href="https://trac.torproject.org/projects/tor/wiki/doc/OperationalSecurity">article
-    on operational security for Tor relays</a> for more suggestions.
+    In any case, you need to keep up to date with your security. See this
+    <a href="https://trac.torproject.org/projects/tor/wiki/doc/OperationalSecurity">
+    article on operational security for Tor relays</a> for more suggestions.
     </p>
 
     <hr>
 
     <a id="HighCapacityConnection"></a>
-    <h3><a class="anchor" href="#HighCapacityConnection">How can I get Tor to fully
-    make use of my high capacity connection?</a></h3>
+    <h3><a class="anchor" href="#HighCapacityConnection">How can I get Tor to
+    fully make use of my high capacity connection?</a></h3>
 
     <p>
-    See <a href="http://archives.seul.org/or/relays/Aug-2010/msg00034.html">this
-    tor-relays thread</a>.
+    See <a href="http://archives.seul.org/or/relays/Aug-2010/msg00034.html">
+    this tor-relays thread</a>.
     </p>
 
     <hr>
 
     <a id="RelayFlexible"></a>
-    <h3><a class="anchor" href="#RelayFlexible">How stable does my relay
-need to be?</a></h3>
+    <h3><a class="anchor" href="#RelayFlexible">How stable does my relay need
+    to be?</a></h3>
 
     <p>
     We aim to make setting up a Tor relay easy and convenient:
@@ -2234,20 +2201,14 @@ need to be?</a></h3>
     sure it's not too often, since connections using the relay when it
     disconnects will break.
     </li>
-    <li>Each Tor relay has an <a href="#ExitPolicies">exit policy</a>
-that
-    specifies what sort of outbound connections are allowed or refused
-from
-    that relay. If you are uncomfortable allowing people to exit from
-your
-    relay, you can set it up to only allow connections to other Tor
-relays.
+    <li>Each Tor relay has an <a href="#ExitPolicies">exit policy</a> that
+    specifies what sort of outbound connections are allowed or refused from
+    that relay. If you are uncomfortable allowing people to exit from your
+    relay, you can set it up to only allow connections to other Tor relays.
     </li>
     <li>Your relay will passively estimate and advertise its recent
-    bandwidth capacity, so high-bandwidth relays will attract more users
-than
-    low-bandwidth ones. Therefore having low-bandwidth relays is useful
-too.
+    bandwidth capacity, so high-bandwidth relays will attract more users than
+    low-bandwidth ones. Therefore having low-bandwidth relays is useful too.
     </li>
     </ul>
 
@@ -2316,9 +2277,9 @@ too.
     <p>
     Linux-based Tor nodes have another option at their disposal: they can
     prioritize Tor traffic below other traffic on their machine, so that
-    their own personal traffic is not impacted by Tor load. A <a
-    href="https://gitweb.torproject.org/tor.git/tree/contrib/operator-tools/linux-tor-prio.sh">script
-    to do this</a> can be found in the Tor source distribution's contrib
+    their own personal traffic is not impacted by Tor load. A
+    <a href="https://gitweb.torproject.org/tor.git/tree/contrib/operator-tools/linux-tor-prio.sh">
+    script to do this</a> can be found in the Tor source distribution's contrib
     directory.
     </p>
     <p>
@@ -2381,10 +2342,11 @@ too.
     spread your usefulness over more of the day: if you want to offer X GB
     in each direction, you could set your RelayBandwidthRate to 20*X KBytes.
     For example,
-    if you have 50 GB to offer each way, you might set your RelayBandwidthRate to
-    1000 KBytes: this way your relay will always be useful for at least half of
-    each day.
+    if you have 50 GB to offer each way, you might set your RelayBandwidthRate
+    to 1000 KBytes: this way your relay will always be useful for at least half
+    of each day.
     </p>
+
     <pre>
     AccountingStart day 0:00
     AccountingMax 50 GBytes
@@ -2454,16 +2416,13 @@ don't want to deal with abuse issues.</a></h3>
 
     <p>
     Each Tor relay has an exit policy that specifies what sort of
-    outbound connections are allowed or refused from that relay. The
-exit
+    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 it wants to allow connections to,
-    based on abuse potential and its own situation. Read the FAQ entry
-on
-    <a href="<page docs/faq-abuse>#TypicalAbuses">issues you might
-encounter</a>
+    based on abuse potential and its own situation. Read the FAQ entry on
+    <a href="<page docs/faq-abuse>#TypicalAbuses">issues you might encounter</a>
     if you use the default exit policy, and then read Mike Perry's
     <a href="<blog>tips-running-exit-node">tips
     for running an exit node with minimal harassment</a>.
@@ -2471,31 +2430,22 @@ encounter</a>
 
     <p>
     The default exit policy allows access to many popular services
-    (e.g. web browsing), but <a
-href="#DefaultExitPorts">restricts</a>
-    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
-    by editing your
-    <a href="<page docs/faq>#torrc">torrc</a>
-    file. If you want to avoid most if not all abuse potential, set it
-to
-    "reject *:*". 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.
-    </p>
-
-    <p>
-    If you do allow any exit connections, make sure name resolution
-works
+    (e.g. web browsing), but <a href="#DefaultExitPorts">restricts</a> 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
+    by editing your <a href="<page docs/faq>#torrc">torrc</a> file. If you want
+    to avoid most if not all abuse potential, set it to <var>"reject *:*"</var>.
+    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.
+    </p>
+
+    <p>
+    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,
+    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
+    explicitly reject them in your exit policy — otherwise Tor users
     will be impacted too.
     </p>
 
@@ -2547,16 +2497,17 @@ users
     the BadExit flag why did that happen?</a></h3>
 
     <p>If you got this flag then we either discovered a problem or suspicious
-    activity when routing traffic through your exit and weren't able to contact you.
-    Please reach out to the <a href="mailto:bad-relays at lists.torproject.org">bad-relays team</a>
+    activity when routing traffic through your exit and weren't able to contact
+    you. Please reach out to the
+    <a href="mailto:bad-relays at lists.torproject.org">bad-relays team</a>
     so we can sort out the issue.
     </p>
 
     <hr>
 
     <a id="MyRelayRecentlyGotTheGuardFlagAndTrafficDroppedByHalf"></a>
-    <h3><a class="anchor" href="#MyRelayRecentlyGotTheGuardFlagAndTrafficDroppedByHalf">My
-    relay recently got the Guard flag and traffic dropped by half.</a></h3>
+    <h3><a class="anchor" href="#MyRelayRecentlyGotTheGuardFlagAndTrafficDroppedByHalf">
+    My relay recently got the Guard flag and traffic dropped by half.</a></h3>
     <p>
     Since it's now a guard, clients are using it less in other positions, but
     not many clients have rotated their existing guards out to use it as a
@@ -2570,264 +2521,279 @@ users
     <hr>
 
     <a id="RelayOrBridge"></a>
-    <h3><a class="anchor" href="#RelayOrBridge">Should I be a normal
-relay or bridge relay?</a></h3>
+    <h3><a class="anchor" href="#RelayOrBridge">Should I be a normal relay or
+    bridge relay?</a></h3>
 
-    <p><a href="<page docs/bridges>">Bridge relays</a> (or "bridges" for
-short)
-    are <a href="<wiki>TorRelayGuide">Tor relays</a> that aren't
-    listed in the public Tor directory.
-    That means that ISPs or governments trying to block access to the
-    Tor network can't simply block all bridges.
+    <p><a href="<page docs/bridges>">Bridge relays</a> (or "bridges" for short)
+    are <a href="<wiki>TorRelayGuide">Tor relays</a> that aren't listed in the
+    public Tor directory. That means that ISPs or governments trying to block
+    access to the Tor network can't simply block all bridges.
     </p>
 
     <p>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
-    publicly or not.
+    configuration: it's just a matter of whether your relay is listed publicly
+    or not.
     </p>
 
     <p>
-    So bridges are useful a) for Tor users in oppressive regimes,
-    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 bridges are useful a) for Tor users in oppressive regimes, 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.
     </p>
 
     <p>
-    Several countries, including China and Iran, have found ways to
-    detect and block connections to Tor bridges.
+    Several countries, including China and Iran, have found ways to detect and
+    block connections to Tor bridges.
     <a href="<page docs/pluggable-transports>">Obfsproxy</a> bridges address
     this by adding another layer of obfuscation.
     </p>
 
-    <p>So should you run a normal relay or bridge relay? If you have
-lots
-    of bandwidth, you should definitely run a normal relay.
-    If you're willing
-    to <a href="#ExitPolicies">be an exit</a>, you should definitely
-    run an exit relay, since we need more exits. If you can't be an
-    exit and only have a little bit of bandwidth, setup an
+    <p>So should you run a normal relay or bridge relay? If you have lots
+    of bandwidth, you should definitely run a normal relay. If you're willing
+    to <a href="#ExitPolicies">be an exit</a>, you should definitely run an
+    exit relay, since we need more exits. If you can't be an exit and only have
+    a little bit of bandwidth, setup an
     <a href="<page docs/pluggable-transports>#operator">obfs4 bridge</a>.
     Thanks for volunteering!
     </p>
 
     <hr>
 
-<a id="UpgradeOrMove"></a>
-<h3><a class="anchor" href="#UpgradeOrMove">I want to upgrade/move my relay.
-How do I keep the same key?</a></h3>
-
-<p>
-When upgrading your Tor relay, or moving it on a different computer, the
-important part is to keep the same identity keys (stored in
-"keys/ed25519_master_id_secret_key" and "keys/secret_id_key" in your
-DataDirectory). Keeping backups of the identity keys so you can restore
-a relay in the future is the recommended way to ensure the reputation of
-the relay won't be wasted.
-</p>
-
-<p>
-This means that if you're upgrading your Tor relay and you keep the same
-torrc and the same DataDirectory, then the upgrade should just work and
-your relay will keep using the same key. If you need to pick a new
-DataDirectory, be sure to copy your old
-keys/ed25519_master_id_secret_key and keys/secret_id_key over.
-</p>
-
-<p>
-Note: As of Tor 0.2.7 we are using new generation identities for relays
-based on ed25519 elliptic curve cryptography. Eventually they will
-replace the old RSA identities, but that will happen in time, to ensure
-compatibility with older versions. Until then, each relay will have both
-an ed25519 identity (identity key file:
-keys/ed25519_master_id_secret_key) and a RSA identity (identity key
-file: keys/secret_id_key). You need to copy / backup both of them in
-order to restore your relay, change your DataDirectory or migrate the
-relay on a new computer.
-</p>
+    <a id="UpgradeOrMove"></a>
+    <h3><a class="anchor" href="#UpgradeOrMove">I want to upgrade/move my relay.
+    How do I keep the same key?</a></h3>
+
+    <p>
+    When upgrading your Tor relay, or moving it on a different computer, the
+    important part is to keep the same identity keys (stored in
+    "keys/ed25519_master_id_secret_key" and "keys/secret_id_key" in your
+    DataDirectory). Keeping backups of the identity keys so you can restore
+    a relay in the future is the recommended way to ensure the reputation of
+    the relay won't be wasted.
+    </p>
+
+    <p>
+    This means that if you're upgrading your Tor relay and you keep the same
+    torrc and the same DataDirectory, then the upgrade should just work and
+    your relay will keep using the same key. If you need to pick a new
+    DataDirectory, be sure to copy your old
+    keys/ed25519_master_id_secret_key and keys/secret_id_key over.
+    </p>
+
+    <p>
+    Note: As of Tor 0.2.7 we are using new generation identities for relays
+    based on ed25519 elliptic curve cryptography. Eventually they will
+    replace the old RSA identities, but that will happen in time, to ensure
+    compatibility with older versions. Until then, each relay will have both
+    an ed25519 identity (identity key file:
+    keys/ed25519_master_id_secret_key) and a RSA identity (identity key
+    file: keys/secret_id_key). You need to copy / backup both of them in
+    order to restore your relay, change your DataDirectory or migrate the
+    relay on a new computer.
+    </p>
+
+    <hr>
+
+    <a id="OfflineED25519"></a>
+    <h3><a class="anchor" href="#OfflineED25519">How do offline ed25519
+    identity keys work? What do I need to know?</a></h3>
+
+    <p>
+    As of Tor 0.2.7 offline ed25519 identity keys are supported. In simple
+    words, it works like this:
+    </p>
+
+    <ul>
+    <li>there is a master ed25519 identity secret key file named
+    "ed25519_master_id_secret_key". This is the most important one, so make
+    sure you keep a backup in a secure place - the file is sensitive and
+    should be protected. Tor could encrypt it for you if you generate it
+    manually and enter a password when asked.</li>
+    <li>a medium term signing key named "ed25519_signing_secret_key" is
+    generated for Tor to use. Also, a certificate is generated named
+    "ed25519_signing_cert" which is signed by the master identity secret key
+    and confirms that the medium term signing key is valid for a certain
+    period of time. The default validity is 30 days, but this can be
+    customized by setting "SigningKeyLifetime N days|weeks|months" in
+    torrc.</li>
+    <li>there is also a master public key named
+    "ed25519_master_id_public_key, which is the actual identity of the relay
+    advertised in the network. This one is not sensitive and can be easily
+    computed from "ed5519_master_id_secret_key".</li>
+    </ul>
+
+    <p>
+    Tor will only need access to the medium term signing key and certificate
+    as long as they are valid, so the master identity secret key can be kept
+    outside DataDirectory/keys, on a storage media or a different computer.
+    You'll have to manually renew the medium term signing key and
+    certificate before they expire otherwise the Tor process on the relay
+    will exit upon expiration.
+    </p>
+
+    <p>
+    This feature is optional, you don't need to use it unless you want to.
+    If you want your relay to run unattended for longer time without having
+    to manually do the medium term signing key renewal on regular basis,
+    best to leave the master identity secret key in DataDirectory/keys, just
+    make a backup in case you'll need to reinstall it.  If you want to use
+    this feature, you can consult our
+    <a href="https://trac.torproject.org/projects/tor/wiki/doc/TorRelaySecurity/OfflineKeys">
+    more detailed guide</a> on the topic.
+    </p>
+
+    <hr>
+
+    <a id="NTService"></a>
+    <h3><a class="anchor" href="#NTService">How do I run my Tor relay as an NT
+    service?</a></h3>
+
+    <p>
+    You can run Tor as a service on all versions of Windows except Windows
+    95/98/ME.
+    </p>
+
+    <p>
+    If you've already configured your Tor to be a relay, please note that when
+    you enable Tor as a service, it will use a different DatagDirectory, and
+    thus will generate a different key. If you want to keep using the old key,
+    see the Upgrading your Tor relay FAQ entry for how to restore the old
+    identity key.
+    </p>
+
+    <p>
+    To install Tor as a service, you can simply run:
+    </p>
+
+    <pre>
+    tor --service install
+    </pre>
+
+    <p>
+    A service called Tor Win32 Service will be installed and started. This
+    service will also automatically start every time Windows boots, unless
+    you change the Start-up type. An easy way to check the status of Tor,
+    start or stop the service, and change the start-up type is by running
+    services.msc and finding the Tor service in the list of currently
+    installed services.
+    </p>
+
+    <p>
+    Optionally, you can specify additional options for the Tor service using
+    the -options argument. For example, if you want Tor to use C:\tor\torrc,
+    instead of the default torrc, and open a control port on port 9151, you
+    would run:
+    </p>
+
+    <pre>
+    tor --service install -options -f C:\tor\torrc ControlPort 9151
+    </pre>
+
+    <p>
+    You can also start or stop the Tor service from the command line by typing:
+    </p>
+
+    <pre>
+    tor --service start
+    </pre>
+
+    <p>
+    or
+    </p>
+
+    <pre>
+    tor --service stop
+    </pre>
+
+    <p>
+    To remove the Tor service, you can run the following command:
+    </p>
+
+    <pre>
+    tor --service remove
+    </pre>
+
+    <p>
+    If you are running Tor as a service and you want to uninstall Tor entirely,
+    be sure to run the service removal command (shown above) first before
+    running the uninstaller from "Add/Remove Programs". The uninstaller is
+    currently not capable of removing the active service.
+    </p>
+
+    <hr>
+
+    <a id="VirtualServer"></a>
+    <h3><a class="anchor" href="#VirtualServer">Can I run a Tor relay from my
+    virtual server account?</a></h3>
+
+    <p>
+    Some ISPs are selling "vserver" accounts that provide what they call a
+    virtual server -- you can't actually interact with the hardware, and
+    they can artificially limit certain resources such as the number of file
+    descriptors you can open at once. Competent vserver admins are able to
+    configure your server to not hit these limits. For example, in SWSoft's
+    Virtuozzo, investigate /proc/user_beancounters. Look for "failcnt" in
+    tcpsndbuf, tcprecvbuf, numothersock, and othersockbuf. Ask for these to
+    be increased accordingly. Xen, Virtual Box and VMware virtual servers have
+    no such limits normally.
+    </p>
+
+    <p>
+    If the vserver admin will not increase system limits another option is
+    to reduce the memory allocated to the send and receive buffers on TCP
+    connections Tor uses. An experimental feature to constrain socket buffers
+    has recently been added. If your version of Tor supports it, set
+    "ConstrainedSockets 1" in your configuration. See the tor man page for
+    additional details about this option.
+    </p>
+
+    <p>
+    Unfortunately, since Tor currently requires you to be able to connect to
+    all the other Tor relays, we need you to be able to use at least 1024 file
+    descriptors. This means we can't make use of Tor relays that are crippled
+    in this way.
+    </p>
 
+    <p>
+    We hope to fix this in the future, once we know how to build a Tor network
+    with restricted topologies -- that is, where each node connects to only a
+    few other nodes. But this is still a long way off.
+    </p>
 
     <hr>
 
-<a id="OfflineED25519"></a>
-<h3><a class="anchor" href="#OfflineED25519">How do offline ed25519
-identity keys work? What do I need to know?</a></h3>
-
-<p>
-As of Tor 0.2.7 offline ed25519 identity keys are supported. In simple words, it works like this:
-<ul>
-<li>there is a master ed25519 identity secret key file named
-"ed25519_master_id_secret_key". This is the most important one, so make
-sure you keep a backup in a secure place - the file is sensitive and
-should be protected. Tor could encrypt it for you if you generate it
-manually and enter a password when asked.</li>
-
-<li>a medium term signing key named "ed25519_signing_secret_key" is
-generated for Tor to use. Also, a certificate is generated named
-"ed25519_signing_cert" which is signed by the master identity secret key
-and confirms that the medium term signing key is valid for a certain
-period of time. The default validity is 30 days, but this can be
-customized by setting "SigningKeyLifetime N days|weeks|months" in
-torrc.</li>
-<li>there is also a master public key named
-"ed25519_master_id_public_key, which is the actual identity of the relay
-advertised in the network. This one is not sensitive and can be easily
-computed from "ed5519_master_id_secret_key".</li>
-</ul>
-Tor will only need access to the medium term signing key and certificate
-as long as they are valid, so the master identity secret key can be kept
-outside DataDirectory/keys, on a storage media or a different computer.
-You'll have to manually renew the medium term signing key and
-certificate before they expire otherwise the Tor process on the relay
-will exit upon expiration.
-</p>
-
-<p>
-This feature is optional, you don't need to use it unless you want to.
-If you want your relay to run unattended for longer time without having
-to manually do the medium term signing key renewal on regular basis,
-best to leave the master identity secret key in DataDirectory/keys, just
-make a backup in case you'll need to reinstall it.  If you want to use
-this feature, you can consult our <a
-href="https://trac.torproject.org/projects/tor/wiki/doc/TorRelaySecurity/OfflineKeys">more
-detailed guide</a> on the topic.
-</p>
-
-<hr>
-
-<a id="NTService"></a>
-<h3><a class="anchor" href="#NTService">How do I run my Tor relay as an NT
-service?</a></h3>
-
-<p>
- You can run Tor as a service on all versions of Windows except Windows
- 95/98/ME.
-</p>
-<p>
-If you've already configured your Tor to be a relay, please note that when
-you enable Tor as a service, it will use a different DatagDirectory, and
-thus will generate a different key. If you want to keep using the old key,
-see the Upgrading your Tor relay FAQ entry for how to restore the old
-identity key.
-</p>
-<p>
-To install Tor as a service, you can simply run:
-</p>
-<pre>
-tor --service install
-</pre>
-<p>
-A service called Tor Win32 Service will be installed and started. This
-service will also automatically start every time Windows boots, unless
-you change the Start-up type. An easy way to check the status of Tor,
-start or stop the service, and change the start-up type is by running
-services.msc and finding the Tor service in the list of currently
-installed services.
-</p>
-<p>
-Optionally, you can specify additional options for the Tor service using
-the -options argument. For example, if you want Tor to use C:\tor\torrc,
-instead of the default torrc, and open a control port on port 9151, you
-would run:
-</p>
-<pre>
-tor --service install -options -f C:\tor\torrc ControlPort 9151
-</pre>
-<p>
-You can also start or stop the Tor service from the command line by typing:
-</p>
-<pre>
- tor --service start
-</pre>
-<p>
-or
-</p>
-<pre>
- tor --service stop
-</pre>
-<p>
-To remove the Tor service, you can run the following command:
-</p>
-<pre>
-tor --service remove
-</pre>
-<p>
-If you are running Tor as a service and you want to uninstall Tor entirely,
-be sure to run the service removal command (shown above) first before
-running the uninstaller from "Add/Remove Programs". The uninstaller is
-currently not capable of removing the active service.
-</p>
-
-<hr>
-
-<a id="VirtualServer"></a>
-<h3><a class="anchor" href="#VirtualServer">Can I run a Tor relay from my
-virtual server account?</a></h3>
-
-<p>
-Some ISPs are selling "vserver" accounts that provide what they call a
-virtual server -- you can't actually interact with the hardware, and
-they can artificially limit certain resources such as the number of file
-descriptors you can open at once. Competent vserver admins are able to
-configure your server to not hit these limits. For example, in SWSoft's
-Virtuozzo, investigate /proc/user_beancounters. Look for "failcnt" in
-tcpsndbuf, tcprecvbuf, numothersock, and othersockbuf. Ask for these to
-be increased accordingly. Xen, Virtual Box and VMware virtual servers have no such limits normally.
-</p>
-<p>
-If the vserver admin will not increase system limits another option is
-to reduce the memory allocated to the send and receive buffers on TCP
-connections Tor uses. An experimental feature to constrain socket buffers
-has recently been added. If your version of Tor supports it, set
-"ConstrainedSockets 1" in your configuration. See the tor man page for
-additional details about this option.
-</p>
-<p>
-Unfortunately, since Tor currently requires you to be able to connect to
-all the other Tor relays, we need you to be able to use at least 1024 file
-descriptors. This means we can't make use of Tor relays that are crippled
-in this way.
-</p>
-<p>
-We hope to fix this in the future, once we know how to build a Tor network
-with restricted topologies -- that is, where each node connects to only a
-few other nodes. But this is still a long way off.
-</p>
-
-<hr>
-
-<a id="MultipleRelays"></a>
-<h3><a class="anchor" href="#MultipleRelays">I want to run more than one
-relay.</a></h3>
-
-<p>
-Great. If you want to run several relays to donate more to the network,
-we're happy with that. But please don't run more than a few dozen on
-the same network, since part of the goal of the Tor network is dispersal
-and diversity.
-</p>
-
-<p>
-If you do decide to run more than one relay, please set the "MyFamily"
-config option in the <a href="#torrc">torrc</a> of each relay, listing
-all the relays (comma-separated) that are under your control:
-</p>
-
-<pre>
+    <a id="MultipleRelays"></a>
+    <h3><a class="anchor" href="#MultipleRelays">I want to run more than one
+    relay.</a></h3>
+
+    <p>
+    Great. If you want to run several relays to donate more to the network,
+    we're happy with that. But please don't run more than a few dozen on
+    the same network, since part of the goal of the Tor network is dispersal
+    and diversity.
+    </p>
+
+    <p>
+    If you do decide to run more than one relay, please set the "MyFamily"
+    config option in the <a href="#torrc">torrc</a> of each relay, listing
+    all the relays (comma-separated) that are under your control:
+    </p>
+
+    <pre>
     MyFamily $fingerprint1,$fingerprint2,$fingerprint3
-</pre>
+    </pre>
 
-<p>
-where each fingerprint is the 40 character identity fingerprint (without
-spaces).
-</p>
+    <p>
+    where each fingerprint is the 40 character identity fingerprint (without
+    spaces).
+    </p>
 
-<p>
-That way clients will know to avoid using more than one of your relays
-in a single circuit. You should set MyFamily if you have administrative
-control of the computers or of their network, even if they're not all in
-the same geographic location.
-</p>
+    <p>
+    That way clients will know to avoid using more than one of your relays
+    in a single circuit. You should set MyFamily if you have administrative
+    control of the computers or of their network, even if they're not all in
+    the same geographic location.
+    </p>
 
     <hr>
 
@@ -2835,20 +2801,22 @@ the same geographic location.
     <h3><a class="anchor" href="#WrongIP">My relay is picking the wrong
     IP address.</a></h3>
     <p>
- Tor guesses its IP address by asking the computer for its hostname, and
- then resolving that hostname. Often people have old entries in their
- /etc/hosts file that point to old IP addresses.
+    Tor guesses its IP address by asking the computer for its hostname, and
+    then resolving that hostname. Often people have old entries in their
+    <var>/etc/hosts</var> file that point to old IP addresses.
     </p>
+
     <p>
-If that doesn't fix it, you should use the "Address" config option to
-specify the IP you want it to pick. If your computer is behind a NAT and
-it only has an internal IP address, see the following FAQ entry on <a
-href="#RelayFlexible">dynamic IP addresses</a>.
+    If that doesn't fix it, you should use the "Address" config option to
+    specify the IP you want it to pick. If your computer is behind a NAT and
+    it only has an internal IP address, see the following FAQ entry on
+    <a href="#RelayFlexible">dynamic IP addresses</a>.
     </p>
+
     <p>
-Also, if you have many addresses, you might also want to set
-"OutboundBindAddress" so external connections come from the IP you intend
-to present to the world.
+    Also, if you have many addresses, you might also want to set
+    "OutboundBindAddress" so external connections come from the IP you intend
+    to present to the world.
     </p>
 
     <hr>
@@ -2857,72 +2825,67 @@ to present to the world.
     <h3><a class="anchor" href="#BehindANAT">I'm behind a NAT/Firewall.</a></h3>
 
     <p>
-See <a>http://portforward.com/</a> for directions on how to port forward with
-your NAT/router device.
-</p>
-<p>
-If your relay is running on a internal net you need to setup port forwarding.
-Forwarding TCP connections is system dependent but the firewalled-clients FAQ
-entry offers some examples on how to do this.
-</p>
-<p>
-Also, here's an example of how you would do this on GNU/Linux if you're using
-iptables:
-</p>
-<pre>
-/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 9001 -j ACCEPT
-</pre>
-<p>
-You may have to change "eth0" if you have a different external interface
-(the one connected to the Internet). Chances are you have only one (except
-the loopback) so it shouldn't be too hard to figure out.
+    See <a href="http://portforward.com/">portforward.com</a> for directions on
+    how to port forward with your NAT/router device.
+    </p>
+
+    <p>
+    If your relay is running on a internal net you need to setup port
+    forwarding. Forwarding TCP connections is system dependent but the
+    firewalled-clients FAQ entry offers some examples on how to do this.
+    </p>
+
+    <p>
+    Also, here's an example of how you would do this on GNU/Linux if you're
+    using iptables:
+    </p>
+
+    <pre>
+    /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 9001 -j ACCEPT
+    </pre>
+
+    <p>
+    You may have to change "eth0" if you have a different external interface
+    (the one connected to the Internet). Chances are you have only one (except
+    the loopback) so it shouldn't be too hard to figure out.
     </p>
     <hr>
 
     <a id="RelayMemory"></a>
-    <h3><a class="anchor" href="#RelayMemory">Why is my Tor relay using
-so much memory?</a></h3>
+    <h3><a class="anchor" href="#RelayMemory">Why is my Tor relay using so much
+    memory?</a></h3>
 
-    <p>If your Tor relay is using more memory than you'd like, here are
-some
+    <p>If your Tor relay is using more memory than you'd like, here are some
     tips for reducing its footprint:
     </p>
 
     <ol>
     <li>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:
-    <tt>./configure --enable-openbsd-malloc</tt></li>
-
-    <li>If you're running a fast relay, meaning you have many TLS
-connections
+    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:
+    <tt>./configure --enable-openbsd-malloc</tt>
+    </li>
+    <li>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 <a href="https://lists.torproject.org/pipermail/tor-dev/2008-June/001519.html">release
-    unused buffer memory more aggressively</a>. If you update to OpenSSL
-    1.0.0 or newer, Tor's build process will automatically recognize and
-use
-    this feature.</li>
-
+    buffers (38KB+ per socket). We've patched OpenSSL to
+    <a href="https://lists.torproject.org/pipermail/tor-dev/2008-June/001519.html">
+    release unused buffer memory more aggressively</a>. If you update to
+    OpenSSL 1.0.0 or newer, Tor's build process will automatically recognize
+    and use this feature.
+    </li>
     <li>If you still can't handle the memory load, consider reducing the
-    amount of bandwidth your relay advertises. Advertising less
-bandwidth
+    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 <tt>MaxAdvertisedBandwidth</tt> option in the man
-    page.</li>
-
+    page.
+    </li>
     </ol>
 
     <p>
-    All of this said, fast Tor relays do use a lot of ram. It is not
-unusual
+    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.
     </p>
 
@@ -2933,35 +2896,40 @@ unusual
     if I run a relay?</a></h3>
 
     <p>
-Yes, you do get better anonymity against some attacks.
+    Yes, you do get better anonymity against some attacks.
     </p>
+
     <p>
-The simplest example is an attacker who owns a small number of Tor relays.
-They will see a connection from you, but they won't be able to know whether
-the connection originated at your computer or was relayed from somebody else.
+    The simplest example is an attacker who owns a small number of Tor relays.
+    They will see a connection from you, but they won't be able to know whether
+    the connection originated at your computer or was relayed from somebody
+    else.
     </p>
+
     <p>
-There are some cases where it doesn't seem to help: if an attacker can
-watch all of your incoming and outgoing traffic, then it's easy for them
-to learn which connections were relayed and which started at you. (In
-this case they still don't know your destinations unless they are watching
-them too, but you're no better off than if you were an ordinary client.)
+    There are some cases where it doesn't seem to help: if an attacker can
+    watch all of your incoming and outgoing traffic, then it's easy for them
+    to learn which connections were relayed and which started at you. (In
+    this case they still don't know your destinations unless they are watching
+    them too, but you're no better off than if you were an ordinary client.)
     </p>
+
     <p>
-There are also some downsides to running a Tor relay. First, while we
-only have a few hundred relays, the fact that you're running one might
-signal to an attacker that you place a high value on your anonymity.
-Second, there are some more esoteric attacks that are not as
-well-understood or well-tested that involve making use of the knowledge
-that you're running a relay -- for example, an attacker may be able to
-"observe" whether you're sending traffic even if they can't actually watch
-your network, by relaying traffic through your Tor relay and noticing
-changes in traffic timing.
+    There are also some downsides to running a Tor relay. First, while we
+    only have a few hundred relays, the fact that you're running one might
+    signal to an attacker that you place a high value on your anonymity.
+    Second, there are some more esoteric attacks that are not as
+    well-understood or well-tested that involve making use of the knowledge
+    that you're running a relay -- for example, an attacker may be able to
+    "observe" whether you're sending traffic even if they can't actually watch
+    your network, by relaying traffic through your Tor relay and noticing
+    changes in traffic timing.
     </p>
+
     <p>
-It is an open research question whether the benefits outweigh the risks.
-A lot of that depends on the attacks you are most worried about. For
-most users, we think it's a smart move.
+    It is an open research question whether the benefits outweigh the risks.
+    A lot of that depends on the attacks you are most worried about. For
+    most users, we think it's a smart move.
     </p>
 
     <hr>
@@ -2973,9 +2941,8 @@ most users, we think it's a smart move.
 
     <p><a href="https://exonerator.torproject.org/">
     Exonerator</a> is a web service that can check if an IP address was a
-    relay at a given time. We can also <a
-    href="<page about/contact>">provide a signed
-    letter</a> if needed.</p>
+    relay at a given time. We can also <a href="<page about/contact>">provide a
+    signed letter</a> if needed.</p>
 
     <hr>
 
@@ -2987,6 +2954,7 @@ most users, we think it's a smart move.
     Sure! We recommend these non-profit charities that are happy to turn
     your donations into better speed and anonymity for the Tor network:
     </p>
+
     <ul>
     <li><a href="https://www.torservers.net/">torservers.net</a>
     is a German charitable non-profit that runs a wide variety of
@@ -3004,15 +2972,13 @@ href="https://www.noisebridge.net/wiki/Noisebridge_Tor">Noisebridge</a>
 
     <p>
     These organizations are not the same as <a href="<page
-    donate/donate>">The Tor Project, Inc</a>, but we consider that a
-    good thing. They're run by nice people who are part of the
-    Tor community.
+    donate/donate>">The Tor Project, Inc</a>, but we consider that a good thing.
+    They're run by nice people who are part of the Tor community.
     </p>
 
     <p>
     Note that there can be a tradeoff here between anonymity and
-    performance. The Tor network's anonymity comes in part from
-diversity,
+    performance. The Tor network's anonymity comes in part from diversity,
     so if you are in a position to run your own relay, you will be
     improving Tor's anonymity more than by donating. At the same time
     though, economies
@@ -3024,9 +2990,9 @@ diversity,
 
     <hr>
 
-# Leaving in old ids to accomodate incoming links.
-<a id="TorOnionServices"></a><a id="TorHiddenServices"></a>
-<h2><a class="anchor" href="#TorOnionServices">Tor onion services:</a></h2>
+    <!-- Leaving in old id to accomodate incoming links. -->
+    <a id="TorOnionServices"></a><a id="TorHiddenServices"></a>
+    <h2><a class="anchor" href="#TorOnionServices">Tor onion services:</a></h2>
 
     <a id="AccessOnionServices"></a><a id="AccessHiddenServices"></a>
     <h3><a class="anchor" href="#AccessOnionServices">How do I access
@@ -3041,11 +3007,11 @@ diversity,
     request must get to the Tor network.
     </p>
 
-<p>
- Therefore, your application <b>needs</b> to pass the .onion hostname to
- Tor directly. You can't try to resolve it to an IP address, since there
- <i>is</i> no corresponding IP address.
-</p>
+    <p>
+    Therefore, your application <b>needs</b> to pass the .onion hostname to
+    Tor directly. You can't try to resolve it to an IP address, since there
+    <i>is</i> no corresponding IP address.
+    </p>
 
     <p>
     So, how do you make your application pass the hostname directly to Tor?
@@ -3271,7 +3237,8 @@ diversity,
     <hr>
 
     <a id="AnonymityAndSecurity"></a>
-    <h2><a class="anchor" href="#AnonymityAndSecurity">Anonymity And Security:</a></h2>
+    <h2><a class="anchor" href="#AnonymityAndSecurity">Anonymity And Security:
+    </a></h2>
 
     <a id="WhatProtectionsDoesTorProvide"></a>
     <h3><a class="anchor" href="#WhatProtectionsDoesTorProvide">What
@@ -3342,8 +3309,8 @@ diversity,
     <hr>
 
     <a id="CanExitNodesEavesdrop"></a>
-    <h3><a class="anchor" href="#CanExitNodesEavesdrop">Can exit nodes eavesdrop
-    on communications? Isn't that bad?</a></h3>
+    <h3><a class="anchor" href="#CanExitNodesEavesdrop">Can exit nodes
+    eavesdrop on communications? Isn't that bad?</a></h3>
 
     <p>
     Yes, the guy running the exit node can read the bytes that come in and
@@ -3356,8 +3323,9 @@ diversity,
     This is why you should always use end-to-end encryption such as SSL for
     sensitive Internet connections. (The corollary to this answer is that if
     you are worried about somebody intercepting your traffic and you're
-    *not* using end-to-end encryption at the application layer, then something
-    has already gone wrong and you shouldn't be thinking that Tor is the problem.)
+    *not* using end-to-end encryption at the application layer, then
+    something has already gone wrong and you shouldn't be thinking that Tor is
+    the problem.)
     </p>
 
     <hr>
@@ -3425,24 +3393,21 @@ diversity,
     <hr>
 
     <a id="KeyManagement"></a>
-    <h3><a class="anchor" href="#KeyManagement">Tell me about all the
-keys Tor uses.</a></h3>
+    <h3><a class="anchor" href="#KeyManagement">Tell me about all the keys Tor
+    uses.</a></h3>
 
     <p>
     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
+    talking to the relays they meant to talk to, and 3) signatures to make
     sure all clients know the same set of relays.
     </p>
 
     <p>
-    <b>Encryption</b>: first, all connections in Tor use TLS link
-encryption,
+    <b>Encryption</b>: 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
+    intended for. Further, the Tor client establishes an ephemeral encryption
     key with each relay in the circuit; these extra layers of encryption
     mean that only the exit relay can read
     the cells. Both sides discard the circuit key when the circuit ends,
@@ -3454,144 +3419,125 @@ encryption
     <b>Authentication</b>:
     Every Tor relay has a public decryption key called the "onion key".
     Each relay rotates its onion key once a week.
-    When the Tor client establishes circuits, at each step it <a
-
-href="<svnprojects>design-paper/tor-design.html#subsec:circuits">demands
-    that the Tor relay prove knowledge of its onion key</a>. That way
-    the first node in the path can't just spoof the rest of the path.
-    Because the Tor client chooses the path, it can make sure to get
-    Tor's "distributed trust" property: no single relay in the path can
-    know about both the client and what the client is doing.
+    When the Tor client establishes circuits, at each step it
+    <a href="<svnprojects>design-paper/tor-design.html#subsec:circuits">demands
+    that the Tor relay prove knowledge of its onion key</a>. That way the first
+    node in the path can't just spoof the rest of the path.
+    Because the Tor client chooses the path, it can make sure to get Tor's
+    "distributed trust" property: no single relay in the path can know about
+    both the client and what the client is doing.
     </p>
 
     <p>
     <b>Coordination</b>:
-    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 <a
-    href="<specblob>dir-spec.txt">provide a signed list</a>
-    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 majority of the directory authorities (as of 2012 there are 8
-    directory authorities), they can't trick the Tor client into using
-    other Tor relays.
-    </p>
-
-    <p>
-    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
+    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
+    <a href="<specblob>dir-spec.txt">provide a signed list</a>
+    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 majority of the directory authorities (as of 2012 there are 8 directory
+    authorities), they can't trick the Tor client into using other Tor relays.
+    </p>
+
+    <p>
+    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.
     </p>
 
     <p>
-    How do users know they've got the right software? When we distribute
-    the source code or a package, we digitally sign it with <a
-    href="http://www.gnupg.org/">GNU Privacy Guard</a>. See the <a
-    href="<page docs/verifying-signatures>">instructions
-    on how to check Tor's signatures</a>.
+    How do users know they've got the right software? When we distribute the
+    source code or a package, we digitally sign it with
+    <a href="http://www.gnupg.org/">GNU Privacy Guard</a>. See the
+    <a href="<page docs/verifying-signatures>">instructions on how to check
+    Tor's signatures</a>.
     </p>
 
     <p>
-    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
+    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.
     </p>
 
     <hr>
 
-<a id="EntryGuards"></a>
-<h3><a class="anchor" href="#EntryGuards">What are Entry
-Guards?</a></h3>
-
-<p>
-Tor (like all current practical low-latency anonymity designs) fails
-when the attacker can see both ends of the communications channel. For
-example, suppose the attacker controls or watches the Tor relay you
-choose
-to enter the network, and also controls or watches the website you
-visit. In
-this case, the research community knows no practical low-latency design
-that can reliably stop the attacker from correlating volume and timing
-information on the two sides.
-</p>
-
-<p>
-So, what should we do? Suppose the attacker controls, or can observe,
-<i>C</i> relays. Suppose there are <i>N</i> relays total. If you select
-new entry and exit relays each time you use the network, the attacker
-will be able to correlate all traffic you send with probability around
-<i>(c/n)<sup>2</sup></i>. But profiling is, for most users, as bad
-as being traced all the time: they want to do something often without
-an attacker noticing, and the attacker noticing once is as bad as the
-attacker noticing more often. Thus, choosing many random entries and
-exits
-gives the user no chance of escaping profiling by this kind of attacker.
-</p>
-
-<p>
-The solution is "entry guards": each Tor client selects a few relays at
-random
-to use as entry points, and uses only those relays for her first hop. If
-those relays are not controlled or observed, the attacker can't win,
-ever, and the user is secure. If those relays <i>are</i> observed or
-controlled by the attacker, the attacker sees a larger <i>fraction</i>
-of the user's traffic — but still the user is no more profiled
-than
-before. Thus, the user has some chance (on the order of <i>(n-c)/n</i>)
-of avoiding profiling, whereas she had none before.
-</p>
-
-<p>
-You can read more at <a href="http://freehaven.net/anonbib/#wright02">An
-Analysis of the Degradation of Anonymous Protocols</a>, <a
-href="http://freehaven.net/anonbib/#wright03">Defending Anonymous
-Communication Against Passive Logging Attacks</a>, and especially
-<a href="http://freehaven.net/anonbib/#hs-attack06">Locating Hidden
-Servers</a>.
-</p>
-
-<p>
-Restricting your entry nodes may also help against attackers who want
-to run a few Tor nodes and easily enumerate all of the Tor user IP
-addresses. (Even though they can't learn what destinations the users
-are talking to, they still might be able to do bad things with just a
-list of users.) However, that feature won't really become useful until
-we move to a "directory guard" design as well.
-</p>
+    <a id="EntryGuards"></a>
+    <h3><a class="anchor" href="#EntryGuards">What are Entry Guards?</a></h3>
+
+    <p>
+    Tor (like all current practical low-latency anonymity designs) fails
+    when the attacker can see both ends of the communications channel. For
+    example, suppose the attacker controls or watches the Tor relay you
+    choose to enter the network, and also controls or watches the website you
+    visit. In this case, the research community knows no practical low-latency
+    design that can reliably stop the attacker from correlating volume and
+    timing information on the two sides.
+    </p>
+
+    <p>
+    So, what should we do? Suppose the attacker controls, or can observe,
+    <i>C</i> relays. Suppose there are <i>N</i> relays total. If you select new
+    entry and exit relays each time you use the network, the attacker will be
+    able to correlate all traffic you send with probability around
+    <i>(c/n)<sup>2</sup></i>. But profiling is, for most users, as bad as being
+    traced all the time: they want to do something often without an attacker
+    noticing, and the attacker noticing once is as bad as the attacker noticing
+    more often. Thus, choosing many random entries and exits gives the user no
+    chance of escaping profiling by this kind of attacker.
+    </p>
+
+    <p>
+    The solution is "entry guards": each Tor client selects a few relays at
+    random to use as entry points, and uses only those relays for her first hop.
+    If those relays are not controlled or observed, the attacker can't win,
+    ever, and the user is secure. If those relays <i>are</i> observed or
+    controlled by the attacker, the attacker sees a larger <i>fraction</i>
+    of the user's traffic — but still the user is no more profiled than
+    before. Thus, the user has some chance (on the order of <i>(n-c)/n</i>)
+    of avoiding profiling, whereas she had none before.
+    </p>
+
+    <p>
+    You can read more at <a href="http://freehaven.net/anonbib/#wright02">
+    An Analysis of the Degradation of Anonymous Protocols</a>,
+    <a href="http://freehaven.net/anonbib/#wright03">Defending Anonymous 
+    Communication Against Passive Logging Attacks</a>, and especially
+    <a href="http://freehaven.net/anonbib/#hs-attack06">
+    Locating Hidden Servers</a>.
+    </p>
+
+    <p>
+    Restricting your entry nodes may also help against attackers who want
+    to run a few Tor nodes and easily enumerate all of the Tor user IP
+    addresses. (Even though they can't learn what destinations the users
+    are talking to, they still might be able to do bad things with just a
+    list of users.) However, that feature won't really become useful until
+    we move to a "directory guard" design as well.
+    </p>
 
     <hr>
 
     <a id="ChangePaths"></a>
-    <h3><a class="anchor" href="#ChangePaths">How often does Tor change its paths?</a></h3>
+    <h3><a class="anchor" href="#ChangePaths">How often does Tor change its
+    paths?</a></h3>
     <p>
      Tor will reuse the same circuit for new TCP streams for 10 minutes,
      as long as the circuit is working fine. (If the circuit fails, Tor
      will switch to a new circuit immediately.)
     </p>
+
     <p>
-But note that a single TCP stream (e.g. a long IRC connection) will stay on
-the same circuit forever -- we don't rotate individual streams from one
-circuit to the next. Otherwise an adversary with a partial view of the
-network would be given many chances over time to link you to your
-destination, rather than just one chance.
+    But note that a single TCP stream (e.g. a long IRC connection) will stay on
+    the same circuit forever -- we don't rotate individual streams from one
+    circuit to the next. Otherwise an adversary with a partial view of the
+    network would be given many chances over time to link you to your
+    destination, rather than just one chance.
     </p>
 
     <hr>
@@ -3606,20 +3552,22 @@ destination, rather than just one chance.
      future -- if this increased bandwidth use is prohibitive for you, I'm
      afraid Tor is not useful for you right now.
     </p>
+
     <p>
-The actual content of these fixed size cells is
-<a href="https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt">
-documented in the main Tor spec</a>, section 3.
+    The actual content of these fixed size cells is
+    <a href="https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt">
+    documented in the main Tor spec</a>, section 3.
     </p>
+
     <p>
-We have been considering one day adding two classes of cells -- maybe a 64
-byte cell and a 1024 byte cell. This would allow less overhead for
-interactive streams while still allowing good throughput for bulk streams.
-But since we want to do a lot of work on quality-of-service and better
-queuing approaches first, you shouldn't expect this change anytime soon
-(if ever). However if you are keen, there are a couple of
-<a href="<page getinvolved/volunteer>#Research">
-research ideas</a> that may involve changing the cell size.
+    We have been considering one day adding two classes of cells -- maybe a 64
+    byte cell and a 1024 byte cell. This would allow less overhead for
+    interactive streams while still allowing good throughput for bulk streams.
+    But since we want to do a lot of work on quality-of-service and better
+    queuing approaches first, you shouldn't expect this change anytime soon
+    (if ever). However if you are keen, there are a couple of
+    <a href="<page getinvolved/volunteer>#Research"> research ideas</a>
+    that may involve changing the cell size.
     </p>
 
     <hr>
@@ -3638,26 +3586,28 @@ research ideas</a> that may involve changing the cell size.
     <h3><a class="anchor" href="#PowerfulBlockers">What about powerful blocking
     mechanisms?</a></h3>
     <p>
- An adversary with a great deal of manpower and money, and severe
- real-world penalties to discourage people from trying to evade detection,
- is a difficult test for an anonymity and anti-censorship system.
+    An adversary with a great deal of manpower and money, and severe
+    real-world penalties to discourage people from trying to evade detection,
+    is a difficult test for an anonymity and anti-censorship system.
     </p>
+
     <p>
-The original Tor design was easy to block if the attacker controls Alice's
-connection to the Tor network --- by blocking the directory authorities, by
-blocking all the relay IP addresses in the directory, or by filtering based
-on the fingerprint of the Tor TLS handshake. After seeing these attacks and
-others first-hand, more effort was put into researching new circumvention
-techniques. Pluggable transports are protocols designed to allow users behind
-government firewalls to access the Tor network.
+    The original Tor design was easy to block if the attacker controls Alice's
+    connection to the Tor network --- by blocking the directory authorities, by
+    blocking all the relay IP addresses in the directory, or by filtering based
+    on the fingerprint of the Tor TLS handshake. After seeing these attacks and
+    others first-hand, more effort was put into researching new circumvention
+    techniques. Pluggable transports are protocols designed to allow users
+    behind government firewalls to access the Tor network.
     </p>
+
     <p>
-We've made quite a bit of progress on this problem lately. You can read more
-details on the <a href="<page docs/pluggable-transports>">
-pluggable transports page</a>. You may also be interested in
-<a href="https://www.youtube.com/watch?v=GwMr8Xl7JMQ">Roger and Jake's talk at
-28C3</a>, or <a href="https://www.youtube.com/watch?v=JZg1nqs793M">Runa's
-talk at 44con</a>.
+    We've made quite a bit of progress on this problem lately. You can read
+    more details on the <a href="<page docs/pluggable-transports>">
+    pluggable transports page</a>. You may also be interested in
+    <a href="https://www.youtube.com/watch?v=GwMr8Xl7JMQ">Roger and Jake's talk
+    at 28C3</a>, or <a href="https://www.youtube.com/watch?v=JZg1nqs793M">
+    Runa's talk at 44con</a>.
     </p>
 
     <hr>
@@ -3665,25 +3615,28 @@ talk at 44con</a>.
     <a id="RemotePhysicalDeviceFingerprinting"></a>
     <h3><a class="anchor" href="#RemotePhysicalDeviceFingerprinting">Does Tor
     resist "remote physical device fingerprinting"?</a></h3>
+
+    <p>
+    Yes, we resist all of these attacks as far as we know.
+    </p>
+
+    <p>
+    These attacks come from examining characteristics of the IP headers or TCP
+    headers and looking for information leaks based on individual hardware
+    signatures. One example is the
+    <a href="http://www.caida.org/outreach/papers/2005/fingerprinting/">
+    Oakland 2005 paper</a> that lets you learn if two packet streams originated
+    from the same hardware, but only if you can see the original TCP timestamps.
+    </p>
+
     <p>
- Yes, we resist all of these attacks as far as we know.
-    </p>
-    <p>
-These attacks come from examining characteristics of the IP headers or TCP
-headers and looking for information leaks based on individual hardware
-signatures. One example is the
-<a href="http://www.caida.org/outreach/papers/2005/fingerprinting/">
-Oakland 2005 paper</a> that lets you learn if two packet streams originated
-from the same hardware, but only if you can see the original TCP timestamps.
-</p>
-<p>
-Tor transports TCP streams, not IP packets, so we end up automatically
-scrubbing a lot of the potential information leaks. Because Tor relays use
-their own (new) IP and TCP headers at each hop, this information isn't
-relayed from hop to hop. Of course, this also means that we're limited in
-the protocols we can transport (only correctly-formed TCP, not all IP like
-ZKS's Freedom network could) -- but maybe that's a good thing at this stage.
-</p>
+    Tor transports TCP streams, not IP packets, so we end up automatically
+    scrubbing a lot of the potential information leaks. Because Tor relays use
+    their own (new) IP and TCP headers at each hop, this information isn't
+    relayed from hop to hop. Of course, this also means that we're limited in
+    the protocols we can transport (only correctly-formed TCP, not all IP like
+    ZKS's Freedom network could) -- but maybe that's a good thing at this stage.
+    </p>
 
     <hr>
 
@@ -3691,10 +3644,12 @@ ZKS's Freedom network could) -- but maybe that's a good thing at this stage.
     <h3><a class="anchor" href="#IsTorLikeAVPN">Is Tor like a VPN?</a></h3>
 
     <p>
-    <b>Do not use a VPN as an <a href="http://www.nbcnews.com/news/investigations/war-anonymous-british-spies-attacked-hackers-snowden-docs-show-n21361">anonymity solution</a>.</b>
+    <b>Do not use a VPN as an
+    <a href="http://www.nbcnews.com/news/investigations/war-anonymous-british-spies-attacked-hackers-snowden-docs-show-n21361">
+    anonymity solution</a>.</b>
     If you're looking for a trusted entry into the Tor network, or if you want
-    to obscure the fact that you're using Tor, <a
-    href="https://www.torproject.org/docs/bridges#RunningABridge">setting up
+    to obscure the fact that you're using Tor,
+    <a href="https://www.torproject.org/docs/bridges#RunningABridge">setting up
     a private server as a bridge</a> works quite well.
     </p>
 
@@ -3725,12 +3680,12 @@ ZKS's Freedom network could) -- but maybe that's a good thing at this stage.
     When you use Tor the IP address you connect to changes at most every 10
     minutes, and often more frequently than that. This makes it extremely
     dificult for websites to create any sort of persistent profile of Tor
-    users (assuming you did not <a
-    href="<page download/download>#warning">identify
-    yourself in other ways</a>). No one Tor relay can know enough
-    information to compromise any Tor user because of Tor's <a
-    href="<page about/overview>#thesolution">encrypted
-    three-hop circuit</a> design.
+    users (assuming you did not
+    <a href="<page download/download>#warning">identify yourself in other
+    ways</a>). No one Tor relay can know enough information to compromise any
+    Tor user because of Tor's
+    <a href="<page about/overview>#thesolution">encrypted three-hop circuit</a>
+    design.
     </p>
 
     <hr>
@@ -3749,11 +3704,12 @@ ZKS's Freedom network could) -- but maybe that's a good thing at this stage.
     as well as the IP address that proxy hop received traffic from.
     </p>
     <p>
-    Because the <a
-    href="https://gitweb.torproject.org/torspec.git?a=blob_plain;hb=HEAD;f=tor-spec.txt">
+    Because the
+    <a href="https://gitweb.torproject.org/torspec.git?a=blob_plain;hb=HEAD;f=tor-spec.txt">
     Tor protocol</a> requires encrypted relay-to-relay connections, not
     even a misbehaving relay can see the entire path of any Tor user.
     </p>
+
     <p>
     While Tor relays are run by volunteers and checked periodically for
     suspicious behavior, many open proxies that can be found with a search
@@ -3763,26 +3719,27 @@ ZKS's Freedom network could) -- but maybe that's a good thing at this stage.
 
     <hr>
 
-
-<a id="AttacksOnOnionRouting"></a>
+    <a id="AttacksOnOnionRouting"></a>
     <h3><a class="anchor" href="#AttacksOnOnionRouting">What attacks remain
     against onion routing?</a></h3>
     <p>
-As mentioned above, it is possible for an observer who can view both you and
-either the destination website or your Tor exit node to correlate timings of
-your traffic as it enters the Tor network and also as it exits. Tor does not
-defend against such a threat model.
+    As mentioned above, it is possible for an observer who can view both you and
+    either the destination website or your Tor exit node to correlate timings of
+    your traffic as it enters the Tor network and also as it exits. Tor does not
+    defend against such a threat model.
     </p>
+
     <p>
-In a more limited sense, note that if a censor or law enforcement agency has
-the ability to obtain specific observation of parts of the network, it is
-possible for them to verify a suspicion that you talk regularly to your friend
-by observing traffic at both ends and correlating the timing of only that
-traffic. Again, this is only useful to verify that parties already suspected
-of communicating with one another are doing so. In most countries, the
-suspicion required to obtain a warrant already carries more weight than
-timing correlation would provide.
+    In a more limited sense, note that if a censor or law enforcement agency has
+    the ability to obtain specific observation of parts of the network, it is
+    possible for them to verify a suspicion that you talk regularly to your
+    friend by observing traffic at both ends and correlating the timing of only
+    that traffic. Again, this is only useful to verify that parties already
+    suspected of communicating with one another are doing so. In most countries,
+    the suspicion required to obtain a warrant already carries more weight than
+    timing correlation would provide.
     </p>
+
     <p>
 Furthermore, since Tor reuses circuits for multiple TCP connections, it is
 possible to associate non anonymous and anonymous traffic at a given exit
@@ -3793,11 +3750,13 @@ Perhaps even run separate Tor clients for these applications.
     <hr>
 
     <a id="LearnMoreAboutAnonymity"></a>
-    <h3><a class="anchor" href="#LearnMoreAboutAnonymity">Where can I
-    learn more about anonymity?</a></h3>
+    <h3><a class="anchor" href="#LearnMoreAboutAnonymity">Where can I learn
+    more about anonymity?</a></h3>
 
     <p>
-    <a href="http://freehaven.net/anonbib/topic.html#Anonymous_20communication">Read these papers</a> (especially the ones in boxes) to get up to speed on anonymous communication systems.
+    <a href="http://freehaven.net/anonbib/topic.html#Anonymous_20communication">
+    Read these papers</a> (especially the ones in boxes) to get up to speed on
+    anonymous communication systems.
     </p>
 
     <hr>
@@ -3806,65 +3765,50 @@ Perhaps even run separate Tor clients for these applications.
     <h2><a class="anchor" href="#AlternateDesigns">Alternate designs:</a></h2>
 
     <a id="EverybodyARelay"></a>
-    <h3><a class="anchor" href="#EverybodyARelay">You should make every
-Tor user be a relay.</a></h3>
-
-    <p>
-    Requiring every Tor user to be a relay would help with scaling the
-    network to handle all our users, and <a
-    href="#BetterAnonymity">running a Tor
-    relay may help your anonymity</a>. 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
+    <h3><a class="anchor" href="#EverybodyARelay">You should make every Tor
+    user be a relay.</a></h3>
+
+    <p>
+    Requiring every Tor user to be a relay would help with scaling the network
+    to handle all our users, and <a href="#BetterAnonymity">running a Tor relay
+    may help your anonymity</a>. 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.
     </p>
 
     <p>
-    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:
-    Tor is good at automatically detecting whether it's
-reachable and
-    how much bandwidth it can offer.
+    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: Tor is good at automatically detecting whether it's reachable
+    and how much bandwidth it can offer.
     </p>
 
     <p>
-    There are five steps we need to address before we can do this
-though:
+    There are five steps we need to address before we can do this though:
     </p>
 
     <p>
-    First, we need to make Tor stable as a relay on all common
-    operating systems. The main remaining platform is Windows,
-    and we're mostly there. See Section 4.1 of <a
-    href="https://www.torproject.org/press/2008-12-19-roadmap-press-release"
->our
-    development roadmap</a>.
+    First, we need to make Tor stable as a relay on all common operating
+    systems. The main remaining platform is Windows, and we're mostly there.
+    See Section 4.1 of
+    <a href="https://www.torproject.org/press/2008-12-19-roadmap-press-release">
+    our development roadmap</a>.
     </p>
 
     <p>
-    Second, we still need to get better at automatically estimating
-    the right amount of bandwidth to allow. See item #7 on the
-    <a href="<page getinvolved/volunteer>#Research">research section of
-the
-    volunteer page</a>: "Tor doesn't work very well when relays
-    have asymmetric bandwidth (e.g. cable or DSL)". It might be that <a
-    href="<page docs/faq>#TransportIPnotTCP">switching
-    to UDP transport</a> is the simplest answer here — which alas
-is
-    not a very simple answer at all.
+    Second, we still need to get better at automatically estimating the right
+    amount of bandwidth to allow. See item #7 on the
+    <a href="<page getinvolved/volunteer>#Research">research section of the
+    volunteer page</a>: "Tor doesn't work very well when relays have asymmetric
+    bandwidth (e.g. cable or DSL)". It might be that
+    <a href="<page docs/faq>#TransportIPnotTCP">switching to UDP transport</a>
+    is the simplest answer here — which alas is not a very simple answer
+    at all.
     </p>
 
     <p>
@@ -3885,213 +3829,206 @@ is
     href="http://freehaven.net/anonbib/#clog-the-queue">different</a>
     <a href="http://freehaven.net/anonbib/#torta05">research</a> 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
-    <a href="<page docs/bridges>">bridge relays</a> or as normal
-relays), then
-    we need to understand this threat better and learn how to mitigate
-it.
+    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
+    <a href="<page docs/bridges>">bridge relays</a> or as normal relays), then
+    we need to understand this threat better and learn how to mitigate it.
     </p>
 
     <p>
-    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
-    <a href="<blog>two-incentive-designs-tor">current
-    thoughts on Tor incentives</a>.
+    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
+    <a href="<blog>two-incentive-designs-tor">current thoughts on Tor
+    incentives</a>.
     </p>
 
     <p>
     Please help on all of these!
     </p>
 
-<hr>
-
-<a id="TransportIPnotTCP"></a>
-<h3><a class="anchor" href="#TransportIPnotTCP">You should transport all
-IP packets, not just TCP packets.</a></h3>
-
-<p>
-This would be handy, because it would make Tor better able to handle
-new protocols like VoIP, it could solve the whole need to socksify
-applications, and it would solve the fact that exit relays need to
-allocate a lot of file descriptors to hold open all the exit
-connections.
-</p>
-
-<p>
-We're heading in this direction: see <a
-href="https://trac.torproject.org/projects/tor/ticket/1855">this trac
-ticket</a> for directions we should investigate. Some of the hard
-problems are:
-</p>
-
-<ol>
-<li>IP packets reveal OS characteristics. We would still need to do
-IP-level packet normalization, to stop things like TCP fingerprinting
-attacks. Given the diversity and complexity of TCP stacks, along with <a
-href="#RemotePhysicalDeviceFingerprinting">device
-fingerprinting attacks</a>, it looks like our best bet is shipping our
-own user-space TCP stack.
-</li>
-<li>Application-level streams still need scrubbing. We will still need
-user-side applications like Torbutton. So it won't become just a matter
-of capturing packets and anonymizing them at the IP layer.
-</li>
-<li>Certain protocols will still leak information. For example, we must
-rewrite DNS requests so they are delivered to an unlinkable DNS server
-rather than the DNS server at a user's ISP; thus, we must understand
-the protocols we are transporting.
-</li>
-<li><a
-href="http://crypto.stanford.edu/~nagendra/projects/dtls/dtls.html">DTLS
-</a>
-(datagram TLS) basically has no users, and IPsec sure is big. Once we've
-picked a transport mechanism, we need to design a new end-to-end Tor
-protocol for avoiding tagging attacks and other potential anonymity and
-integrity issues now that we allow drops, resends, et cetera.
-</li>
-<li>Exit policies for arbitrary IP packets mean building a secure
-IDS. Our node operators tell us that exit policies are one of the main
-reasons they're willing to run Tor. Adding an Intrusion Detection System
-to handle exit policies would increase the security complexity of Tor,
-and would likely not work anyway, as evidenced by the entire field of
-IDS
-and counter-IDS papers. Many potential abuse issues are resolved by the
-fact that Tor only transports valid TCP streams (as opposed to arbitrary
-IP including malformed packets and IP floods), so exit policies become
-even <i>more</i> important as we become able to transport IP packets. We
-also need to compactly describe exit policies in the Tor directory,
-so clients can predict which nodes will allow their packets to exit
-—
-and clients need to predict all the packets they will want to send in
-a session before picking their exit node!
-</li>
-<li>The Tor-internal name spaces would need to be redesigned. We support
-onion service ".onion" addresses by intercepting the addresses when
-they are passed to the Tor client. Doing so at the IP level will require
-a more complex interface between Tor and the local DNS resolver.
-</li>
-</ol>
-
-<hr>
-
-<a id="HideExits"></a>
-<h3><a class="anchor" href="#HideExits">You should hide the list of Tor
-relays, so people can't block the exits.</a></h3>
-
-<p>
-There are a few reasons we don't:
-</p>
-
-<ol>
-<li>We can't help but make the information available, since Tor clients
-need to use it to pick their paths. So if the "blockers" want it, they
-can get it anyway. Further, even if we didn't tell clients about the
-list of relays directly, somebody could still make a lot of connections
-through Tor to a test site and build a list of the addresses they see.
-</li>
-
-<li>If people want to block us, we believe that they should be allowed
-to
-do so.  Obviously, we would prefer for everybody to allow Tor users to
-connect to them, but people have the right to decide who their services
-should allow connections from, and if they want to block anonymous
-users,
-they can.
-</li>
-
-<li>Being blockable also has tactical advantages: it may be a persuasive
-response to website maintainers who feel threatened by Tor. Giving them
-the option may inspire them to <a href="<page docs/faq-abuse>#Bans">stop
-and think</a> about whether they really want to eliminate private access
-to their system, and if not, what other options they might have. The
-time they might otherwise have spent blocking Tor, they may instead
-spend rethinking their overall approach to privacy and anonymity.
-</li>
-</ol>
+    <hr>
+
+    <a id="TransportIPnotTCP"></a>
+    <h3><a class="anchor" href="#TransportIPnotTCP">You should transport all
+    IP packets, not just TCP packets.</a></h3>
+
+    <p>
+    This would be handy, because it would make Tor better able to handle
+    new protocols like VoIP, it could solve the whole need to socksify
+    applications, and it would solve the fact that exit relays need to
+    allocate a lot of file descriptors to hold open all the exit
+    connections.
+    </p>
+
+    <p>
+    We're heading in this direction: see
+    <a href="https://trac.torproject.org/projects/tor/ticket/1855">this trac
+    ticket</a> for directions we should investigate. Some of the hard problems
+    are:
+    </p>
+
+    <ol>
+    <li>IP packets reveal OS characteristics. We would still need to do
+    IP-level packet normalization, to stop things like TCP fingerprinting
+    attacks. Given the diversity and complexity of TCP stacks, along with
+    <a href="#RemotePhysicalDeviceFingerprinting">device fingerprinting
+    attacks</a>, it looks like our best bet is shipping our own user-space TCP
+    stack.
+    </li>
+    <li>Application-level streams still need scrubbing. We will still need
+    user-side applications like Torbutton. So it won't become just a matter
+    of capturing packets and anonymizing them at the IP layer.
+    </li>
+    <li>Certain protocols will still leak information. For example, we must
+    rewrite DNS requests so they are delivered to an unlinkable DNS server
+    rather than the DNS server at a user's ISP; thus, we must understand
+    the protocols we are transporting.
+    </li>
+    <li><a href="http://crypto.stanford.edu/~nagendra/projects/dtls/dtls.html">
+    DTLS</a> (datagram TLS) basically has no users, and IPsec sure is big. Once
+    we've picked a transport mechanism, we need to design a new end-to-end Tor
+    protocol for avoiding tagging attacks and other potential anonymity and
+    integrity issues now that we allow drops, resends, et cetera.
+    </li>
+    <li>Exit policies for arbitrary IP packets mean building a secure IDS. Our
+    node operators tell us that exit policies are one of the main reasons
+    they're willing to run Tor. Adding an Intrusion Detection System to handle
+    exit policies would increase the security complexity of Tor, and would
+    likely not work anyway, as evidenced by the entire field of IDS and
+    counter-IDS papers. Many potential abuse issues are resolved by the fact
+    that Tor only transports valid TCP streams (as opposed to arbitrary IP
+    including malformed packets and IP floods), so exit policies become even
+    <i>more</i> important as we become able to transport IP packets. We also
+    need to compactly describe exit policies in the Tor directory, so clients
+    can predict which nodes will allow their packets to exit — and
+    clients need to predict all the packets they will want to send in a session
+    before picking their exit node!
+    </li>
+    <li>The Tor-internal name spaces would need to be redesigned. We support
+    onion service ".onion" addresses by intercepting the addresses when they
+    are passed to the Tor client. Doing so at the IP level will require a more
+    complex interface between Tor and the local DNS resolver.
+    </li>
+    </ol>
+
+    <hr>
+
+    <a id="HideExits"></a>
+    <h3><a class="anchor" href="#HideExits">You should hide the list of Tor
+    relays, so people can't block the exits.</a></h3>
+
+    <p>
+    There are a few reasons we don't:
+    </p>
+
+    <ol>
+    <li>We can't help but make the information available, since Tor clients
+    need to use it to pick their paths. So if the "blockers" want it, they
+    can get it anyway. Further, even if we didn't tell clients about the
+    list of relays directly, somebody could still make a lot of connections
+    through Tor to a test site and build a list of the addresses they see.
+    </li>
+
+    <li>If people want to block us, we believe that they should be allowed to
+    do so.  Obviously, we would prefer for everybody to allow Tor users to
+    connect to them, but people have the right to decide who their services
+    should allow connections from, and if they want to block anonymous users,
+    they can.
+    </li>
+
+    <li>Being blockable also has tactical advantages: it may be a persuasive
+    response to website maintainers who feel threatened by Tor. Giving them
+    the option may inspire them to <a href="<page docs/faq-abuse>#Bans">stop
+    and think</a> about whether they really want to eliminate private access
+    to their system, and if not, what other options they might have. The
+    time they might otherwise have spent blocking Tor, they may instead
+    spend rethinking their overall approach to privacy and anonymity.
+    </li>
+    </ol>
 
     <hr>
 
-<a id="ChoosePathLength"></a>
-<h3><a class="anchor" href="#ChoosePathLength">You should let people choose
-their path length.</a></h3>
-<p>
- Right now the path length is hard-coded at 3 plus the number of nodes in
- your path that are sensitive. That is, in normal cases it's 3, but for
- example if you're accessing an onion service or a ".exit" address it could be 4.
-</p>
-<p>
- We don't want to encourage people to use paths longer than this — it
- increases load on the network without (as far as we can tell) providing
- any more security. Remember that
-<a href="https://svn.torproject.org/svn/projects/design-paper/tor-design.html#subsec:threat-model">the
-best way to attack Tor is to attack the endpoints and ignore the middle
- of the path</a>.
- Also, using paths longer than 3 could harm anonymity, first because
- it makes <a href="http://freehaven.net/anonbib/#ccs07-doa">"denial of
- security"</a> attacks easier, and second because it could act as an
- identifier if only a few people do it ("Oh, there's that person who
- changed her path length again").
-</p>
-<p>
- And we don't want to encourage people to use paths of length 1 either.
- Currently there is no reason to suspect that investigating a single
- relay will yield user-destination pairs, but if many people are using
- only a single hop, we make it more likely that attackers will seize or
- break into relays in hopes of tracing users.
-</p>
-<p>
- Now, there is a good argument for making the number of hops in a path
- unpredictable. For example, somebody who happens to control the last
- two hops in your path still doesn't know who you are, but they know
- for sure which entry node you used. Choosing path length from, say,
- a geometric distribution will turn this into a statistical attack,
- which seems to be an improvement. On the other hand, a longer path
- length is bad for usability, and without further protections it seems
- likely that an adversary can estimate your path length anyway. We're
- not sure of the right trade-offs here. Please write a research paper
- that tells us what to do.
-</p>
+    <a id="ChoosePathLength"></a>
+    <h3><a class="anchor" href="#ChoosePathLength">You should let people choose
+    their path length.</a></h3>
+    <p>
+    Right now the path length is hard-coded at 3 plus the number of nodes in
+    your path that are sensitive. That is, in normal cases it's 3, but for
+    example if you're accessing an onion service or a ".exit" address it could
+    be 4.
+    </p>
+
+    <p>
+    We don't want to encourage people to use paths longer than this — it
+    increases load on the network without (as far as we can tell) providing
+    any more security. Remember that
+    <a href="https://svn.torproject.org/svn/projects/design-paper/tor-design.html#subsec:threat-model">
+    the best way to attack Tor is to attack the endpoints and ignore the middle
+    of the path</a>.
+    Also, using paths longer than 3 could harm anonymity, first because it makes
+    <a href="http://freehaven.net/anonbib/#ccs07-doa">"denial of security"</a>
+    attacks easier, and second because it could act as an  identifier if only a
+    few people do it ("Oh, there's that person who changed her path length
+    again").
+    </p>
+
+    <p>
+    And we don't want to encourage people to use paths of length 1 either.
+    Currently there is no reason to suspect that investigating a single relay
+    will yield user-destination pairs, but if many people are using only a
+    single hop, we make it more likely that attackers will seize or break into
+    relays in hopes of tracing users.
+    </p>
+
+    <p>
+    Now, there is a good argument for making the number of hops in a path
+    unpredictable. For example, somebody who happens to control the last
+    two hops in your path still doesn't know who you are, but they know
+    for sure which entry node you used. Choosing path length from, say,
+    a geometric distribution will turn this into a statistical attack,
+    which seems to be an improvement. On the other hand, a longer path
+    length is bad for usability, and without further protections it seems
+    likely that an adversary can estimate your path length anyway. We're
+    not sure of the right trade-offs here. Please write a research paper
+    that tells us what to do.
+    </p>
 
     <hr>
 
-<a id="SplitEachConnection"></a>
+    <a id="SplitEachConnection"></a>
     <h3><a class="anchor" href="#SplitEachConnection">You should split
     each connection over many paths.</a></h3>
 
     <p>
- We don't currently think this is a good idea. You see, the attacks we're
- worried about are at the endpoints: the adversary watches Alice (or the
- first hop in the path) and Bob (or the last hop in the path) and learns
- that they are communicating.
+    We don't currently think this is a good idea. You see, the attacks we're
+    worried about are at the endpoints: the adversary watches Alice (or the
+    first hop in the path) and Bob (or the last hop in the path) and learns
+    that they are communicating.
     </p>
+
     <p>
-If we make the assumption that timing attacks work well on even a few packets
-end-to-end, then having *more* possible ways for the adversary to observe the
-connection seems to hurt anonymity, not help it.
+    If we make the assumption that timing attacks work well on even a few
+    packets end-to-end, then having *more* possible ways for the adversary to
+    observe the connection seems to hurt anonymity, not help it.
     </p>
+
     <p>
-Now, it's possible that we could make ourselves more resistant to end-to-end
-attacks with a little bit of padding and by making each circuit send and
-receive a fixed number of cells. This approach is more well-understood in
-the context of high-latency systems. See e.g.
-<a href="http://freehaven.net/anonbib/#pet05-serjantov">
-Message Splitting Against the Partial Adversary by Andrei Serjantov and
-Steven J. Murdoch</a>.
+    Now, it's possible that we could make ourselves more resistant to
+    end-to-end attacks with a little bit of padding and by making each circuit
+    send and receive a fixed number of cells. This approach is more
+    well-understood in the context of high-latency systems. See e.g.
+    <a href="http://freehaven.net/anonbib/#pet05-serjantov">
+    Message Splitting Against the Partial Adversary by Andrei Serjantov and
+    Steven J. Murdoch</a>.
     </p>
+
     <p>
-But since we don't currently understand what network and padding
-parameters, if any, could provide increased end-to-end security, our
-current strategy is to minimize the number of places that the adversary
-could possibly see.
+    But since we don't currently understand what network and padding
+    parameters, if any, could provide increased end-to-end security, our
+    current strategy is to minimize the number of places that the adversary
+    could possibly see.
     </p>
 
     <hr>
@@ -4151,18 +4088,19 @@ could possibly see.
     policy should block unallocated net blocks too.</a></h3>
 
     <p>
- No, it shouldn't. The default exit policy blocks certain private net blocks,
- like 10.0.0.0/8, because they might actively be in use by Tor relays and we
- don't want to cause any surprises by bridging to internal networks. Some
- overzealous firewall configs suggest that you also block all the parts of
- the Internet that IANA has not currently allocated. First, this turns into
- a problem for them when those addresses *are* allocated. Second, why should
- we default-reject something that might one day be useful?
+    No, it shouldn't. The default exit policy blocks certain private net blocks,
+    like 10.0.0.0/8, because they might actively be in use by Tor relays and we
+    don't want to cause any surprises by bridging to internal networks. Some
+    overzealous firewall configs suggest that you also block all the parts of
+    the Internet that IANA has not currently allocated. First, this turns into
+    a problem for them when those addresses *are* allocated. Second, why should
+    we default-reject something that might one day be useful?
     </p>
+
     <p>
-Tor's default exit policy is chosen to be flexible and useful in the future:
-we allow everything except the specific addresses and ports that we
-anticipate will lead to problems.
+    Tor's default exit policy is chosen to be flexible and useful in the future:
+    we allow everything except the specific addresses and ports that we
+    anticipate will lead to problems.
     </p>
 
     <hr>
@@ -4172,23 +4110,25 @@ anticipate will lead to problems.
     able to block websites, not just IP addresses.</a></h3>
 
     <p>
- It would be nice to let relay operators say things like "reject
- www.slashdot.org" in their exit policies, rather than requiring
- them to learn all the IP address space that could be covered by the site
- (and then also blocking other sites at those IP addresses).
+    It would be nice to let relay operators say things like "reject
+    www.slashdot.org" in their exit policies, rather than requiring
+    them to learn all the IP address space that could be covered by the site
+    (and then also blocking other sites at those IP addresses).
     </p>
+
     <p>
-There are two problems, though. First, users could still get around these
-blocks. For example, they could request the IP address rather than the
-hostname when they exit from the Tor network. This means operators would
-still need to learn all the IP addresses for the destinations in question.
+    There are two problems, though. First, users could still get around these
+    blocks. For example, they could request the IP address rather than the
+    hostname when they exit from the Tor network. This means operators would
+    still need to learn all the IP addresses for the destinations in question.
     </p>
+
     <p>
-The second problem is that it would allow remote attackers to censor
-arbitrary sites. For example, if a Tor operator blocks www1.slashdot.org,
-and then some attacker poisons the Tor relay's DNS or otherwise changes
-that hostname to resolve to the IP address for a major news site, then
-suddenly that Tor relay is blocking the news site.
+    The second problem is that it would allow remote attackers to censor
+    arbitrary sites. For example, if a Tor operator blocks www1.slashdot.org,
+    and then some attacker poisons the Tor relay's DNS or otherwise changes
+    that hostname to resolve to the IP address for a major news site, then
+    suddenly that Tor relay is blocking the news site.
     </p>
 
     <hr>
@@ -4203,10 +4143,11 @@ suddenly that Tor relay is blocking the news site.
     positive/false positive rates and we are not interested in addressing
     this problem.
     </p>
+
     <p>
-Further, and more importantly, which definition of "certain content" could we
-use? Every choice would lead to a quagmire of conflicting personal morals. The
-only solution is to have no opinion.
+    Further, and more importantly, which definition of "certain content" could
+    we use? Every choice would lead to a quagmire of conflicting personal
+    morals. The only solution is to have no opinion.
     </p>
 
     <hr>
@@ -4219,9 +4160,9 @@ only solution is to have no opinion.
     Like all anonymous communication networks that are fast enough for web
     browsing, Tor is vulnerable to statistical "traffic confirmation"
     attacks, where the adversary watches traffic at both ends of a circuit
-    and confirms their guess that those endpoints are communicating. It would be really
-    nice if we could use cover traffic to confuse this attack. But there
-    are three problems here:
+    and confirms their guess that those endpoints are communicating. It would
+    be really nice if we could use cover traffic to confuse this attack. But
+    there are three problems here:
     </p>
 
     <ul>
@@ -4257,8 +4198,8 @@ only solution is to have no opinion.
     <hr>
 
     <a id="Steganography"></a>
-    <h3><a class="anchor" href="#Steganography">You should use steganography to hide Tor
-    traffic.</a></h3>
+    <h3><a class="anchor" href="#Steganography">You should use steganography to
+    hide Tor traffic.</a></h3>
 
     <p>
     Many people suggest that we should use steganography to make it hard
@@ -4280,24 +4221,23 @@ only solution is to have no opinion.
     <h2><a class="anchor" href="#Abuse">Abuse:</a></h2>
 
     <a id="Criminals"></a>
-    <h3><a class="anchor" href="#Criminals">Doesn't Tor enable criminals
-to do bad things?</a></h3>
+    <h3><a class="anchor" href="#Criminals">Doesn't Tor enable criminals to do
+    bad things?</a></h3>
 
     <p>
-    For the answer to this question and others, please see our <a
-    href="<page docs/faq-abuse>">Tor Abuse FAQ</a>.
+    For the answer to this question and others, please see our
+    <a href="<page docs/faq-abuse>">Tor Abuse FAQ</a>.
     </p>
 
     <hr>
 
     <a id="RespondISP"></a>
-    <h3><a class="anchor" href="#RespondISP">How do I respond to my ISP
-about my exit relay?</a></h3>
+    <h3><a class="anchor" href="#RespondISP">How do I respond to my ISP about
+    my exit relay?</a></h3>
 
     <p>
-    A collection of templates for successfully responding to ISPs is <a
-    href="<wiki>doc/TorAbuseTemplates">collected
-    here</a>.
+    A collection of templates for successfully responding to ISPs is
+    <a href="<wiki>doc/TorAbuseTemplates">collected here</a>.
     </p>
 
     <hr>
@@ -4307,18 +4247,18 @@ about my exit relay?</a></h3>
    a Tor IP address for a legal case.</a></h3>
 
    <p>
-   Please read the <a
-   href="https://www.torproject.org/eff/tor-legal-faq">legal FAQ written
-   by EFF lawyers</a>. There's a growing <a
-   href="https://blog.torproject.org/blog/start-tor-legal-support-directory">legal
-   directory</a> of people who may be able to help you.
+   Please read the
+   <a href="https://www.torproject.org/eff/tor-legal-faq">legal FAQ written
+   by EFF lawyers</a>. There's a growing
+   <a href="https://blog.torproject.org/blog/start-tor-legal-support-directory">
+   legal directory</a> of people who may be able to help you.
    </p>
 
    <p>
-   If you need to check if a certain IP address was acting as a Tor exit
-   node at a certain date and time, you can use the <a
-   href="https://exonerator.torproject.org/">ExoneraTor tool</a> to query the
-   historic Tor relay lists and get an answer.
+   If you need to check if a certain IP address was acting as a Tor exit node
+    at a certain date and time, you can use the
+   <a href="https://exonerator.torproject.org/">ExoneraTor tool</a> to query
+   the historic Tor relay lists and get an answer.
    </p>
 
    <hr>





More information about the tor-commits mailing list