Jump to: navigation, search

Bridges

This page contains changes which are not marked for translation.

Bridges: Description and When to Use Them[edit]

When Tor is used with Whonix in the default configuration, anybody observing the flow of network traffic from the Internet connection can determine that Tor is being used. Potential observers include the Internet Service Provider (ISP), advanced adversaries, censorship enforcement bodies, and other interested parties.

This may be a problem for users residing in certain countries. For instance:

  1. Tor use is blocked by censorship: Since all Internet traffic is routed through Tor, Whonix would be rendered useless for most activities except working offline on documents, etc.
  2. Tor use is dangerous or considered suspicious: Starting Whonix in the default configuration might land the user in serious trouble.


Tor bridges ("Tor bridge relays") are alternative entry points to the Tor network, not all of which are listed publicly. Using a bridge makes it harder, but not impossible, for the ISP to determine a user is connecting to Tor.

Users facing one of the situations described above should consider using Tor bridges in Whonix. Prior to taking this step, please read The Tor Project's dedicated page about bridges to get a better understanding of bridges and their operation. Users should also learn how Obfsproxy works, since it is the application that Tor uses to connect bridges.

Bridges are not bullet-proof. Here is a reminder regarding bridge versus non-bridge anonymity: [1]

Bridges are less reliable and tend to have lower performance than other entry points. If you live in a uncensored area, they are not necessarily more secure than entry guards.

If a user is only concerned with connectivity (getting Whonix connected) and there is no need to Hide Tor and Whonix from your ISP and/or local ISPs don't usually hinder connections to the public Tor network, then something simpler than Bridges can be tried. See #Better Connectivity without real Censorship Circumvention.

If Tor Use is Dangerous or Deemed Suspicious in your Location[edit]


The Tor Project's documentation on bridges mainly focuses on censorship circumvention, that is, overcoming attempts by ISPs or governments to block Tor use. If Tor use is dangerous or deemed suspicious in your location, then using bridges may be advisable to prevent identification as a Tor user.

Additional Information and Recommendations[edit]


When deciding on what kind of bridge to configure, it is recommended to:

  • Only use obfuscated bridges, since they are harder to identify than other bridges.
  • Use less publicly known bridges, since it is safer. [2]
  • Consider whether Hiding Tor and Whonix from your ISP is advisable in your circumstances.
  • Avoid using a meek provider that also runs DNS core servers, like Google's (now defunct) bridge. [3]
  • For greater safety, use a private obfuscated bridge bridge run by a trusted friend or organization in a different country. In this case "private" means that the bridge is configured with the option PublishServerDescriptor 0. [4]

Finding a Bridge and Choosing the Right Protocol[edit]

In order to use bridges, the address of at least one bridge must be known in advance. It is preferable to have a private obfuscated bridge because the alternative - public obfuscated bridges - have a greater likelihood of being censored, since they are publicly listed. The Tor Project distributes public bridge addresses in several ways, including from their website and via email. The easiest way to find a list of public bridges is from The Tor Project Bridge Database.

As of early 2017, The Tor Project advice is that the recommended bridge type has been changed: [5]

... in Tor Browser to obfs4, given that we now have several high capacity obfs4 bridges and obfs4 is more likely to work in more regions than obfs3."

As time goes on and more obfs4 bridge operators go online, it may be preferable to use obfs4 instead of obfs3, as obfs4: [6]

... should be able to defend more effectively against active probing.

The Tor Project provides a database of public obfs3 bridges and public obfs4 bridges A more exhaustive list of public obfuscated bridges is available at The Tor Project Bridge Database. It is not recommended to use obfs and obfs2 bridges, which: [7]

... are now deprecated and were replaced by obfs3 . . . and obfs4.

Do not select the "IPv6 compatible" check box when sourcing bridges from the database, as they cannot be used in Whonix yet.

How to Use Bridges in Whonix[edit]

Introduction[edit]

This section will explain how to use obfuscated bridges in Whonix.

