On Mon, 01 Jun 2015 07:43:50 +0000 Georg Koppen gk@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 limitations[0].
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 destination. * Otherwise send it to the default upstream provider (Tor in most cases).
(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].
Regards,