|
@@ -1,3 +1,249 @@
|
|
|
+Changes in version 0.2.7.3-????? - 2015-09-1?
|
|
|
+ XXXX write a blurb
|
|
|
+
|
|
|
+ o Major features (security, hidden services):
|
|
|
+ - For an hidden service, it is now prohibited to use one single
|
|
|
+ EntryNodes to avoid a very easy guard discovery attack. For more
|
|
|
+ details, see the ticket description here:
|
|
|
+ https://trac.torproject.org/projects/tor/ticket/14917. Fixes
|
|
|
+ ticket 14917.
|
|
|
+
|
|
|
+ o Major features (relay, Ed25519):
|
|
|
+ - Significant improvements to the usability of relay-side Ed25519
|
|
|
+ key management. Log messages are better, and the code can recover
|
|
|
+ from far more failure conditions. Thanks to "s7r" for reporting
|
|
|
+ and diagnosing so many of these!
|
|
|
+
|
|
|
+ o Major bugfixes (relay, Ed25519):
|
|
|
+ - Avoid crashing on 'tor --keygen'. Fixes bug 16679; bugfix on
|
|
|
+ 0.2.7.2-alpha. Reported by "s7r".
|
|
|
+ - Improve handling of expired signing keys along with offline master
|
|
|
+ keys. Fixes bug 16685; bugfix on 0.2.7.2-alpha. Reported by "s7r".
|
|
|
+
|
|
|
+ o Major enhancements (performance testing):
|
|
|
+ - Add chutney performance testing support to src/test/test-
|
|
|
+ network.sh The following arguments change how chutney verifies the
|
|
|
+ network: "--bytes n" sends n bytes per test connection;
|
|
|
+ "--connections n" makes n test connections per client; and
|
|
|
+ "--hs-multi-client 1" makes each client connect to each HS.
|
|
|
+ Requires the corresponding chutney performance testing changes.
|
|
|
+ Note: using --connections 7 or greater on a HS will trigger issue
|
|
|
+ 15937. Patch by "teor". Closes ticket 14175.
|
|
|
+
|
|
|
+ o Minor features:
|
|
|
+ - Try harder to normalize the exit status of the Tor process to the
|
|
|
+ standard-provided range. Fixes bug 16975; bugfix on every version
|
|
|
+ of Tor ever.
|
|
|
+ - Update geoip and geoip6 to the July 8 2015 Maxmind GeoLite2
|
|
|
+ Country database.
|
|
|
+
|
|
|
+ o Minor features (client-side privacy):
|
|
|
+ - Indefinitely extend circuit lifespan by resetting dirtyness, if
|
|
|
+ IsolateSOCKSAuth is in use, the new `KeepAliveIsolateSOCKSAuth`
|
|
|
+ option is set, and streams with SOCKS authentication are attached
|
|
|
+ to the circuit. Implements feature 15482.
|
|
|
+
|
|
|
+ o Minor features (compilation):
|
|
|
+ - Give a warning as early as possible when trying to build with an
|
|
|
+ unsupported OpenSSL version. Closes ticket 16901.
|
|
|
+
|
|
|
+ o Minor features (Hidden service directory):
|
|
|
+ - Relays need to have the Fast flag to get the HSDir flag. As this
|
|
|
+ is being written, we'll go from 2745 HSDirs down to 2342, a ~14%
|
|
|
+ drop. Fixes ticket 15963.
|
|
|
+
|
|
|
+ o Minor features (hidden Service Statistics):
|
|
|
+ - Turn on hidden service statistics collection by setting the torrc
|
|
|
+ option HiddenServiceStatistics to "1" by default. Closes
|
|
|
+ ticket 15254.
|
|
|
+
|
|
|
+ o Minor features (hidden service):
|
|
|
+ - Client now uses an introduction point failure cache to know when
|
|
|
+ to fetch or keep a descriptor in their cache.
|
|
|
+
|
|
|
+ When fetching a descriptor, for every introduction points in it,
|
|
|
+ we look them up in the failure cache to know if we keep the
|
|
|
+ descriptor or not. For this to work, everytime an introduction
|
|
|
+ points is discarded (ex: receiving a NACK), we note it down in our
|
|
|
+ introduction cache. If all introduction points for an onion
|
|
|
+ service are in our failure cache, we discard the descriptor and
|
|
|
+ fetch a new one.
|
|
|
+
|
|
|
+ See rendcache.c for a detailed explanation of the cache's
|
|
|
+ behavior. Closes ticket 16389.
|
|
|
+
|
|
|
+ o Minor features (performance):
|
|
|
+ - Improve the runtime speed of Ed25519 operations and Curve25519
|
|
|
+ keypair generation when built targeting 32 bit x86 platforms with
|
|
|
+ SSE2 available. Implements ticket 16535.
|
|
|
+ - Improve the runtime speed of Ed25519 signature verification by
|
|
|
+ using Ed25519-donna's batch verification support when there are a
|
|
|
+ lot of signatures to verify at once. Implements ticket 16533.
|
|
|
+
|
|
|
+ o Minor features (testing):
|
|
|
+ - Autodetect CHUTNEY_PATH if the chutney and tor sources are side-
|
|
|
+ by-side in the same parent directory. Closes ticket 16903. Patch
|
|
|
+ by "teor".
|
|
|
+
|
|
|
+ o Minor features (testing, authorities):
|
|
|
+ - New TestingDirAuthVote{Exit,Guard,HSDir}IsStrict flags. "A node
|
|
|
+ will never receive the corresponding flag unless that node is
|
|
|
+ specified in the TestingDirAuthVote{Exit,Guard,HSDir} list,
|
|
|
+ regardless of its uptime, bandwidth, exit policy, or DirPort".
|
|
|
+ Closes ticket 14882. Patch by "robgjansen", modified by "teor" as
|
|
|
+ VoteOnHidServDirectoriesV2 is now obsolete. Commit message and
|
|
|
+ changes file by "teor" & "robgjansen".
|
|
|
+
|
|
|
+ o Minor features (testing, authorities, documentation):
|
|
|
+ - Fix an error in the manual page and comments for
|
|
|
+ TestingDirAuthVoteHSDir[IsStrict], which suggested that a HSDir
|
|
|
+ required "ORPort connectivity". While this is true, it is in no
|
|
|
+ way unique to the HSDir flag. Of all the flags, only HSDirs need a
|
|
|
+ DirPort configured in order for the authorities to assign that
|
|
|
+ particular flag. Fixed as part of 14882. Patch by "teor". Bugfix
|
|
|
+ on 0.2.6.3 (f9d57473e1ff on 10 January 2015).
|
|
|
+
|
|
|
+ o Minor features (testing, bridges, hidden services):
|
|
|
+ - Make "bridges+hs" the default test network. This tests almost all
|
|
|
+ tor functionality during make test-network, while allowing tests
|
|
|
+ to succeed on non-IPv6 systems. Requires chutney commit 396da92 in
|
|
|
+ test-network-bridges-hs. Closes tickets 16945 (tor), 16946
|
|
|
+ (chutney) . Patches by "teor".
|
|
|
+
|
|
|
+ o Minor bugfixes:
|
|
|
+ - Check correctly for windows socket errors in the workqueue
|
|
|
+ backend. Fixes bug 16741; bugfix on 0.2.6.3-alpha.
|
|
|
+ - Ensure that worker threads actually exit when a fatal error or
|
|
|
+ shutdown is indicated. This doesn't currently affect the behaviour
|
|
|
+ of Tor, because Tor never indicates fatal error or shutdown except
|
|
|
+ in its unit tests. Fixes bug 16868; bugfix on 0.2.6.3-alpha.
|
|
|
+ - Fix an usage message of tor-resolve(1) so that it no longer lists
|
|
|
+ the removed -F option. Fixes bug 16913; bugfix on
|
|
|
+ Tor 0.2.2.28-beta.
|
|
|
+ - Fix the behavior of crypto_time_t when told to consider times
|
|
|
+ before 1970. (These times were possible when running in a
|
|
|
+ simulated network environment where time()'s output starts at
|
|
|
+ zero.) Fixes bug 16980; bugfix on 0.2.7.1-alpha.
|
|
|
+ - When calling channel_free_list(), avoid calling smartlist_remove()
|
|
|
+ while inside a FOREACH loop. This partially reverts commit
|
|
|
+ 17356fe7fd96af where the correct SMARTLIST_DEL_CURRENT was
|
|
|
+ removed. Fixes bug 16924; bugfix on 0.2.4.4-alpha.
|
|
|
+ - When logging malformed hostnames in socks5 requests, respect
|
|
|
+ SafeLogging configuration. Fixes bug 16891; bugfix on 0.1.1.16-rc.
|
|
|
+ - include the TUNING document in our source tarball. It is referred
|
|
|
+ to in the ChangeLog and an error message. Fixes bug 16929; bugfix
|
|
|
+ on 0.2.6.1-alpha.
|
|
|
+
|
|
|
+ o Minor bugfix (open file limit):
|
|
|
+ - Fix set_max_file_descriptors() to set by default the max open file
|
|
|
+ limit to the current limit in case setrlimit() fails so we at
|
|
|
+ least have a usable value; Fixes bug 16274; bugfix on tor-
|
|
|
+ 0.2.0.10-alpha. Patch by dgoulet.
|
|
|
+
|
|
|
+ o Minor bugfixes (authority):
|
|
|
+ - Don't assign "HSDir" to a router if it isn't Valid and Running.
|
|
|
+ Fixes bug 16524; bugfix on 0.2.7.2-alpha.
|
|
|
+ - Downgrade log messages about Ed25519 key issues, if they are in
|
|
|
+ old cached router descriptors. Fixes part of bug 16286; bugfix
|
|
|
+ on 0.2.7.2-alpha.
|
|
|
+ - When we find an Ed25519 key issue in a cached descriptor, stop
|
|
|
+ saying the descriptor was just "uploaded". Fixes another part of
|
|
|
+ bug 16286; bugfix on 0.2.7.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (control port):
|
|
|
+ - Control port was using set_max_file_descriptors() with a limit set
|
|
|
+ to 0 to get the max value. A recent fix made this use case return
|
|
|
+ an error and introduced dead code in that function. This triggered
|
|
|
+ a warning that our limit (ConnLimit) was invalid but in reality it
|
|
|
+ was not.
|
|
|
+
|
|
|
+ Now, to the control port uses a specific getter function to query
|
|
|
+ the value and set_max_file_descriptors() should never be used
|
|
|
+ again for that purpose. Fixes bug 16697; bugfix on 0.2.7.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (Ed25519):
|
|
|
+ - Fix a memory leak when reading router descriptors with expired
|
|
|
+ Ed25519 certificate. Fixes bug 16539; bugfix on 0.2.7.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (linux seccomp2 sandbox):
|
|
|
+ - Allow bridge authorities to run correctly under the seccomp2
|
|
|
+ sandbox. Fixes bug 16964; bugfix on 0.2.5.1-alpha.
|
|
|
+ - Allow routers with ed25519 keys to run correctly under the
|
|
|
+ seccomp2 sandbox. Fixes bug 16965; bugfix on 0.2.7.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (relay):
|
|
|
+ - Unblock threads before releasing the mutex to ensure predictable
|
|
|
+ scheduling behavior. Fixes bug 16644; bugfix on 0.2.6.3-alpha.
|
|
|
+
|
|
|
+ o Code simplification and refactoring:
|
|
|
+ - Change the function that's called when we need to retry all
|
|
|
+ downloads so that it only reschedules the downloads to happen
|
|
|
+ immediately, rather than launching them all at once itself. This
|
|
|
+ further simplifies Tor's callgraph.
|
|
|
+ - Move some format-parsing functions out of crypto.c and
|
|
|
+ crypto_curve25519.c into crypto_format.c and/or util_format.c.
|
|
|
+ - Move the client-only parts of init_keys() into a separate
|
|
|
+ function. Closes ticket 16763.
|
|
|
+ - Simplify the microdesc_free() implementation so that it no longer
|
|
|
+ appears (to code analysis tools) to potentially invoke a huge
|
|
|
+ suite of other microdesc functions.
|
|
|
+ - Simply the control graph further by deferring the inner body of
|
|
|
+ directory_all_unreachable() into a callback. Closes ticket 16762.
|
|
|
+ - Treat the loss of an owning controller as equivalent to a SIGTERM
|
|
|
+ signal. This removes a tiny amount of duplicated code, and
|
|
|
+ simplifies our callgraph. Closes ticekt 16788.
|
|
|
+ - When generating an event to send to the controller, we no longer
|
|
|
+ put the event over the network immediately. Instead, we queue
|
|
|
+ these events, and use a Libevent callback to deliver them. This
|
|
|
+ change simplifies Tor's callgraph by reducing the number of
|
|
|
+ functions from which all other Tor functions are reachable. Closes
|
|
|
+ ticket 16695.
|
|
|
+ - Wrap windows-only C files inside '#ifdef _WIN32' so that tools
|
|
|
+ that try to scan or compile every file on Unix won't decide that
|
|
|
+ they are broken.
|
|
|
+
|
|
|
+ o Code simplifications and refactoring:
|
|
|
+ - Remove the unused "nulterminate" argument from buf_pullup().
|
|
|
+
|
|
|
+ o Documentation:
|
|
|
+ - Recommend a 40 GB example AccountingMax in torrc.sample rather
|
|
|
+ than a 4 GB max. Closes ticket 16742.
|
|
|
+
|
|
|
+ o Removed code:
|
|
|
+ - The internal pure-C tor-fw-helper tool is now removed from the Tor
|
|
|
+ distribution, in favor of the pure-Go clone available from
|
|
|
+ https://github.com/Yawning/tor-fw-helper . The libraries used by
|
|
|
+ the C tor-fw-helper are not, in our opinion, very confidence-
|
|
|
+ inspiring in their secure-proggramming techniques. Closes
|
|
|
+ ticket 13338.
|
|
|
+
|
|
|
+ o Removed features:
|
|
|
+ - Remove the code that would try to aggressively flush controller
|
|
|
+ connections while writing to them. This code was introduced in
|
|
|
+ 0.1.2.7-alpha, in order to keep output buffers from exceeding
|
|
|
+ their limits. But there is no longer a maximum output buffer size,
|
|
|
+ and flushing data in this way caused some undesirable recursions
|
|
|
+ in our call graph. Closes ticket 16480.
|
|
|
+
|
|
|
+ o Testing:
|
|
|
+ - Add a new set of callgraph analysis scripts that use clang to
|
|
|
+ produce a list of which Tor functions are reachable from which
|
|
|
+ other Tor functions. We're planning to use these to help simplify
|
|
|
+ our code structure by identifying illogical dependencies.
|
|
|
+ - Add new 'test-full' and 'test-full-online' targets to run all
|
|
|
+ tests, including integration tests with stem and chutney.
|
|
|
+ - Make the test-workqueue test work on windows by initializing the
|
|
|
+ network before we begin.
|
|
|
+ - New make target (make test-network-all) to run multiple applicable
|
|
|
+ chutney test cases. Patch from Teor; closes 16953.
|
|
|
+ - Unit test dns_resolve(), dns_clip_ttl() and dns_get_expiry_ttl()
|
|
|
+ functions in dns.c. Implements a portion of ticket 16831.
|
|
|
+ - When building Tor with testing coverage enabled, run Chutney tests
|
|
|
+ (if any) using the 'tor-cov' coverage binary.
|
|
|
+ - When running test-network or test-stem, check for the absence of
|
|
|
+ stem/chutney before doing any build operations.
|
|
|
+
|
|
|
+
|
|
|
Changes in version 0.2.7.2-alpha - 2015-07-27
|
|
|
This, the second alpha in the Tor 0.2.7 series, has a number of new
|
|
|
features, including a way to manually pick the number of introduction
|