[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: A Tor Web Service For Verifying Correct Browser Configuration



On Saturday 22 March 2008 15:57:57 Nick Mathewson wrote:
> On Sun, Mar 16, 2008 at 08:25:47PM +0000, Robert Hogan wrote:
>
> {For reference, this is now proposal 132.  See
>   
> http://www.torproject.org/svn/trunk/doc/spec/proposals/132-browser-check-to
>r-service.txt }
>
> > Filename: xxx-browser-check-tor-service.txt
> > Title: A Tor Web Service For Verifying Correct Browser Configuration
> > Version: $Revision: 13955 $
> > Last-Modified: $Date: 2008-03-16 18:51:55 +0000 (Sun, 16 Mar 2008) $
> > Author: Robert Hogan
> > Created: 2008-03-08
> > Status: Draft
>
> Hi, Robert!  I'd like to ask about a couple of alternative designs
> that periodically come up for this problem, and ask about security
> implications.
>
> The two main alternative designs are:
>    - Use a remote "am I using Tor" page.
>
>      This handles tests 2 and 3 pretty easily, and with a little
>      effort can be made to do test 1.
>

Here are the pros/cons for remote vs local service:

Remote - Pro:
- Fixes/Upgrades not release dependent.
- Available to all users immediately.

Remote - Con:
- A remote service not accessed through Tor could be manipulated to deceive the 
user into thinking they *are* using Tor. 
- Dependence on external resources.
- Failing the test allows Tor users to expose themselves by accessing 
well-defined resources.

Local - Pro:
- No dependence on external resources. (If test 3 is modified to serve an image 
when a circuit is successfully built, rather than serving an actual external 
resource.)

Local - Con:
- Failing the test allows Tor users to expose themselves by accessing 
well-defined resources.
- Release dependent. Users will be stuck with any implementation flaws until they 
upgrade.
- An additional HTTP service on Tor is an additional attack channel. Assuming 
that the service does not accept HTTP POST, what can an attacker garner from a 
GET? Could an attacker use it to determine if a user is running Tor? Could they 
send malformed URL requests to crash the service and exploit Tor? Perhaps the 
service could be single use - it is enabled by the controller and once it has 
served responses for all defined tests or after a period of time, closes down 
until re-enabled.


>    - Have a controller do it without modifying, or with minimal
>      modifications to, the Tor client.
>
>      Test 3 (net connectivity by Tor) is as easy as looking for
>      whether Tor can build a circuit, I think.  For test 2 (is browser
>      using Tor), just use a MAPADDRESS command to replace a randomly
>      chosen unique ID hostname with (say) torproect.org.  For test 1
>      (is browser using Tor for DNS), send the browser to request a
>      random hostname, and then look in Tor's DNS cache to see whether
>      Tor has a cached entry there.
>

Yes, the controller could create/maintain one or two static, locally stored html 
pages for the user to open. The first one would contain the tests. The second 
would contain the results gathered by the controller. Or maybe an auto-refresh 
http header would serve just as well to serve the test and then the results.

Since a tor http test service is really only going to be useful for controllers, 
maybe this approach is the best overall.  The contents of the page could be 
specified by the tor project. The html page could even be distributed with Tor 
and installed to some specified location for controllers to access. The downside 
with this is that controllers would have to modify some of the page's contents 
for the tests to work properly and copy the page to an alternative location for 
opening.

Alternatively Tor could generate the page on request (with the randomized 
hostnames etc.) at a controller selected location. But this is just passing work 
to Tor unnecessarily I think.

I think it would be important for the page to be distributed or specified by 
Tor - otherwise controller maintainers are just muddling through themselves.


>      [There may be better ways to do these.]
>
> The security implications as near as I can tell are:
>
>     * It adds a way to tell if people are using Tor: when they test an
>       instance of Tor that isn't configured properly, they'll leak
>       pretty identifiable requests to one or two well-known addresses.
>
>     * There are lots of attacks this doesn't solve, particularly
>       browser-based ones.  We could solve this by having a link to a
>       remote "am I using Tor right" page, I guess.
>
>     * It adds another local resource that speaks HTTP; experience
>       suggests that we should think about whether remote pages can use
>       links or javascript to redirect users here in a way that will be
>       useful to an adversary.
>
> None of these seem really terrible to me at the moment, but we should
> analyze them.
>
>
> What do you think?


Attachment: signature.asc
Description: This is a digitally signed message part.