3

I run a relay on a NAS box in my network. It is setup so that I can use it as a client from other machines in my network:

[NOTICE] You configured a non-loopback address for SocksPort. This allows everybody on your local network to use your machine as a proxy. Make sure this is what you wanted.

(I'm sure this is what I wanted)

When I set Tor Browser to use my relay as the SOCKS5 proxy, through Preferences in the Tor Button, everything seems to work fine: I can browse .onion sites, and I can tell that it does in fact use my relay as the Tor client, but Tor Browser says:

Something Went Wrong!
Tor is not working in this browser.

What does Tor Browser test for that fails when using a different / non-local Tor as the client?
Is this a bad thing to do? Does it in any way hurt security or anonymity?

EDIT to add: When I switch back to 'Use recommended proxy settings' and then relaunch TBB, I get

Congratulations!
This browser is configured to use Tor.

again as normal.

3

What does Tor Browser test for that fails when using a different / non-local Tor as the client?

With the default settings, Tor Browser:

  1. Starts its own instance of Tor when you first open the browser
  2. Asks the browser what proxy settings have been set in the TorButton Preferences menu
  3. Asks the instance of Tor that the browser started what SOCKS proxy address and port it is listening on (by sending a GETINFO request to its control port)
  4. Compares the results of 2 and 3. If they agree, show the 'Congratulations' page, otherwise show the 'Something went wrong' page

[Source: torbutton.js from the Tor Browser source code https://gitweb.torproject.org/torbutton.git/blob/7f46869cd1b53e9a94dda54bd8101f66b78ed3ab:/src/chrome/content/torbutton.js#l1801]

Using this test method, it's clear that Tor Browser will always fail the test if you just change the proxy settings in TorButton preferences.

To force Tor Browser to do a more useful test when you've changed the proxy settings, you can go to about:config and set 'extensions.torbutton.local_tor_check' to false. This makes Tor Browser make a request to check.torproject.org to check if it's connecting through Tor, giving correct results even with custom proxy settings.

Is [using a different / non-local Tor] a bad thing to do? Does it in any way hurt security or anonymity?

This would depend on the details of your setup. A non-exhaustive list of things to watch out for that might have adverse effect on security/anonymity:

  • Improperly configured control port. Unless you've made a deliberate effort to make your Tor Browser connect to the control port of your non-local Tor client, you're not getting new circuits when you click the New Identity button in the browser; Tor Browser will still be using the default control port, which corresponds to the local Tor client started by the browser. Configuring a custom control port can be done fairly easily but that should probably have a question of its own.

  • Mixing of different identities. If you have several computers all connecting to the same port on your non-local Tor client you might find streams you wanted to keep separate end up on the same circuit, which might allow an attacker to deduce they came from the same person. It might be worth giving each computer its own dedicated SOCKS port, or even an entire dedicated instance of the Tor client.

  • Attacks on the traffic between you and your non-local Tor. Do you trust the network between you and your Tor client and/or the security of the proxying protocol (in your case SOCKS)? Transparent proxying, for example, sends your traffic unencrypted, so would be unwise to use with a non-local Tor on an untrusted network.

  • Effect of setting 'extensions.torbutton.local_tor_check' to false (?). This would mean your Tor Browser makes one more request to torproject.org each time the browser is opened compared to using all default settings. I don't know whether this could actually be used for fingerprinting.

It is possible to imagine situations in which having a non-local Tor process could present a security advantage. For example

  • If the machine running Tor Browser is compromised the Tor Process itself is not automatically compromised.
  • You could set up your network so that one or more computers have no direct connection to the internet, only the connection via your non-local Tor client. This could prevent leaks even if the computers/browsers are compromised.
  • I answered this question because I saw it mentioned on the Tor Blog blog.torproject.org/blog/… – user3737 Sep 28 '14 at 5:24
  • Thank you for this clear, insightful and complete answer. I had not considered the control connection. (And thanks to harmony c.s. for leading you here by mentioning my question in the Tor Weekly News.) – Jobiwan Sep 28 '14 at 18:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.