122-unnamed-flag.txt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. Filename: xxx-unnamed-flag.txt
  2. Title: Network status entries need a new Unnamed flag
  3. Version: $Revision$
  4. Last-Modified: $Date$
  5. Author: Roger Dingledine
  6. Created: 04-Oct-2007
  7. Status: Open
  8. Overview:
  9. Tor's directory authorities can give certain servers a "Named" flag
  10. in the network-status entry, when they want to bind that nickname to
  11. that identity key. This allows clients to specify a nickname rather
  12. than an identity fingerprint and still be certain they're getting the
  13. "right" server. As dir-spec.txt describes it,
  14. Name X is bound to identity Y if at least one binding directory lists
  15. it, and no directory binds X to some other Y'.
  16. In practice, clients can refer to servers by nickname whether they are
  17. Named or not; if they refer to nicknames that aren't Named, a complaint
  18. shows up in the log asking them to use the identity key in the future
  19. --- but it still works.
  20. The problem? Imagine a Tor server with nickname Bob. Bob and his
  21. identity fingerprint are registered in tor26's approved-routers
  22. file, but none of the other authorities registered him. Imagine
  23. there are several other unregistered servers also with nickname Bob
  24. ("the imposters").
  25. While Bob is online, all is well: a) tor26 gives a Named flag to
  26. the real one, and refuses to list the other ones; and b) the other
  27. authorities list the imposters but don't give them a Named flag. Clients
  28. who have all the network-statuses can compute which one is the real Bob.
  29. But when the real Bob disappears and his descriptor expires? tor26
  30. continues to refuse to list any of the imposters, and the other
  31. authorities continue to list the imposters. Clients don't have any
  32. idea that there exists a Named Bob, so they can ask for server Bob and
  33. get one of the imposters. (A warning will also appear in their log,
  34. but so what.)
  35. The stopgap solution:
  36. tor26 should start accepting and listing the imposters, but it should
  37. assign them a new flag: "Unnamed". This would produce three cases from
  38. the client perspective:
  39. 1) A unique Bob is listed as Named, and nobody lists that Bob as
  40. Unnamed. Clients can refer to Bob by nickname and be confident.
  41. 2) Every Bob is listed by some authority as Unnamed. Clients asking
  42. for Bob should get a warning in the log and their request should fail
  43. ("no such router").
  44. 3) At least one Bob is not listed by any authorities as Unnamed, but
  45. there is no unique Named Bob. In this case we do what we did before
  46. (currently "warn but allow it").
  47. Problems not solved by this stopgap:
  48. If tor26 is the only authority that provides a binding for Bob, when
  49. tor26 goes offline we're back in our previous situation -- the imposters
  50. can be referenced with a mere ignorable warning in the client's log.
  51. If some other authority Names a different Bob, and tor26 goes offline,
  52. then that other Bob becomes the unique Named Bob.
  53. So be it. We should try to solve these one day, but there's no clear way
  54. to do it that doesn't destroy usability in other ways, and if we want
  55. to get the Unnamed flag into v3 network statuses we should add it soon.
  56. Other benefits:
  57. This new flag will allow people to operate servers that happen to have
  58. the same nickname as somebody who registered their server two years ago
  59. and left soon after. Right now there are dozens of nicknames that are
  60. registered on all three binding directory authorities, yet haven't been
  61. running for years. While it's bad that these nicknames are effectively
  62. blacklisted from the network, the really bad part is that this logic
  63. is really unintuitive to prospective new server operators.