diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-09-18 10:32:03 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-09-18 10:32:03 -0400 |
commit | 0bd62c1d92ecb2ee43d2ecd44ee5cf7b1295a3d1 (patch) | |
tree | b6d2b23f3ed05f95e0cd7d6638dc3e3c99e3f748 /ChangeLog | |
parent | d9dccb00ccc8518f716d798786b0144980e6b368 (diff) | |
download | tor-0bd62c1d92ecb2ee43d2ecd44ee5cf7b1295a3d1.tar.gz tor-0bd62c1d92ecb2ee43d2ecd44ee5cf7b1295a3d1.zip |
Start on a changelog for 0.3.2.1-alpha: sortchanges and formatchangelog
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 354 |
1 files changed, 354 insertions, 0 deletions
@@ -1,3 +1,357 @@ +Changes in version 0.3.2.1-alpha - 2017-09-18 + BLURB + + Below are the changes since Tor 0.3.1.7. + + o Major feature (scheduler, channel): + - Introducing the KIST scheduler which stands for Kernel Informed + Socket Transport. It is only available on Linux systems. This + comes from a researched and published paper you can find + here: http://www.robgjansen.com/publications/kist-sec2014.pdf + https://arxiv.org/abs/1709.01044 This is also a major refactoring + of the entire scheduler subsystem in order for it to be more + modular and thus much more easier to add more scheduler type + later. The current scheduler has been named "Vanilla" but we favor + KIST if available in this version. A new torrc option has been + added and named "Schedulers type1,type2,..." which allows a user + to select which scheduler type it wants tor to use. It is also + possible to change it at runtime. It is an ordered list by + priority. KIST might not be available on all platforms so there is + a fallback to "KISTLite" that uses the same mechanisms but without + the kernel support. The current default values are: Schedulers + KIST,KISTLite,Vanilla. Closes ticket 12541. + + o Major features (next-generation onion services): + - Tor now supports the next-generation onion services protocol for + clients and services! As part of this release, the core of + proposal 224 has been implemented and is available for + experimentation and testing by our users. This newer version of + onion services (v3) features various improvements over the legacy + system: a) Better crypto (replaced SHA1/DH/RSA1024 with + SHA3/ed25519/curve25519) b) Improved directory protocol leaking + less to directory servers. c) Improved directory protocol with + smaller surface for targeted attacks. d) Better onion address + security against impersonation. e) More extensible + introduction/rendezvous protocol. f) A cleaner and more modular + codebase. Furthermore, as part of this update, onion addresses + increase in length and are now 56 characters long: + 4acth47i6kxnvkewtm6q7ib2s3ufpo5sqbsnzjpbi7utijcltosqemad.onion In + the future, we will be releasing more options and features but we + first need a testing period, so that the current codebase matures + and becomes more robust. Here are some of the features we have + planned: 1) Offline keys for onion services 2) Advanced client + authorization for onion services 3) Improved guard algorithm for + onion services 4) Next-gen onion service statistics Please see our + proposal for more details: + https://gitweb.torproject.org/torspec.git/tree/proposals/224-rend-spec-ng.txt + The default version for onion services remains v2 (the legacy + system) until this new codebase gets tested and hardened. Service + operators who want to experiment with the new system can use the + 'HiddenServiceVersion 3' torrc directive along with the regular + onion service configuration options. We will publish a blog post + about this new feature soon! Enjoy! + + o Major bugfixes (usability, control port): + - Report trusted clock skew indications as bootstrap errors, so + controllers can more easily alert users. Fixes bug 23506; bugfix + on 0.1.2.6-alpha. + + o Minor features (bug detection): + - Log a warning message, with stack trace, for any attempt to call + get_options() during option validation. Closes ticket 22281. + + o Minor features (client directory bandwidth tuning): + - When downloading (micro)descriptors, don't split the list of + descriptors into multiple requests unless there are at least 32 + descriptors that we want. Previously, we split at 4, not 32, which + could lead to significant overhead in HTTP request size and + degradation in compression performance. Closes ticket 23220. + + o Minor features (client): + - You can now use Tor as a tunneled HTTP proxy: use the + HTTPTunnelPort option to open a port that accepts HTTP CONNECT + requests. Closes ticket 22407. + + o Minor features (client, entry guards): + - Add an extra check to make sure that we always use the new guard + selection code for picking our guards. Closes ticket 22779. + + o Minor features (command line): + - Add a new commandline option, --key-expiration, which prints when + the current signing key is going to expire. Implements ticket + 17639; patch by Isis Lovecruft. + + o Minor features (control port): + - If the control port is used as the HTTP proxy, responds with a + meaningful "This is the Tor control port" message, and log the + event. Closes ticket 1667. Patch from Ravi Chandra Padmala. + - Provide better error message for GETINFO desc/(id|name) when + microdescriptors are in use and router descriptors are not + fetched. Closes ticket 5847. Patch by Kevin Butler. + + o Minor features (control): + - Add GETINFO desc/download-enabled and md/download-enabled, to + inform the controller whether try to download router descriptors + and microdescriptors respectively. Closes ticket 22684. + + o Minor features (controller): + - Added new GETINFO targets ip-to-country/{ipv4,ipv6}-available, so + controllers can tell whether the geoip databases are loaded. + Closes ticket 23237. + - Adds a timestamp field to the CIRC_BW and STREAM_BW bandwidth + events. Closes ticket 19254. Patch by "DonnchaC". + + o Minor features (development support): + - Developers can now generate a call-graph for Tor using the + "calltool" python program, which post-processes object dumps. It + should work okay on many Linux and OSX platforms, and might work + elsewhere too. To run this, install calltool from + https://gitweb.torproject.org/user/nickm/calltool.git and run + "make callgraph". Closes ticket 19307. + + o Minor features (ed25519): + - Add validation function to checks for torsion components in + ed25119 public keys, used by prop224 client-side code. Closes + ticket 22006. Math help by Ian Goldberg. + + o Minor features (exit relay, DNS): + - Improve the clarity and safety of the log message from evdns when + receiving an apparent spoofed DNS reply. Closes ticket 3056. + + o Minor features (integration, hardening): + - Added a new NoExec option, to prevent Tor from running other + programs. When this option is set to 1, Tor will never try to run + another program, regardless of the settings of + PortForwardingHelper, ClientTransportPlugin, or + ServerTransportPlugin. Once NoExec is set, it cannot be disabled + without restarting Tor. Closes ticket 22976. + + o Minor features (linux seccomp2 sandbox): + - If the sandbox filter fails to load, suggest to the user that + their kernel might not support seccomp2. Closes ticket 23090. + + o Minor features (logging, UI): + - Improve the warning message for specifying a relay by nickname. + The previous message implied that nickname registration was still + part of the Tor network design, which it isn't. Closes + ticket 20488. + + o Minor features (portability): + - Check at configure time whether uint8_t is unsigned char. Lots of + existing code already assumes this, and there could be strict + aliasing issues if they aren't the same type. Closes ticket 22410. + + o Minor features (relay, configuration): + - Reject attempts to use relative file paths when RunAsDaemon is + set. Previously, Tor would accept these, but the directory- + changing step of RunAsDaemon would give strange and/or confusing + results. Closes ticket 22731. + + o Minor features (startup, safety): + - When configured to write a PID file, Tor now exits if it is unable + to do so. Previously, it would warn and continue. Closes + ticket 20119. + + o Minor features (static analysis): + - The BUG() macro has been changed slightly so that Coverity no + longer complains about dead code if the bug is impossible. Closes + ticket 23054. + + o Minor features (testing): + - Add a unit test to verify that we can parse a hardcoded v2 hidden + service descriptor. Closes ticket 15554. + + o Minor bugfix (relay address resolution): + - Avoid unnecessary calls to directory_fetches_from_authorities() on + relays. This avoids spurious address resolutions and descriptor + rebuilds. This is a mitigation for bug 21789. Fixes bug 23470; + bugfix on in 0.2.8.1-alpha. + + o Minor bugfixes (certificate handling): + - Fix a time handling bug in Tor certificates set to expire after + the year 2106. Fixes bug 23055; bugfix on 0.3.0.1-alpha. Found by + Coverity as CID 1415728. + + o Minor bugfixes (circuit logging): + - torspec says hop counts are 1-based, so fix two log messages that + mistakenly logged 0-based hop counts. Fixes bug 18982; bugfix on + 0.2.6.2-alpha and 0.2.4.5-alpha. Patch by teor. Credit to Xiaofan + Li for reporting this issue. + + o Minor bugfixes (client, usability): + - Refrain from needlessly rejecting SOCKS5-with-hostnames and + SOCKS4a requests that contain IP address strings, even when + SafeSocks in enabled, as this prevents user from connecting to + known IP addresses without relying on DNS for resolving. SafeSocks + still rejects SOCKS connections that connect to IP addresses when + those addresses are _not_ encoded as hostnames. Fixes bug 22461; + bugfix on Tor 0.2.6.2-alpha. + + o Minor bugfixes (code correctness): + - Call htons() in extend_cell_format() for encoding a 16-bit value. + Previously we used ntohs(), which happens to behave the same on + all the platforms we support, but which isn't really correct. + Fixes bug 23106; bugfix on 0.2.4.8-alpha. + + o Minor bugfixes (compilation): + - Fix unused variable warnings in donna's Curve25519 SSE2 code. + Fixes bug 22895; bugfix on 0.2.7.2-alpha. + + o Minor bugfixes (consensus expiry): + - Tor would reconsider updating its directory information every 2 + minutes instead of only doing it for a consensus that is more than + 24 hours old (badly expired). This specific check is done in the + tor main loop callback that validates if we have an expired + consensus. Fixes bug 23091; bugfix on 0.2.0.19-alpha. + + o Minor bugfixes (correctness, controller): + - Make the controller's write_escaped_data() function robust to + extremely long inputs. Right now, it doesn't actually receive any + extremely long inputs, so this is for defense in depth. Fixes bug + 19281; bugfix on 0.1.1.1-alpha. Reported by Guido Vranken. + + o Minor bugfixes (crypto): + - Properly detect and refuse to blind bad ed25519 keys. The key + blinding code is currently unused, so this bug does not affect tor + clients or services on the network. Fixes bug 22746; bugfix + on 0.2.6.1-alpha. + + o Minor bugfixes (directories): + - Directory servers now include a "Date:" http header for response + codes other than 200. Clients starting with a skewed clock and a + recent consensus were getting "304 Not modified" responses from + directory authorities, so without a Date header the client would + never hear about a wrong clock. Fixes bug 23499; bugfix + on 0.0.8rc1. + + o Minor bugfixes (directory downloads): + - Make clients wait for 6 seconds before trying to download their + consensus from an authority. Fixes bug 17750; bugfix + on 0.2.8.1-alpha. + + o Minor bugfixes (DoS-resistance): + - If future code asks if there are any running bridges, without + checking if bridges are enabled, log a BUG warning rather than + crashing. Fixes bug 23524; bugfix on 0.3.0.1-alpha. + + o Minor bugfixes (format strictness): + - Restrict several data formats to decimal. Previously, the + BuildTimeHistogram entries in the state file, the "bw=" entries in + the bandwidth authority file, and process IDs passed to the + __OwningControllerProcess option could all be specified in hex or + octal as well as in decimal. This was not an intentional feature. + Fixes bug 22802; bugfixes on 0.2.2.1-alpha, 0.2.2.2-alpha, + and 0.2.2.28-beta. + + o Minor bugfixes (heartbeat): + - If we fail to write a heartbeat message, schedule a retry for the + minimum heartbeat interval number of seconds in the future. Fixes + bug 19476; bugfix on 0.2.3.1-alpha. + + o Minor bugfixes (linux seccomp2 sandbox, logging): + - Fix some messages on unexpected errors from the seccomp2 library. + Fixes bug 22750; bugfix on 0.2.5.1-alpha. Patch from "cypherpunks". + + o Minor bugfixes (logging): + - Remove duplicate log messages regarding opening non-local + SocksPorts upon parsing config and opening listeners at startup. + Fixes bug 4019; bugfix on 0.2.3.3-alpha. + - Use a more comprehensible log message when telling the user + they've excluded every running exit node. Fixes bug 7890; bugfix + on 0.2.2.25-alpha. + - When logging the number of descriptors we intend to download per + directory request, do not log a number higher than then the number + of descriptors we're fetching in total. Fixes bug 19648; bugfix + on 0.1.1.8-alpha. + - When warning about a directory owned by the wrong user, log the + actual name of the user owning the directory. Previously, we'd log + the name of the process owner twice. Fixes bug 23487; bugfix + on 0.2.9.1-alpha. + + o Minor bugfixes (portability): + - Stop using the PATH_MAX variable. The variable is not defined in + GNU Hurd which prevents Tor from being built. Fixes bug 23098; + bugfix on 0.3.1.1-alpha. + + o Minor bugfixes (relay): + - When uploading our descriptor for the first time after startup, + report the reason for uploading as "Tor just started" rather than + leaving it blank. Fixes bug 22885; bugfix on 0.2.3.4-alpha. + + o Minor bugfixes (test): + - Fix a broken unit test for the OutboundAddress option: the parsing + function was never returning an error on failure. Fixes bug 23366; + bugfix on 0.3.0.3-alpha. + + o Minor bugfixes (tests): + - Fix a signed-integer overflow in the unit tests for + dir/download_status_random_backoff, which was untriggered until we + fixed bug 17750. Fixes bug 22924; bugfix on 0.2.9.1-alpha. + + o Minor bugfixes (usability, control port): + - Stop making an unnecessary routerlist check in NETINFO clock skew + detection; this was preventing clients from reporting NETINFO clock + skew to controllers. Fixes bug 23532; bugfix on 0.2.4.4-alpha. + + o Code simplification and refactoring: + - Extract the code for handling newly-open channels into a separate + function from the general code to handle channel state + transitions. This change simplifies our callgraph, reducing the + size of the largest strongly connected component by roughly a + factor of two. Closes ticket 22608 + - Remove dead code for largely unused statistics on the number of + times we've attempted various public key operations. Fixes bug + 19871; bugfix on 0.1.2.4-alpha. Fix by Isis Lovecruft. + - Remove several now-obsolete functions for asking about old + variants directory authority status. Closes ticket 22311; patch + from "huyvq". + - Remove some of the code that once supported "Named" and "Unnamed" + routers. Authorities no longer vote for these flags. Closes + ticket 22215. + - Rename the obsolete malleable hybrid_encrypt functions used in TAP + and old hidden services to indicate that they aren't suitable for + new protocols or formats. Closes ticket 23026. + - Replace our STRUCT_OFFSET() macro with offsetof(). Closes ticket + 22521. Patch from Neel Chauhan. + - Split the enormous circuit_send_next_onion_skin() function into + multiple subfunctions. Closes ticket 22804. + - Split the portions of the buffer.c module that handle particular + protocols into separate modules. Part of ticket 23149. + - Use our test macros more consistently, to produce more useful + error messages when our unit tests fail. Add coccinelle patches to + allow us to re-check for test macro uses. Closes ticket 22497. + + o Deprecated features: + - Deprecate HTTPProxy/HTTPProxyAuthenticator config options. They + only applies to direct unencrypted HTTP connections to your + directory server, which your Tor probably isn't using. Closes + ticket 20575. + + o Documentation: + - Clarify in the manual that "Sandbox 1" is only supported on Linux + kernels. Closes ticket 22677. + - Document all values of PublishServerDescriptor in the manpage. + Closes ticket 15645. + - Improve the documentation for the directory port part of the + DirAuthority line. Closes ticket 20152. + - Restore documentation for the authorities' "approved-routers" + file. Closes ticket 21148. + + o Removed features: + - The AllowDotExit option has been removed as unsafe. It has been + deprecated since 0.2.9.2-alpha. Closes ticket 23426. + - The ClientDNSRejectInternalAddresses flag can no longer be set on + non-testing networks. It has been deprecated since 0.2.9.2-alpha. + Closes ticket 21031. + - The controller API no longer includes an AUTHDIR_NEWDESCS event: + nobody was using it any longer. Closes ticket 22377. + + o Testing: + - The default chutney network tests now include tests for the v3 + hidden service design. Make sure you have the latest version of + chutney if you want to run these. Closes ticket 22437. + + Changes in version 0.2.8.15 - 2017-09-18 Tor 0.2.8.15 backports a collection of bugfixes from later Tor series. |