Filename: 131-verify-tor-usage.txt Title: Help users to verify they are using Tor Version: $Revision$ Last-Modified: $Date$ Author: Steven J. Murdoch Created: 2008-01-25 Status: Needs-Revision Overview: Websites for checking whether a user is accessing them via Tor are a very helpful aid to configuring web browsers correctly. Existing solutions have both false positives and false negatives when checking if Tor is being used. This proposal will discuss how to modify Tor so as to make testing more reliable. Motivation: Currently deployed websites for detecting Tor use work by comparing the client IP address for a request with a list of known Tor nodes. This approach is generally effective, but suffers from both false positives and false negatives. If a user has a Tor exit node installed, or just happens to have been allocated an IP address previously used by a Tor exit node, any web requests will be incorrectly flagged as coming from Tor. If any customer of an ISP which implements a transparent proxy runs an exit node, all other users of the ISP will be flagged as Tor users. Conversely, if the exit node chosen by a Tor user has not yet been recorded by the Tor checking website, requests will be incorrectly flagged as not coming via Tor. The only reliable way to tell whether Tor is being used or not is for the Tor client to flag this to the browser. Proposal: A DNS name should be registered and point to an IP address controlled by the Tor project and likely to remain so for the useful lifetime of a Tor client. A web server should be placed at this IP address. Tor should be modified to treat requests to port 80, at the specified DNS name or IP address specially. Instead of opening a circuit, it should respond to a HTTP request with a helpful web page: - If the request to open a connection was to the domain name, the web page should state that Tor is working properly. - If the request was to the IP address, the web page should state that there is a DNS-leakage vulnerability. If the request goes through to the real web server, the page should state that Tor has not been set up properly. Extensions: Identifying proxy server: If needed, other applications between the web browser and Tor (e.g. Polipo and Privoxy) could piggyback on the same mechanism to flag whether they are in use. All three possible web pages should include a machine-readable placeholder, into which another program could insert their own message. For example, the webpage returned by Tor to indicate a successful configuration could include the following HTML: