xxx-bridges.txt 5.3 KB

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