Tor Entry Guards

From Whonix
Jump to navigation Jump to search

Tor Entry Guards, Alternate Configurations, Fingerprinting Risks

Introduction

[edit]

What are Tor Entry Guards? If this is an unfamiliar term, please press on Expand on the right.

Current practical, low-latency, anonymity designs like Tor fail when the attacker can see both ends of the communication channel. For example, suppose the attacker controls or watches the Tor relay a user chooses to enter the network, and also controls or watches the website visited. In this case, the research community is unaware of any practical, low-latency design that can reliably prevent the attacker from correlating volume and timing information on both ends.

Mitigating this threat requires consideration of the Tor network topology. Suppose the attacker controls, or can observe, C relays from a pool of N total relays. If a user selects a new entry and exit relay each time the Tor network is used, the attacker can correlate all traffic sent with a probability of (c/n)2. For most users, profiling is as hazardous as being traced all the time. Simply put, users want to repeat activities without the attacker noticing, but being noticed once by the attacker is as detrimental as being noticed more frequently. [...]

The solution to this problem is "entry guards". Each Tor client selects a few relays at random to use as entry points, and only uses those relays for the first hop. If those relays are not controlled or observed, the attacker can't use end-to-end techniques and the user is secure. If those relays are observed or controlled by the attacker, then they see a larger fraction of the user's traffic — but still the user is no more profiled than before. Thus, entry guards increase the user's chance of avoiding profiling (on the order of (n-c)/n), compared to the former case.

You can read more at An Analysis of the Degradation of Anonymous Protocolsarchive.org iconarchive.today icon, Defending Anonymous Communication Against Passive Logging Attacksarchive.org iconarchive.today icon, and especially Locating Hidden Serversarchive.org iconarchive.today icon.

Restricting entry nodes may also help to defend against attackers who want to run a few Tor nodes and easily enumerate all of the Tor user IP addresses. [1] However, this feature won't become really useful until Tor moves to a "directory guard" design as well.

Source and License, see footnote: [2]

Guard Fingerprinting

[edit]

Many well-known, enhanced anonymity designs like Tor, Whonix and the Tor Browser (TB) use persistent Tor guards. This decision is attributable to community-based research which demonstrates that persistent Tor entry guards benefit security and lower the probability of an adversary profiling a user. [3]

In general, users should not interfere with Tor guard persistence or the natural rotation of entry guards every few months. At the time of writing, the Tor client selects one guard node, but previously used a three-guard design. Guards have a primary lifetime of 120 days. [4] [5] [6]

Fingerprinting Method

[edit]

Info Note: Guard fingerprinting techniques are similar to MAC address tracking methods. If this is a realistic threat, then MAC address randomization is also recommended.

While natural guard rotation is recommended, in some situations it is safer to not use the usual guard relay! There are some corner cases in which an adversary could fingerprint the entry guard(s) [7] and de-anonymize a user. For instance:

  • The same entry guards are used across various physical locations and access points.
  • The same entry guards are used after permanently moving to a different physical location.

For details on how this is possible, press Expand on the right.

Consider the following scenario. A user connects to Tor via a laptop at their home address. An advanced adversary has observed the client-to-guard-node network path to discover the user's entry point to the Tor network.

Soon afterwards, the same user attends a prominent event or protest in a nearby city. At that location, the user decides to anonymously blog about what transpired using the same laptop. This is problematic for anonymity, as the Tor client is using the same entry guard normally correlated with the user’s home address.

To understand the potential threat, consider the following:

  • There are only around 3,000 Tor guards in 2019. [8]
  • By design, Tor is picking one primary guard and using it for a few months. Since the Tor user base is relatively small, it is possible that a guard might only be used by one person in an entire region.
  • As the IP address of Tor entry guards is static and Tor network traffic is easily distinguishable, this information becomes public knowledge.
  • It is feasible that if a user-guard relationship is unique in a city location, and that user moves, it is likely (but not certain) that there was a location change.
  • At the event, the user might be the only one using Tor (or among a handful).
  • If the user posts about the event and an adversary who is passively monitoring network traffic conducts the same successful observation of the client-to-guard network path, then it’s likely the "anonymous" posts will be linked with the same person who normally connects to that guard at home.

The relative uncommonness of Tor usage simply exacerbates the potential for de-anonymization.

There are several ways to mitigate the risk of guard fingerprinting across different physical locations. In most cases, the original entry guards can also be re-established after returning home: [9]

  1. Clone Whonix-Gateway (sys-whonix) with New Entry Guards.
  2. Regenerate the Tor State File after Saving the Current Tor State.
  3. Configure Tor to use Alternating Bridges.

