ntor 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. o Major features:
  2. - Tor now supports a new circuit extension handshake designed by Ian
  3. Goldberg, Douglas Stebila, and Berkant Ustaoglu. Our original
  4. circuit extension handshake, later called "TAP", was a bit slow
  5. (especially on the server side), had a fragile security proof, and
  6. used weaker keys than we'd now prefer. The new circuit handshake
  7. uses Dan Bernstein's "curve25519" elliptic-curve Diffie-Hellman
  8. function, making it significantly more secure than the older
  9. handshake, and significantly faster. Tor can either use one of two
  10. built-in pure-C curve25519-donna implementations by Adam Langley,
  11. or link against the "nacl" library for a tuned version if present.
  12. The built-in version is very fast for 64-bit systems building with
  13. GCC. (About 10-14x faster on the server side, and about 7x faster
  14. on the client side.) The built-in 32-bit version is still faster
  15. than the old TAP protocol (about 3x), but using libnacl would be
  16. better on most 32-bit x86 hosts.
  17. Clients don't currently use this protocol by default, since
  18. comparatively few clients support it so far. To try it, set
  19. UseNTorHandshake to 1.
  20. Implements proposal 216; closes ticket #7202.
  21. - Tor servers and clients now support a better CREATE/EXTEND cell
  22. format, allowing the sender to specify multiple address, identity,
  23. and handshake types. Implements Robert Ransom's proposal 200;
  24. closes ticket #7199.
  25. o Code simplification and refactoring:
  26. - Split the onion.c file into separate modules for the onion queue
  27. and the different handshakes it supports.
  28. - Remove the marshalling/unmarshalling code for sending requests to
  29. cpuworkers over a socket, and instead just send structs. The
  30. recipient will always be the same Tor binary as the sender, so
  31. any encoding is overkill.
  32. o Testing:
  33. - Add benchmark functions to test onion handshake performance.