Guest User

Untitled

a guest
Feb 15th, 2015
956
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.58 KB | None | 0 0
  1. (This post is likely to be interesting for folks who want to know how the Tor software is made.)
  2. At the core of the Tor software lies the network protocol that Tor relays and clients use to talk to each other. We try to make sure we have a good set of specification documents for the protocol at all times, so that other people can write compatible software that interoperates with Tor.
  3. Once upon a time, we used to change these specification documents whenever we changed the software's behavior. That didn't go well. We would have changes in the spec that we had forgotten to make in the software, and tons of inline comments where we argued about whether a particular paragraph was a good idea.
  4. So back in 2007, we introduced a lightweight change-proposal process: to make a change to the Tor protocol, you write up a little design document, and send it to the tor-dev mailing list. Once it meets editorial quality, it can go into the proposals repository. Once it's implemented, it can be merged into the spec.
  5. There are a lot of proposals to look at, though. The current set of open proposals has almost 100,000 words in it! (That's almost half again as long as the Tor specs themselves.)
  6. To help people navigate through this pile of design proposals, I started to write a regular "proposal status" email to explain what all of the open proposals are about. Last year, however, I fell out of the habit. Tonight, I've tried to fall back in: here's the latest proposal status writeup.
  7. Below the cut, my summaries of the still-open proposals that have been added in the past couple of year -- and thanks to all the busy designers who have been working to think of ways to improve Tor!
  8. 228 Cross-certifying identity keys with onion keys
  9. This proposal signs each server's identity key with its onion
  10. keys, to prove onion key ownership in the router descriptor.
  11. It's not clear that this actually improves security, but it
  12. fixes an annoying gap in our key authentication. I have it coded
  13. up in my #12498 branch, targeting 0.2.7. (2/2015)
  14. 229 Further SOCKS5 extensions
  15. Here's a nice idea for how we can support a new SOCKS5 protocol
  16. extension to relay information between clients and Tor, and
  17. between Tor and pluggable transports, more effectively. It
  18. also adds some additional SOCKS5 error codes. There are some
  19. open questions to answer. "Trunnel" has an implementation of
  20. the protocol extension formats in its examples directory. (2/2015)
  21. 230 How to change RSA1024 relay identity keys [DRAFT]
  22. 231 Migrating authority RSA1024 identity keys [DRAFT]
  23. Who remembers the OpenSSL "Heartbleed" vulnerability?
  24. These proposals I wrote try to explain safer mechanisms for a bunch
  25. of servers to migrate their RSA1024 identity keys at once. I'm not
  26. sure we'll be able to build thee, though: implementating proposal
  27. 220 above seems cleverer to me. (2/2015)
  28. 232 Pluggable Transport through SOCKS proxy [OPEN]
  29. Arturo Filastò wrote this proposal for chaining pluggable
  30. transports which themselves need to go through proxies. Seems
  31. potentially useful! (2/2015)
  32. 233 Making Tor2Web mode faster [OPEN]
  33. This one by Virgil, Fabio, and Giovanni describes a couple of ways
  34. that Tor2Web builds of Tor can save some circuit hops that they use
  35. today. Potentially useful for Tor2Web; any implementation needs to
  36. be sure that it never changes the behavior of non-tor2web clients.
  37. (2/2015)
  38. 234 Adding remittance field to directory specification [OPEN]
  39. Virgil, Leif, and Rob added this proposal for relays to specify
  40. payment addresses for schemes that want to compensate relay
  41. operators for their use of bandwidth. (2/2015)
  42. 235 Stop assigning (and eventually supporting) the Named flag [DRAFT]
  43. This proposal is about removing the Named flag. (Thanks to
  44. Sebastian Hahn for writing it!) The rationale is that the naming
  45. system for relays never worked particularly well, and it had
  46. strange and hard-to-explain security properties. We've implemented
  47. the key part of this already: directory authorities don't assign
  48. the Named flag any longer. Next up will be removing client support
  49. for parsing and understanding it. (2/2015)
  50. 236 The move to a single guard node [OPEN]
  51. This proposal suggests that to limit client fingerprinting, and to
  52. limit opportunities for attacks, clients should use a single guard
  53. node, rotated infrequently. This transition is in progress; we use
  54. a single guard node for circuit traffic now, but in order to make
  55. guards more long-lived, we need to adjust how they are chosen.
  56. George has a patch for that as #9321, targetting inclusion into
  57. 0.2.6. (Thanks to George Kadianakis and Nicholas Hopper for
  58. writing this one.) (2/2015)
  59. 237 All relays are directory servers [OPEN]
  60. Matthew Finkel wrote this proposal to describe a transition to a
  61. world where Tor relays can be directory servers without having an
  62. open DirPort -- and eventually, where every relay can be a
  63. DirServer. He has an implementation, possibly for 0.2.6 or 0.2.7,
  64. in ticket #12538. (2/2015)
  65. 238 Better hidden service stats from Tor relays [DRAFT]
  66. Here's an important one that needs many eyes. George Kadianakis,
  67. David Goulet, Karsten Loesing, and Aaron Johnson wrote this to
  68. describe a mechanism for the tor network to securely produce
  69. aggregate hidden service usage statistics without exposing
  70. sensitive intermediate results. This has an implementation in
  71. 0.2.6 and should probably be marked closed. (2/2015)
  72. 239 Consensus Hash Chaining [DRAFT]
  73. Here's the start of a good idea that Andrea Shepard wrote up (with
  74. some help from Nick). The idea is to make it hard even for a set
  75. of corrupt authorities (or authority-key-thieves) to make a
  76. personalized false consensus for a target user, by authenticating
  77. the whole sequence as a hash chain. Others on tor-dev suggested
  78. improvements and had good questions (thanks, Leif and Sebastian G!)
  79. (2/2015)
  80. 240 Early signing key revocation for directory authorities [DRAFT]
  81. This one is another Andrea+Nick collaboration about certificate
  82. revocation for our most sensitive keys. If an authority key needs
  83. to be replaced, it would be great to take the old one out of
  84. circulation as fast as possible. Peter Palfrader on tor-dev had
  85. some ideas for making this better. (2/2015)
  86. 241 Resisting guard-turnover attacks [DRAFT]
  87. I wrote this one with good ideas from Aaron Johnson and Rob
  88. Jansen. It describes a way to respond to an important class of
  89. attacks where an adversary kills off a targeted user's guards until
  90. the user has chosen a guard the attacker controls. (See the
  91. "Sniper Attack") paper. The defense is tricky, and if not done
  92. right, might lead clients to kick themselves off the network out of
  93. paranoia. So, this proposal could use more analysis. (2/2015)
Advertisement
Add Comment
Please, Sign In to add comment