[4751] in WWW Security List Archive

home help back first fref pref prev next nref lref last post

Two-way Web anonymizing (fwd)

daemon@ATHENA.MIT.EDU (Daniel Rinehart)
Mon Mar 10 23:44:03 1997

Date: Mon, 10 Mar 1997 20:57:05 -0500 (EST)
From: Daniel Rinehart <danielr@ccs.neu.edu>
To: www-security@ns2.rutgers.edu
Errors-To: owner-www-security@ns2.rutgers.edu

Date: Wed, 26 Feb 1997 10:15:26 -0800 (PST)
From: Raph Levien <raph@acm.org>

   In many ways, Web anonymizing is the dual of e-mail anonymizing. Both 
types protect the anonymity of the party initiating the transfer. 
However, since e-mail is push and the Web is pull, it protects the 
anonymity of the _provider_ of e-mail information, but the _recipient_ of 
Web information.

   Two-way e-mail anonymizers have proven to be an invaluable tool for 
protecting the free flow of information and allowing anonymous parties to 
participate more fully in the dialog of the Internet. It's gratifying to 
see that we now have three distinct types of two-way e-mail anonymizers, 
each with its own strengths (I refer, of coure, to the nym.alias.net type 
of nymserver, the continuation of penet's legacy by anon.nymserver.com 
and others, and the Web-to-email gateways such as hotmail and 
mailmasher).

   Here, I propose a simple technique for two-way Web anonymizing, which 
protects the anonymity of Web servers as well as browsers. I wouldn't be 
surprised if other people have come up with the same idea already. But it 
seems like the time might be ripe to actually implement it.

   The core of the idea is for the anonymizing server to incorporate a 
database mapping the pseudonym of the Web server to the actual address. 
Thus, of the three models of two-way e-mail anonymity, it's most similar 
to the penet one.

   I'll give an example in more detail. Since cookies are such a
controversial topic, let's say that J. Baker wants to post the secret
Neiman-Marcus cookie recipe up on the Web, but doesn't want the NSA to be
able to track him down. Thus, he sets up a clandestine Web server, with 
the cookie recipe accessible at, say, 
http://student.umich.edu:9999/cookie.html. If he were to make this URL 
public, then it would be anonymously accessible through, say, 
http://webanon.com/http://student.umich.edu:9999/cookie.html. However, J. 
prefers not to publicize his URL. Thus, he registers the following 
mapping with the anonymizer at webanon.com:

http://cookie.taz/ -> http://student.umich.edu:9999/

   He then publicizes the cookie.taz URL, and the public can access the
recipe at: 

http://webanon.com/http://cookie.taz/cookie.html

   That's the core of the idea. There are a few variations which will 
help to improve the security a bit more.

   First, both Web connections should probably be protected by SSL. This 
won't help much against real traffic analysis, but will at least protect 
J.'s identity from someone running a packet sniffer at umich. Similarly, 
J.'s server can be configured to only accept requests from legitimate 
anonymizers, either through a simple DNS access list or through SSL 
client authentication.

   Second, some protection against traffic analysis may be had through 
caching. The attack is as follows: the attacker continually reloads 
the cookie recipe, and looks at the outgoing Web connections from 
webanon.com. If the number of accesses to umich increases during the 
times the cookie recipe is accessed, then it's likely that that's where 
the page is really hosted. However, with caching, a burst of accesses to 
the cookie page would result in only one connection to umich, which would 
probably be hard to separate from the noise.

   As always when dealing with Web caching, there are a few tricky
details. For example, J. would have to tell the server to ignore "Pragma:
no-cache" requests from the browser. In addition, this protection against 
traffic analysis is incompatible with forms and other types of Web 
interactivity.

   The other big can of worms is how to handle a network of anonymizers,
rather than a single anonymizing server. For one, chaining becomes
entirely feasible. This can be done in a couple of ways. 

   The first way requires no more implementation. J. registers this 
mapping with webanon.com:

http://cookie.taz/ -> https://anon.middle.com/http://zzzyxx.taz/

   and this mapping with anon.middle.com:

http://zzzyxx.taz/ -> https://student.umich.edu:4433/

   Another method would be to use something analogous to a reply block. 
J. registers this mapping with webanon.com:

http://cookie.taz/ -> https://anon.middle.com/
E_middle(http://student.umich.edu:4433)

   where E_middle(m) represents the encryption of m with anon.middle.com's
public key. 

   The latter technique is more analogous to the reply block mechanism of 
the nym.alias.net style of nymservers. It would require slightly more 
implementation work in the anonymizing server (public key decryption of 
the request), and would also require some client software to build the 
reply blocks (in the non-chained case, I envision registering the 
mappings through a simple forms-based Web interface).

   There's also the matter of chaining the encryption of the Web page. I
can see the page encrypted at the last server in the chain (or better yet,
J.'s server itself), and decrypted at each step in the chain. This would
be analogous to the Encrypt-Key: function of the anonymous remailers. 
This would _certainly_ require client software at J.'s end. Perhaps the 
best approach would be to distribute a package containing both a 
clandestine Web server (hopped up with the extra encryption features) and 
the client software needed to create the chains and register them with 
the Web anonymizers.

   It might be worthwhile to coordinate the namespaces of anonymous
servers. If a browser is configured to use a web anonymizer as a proxy,
then the URL http://cookie.taz/ will just work. However, it would be nice
if this URL brought up the same page no matter which server was used as a
proxy. This is particularly important if servers are thought of as
temporary, movable installations rather than permanent bastions (i.e. the
"soft node" vs. "hard node" distinction of Eric Hughes). 

   Managing such a namespace is pretty tricky, and beyond the scope of
this post, but is probably feasible. I look forward to seeing links of the
form "http://whatver.taz/, see the webanon list for a reliable server." 

   Finally, a few words about the political climate for this kind of 
server. There's good reason to be optimistic. First, the pull nature of 
the Web makes it far more difficult to mount the traditional e-mail spams 
that have plagued the remailers. Second, there's precedent that the 
existence of this type of server should be protected. Even the CDA, as 
horrible as it is, makes a specific exemption for intermediate Internet 
servers, including the storage and dissemination of illegal materials 
from caches.

   It would seem that the main limitation would be resources; these
anonymizers would be certain to chew up large amounts of bandwidth. In my
opinion, the best way to deal with this issue is to put Jef Poskanzer's 
throttling technology into the anonymizing server (as implemented in 
thttpd). Restrict the total bandwidth to a manageable fraction of your 
Internet connection, and give text files priority over images.

   I think this idea could work. Comments and suggestions are welcome.

Raph



home help back first fref pref prev next nref lref last post