If moving to a new location permanently, create Fresh Tor Entry Guards by Regenerating the Tor State File.

Forum discussion:
https://forums.whonix.org/t/persistent-tor-entry-guard-relays-can-make-you-trackable-across-different-physical-locations/2090archive.org iconarchive.today icon

Manual Rotation of Tor Guards

[edit]

Creating a new Whonix-Gateway (sys-whonix) will likely lead to a new set of Tor entry guards, which is proven to degrade anonymityarchive.org iconarchive.today icon.

Warning: Users considering using disposable Whonix-Gateway ProxyVMs in Qubes R4 are warned that this technique severely degrades anonymity; new Tor guards are created during each distinct Whonix session.

[edit]

Users may be tempted to create a new Whonix-Gateway (sys-whonix) in the following circumstances:

  • Bootstrapping is slow or regularly fails.
  • Tor logs show warnings suggestive of route manipulation attacks or other oddities.
  • System logs reveal attempted attacks on Whonix or Tor processes, for example in AppArmor logs.
  • Current Tor performance is very slow or unreliable due to collapsing circuits or other factors.
  • The user is concerned about the amount of Tor data that could be revealed if Whonix-Gateway is infected, particularly after a long period of use.

Manual Guard Rotation Threats

[edit]

Forcing the rotation of guards more often than Tor’s default is dangerous for several reasons:

  • It increases the likelihood of a compromised or malicious Tor guard being selected. This raises the chance of a successful correlation attackarchive.org iconarchive.today icon if the adversary runs Tor exit relays in the network.
  • The user is more likely to traverse a givenarchive.org iconarchive.today icon setarchive.org iconarchive.today icon of Internet infrastructure linksarchive.org iconarchive.today icon that are under the adversary's control, such as Autonomous Systems (ASes)archive.org iconarchive.today icon or Internet Exchange Points (IXPs)archive.org iconarchive.today icon.
  • Every Tor guard change acts like a fingerprinting mechanism, since other users are less likely to pick the same set. If the adversary is able to enumerate a user's Tor guards and later observes someone with the same set, the chance is high the two observations stem from the same person.

For these reasons the Tor design changed in 2014 to establish a solitary primary guard node, while also increasing the set period for guard rotation. Also, do not discount the possibility that an adversary might purposefully cause poor Tor throughput, in the hope Tor guards are manually changed: [10]

We should also consider whether an adversary can *induce* congestion or resource exhaustion to cause a target user to switch away from her guard. Such an attack could work very nicely coupled with the guard enumeration attacks discussed above.

In one sense, slow Tor entry guards should be welcomed -- “honeypot” operators on the Tor network are unlikely to have constrained bandwidth which might chase away intended targets.

Recommendations

[edit]

If users feel compelled in their circumstances to proceed despite the anonymity risks, then it may be safer to first try:

The safest decision is to persist with poor performance and wait for normal guard rotation.

Mitigate the Threat of Guard Fingerprinting

[edit]

Note: Weigh the fingerprinting risks outlined earlier before proceeding. In most cases the decision to not rotate guards (even temporarily) is the correct one.

If guard fingerprinting across different locations is a legitimate concern, there are several ways to mitigate the threat. Viable options include: bridges, temporarily rotating guards or cloning Whonix-Gateway (sys-whonix) with new guards.

Clone Whonix-Gateway (sys-whonix) with New Entry Guards

[edit]

Warning: Do not clone the Whonix-Gateway (sys-whonix) with new guards at your home address. If the Tor client connects through the home network, the new guards might be correlated to the home address.

It is possible to clone the current Whonix-Gateway (sys-whonix) and regenerate the Tor state file. Once the VM is cloned, it is important that the original is not unintentionally used for any anonymous activities. To negate this threat, disable networking in the original Whonix-Gateway until returning home.

Create a Whonix-Gateway (sys-whonix) clone and name it Whonix-Gateway-temp (sys-whonix-temp):

  1. VirtualBox: follow these instructionsarchive.org iconarchive.today icon to create a VM snapshot.
    Qubes-Whonix: In Qube Manager, Right-click on sys-whonixClone qube
  2. Regenerate the Tor State File.

Regenerate the Tor State After Saving the Tor State Folder

[edit]

Before arriving at the remote location, the Whonix-Gateway Tor state folder is moved to the $HOME directory and the Tor state file is regenerated. Perform all the following steps in Whonix-Gateway konsole.