obfs2, obfs3 and obfs4 bridges can currently be configured on Whonix-Gateway. From Whonix 14, meek bridges can also be used on Whonix-Gateway. The process is identical to the steps completed on a Debian platform because Whonix is based on Debian. From Whonix 14, bridges can be configured easily using Anon Connection Wizard. Alternatively, for all Whonix version, Tor bridges can be configured by editing /etc/tor/torrc within the Whonix-Gateway. Click the expand button to see instructions for each way.

Option 1: Use Anon Connection Wizard[edit]

Step 1: Start Anon Connection Wizard[edit]

If you are using Qubes-Whonix, complete the following steps.

Qubes App Launcher (blue/grey "Q") -> Whonix-Gateway ProxyVM (commonly named sys-whonix) -> Anon Connection Wizard

If you are using a graphical Whonix-Gateway, complete the following steps.

Start Menu -> Applications -> System -> Anon Connection Wizard

If you are using a terminal Whonix-Gateway, type.

kdesudo anon-connection-wizard

Step 2: Use bridge configuration page[edit]

Option 1: Anon Connection Wizard has some built-in bridges. To use them, complete the following steps.

Select "Configure" in the beginning page -> Select "I need Tor bridges to bypass the Tor censorship" -> Select "Connect with provided bridges" -> Select a transport type that is suitable.


Option 2: If none of the default bridges work, the user can try to obtain a set of bridges manually. See Finding a Bridge and Choosing the Right Protocol. After obtaining a set of Tor bridges, complete the following step.

Select "Configure" in the beginning page -> Select "I need Tor bridges to bypass the Tor censorship" -> Select "Enter custom bridges" -> Copy and paste the set of bridges to that input box(one bridge per line)

Option 2: Edit /etc/tor/torrc[edit]

Step 1: Access /etc/tor/torrc to Add Bridges[edit]

Open /etc/tor/torrc.

If you are using Qubes-Whonix, complete the following steps.

Qubes App Launcher (blue/grey "Q") -> Whonix-Gateway ProxyVM (commonly named sys-whonix) -> Tor User Config (Torrc)

If you are using a graphical Whonix-Gateway, complete the following steps.

Start Menu -> Applications -> Settings -> /etc/tor/torrc

If you are using a terminal-only Whonix-Gateway, complete the following steps.

sudo nano /etc/tor/torrc

Step 2: Edit /etc/tor/torrc[edit]

Note: This step is the same on all Whonix platforms.

Once inside /etc/tor/torrc, scroll all the way to the bottom of the file. Copy and paste the following text.

UseBridges 1
ClientTransportPlugin obfs2,obfs3 exec /usr/bin/obfsproxy managed
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

Begin with Whonix 14, meek bridges can also be used. To use it, simply add one more line to the /etc/tor/torrc. Notice that the bridge type is actually called meek_lite, not meek which is used in Tor Browser Bundle.

[8]

ClientTransportPlugin meek_lite exec /usr/bin/obfs4proxy


[9]

Now add the bridge IP addresses you discovered in the section Finding a Bridge and Choosing the Right Protocol to the file.

Copy and paste those IP addresses to the very bottom of /etc/tor/torrc, after the ClientTransportPlugin entries. Make sure to manually type the text "bridge" at the beginning of each line entry.

In the obfs3 and obfs4 examples below:

  • Do not copy and paste this list of bridge entries to the torrc file. They will not work.
  • Make sure to have already retrieved your own obfs3 bridges or better yet obfs4 bridges from The Tor Project.
  • Use either the obfs3 or obfs4 protocol, not both.
  • Capitalization in the torrc file matters. For example, bridges will not connect if you type "Bridge" instead of "bridge".


Obfs3 example text to add to /etc/tor/torrc.

bridge obfs3 109.195.132.77:22321 4352e58420e68f5e40bf7c74faddccd9d1349413
bridge obfs3 55.32.27.22:38123  4352e58420e68f5e40bf7c74faddccd9d1349413
bridge obfs3 192.24.131.513:62389 4352e58420e68f5e40bf7c74faddccd9d1349413

Obfs4 example text to add to /etc/tor/torrc.

