xxx-encrypted-services.txt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. Filename: xxx-encrypted-services.txt
  2. Title: Encrypted services as a replacement to exit enclaving
  3. Author: Roger Dingledine
  4. Created: 2011-01-12
  5. Status: Draft
  6. We should offer a way to run a Tor hidden service where the server-side
  7. rendezvous circuits are just one hop.
  8. 1. Motivation
  9. There are three Tor use cases that this idea addresses:
  10. 1) Indymedia wants to run an exit enclave that provides end-to-end
  11. authentication and encryption. They tried running an exit relay that
  12. just exits to themselves:
  13. https://trac.torproject.org/projects/tor/ticket/800
  14. but a) it handles lots of other traffic too since it's a relay, and
  15. b) exit enclaves don't actually work consistently, because the first
  16. connection from the user doesn't realize it should use the exit enclave.
  17. 2) Wikileaks uses Tor hidden services not to hide their service,
  18. but because the hidden service address provides a type of usability
  19. we didn't think much about: unlike a more normal address, a Tor
  20. hidden service address either works (meaning you get your end-to-end
  21. authentication and encryption) or it fails hard. With a hidden service
  22. address there's no way a user could accidentally submit their documents
  23. to Wikileaks without using Tor, but with normal Tor it's possible.
  24. 3) The Freenode IRC network wants to provide end-to-end encryption and
  25. authentication to its users, a) to handle the fact that the IRC protocol
  26. doesn't really provide much of that by default, and b) to funnel all
  27. their Tor users into a single location so they can handle the anonymous
  28. users better. They don't mind the fact that their service is hidden, but
  29. they'd rather have better performance for their users given the choice.
  30. 2. Design
  31. It seems that the main changes required would be to a) make
  32. circuit_launch_by_extend_info() know to use 1 hop rather than the
  33. default, and know not to try to cannibalize a general 3-hop circ for
  34. these circuits, and b) add a way in the torrc file to specify that this
  35. service wants to be an encrypted service rather than a hidden service.
  36. I had originally pondered some sort of even more efficient "signed
  37. document saying this service is running at this Tor relay", which
  38. would be more efficient because it would cut out the rendezvous step.
  39. But by reusing the hidden service rendezvous infrastructure, we a)
  40. blend in with hidden services (and hidden service descriptors) and
  41. don't need to teach users (or their Tor clients) a new interface,
  42. and b) can offer the encrypted service on a non-relay.
  43. One design question to ponder: should we continue to use three-hop
  44. circuits for our introduction points, and for publishing our encrypted
  45. service descriptor? Probably.
  46. 3. Security implications
  47. There's a possible second-order effect here since both encrypted
  48. services and hidden services will have foo.onion addresses and it's
  49. not clear based on the address whether the service will be hidden --
  50. if *some* .onion addresses are easy to track down, are we encouraging
  51. adversaries to attack all rendezvous points just in case?
  52. ...