1. Stop Tor.

sudo systemctl stop tor@default

2. Move the Tor state folder to the $HOME directory.

sudo mv /var/lib/tor ~/

3. Restart Tor.

sudo systemctl restart tor@default

Before returning home, the Tor state folder is restored to its original settings.

1. Stop Tor.

sudo systemctl stop tor@default

2. Remove the temporary Tor state folder.

sudo rm -r /var/lib/tor

3. Restore the Tor state folder.

sudo mv ~/tor /var/lib

4. Restart Tor.

sudo systemctl restart tor@default

Alternating Bridges

[edit]

If Bridges are already configured, alternate bridges are recommended for different locations. If bridges are not being used, consider using entry guards in your primary location and relying on alternate bridges in different locations.

Wording clarification: There is no such thing as "Alternating-Bridges". It's not it's own word. It means "a bridge to alternate". As in "use different bridges".

Complete the following steps in Whonix-Gateway (sys-whonix).

1. Disable Tor using Anon Connection Wizard (safest option).

Start Anon Connection Wizard.

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 MenuApplicationsSystemAnon Connection Wizard

If you are using a terminal emulator (such as for example xfce4-terminal) on Whonix-Gateway, type.

lxsudo anon-connection-wizard

If you are using a CLI Whonix-Gateway, see footnote. [11]

Choose the Disable Tor option. Press next.

2. Configure Tor to use bridges. Refer to the Bridges documentation.

3. Enable Tor at the new location.

Enable Tor using Anon Connection Wizard (easiest option).

Start Anon Connection Wizard.

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 MenuApplicationsSystemAnon Connection Wizard

If you are using a terminal emulator (such as for example xfce4-terminal) on Whonix-Gateway, type.

lxsudo anon-connection-wizard

If you are using a CLI Whonix-Gateway, see footnote. [11]

Choose the Enable Tor option. Press next.

4. Before leaving this location, disable Tor. If traveling to a different area, add a different bridge address. To revert to the usual Tor guards used at home, remove the torrc bridge settings before enabling the network or rollback to a VM snapshot created at home.

Copy Tor Configuration files and Settings to Another sys-whonix Instance

[edit]

Info Qubes-Whonix only.

Warning: Carefully follow these instructions to avoid unforeseen consequences. [12]

In some circumstances Qubes-Whonix users might want to copy the Tor state and custom configuration options from an existing sys-whonix ProxyVM to another sys-whonix instance. For example, this is useful for testing later Whonix releases without aiding deanonymization attempts by advanced adversaries [13] or when creating an identical backup that does not share any other persistent data, except for Tor state and custom torrc options.

Copy Tor State Files to Another sys-whonix Instance

[edit]

The following instructions copy the Tor state from sys-whonix-old to sys-whonix-new.

1. In sys-whonix-new, stop Tor.

sudo systemctl stop tor@default

2. In sys-whonix-new, remove the Tor state file.

Warning: When removing files take care that extra spaces are not added to the file path! For example, if a space is accidentally placed before the asterisk in the command to remove the Tor state file, the / (root directory) and all system data would be lost.

sudo su