bridge obfs4 192.235.207.85:42086 0EEB10BF4B4FAF56D46E cert=oue8sYYw5wi4n3mf2WDOg iat-mode=0
bridge obfs4 34.218.26.20:43263 DD21A551767816A0C9495 cert=7qzS6KASquPvJU82Fm7qoJw iat-mode=0
bridge obfs4 161.217.177.95:10703 B3B8009D01BB7E5FDFAEC cert=4RaIqGiOytEXm6Hw iat-mode=0

meek_lite example text to add to /etc/tor/torrc.

bridge meek_lite 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2cly7j4zqgua7.cloudfront.net/ front=a0.awsstatic.com


[10]

When /etc/tor/torrc editing is finished, save and exit.

<Ctrl-X> --> press Y --> <Enter>

The sample text for a complete obfs4 torrc file is below. Check your file is similar, except for the specific bridge entries.

# This file is part of Whonix
# Copyright (C) 2012 - 2013 adrelanos
# See the file COPYING for copying conditions.

# Use this file for your user customizations.
# Please see /etc/tor/torrc.examples for help, options, comments etc.

# Anything here will override Whonix's own Tor config customizations in /usr/share/tor/tor-service-defaults-torrc

# Enable Tor through whonixsetup or manually uncomment "DisableNetwork 0" by
# removing the # in front of it.
DisableNetwork 0
UseBridges 1
ClientTransportPlugin obfs2,obfs3 exec /usr/bin/obfsproxy managed
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

bridge obfs4 192.235.207.85:42086 0EEB10BF4B4FAF56D46E cert=oue8sYYw5wi4n3mf2WDOg iat-mode=0
bridge obfs4 34.218.26.20:43263 DD21A551767816A0C9495 cert=7qzS6KASquPvJU82Fm7qoJw iat-mode=0
bridge obfs4 161.217.177.95:10703 B3B8009D01BB7E5FDFAEC cert=4RaIqGiOytEXm6Hw iat-mode=0

[11]

Step 3: Enable Tor[edit]

Follow this procedure if it has not been previously completed.

Enable Tor using the whonix-setup-wizard.

Start whonixsetup.

If you are using Qubes-Whonix, complete the following steps.

Qubes App Launcher (blue/grey "Q") -> Whonix-Gateway ProxyVM (commonly named 'sys-whonix') -> Whonix Setup

If you are using a graphical Whonix-Gateway, complete the following steps.

Start Menu -> Applications -> System -> Whonix Setup Wizard

If you are using a terminal-only Whonix-Gateway, complete the following steps.

sudo whonixsetup

Choose the Enable Tor option. Press next.

Step 4: Have /etc/tor/torrc Changes Take Effect[edit]

Reload Tor.

After editing /etc/tor/torrc, Tor must be reloaded for changes take effect.

Note: If Tor does not connect after completing all these steps, then a user mistake is the most likely explanation. Recheck /etc/tor/torrc and repeat the steps outlined in the sections above. If Tor then connects successfully, all the necessary changes have been made.

If you are using Qubes-Whonix, complete the following steps.

Qubes App Launcher (blue/grey "Q") -> Whonix-Gateway ProxyVM (commonly named 'sys-whonix') -> Reload Tor

If you are using a graphical Whonix-Gateway, complete the following steps.

Start Menu -> Applications -> Settings -> Reload Tor

If you are using a terminal-only Whonix-Gateway, press on Expand on the right.

Complete the following steps.

Reload Tor.

sudo service tor@default reload

Check Tor's daemon status.

sudo service tor@default status

It should include a a message saying.

Active: active (running) since ...

In case of issues, try the following debugging steps.

Check Tor's config.

sudo -u debian-tor tor --verify-config

The output should be similar to the following.

Sep 17 17:40:41.416 [notice] Read configuration file "/etc/tor/torrc".
Configuration was valid

Troubleshooting[edit]

Check Tor Network Connection is Using a Tor Bridge[edit]

Concerned bridge users can complete a simple check.

1. Open Arm as follows.

