139-conditional-consensus-download.txt 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. Filename: 139-conditional-consensus-download.txt
  2. Title: Download consensus documents only when it will be trusted
  3. Author: Peter Palfrader
  4. Created: 2008-04-13
  5. Status: Closed
  6. Implemented-In: 0.2.1.x
  7. Overview:
  8. Servers only provide consensus documents to clients when it is known that
  9. the client will trust it.
  10. Motivation:
  11. When clients[1] want a new network status consensus they request it
  12. from a Tor server using the URL path /tor/status-vote/current/consensus.
  13. Then after downloading the client checks if this consensus can be
  14. trusted. Whether the client trusts the consensus depends on the
  15. authorities that the client trusts and how many of those
  16. authorities signed the consensus document.
  17. If the client cannot trust the consensus document it is disregarded
  18. and a new download is tried at a later time. Several hundred
  19. kilobytes of server bandwidth were wasted by this single client's
  20. request.
  21. With hundreds of thousands of clients this will have undesirable
  22. consequences when the list of authorities has changed so much that a
  23. large number of established clients no longer can trust any consensus
  24. document formed.
  25. Objective:
  26. The objective of this proposal is to make clients not download
  27. consensuses they will not trust.
  28. Proposal:
  29. The list of authorities that are trusted by a client are encoded in
  30. the URL they send to the directory server when requesting a consensus
  31. document.
  32. The directory server then only sends back the consensus when more than
  33. half of the authorities listed in the request have signed the
  34. consensus. If it is known that the consensus will not be trusted
  35. a 404 error code is sent back to the client.
  36. This proposal does not require directory caches to keep more than one
  37. consensus document. This proposal also does not require authorities
  38. to verify the signature on the consensus document of authorities they
  39. do not recognize.
  40. The new URL scheme to download a consensus is
  41. /tor/status-vote/current/consensus/<F> where F is a list of
  42. fingerprints, sorted in ascending order, and concatenated using a +
  43. sign.
  44. Fingerprints are uppercase hexadecimal encodings of the authority
  45. identity key's digest. Servers should also accept requests that
  46. use lower case or mixed case hexadecimal encodings.
  47. A .z URL for compressed versions of the consensus will be provided
  48. similarly to existing resources and is the URL that usually should
  49. be used by clients.
  50. Migration:
  51. The old location of the consensus should continue to work
  52. indefinitely. Not only is it used by old clients, but it is a useful
  53. resource for automated tools that do not particularly care which
  54. authorities have signed the consensus.
  55. Authorities that are known to the client a priori by being shipped
  56. with the Tor code are assumed to handle this format.
  57. When downloading a consensus document from caches that do not support this
  58. new format they fall back to the old download location.
  59. Caches support the new format starting with Tor version 0.2.1.1-alpha.
  60. Anonymity Implications:
  61. By supplying the list of authorities a client trusts to the directory
  62. server we leak information (like likely version of Tor client) to the
  63. directory server. In the current system we also leak that we are
  64. very old - by re-downloading the consensus over and over again, but
  65. only when we are so old that we no longer can trust the consensus.
  66. Footnotes:
  67. 1. For the purpose of this proposal a client can be any Tor instance
  68. that downloads a consensus document. This includes relays,
  69. directory caches as well as end users.