sudo rm /var/lib/tor/*

3. In sys-whonix-old, stop Tor.

sudo systemctl stop tor@default

4. In sys-whonix-old, copy the Tor state file across to sys-whonix-new.

sudo qvm-copy /var/lib/tor sys-whonix-new

If the following error appears, it can be safely ignored (hit "OK" when prompted).

qfile-agent: Fatal error: stat “VM” (error type: No such file or directory)

5. In sys-whonix-new, list the QubesIncoming directory to ensure the Tor state file was copied over successfully.

ls ~/QubesIncoming/sys-whonix-old/tor

The output should include the files below.

  cached-certs cached-microdescs lock
  cached-microdesc-consensus cached-microdescs.new state

6. In sys-whonix-new, move the newly copied Tor state file to /var/lib/tor

sudo mv ~/QubesIncoming/sys-whonix-old/tor/* /var/lib/tor

7. In sys-whonix-new, change ownership of all files in the Tor state folder to debian-tor

sudo chown -R debian-tor:debian-tor /var/lib/tor

8. In sys-whonix-new, start Tor.

sudo systemctl start tor@default

9. In sys-whonix-new, run systemcheckarchive.org iconarchive.today icon to verify Tor is functioning properly. [14]

whonixcheck

Copy Tor Configuration Options (torrc) to Another sys-whonix

[edit]

These instructions copy custom Tor configuration options (torrc) from sys-whonix-old to sys-whonix-new.

1. In sys-whonix-old, copy the torrc options across to sys-whonix-new. [15]

qvm-copy /usr/local/etc/torrc.d/50_user.conf sys-whonix-new

If the following error appears, it can be safely ignored (hit "OK" when prompted).

 qfile-agent: Fatal error: stat “VM” (error type: No such file or directory)

2. In sys-whonix-new, list the QubesIncoming directory to ensure the torrc options were copied over successfully.

cat ~/QubesIncoming/sys-whonix-old/50_user.conf

3. In sys-whonix-new, move the 50_user.conf options from the QubesIncoming directory to the 50_user.conf file.

sudo mv ~/QubesIncoming/sys-whonix-old/50_user.conf /usr/local/etc/torrc.d/50_user.conf

4. In sys-whonix-new, change ownership of the Tor configuration file.

sudo chown -R root:root /etc/tor

5. In sys-whonix-new, restart Tor so the newly copied Tor config options take effect.

sudo systemctl restart tor@default

6. In sys-whonix-new, run systemcheckarchive.org iconarchive.today icon to verify Tor is functioning properly. [16]

systemcheck

Unsafe Guard Rotation Methods

[edit]

Fresh Tor Entry Guards by Regenerating the Tor State File

[edit]

This action is inadvisable unless the user is aware of the consequences; see Introduction.

The following instructions manually change a user's Tor entry guards. One use case for this action is before permanently relocating to a new area.

[17]

Complete the following steps in Whonix-Gateway (Qubes-Whonix: sys-whonix).

1. Disable Tor using Anon Connection Wizard (safest option).

Start Anon Connection Wizard.

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 MenuApplicationsSystemAnon Connection Wizard

If you are using a terminal emulator (such as for example xfce4-terminal) on Whonix-Gateway, type.

lxsudo anon-connection-wizard

If you are using a CLI Whonix-Gateway, see footnote. [11]

Choose the Disable Tor option. Press next.

2. Delete Tor's state file.

sudo rm /var/lib/tor/state

3. Enable Tor at the new location.

Enable Tor using Anon Connection Wizard (easiest option).

Start Anon Connection Wizard.

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 MenuApplicationsSystemAnon Connection Wizard

If you are using a terminal emulator (such as for example xfce4-terminal) on Whonix-Gateway, type.

lxsudo anon-connection-wizard

If you are using a CLI Whonix-Gateway, see footnote. [11]

Choose the Enable Tor option. Press next.

Configure Non-Persistent Entry Guards

[edit]

Some users might consider configuring non-persistent entry guards so they constantly change. In almost all cases this is inadvisable, because persistent entry guards are a critical anonymity feature. A far more secure alternative is Alternating Bridges, although this requires a considerable time investment.

To proceed in spite of the warning, press on Expand on the right.

Complete these steps in Whonix-Gateway (sys-whonix).

1. Disable Tor using Anon Connection Wizard (safest option).

Start Anon Connection Wizard.

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 MenuApplicationsSystemAnon Connection Wizard

If you are using a terminal emulator (such as for example xfce4-terminal) on Whonix-Gateway, type.

lxsudo anon-connection-wizard

If you are using a CLI Whonix-Gateway, see footnote. [11]

Choose the Disable Tor option. Press next.

2. Modify Tor settings.

Open file /usr/local/etc/torrc.d/50_user.conf in a Kicksecure logo text editorOnion network Logo of your choice, with administrative rights.

Platform specific. Select your platform.

Whonix

If you are using a graphical Whonix-Gateway, take the following step.

Start MenuApplicationsSettings/usr/local/etc/torrc.d/50_user.conf

Qubes-Whonix

If you are using Qubes-Whonix, take the following step.

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

CLI

If you are using Whonix-Gateway with command line interface (CLI), take the following step. sudoedit /usr/local/etc/torrc.d/50_user.conf

Add.

DataDirectory /var/run/tor

Save.

3. Enable Tor at the new location.

Enable Tor using Anon Connection Wizard (easiest option).

Start Anon Connection Wizard.

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 MenuApplicationsSystemAnon Connection Wizard

If you are using a terminal emulator (such as for example xfce4-terminal) on Whonix-Gateway, type.

lxsudo anon-connection-wizard

If you are using a CLI Whonix-Gateway, see footnote. [11]

Choose the Enable Tor option. Press next.

4. Before leaving this location, disable Tor and repeat the above steps if traveling to a different area. To revert to the usual guard nodes at home, remove the torrc setting before enabling the network or rollback to a VM snapshot that was created there.

Notes

[edit]

The proposed Tails solutions towards AdvGoalTracking have disadvantages [18] [19] and are not suitable options for Whonix. The reason is Whonix does not connect directly to a user's internet LAN, so trying to remember a network based on its SSID will not work. Unlike wireless access points, physical or virtual wired networks lack SSIDs and cannot be "remembered" that way.

Even if it were possible, it is best to avoid letting adversaries influence guard changes in any way. Spoofing MAC addresses or SSIDs would trigger the use of the alternative entry guard recorded for another "location profile". Global networks also have generic characteristics that cannot be differentiated from the point of view of a connecting device, resulting in the same guards being used on different networks.

Developers/Auditors-only: The development discussion related to this documentation chapter can be found herearchive.org iconarchive.today icon.

Footnotes

[edit]
  1. Even though the attacker can't discover the user's destinations in the network, they still might target a list of known Tor users.
  2. Source:
    torproject.org What are Entry Guards?archive.org iconarchive.today icon
    licensearchive.org iconarchive.today icon:
    Content on this site is Copyright The Tor Project, Inc.. Reproduction of content is permitted under a Creative Commons Attribution 3.0 United States Licensearchive.org iconarchive.today icon. All use under such license must be accompanied by a clear and prominent attribution that identifies The Tor Project, Inc. as the owner and originator of such content. The Tor Project Inc. reserves the right to change licenses and permissions at any time in its sole discretion.
  3. The risk of guard fingerprinting is less severe now that upstream (The Tor Project) has changed its guard parameters to decrease the de-anonymization risk.
  4. Prop 291 indicates a 3.5 month guard rotation.
  5. The Tor Project is currently considering shifting to two guards per client for better anonymity, instead of having one primary guard in use.
  6. https://github.com/torproject/torspec/blob/master/proposals/291-two-guard-nodes.txtarchive.org iconarchive.today icon
  7. The entropy associated with one, two or three guardsarchive.org iconarchive.today icon is 9, 17 and 25 bits, respectively.
  8. https://metrics.torproject.org/relayflags.htmlarchive.org iconarchive.today icon
  9. As concluded in ticket research non-persistent Tor directory guardsarchive.org iconarchive.today icon, these are covered by the following instructions.
  10. https://blog.torproject.org/improving-tors-anonymity-changing-guard-parametersarchive.org iconarchive.today icon
  11. 11.0 11.1 11.2 11.3 11.4 11.5 Anon Connection Wizard is a graphical user interface (GUI) application. It does not have command line interface (CLI) support yet.archive.org iconarchive.today icon It is therefore unavailable on Whonix-Gateway CLI. Use setup-dist instead; note that functionality is limited and does not support Bridges.
  12. If an alternative command is used to remove the Tor state folder, this can result in broken file persistence across reboots. This relates to the Qubes-Whonix design, which uses bind-dirs file persistence for the Tor folder and other select directories. At the very least, users would need to mount and then unmount the Tor folder in the same way as bind-dirs does. This is likely a complicated and time-consuming task.
  13. As the same Tor entry guard is used.
  14. If Tor fails to start, verify the Tor folder has the proper file permissions with the following command: sudo ls -l /var/lib/tor
  15. Note: From Whonix 14 onward, all unique Tor configurations (torrc) options must be stored in /usr/local/etc/torrc.d/50_user.conf and nowhere else.
  16. If Tor is not running after restart, it is possible to verify the newly migrated torrc options are valid with the following command: anon-verify. The output should be similar to the following.
    /===================================================================\
    |                     Report Summary                               |
    \===================================================================/
    No error detected in your Tor configuration.
    
  17. Potential Unsupported alternative. tor-ctrl DROPGUARDS
  18. https://gitlab.tails.boum.org/tails/blueprints/-/wikis/persistent_Tor_state/archive.org iconarchive.today icon
  19. https://blog.torproject.org/tor-weekly-news-june-17th-2015/#A_persistent_Tor_state_for_Tailsarchive.org iconarchive.today icon

License

[edit]

Whonix Tor Entry Guards wiki page Copyright (C) Amnesia <amnesia at boum dot org>
Whonix Tor Entry Guards wiki page Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <

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.

Notification image

We believe security software like Whonix needs to remain open source and independent. Would you help sustain and grow the project? Learn more about our 13 year success story and maybe DONATE!