If you are using Qubes-Whonix, complete the following steps.

Qubes App Launcher (blue/grey "Q") -> Whonix-Gateway ProxyVM (commonly named sys-whonix) -> Arm

If you are using a graphical Whonix-Gateway, complete the following steps.

Start Menu -> Applications -> System -> Arm

If you are using a terminal Whonix-Gateway, type.

arm

2. Use the right arrow button to navigate to page 2 of 5 in Arm.

3. If a bridge is in use, the circuit information will be similar to this.

192.168.0.1 UNKNOWN 1 / Guard

4. If a bridge is not in use, the circuit information will be similar to this.

IP Nickname 1 / Guard

The IP is the real IP (not 192.168.0.1) of the Guard, and the Nickname is the name of that Guard relay.

5. Exit Arm by pressing the following.

q
q

Connection Issues[edit]

After configuration, connection problems can relate to firewall settings that block outgoing connections to the ports provided by the bridge. To check the port the bridge is using, see the following example.

bridge 109.195.132.77:22321

In this example, the IP address is 109.195.132.77, while the the port is 22321.

Try using a (private) (obfuscated) bridge that uses port 80 or 443, as these ports are mostly used for web browsing and therefore usually unblocked.

Trying Packet Size and Timing Obfuscation for obfs4[edit]

If a provided obfs4 bridge doesn't work, the user can try enabling packet size and timing obfuscation by changing the iat-mode value in each last line to either 1 or 2. [12]

Better Connectivity Without Real Censorship Circumvention[edit]

If a user is only concerned with connectivity (getting Whonix connected) and there is no need to Hide Tor and Whonix from your ISP and/or local ISPs don't usually hinder connections to the public Tor network, then something simpler than Bridges can be tried.

The following will limit Tor to establish only connections to the public Tor network relays that listen on ports 80 and 443.

Open /etc/tor/torrc.

If you are using Qubes-Whonix, complete the following steps.

Qubes App Launcher (blue/grey "Q") -> Whonix-Gateway ProxyVM (commonly named sys-whonix) -> Tor User Config (Torrc)

If you are using a graphical Whonix-Gateway, complete the following steps.

Start Menu -> Applications -> Settings -> /etc/tor/torrc

If you are using a terminal-only Whonix-Gateway, complete the following steps.

sudo nano /etc/tor/torrc

Add. [13]

FascistFirewall 1

Save.

Reload Tor.

After editing /etc/tor/torrc, Tor must be reloaded for changes take effect.

Note: If Tor does not connect after completing all these steps, then a user mistake is the most likely explanation. Recheck /etc/tor/torrc and repeat the steps outlined in the sections above. If Tor then connects successfully, all the necessary changes have been made.

If you are using Qubes-Whonix, complete the following steps.

Qubes App Launcher (blue/grey "Q") -> Whonix-Gateway ProxyVM (commonly named 'sys-whonix') -> Reload Tor

If you are using a graphical Whonix-Gateway, complete the following steps.

Start Menu -> Applications -> Settings -> Reload Tor

If you are using a terminal-only Whonix-Gateway, press on Expand on the right.

Complete the following steps.

Reload Tor.

sudo service tor@default reload

Check Tor's daemon status.

sudo service tor@default status

It should include a a message saying.

Active: active (running) since ...

In case of issues, try the following debugging steps.

Check Tor's config.

sudo -u debian-tor tor --verify-config

The output should be similar to the following.

Sep 17 17:40:41.416 [notice] Read configuration file "/etc/tor/torrc".
Configuration was valid

Done.

Missing ClientTransportPlugin Line[edit]

When one is using.

bridge obfs4 ...:... ... cert=... iat-mode=0

But forgot to add the corresponding line.

ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

Then only a warning will be shown in the logs.

[warn] We were supposed to connect to bridge '...:...' using pluggable transport 'obfs4', but we can't find a pluggable transport proxy supporting 'obfs4'. This can happen if you haven't provided a ClientTransportPlugin line, or if your pluggable transport proxy stopped running.

Missing ClientTransportPlugin Executable[edit]

