123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- Filename: xxx-bridges.txt
- Title: Behavior for bridge users, bridge relays, and bridge authorities
- Version: $Revision: 12051 $
- Last-Modified: $Date: 2007-10-19 14:56:24 -0400 (Fri, 19 Oct 2007) $
- Author: Roger Dingledine
- Created: xx-Oct-2007
- Status: Open
- 0. Preface:
- This document describes the design decisions around support for bridge
- users, bridge relays, and bridge authorities.
- For more details on what all of these mean, look at blocking.tex in
- /doc/design-paper/
- 1. Bridge relays.
- Bridge relays are just like normal Tor relays except they don't publish
- their server descriptors to the main directory authorities.
- 1.1. PublishServerDescriptor
- To configure your relay to be a bridge relay, just add
- PublishServerDescriptor bridge
- to your torrc. This will cause your relay to publish its descriptor
- to all the bridge authorities rather than the default authorities.
- Alternatively, you can say
- PublishServerDescriptor 0
- which will cause your relay to not publish anywhere. This could be
- useful for private bridges.
- 1.2. Defining DirPort
- Bridges need to answer BEGIN_DIR requests, both so they can answer
- /server/authority questions ("what's your descriptor?") and so they
- can supply their bridge users with cached copies of all the various
- Tor network information.
- Right now (0.2.0.9-alpha) we require that bridges turn their DirPort on
- -- which means both that we answer BEGIN_DIR requests and that we fetch
- and cache directory information in an aggressive way like other servers.
- But:
- a) we don't enforce that DirPort is on, since it's not clear how to
- detect if the user meant to be a bridge. So it's easy to launch a bridge
- relay that silently refuses BEGIN_DIR requests and is thus useless.
- b) We don't actually care if they have an open or reachable DirPort. So
- at some point we should separate having an open DirPort from answering
- directory questions. Which leads to:
- c) We need to investigate if there are any anonymity worries with
- answering BEGIN_DIR requests when our DirPort is off. If there aren't,
- we can drop the DirPort requirement.
- 1.3. Exit policy
- Bridge relays should use an exit policy of "reject *:*". This is
- because they only need to relay traffic between the bridge users
- and the rest of the Tor network, so there's no need to let people
- exit directly from them.
- 1.4. RelayBandwidthRate / RelayBandwidthBurst
- We invented the RelayBandwidth* options for this situation: Tor clients
- who want to allow relaying too. See proposal 111 for details. Relay
- operators should feel free to rate-limit their relayed traffic.
- 1.5. Helping the user with port forwarding, NAT, etc.
- Just as for operating normal relays, our documentation and hints for
- how to make your ORPort reachable are inadequate for normal users.
- We need to work harder on this step.
- 1.6. Vidalia integration
- Vidalia has turned into "Relay" settings page into a tri-state
- "Don't relay" "Relay for the Tor network" "Help censored users".
- If the click the third choice, it forces your exit policy to reject *:*,
- and it forces your DirPort to 9030 (see Sec 1.2 above about DirPort).
- If all the bridges end up on port 9001, that's not so good. On the
- other hand, putting the bridges on a low-numbered port in the Unix
- world requires jumping through extra hoops. The current compromise is
- that Vidalia makes the ORPort default to 443 on Windows, and 9001 on
- other platforms.
- 2. Bridge authorities.
- Bridge authorities are like normal directory authorities, except they
- don't create their own network-status documents. So if you ask an
- authority for a network-status document, they behave like a directory
- mirror: they give you one from one of the main authorities. But if
- you ask the bridge authority for a particular identity fingerprint,
- it will happily give you the latest descriptor for that fingerprint.
- Right now there's one bridge authority, running on the Tonga relay.
- 2.1. Exporting bridge-purpose descriptors
- We've added a new purpose for server descriptors, the "bridge"
- purpose. With the new router-descriptors file that includes annotations,
- it's easy to look through it and find the bridge-purpose descriptors.
- We should work with Tonga to export its router-descriptors file to
- some place where we can distribute the bridge addresses according to
- the policies in blocking.pdf. It might even be easier to have it write
- out a separate file, just for export, that includes only the bridge
- descriptors; or maybe a six-liner perl postprocessing script is the
- better plan there to create a file for export.
- 2.2. Reachability/uptime testing
- should bridge relays publish anonymously to the bridge authority?
- migrating to multiple bridge authorities
- 3. Bridge users.
- UseBridges 1
- TunnelDirConns 1
- Format of the bridge identifier.
- bridges as entry guards
- bridges as directory guards
- UpdateBridgesFromAuthority 1
- when to use a one-hop circuit, when to use a three-hop, to reach
- the directory authority
- bridge descriptor retry schedule
- when to make TunnelDirConns default.
- Vidalia integration:
- vidalia looks up the geoip data for tor servers it knows about. which
- is fine, except when they're bridges. now geoip.vidalia-project.net
- is a place to go to learn bridge IP addresses.
|