aboutsummaryrefslogtreecommitdiff
path: root/changes
diff options
context:
space:
mode:
Diffstat (limited to 'changes')
-rw-r--r--changes/ntor40
1 files changed, 40 insertions, 0 deletions
diff --git a/changes/ntor b/changes/ntor
new file mode 100644
index 000000000..3aca82075
--- /dev/null
+++ b/changes/ntor
@@ -0,0 +1,40 @@
+ o Major features:
+
+ - Tor now supports a new circuit extension handshake designed by Ian
+ Goldberg, Douglas Stebila, and Berkant Ustaoglu. Our original
+ circuit extension handshake, later called "TAP", was a bit slow
+ (especially on the server side), had a fragile security proof, and
+ used weaker keys than we'd now prefer. The new circuit handshake
+ uses Dan Bernstein's "curve25519" elliptic-curve Diffie-Hellman
+ function, making it significantly more secure than the older
+ handshake, and significantly faster. Tor can either use one of two
+ built-in pure-C curve25519-donna implementations by Adam Langley,
+ or link against the "nacl" library for a tuned version if present.
+
+ The built-in version is very fast for 64-bit systems building with
+ GCC. (About 10-14x faster on the server side, and about 7x faster
+ on the client side.) The built-in 32-bit version is still faster
+ than the old TAP protocol (about 3x), but using libnacl would be
+ better on most 32-bit x86 hosts.
+
+ Clients don't currently use this protocol by default, since
+ comparatively few clients support it so far. To try it, set
+ UseNTorHandshake to 1.
+
+ Implements proposal 216; closes ticket #7202.
+
+ - Tor servers and clients now support a better CREATE/EXTEND cell
+ format, allowing the sender to specify multiple address, identity,
+ and handshake types. Implements Robert Ransom's proposal 200;
+ closes ticket #7199.
+
+ o Code simplification and refactoring:
+ - Split the onion.c file into separate modules for the onion queue
+ and the different handshakes it supports.
+ - Remove the marshalling/unmarshalling code for sending requests to
+ cpuworkers over a socket, and instead just send structs. The
+ recipient will always be the same Tor binary as the sender, so
+ any encoding is overkill.
+
+ o Testing:
+ - Add benchmark functions to test onion handshake performance.