[warn] Could not launch managed proxy executable at '/usr/bin/obfs4proxy' ('No such file or directory').

Deprecated Tor Pluggable Transports[edit]

Scramblesuit[edit]

scramblesuit: Not recommended (see footnote). Use the provided obfs4 instructions instead. [14]

Flashproxy[edit]

flashproxy: Not recommended (see footnote). Use the provided obfs4 instructions instead. [15]

See Also[edit]

Footnotes[edit]

  1. https://lists.torproject.org/pipermail/tor-talk/2012-May/024378.html
  2. Some bridge addresses are freely provided by the Tor website or by email upon request, meaning adversaries likely use these methods to obtain bridge information. The Tor Project has some protection against adversary threats, but they are far from perfect.
  3. Google sees forty percent of Tor Exits' DNS traffic and so using them as a bridge aids website fingerprinting attacks. That said, there is evidence that website fingerprinting is more difficult to mount than previously thought. See: The Effect of DNS on Tor’s Anonymity
  4. Tor manual: PublishServerDescriptor Without this option set, The Tor Project can learn about the bridge and may distribute its address to others, potentially handing this information to an adversary seeking to generate a list of all known bridges.
  5. https://trac.torproject.org/projects/tor/ticket/18072
  6. https://blog.torproject.org/blog/recent-and-upcoming-developments-pluggable-transports#obfs2_deprecation
  7. https://www.torproject.org/docs/bridges.html.en#PluggableTransports
  8. Because meek_lite is actually using a different implementation by obfs4proxy. Forum discussion: https://forums.whonix.org/t/censorship-circumvention-tor-pluggable-transports/2601/3
  9. ClientTransportPlugin fte exec /usr/bin/fteproxy --managed
  10. fte example text to add to /etc/tor/torrc. fte is not yet supported in Whonix 13; wait for the Whonix 14 release. https://phabricator.whonix.org/T520
    bridge fte 10.200.100.60:95128 4352e58420e68f5e40bf7c74faddccd9d1349413
    bridge fte 300.100.300.80:23521 4352e58420e68f5e40bf7c74faddccd9d1349413
  11. ClientTransportPlugin fte exec /usr/bin/fteproxy --managed
    
  12. 1 = Enabled: ScrambleSuit-style with bulk throughput optimizations. 2 = Paranoid: Each IAT write will send a length sampled from the length distribution (expensive). See: https://lists.torproject.org/pipermail/tor-commits/2014-August/079402.html
  13. https://www.torproject.org/docs/tor-manual.html.en#FascistFirewall
  14. Quote intrigeri (Tails developer):

    On tor-talk we've been told "You shouldn't prioritise ScrambleSuit because it is superseded by obfs4", and there are now pressing plans in the Tor Project to deprecate obfs2 and obfs3 in favour of obfs4. Hence rejecting this ticket, and focusing on #7980 [obfs4 support] instead.

    Also see Tor Announcement under heading "obfs4 and scramblesuit"

  15. Flashproxy has been removed from Tor Browser. Therefore it can be considered deprecated.

License[edit]

Whonix Bridges wiki page Copyright (C) Amnesia <amnesia at boum dot org>
Whonix Bridges wiki page Copyright (C) 2012 - 2017 Patrick Schleizer <adrelanos@riseup.net>

This program comes with ABSOLUTELY NO WARRANTY; for details see the wiki source code.
This is free software, and you are welcome to redistribute it under certain conditions; see the wiki source code for details.


Random News:

Interested in becoming an author for the Whonix blog or writing about anonymity, privacy and security? Please get in touch!


Impressum | Datenschutz | Haftungsausschluss

https | (forcing) onion
Share: Twitter | Facebook | Google+

This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! See Conditions for Contributions to Whonix, then Edit! IP addresses are scrubbed, but editing over Tor is recommended. Edits are held for moderation.

Whonix (g+) is a licensee of the Open Invention Network. Unless otherwise noted, the content of this page is copyrighted and licensed under the same Libre Software license as Whonix itself. (Why?)