[tor-dev] Tor Browser IsolateSOCKSAuth behavior questions.

Yawning Angel yawning at schwanenlied.me
Mon Jun 1 08:04:38 UTC 2015

On Mon, 01 Jun 2015 07:43:50 +0000
Georg Koppen <gk at torproject.org> wrote:
> > My question is, what causes Tor Browser to set the SOCKS username to
> > "--unknown--" and what the behavior should be in that case if:
> Ideally, "--unknown--" would only be used for requests originating
> from privileged browser code and not belonging to a website/resource
> a user requested. This would encompass things like extensions update
> requests, browser update requests, blocklist checks, requests issued
> by installed extensions to name just a few. In reality, however, we
> are not there yet (see e.g. #13670, #15599, #15555, #15569 + plus
> there is at least one bug I have not filed yet).

Ah ok.  That explains why I saw "--unknown--" when browsing reddit with
my shim running.

> >  * The destination is a ".onion" address.
> #15499 should give you an idea (although I am not sure whether that
> ticket is still valid)

I think spacebook uses subdomains, but in the .onion space, so suffix
based validation (socks username, and the requested destination both
end in ".onion") is sufficient here.

> >  * The destination is a ".i2p" address.
> I don't know. Maybe we/you should coordinate that with the I2P folks?

I'm fairly sure just matching on suffix is also ok here.

> >  * The destination is the I2P management console.
> > 
> >    I'm fairly sure this should be "deny".
> Sounds good.

This is the only way I'm messing with/using the Isolation information
currently.  The management console appears to work.

> >  * The destination is any other address (will be dispatched over
> > Tor if running, I don't think I will attempt to support I2P
> > outproxies because they suck).  (I think allow because things break
> > otherwise?)
> I am not sure, honestly. What do you have in mind?
> [snip]
> > The final form of my shim will support running with any combination
> > of "nothing" (Tor Browser just for the "privacy benefits", probably
> > unsafe, I may reconsider this), I2P, and Tor (Though the most useful
> > configuration is probably I2P + Tor).
> Sounds useful, indeed. But I think we should make clear to users that
> this will not be a proper Tor Browser replacement as you need
> knowledge of the browser state to make correct assumptions on whether
> to put requests into the "--unknown--" bucket or not. And I currently
> don't see how your shim is able to accomplish that.

Well, it's real Tor Browser, just talking to an intermediary SOCKS
proxy rather than the one exposed by Tor.  I currently propagate the
SOCKS username/password if possible (it's not for I2P, and no analog to
the isolation exists, so stuff like new identity/new circuit will be a
lot of work).  Behavior without I2P running (or browsing stuff I
dispatch to Tor) is identical to normal Tor Browser, given certain

Tor Browser already does the work of placing requests in the correct
bucket for me, I'm just trying to use the work Tor Browser does to
prevent cross protocol probing/attacks.

Maybe the right thing to do here would be to dispatch based on the
isolation info and not the destination, since that doesn't give away
the presense of the shim:

 * If the socks username ends in ".i2p" send it to I2P regardless
   of destination.
 * If the socks username ends in ".onion" send it to Tor regardless of
 * Otherwise send it to the default upstream provider (Tor in most

 (Note: The I2P management interface is special cased, and always will
  be special cased, since it's extra sensitive.)

But yeah.  There will be tons of warning labels.  Just trying to figure
out a good way to get I2P and Tor to co-exist in a single Tor Browser
instance while being relatively safe[1].


Yawning Angel

[0]: The code assumes it's talking to a system tor instance (it doesn't
launch Tor for you), my control port filter is present so circuit
display is broken intentionally, etc.
[1]: User safety is the #1 goal here, but I know my first stab at this
probably won't be perfect.  I think it will still be an improvement
over "install foxyproxy with a bunch of regexes" since I do have the
option of peeking at the isolation.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20150601/bf68fedb/attachment-0001.sig>

More information about the tor-dev mailing list