Saturday, September 30, 2017

Tor Browser 7.5a5 is released

Tor Browser 7.5a5 is now available from the Tor Browser Project page and also from our distribution directory.

This release features important security updates to Firefox.

Besides the usual Firefox security and extensions updates this alpha contains a bunch of long-awaited features:

  1. We include Tor 0.3.2.1-alpha, the first alpha release in the 0.3.2 series, with support for next generation onion services and a new circuit scheduler, KIST.
  2. Thanks to the work of Jed Davis we are able to ship a content sandbox for Linux users. While the content sandbox is disabled in Firefox 52 ESR versions, which Tor Browser is based on, backported patches allow us to protect our Linux users with the same mechanisms that are provided to regular Firefox users.
  3. The content sandbox is enabled for Windows users as well. While we still need to clean up our workarounds to get the sandboxing code to work with our mingw-w64 compiler, we think the enabled sandbox is ready for a wider testing in our alpha series. Please give it a try if you can.
  4. Although this change should be invisible to users, we switched our build system from gitian/tor-browser-bundleto rbm/tor-browser-build. The build should continue to be reproducible and if you want to do a build yourself the README file in the tor-browser-build repository has some informations.

Update: Tor Browser 7.5a5 is broken when using the sandboxed-tor-browser version 0.0.13, due to bug 23692. Version 0.0.14 of the sandboxed-tor-browser has been released to fix that issue.

Note: The release date in the changelog displayed after the update is incorrect. The actual release date is September 28.

The full changelog since Tor Browser 7.5a4 is:

  • All Platforms
    • Update Firefox to 52.4.0esr
    • Update Tor to 0.3.2.1-alpha
    • Update Torbutton to 1.9.8.1
      • Bug 20375: Warn users after entering fullscreen mode
      • Bug 22989: Fix dimensions of new windows on macOS
      • Bug 23526: Add 2017 Donation banner text
      • Bug 23483: Donation banner on about:tor for 2017 (testing mode)
      • Translations update
    • Update Tor Launcher to 0.2.13
      • Bug 23240: Retrieve current bootstrap progress before showing progress bar
      • Bug 22232: Add README on use of bootstrap status messages
      • Translations update
    • Update HTTPS-Everywhere to 2017.9.12
    • Update NoScript to 5.0.10
    • Update sandboxed-tor-browser to 0.0.13
    • Bug 23393: Don’t crash all tabs when closing one tab
    • Bug 23166: Add new obfs4 bridge to the built-in ones
    • Bug 23258: Fix broken HTTPS-Everywhere on higher security levels
    • Bug 21270: NoScript settings break WebExtensions add-ons
    • Bug 23104: CSS line-height reveals the platform Tor Browser is running on
  • Windows
    • Bug 16010: Enable content sandboxing on Windows
    • Bug 23582: Enable the Windows DLL blocklist for mingw-w64 builds
    • Bug 23396: Update the msvcr100.dll we ship
    • Bug 23230: Fix build error on Windows 64
  • OS X
    • Bug 23404: Add missing Noto Sans Buginese font to the macOS whitelist
  • Linux
    • Bug 10089: Set middlemouse.contentLoadURL to false by default
    • Bug 22692: Enable content sandboxing on Linux
    • Bug 18101: Suppress upload file dialog proxy bypass (linux part)
  • Build System
    • All Platforms
      • Switch from gitian/tor-browser-bundle to rbm/tor-browser-build

原文:http://ift.tt/2ywwYOf




via 细节的力量 http://ift.tt/2fXl7Sj

Tor Browser 7.0.6 is released

Tor Browser 7.0.6 is now available from the Tor Browser Project page and also from our distribution directory.

[UPDATE: the dist server was temporarily messed up, but it should be better now. Sorry for the troubles!]

This release features important security updates to Firefox.

This release includes security updates for Firefox (52.4.0esr) and a new Tor stable version (0.3.1.7), the first one in the 0.3.1 series. In addition to that we updated the HTTPS Everywhere and NoScript extensions we ship. Moreover, we fixed minor usability issues and a bug which, under particular circumstances, caused all tabs to crash after closing single one.

Note: The release date in the changelog displayed after the update is incorrect. The actual release date is September 28.

The full changelog since Tor Browser 7.0.6 is:

  • All Platforms
    • Update Firefox to 52.4.0esr
    • Update Tor to 0.3.1.7
    • Update Torbutton to 1.9.7.7
      • Bug 22542: Security Settings window too small on macOS 10.12 (fixup)
      • Bug 20375: Warn users after entering fullscreen mode
    • Update HTTPS-Everywhere to 2017.9.12
    • Update NoScript to 5.0.10
    • Bug 21830: Copying large text from web console leaks to /tmp
    • Bug 23393: Don’t crash all tabs when closing one tab
  • OS X
    • Bug 23404: Add missing Noto Sans Buginese font to the macOS whitelist

原文:http://ift.tt/2xOgZht




via 细节的力量 http://ift.tt/2fZScgB

Tor Messenger 0.5.0b1 is released

Tor Messenger is a cross-platform chat program that aims to be secure by default and sends all of its traffic over Tor. It supports a wide variety of transport networks, including XMPP, IRC, Twitter, and others; enables ​Off-the-Record (OTR) Messaging automatically; has an easy-to-use graphical user interface; and a secure automatic updater.

We are pleased to announce another public beta release of Tor Messenger that features important improvements to its stability and security. All users are encouraged to upgrade.

Mozilla ESR52

This release of Tor Messenger is based on Firefox ESR52, specifically tor-browser-52.3.0esr-7.0-1-build1 and THUNDERBIRD_52_3_0_RELEASE on comm-central.

Deterministic Builds

Tor Messenger builds are now reproducible for Windows and macOS as well; earlier, only Linux builds were reproducible (#10942). This means that anyone building Tor Messenger from source should end up with identical byte-for-byte binaries to the ones we release. To get started with building Tor Messenger (something we encourage!), please refer to the instructions in the README.md file. Since this is a fairly involved process, talk to us on IRC or the comments section below if you need help.

XMPP Improvements

This version of Tor Messenger introduces temporary XMPP accounts (a feature inspired by ChatSecure) that creates an XMPP account automatically with a random username and password (#16606). This helps you to quickly set up an account and get a conversation started without requiring you to bother with the registration or account details. These accounts don’t expire automatically but the intent is that you can use them as throwaway accounts and quickly create new ones when required. (Note: Currently, some data remains after deleting an account. See #23675)

Starting with this release, Tor Messenger will attempt to automatically use the onion service for known XMPP servers which helps improve the security of your connection (#13855). The current list includes onion addresses for riseup.net, jabber.ccc.de, jabber.otr.im, and jabber.calyxinstitute.org. We plan to add more servers in the subsequent releases. (Note: Existing accounts remain unchanged. This setting is only applied during new account setup.)

Other Notable Changes

Tor Messenger for Linux is now built with Selfrando for hardened builds (#22229). For more information on Selfrando, please refer to the Q and A with Georg.

This release also fixes the Tor Messenger crash on Windows XP that prevented it from starting (#17469).

Downloads

Please note that Tor Messenger is still in beta. The purpose of this release is to help test the application and provide feedback. At-risk users should not depend on it for their privacy and safety.

Linux (32-bit)

Linux (64-bit)

Windows

macOS

sha256sums-signed-build.txt

sha256sums-signed-build.txt.asc

The sha256sums-signed-build.txt file containing hashes of the bundles is signed with the key 0xB01C8B006DA77FAA(fingerprint: E4AC D397 5427 A5BA 8450 A1BE B01C 8B00 6DA7 7FAA). Please verify the fingerprint from the signing keys page on Tor Project’s website.

Changelog

Tor Messenger 0.5.0b1 — September 28, 2017

  • All Platforms
    • Use the tor-browser-52.3.0esr-7.0-1-build1 tag on tor-browser
    • Use the THUNDERBIRD_52_3_0_RELEASE tag on comm-esr52
    • Update tor-browser to 7.0.5
    • Update tor-launcher to 0.2.12.3
    • Trac 22005: Move to ESR 52
    • Trac 16606: Temporary XMPP accounts
    • Trac 13855: Use known onions for XMPP servers
  • Linux
  • Mac
  • Windows
    • Trac 17469: Tor Messenger is not working on Windows XP
    • Trac 10942: Deterministic builds for Instantbird
       



via 细节的力量 http://ift.tt/2hC3RG6

Tor 0.3.2.1-alpha is released, with support for next-gen onion services and KIST scheduler

And as if all those other releases today were not enough, this is also the time for a new alpha release series!

Tor 0.3.2.1-alpha is the first release in the 0.3.2.x series. It includes support for our next-generation (“v3”) onion service protocol, and adds a new circuit scheduler for more responsive forwarding decisions from relays. There are also numerous other small features and bugfixes here.

You can download the source from the usual place on the website. Binary packages should be available soon, with an alpha Tor Browser likely by the end of the month.

Remember: This is an alpha release, and it’s likely to have more bugs than usual. We hope that people will try it out to find and report bugs, though.

Below are the changes since Tor 0.3.1.7.

Changes In Version 0.3.2.1-Alpha – 2017-09-18

  • Major feature (scheduler, channel):
    • Tor now uses new schedulers to decide which circuits should deliver cells first, in order to improve congestion at relays. The first type is called “KIST” (“Kernel Informed Socket Transport”), and is only available on Linux-like systems: it uses feedback from the kernel to prevent the kernel’s TCP buffers from growing too full. The second new scheduler type is called “KISTLite”: it behaves the same as KIST, but runs on systems without kernel support for inspecting TCP implementation details. The old scheduler is still available, under the name “Vanilla”. To change the default scheduler preference order, use the new “Schedulers” option. (The default preference order is “KIST,KISTLite,Vanilla”.)

      Matt Traudt implemented KIST, based on research by Rob Jansen, John Geddes, Christ Wacek, Micah Sherr, and Paul Syverson. For more information, see the design paper at http://ift.tt/1yNTU7J and the followup implementation paper at http://ift.tt/2eTMrjD. Closes ticket 12541.

  • 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 many improvements over the legacy system, including:

      a) Better crypto (replaced SHA1/DH/RSA1024 with SHA3/ed25519/curve25519)

      b) Improved directory protocol, leaking much less information 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.

      You can identify a next-generation onion address by its length: they are 56 characters long, as in “4acth47i6kxnvkewtm6q7ib2s3ufpo5sqbsnzjpbi7utijcltosqemad.onion”.

      In the future, we will release more options and features for v3 onion services, but we first need a testing period, so that the current codebase matures and becomes more robust. Planned features include: offline keys, advanced client authorization, improved guard algorithms, and statistics. For full details, see proposal 224.

      Legacy (“v2”) onion services will still work for the foreseeable future, and will remain the default 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!

 

  • Major bugfixes (usability, control port):
    • Report trusted clock skew indications as bootstrap errors, so controllers can more easily alert users when their clocks are wrong. Fixes bug 23506; bugfix on 0.1.2.6-alpha.
  • Minor features (bug detection):
    • Log a warning message with a stack trace for any attempt to call get_options() during option validation. This pattern has caused subtle bugs in the past. Closes ticket 22281.
  • Minor features (client):
    • You can now use Tor as a tunneled HTTP proxy: use the new HTTPTunnelPort option to open a port that accepts HTTP CONNECT requests. Closes ticket 22407.
    • Add an extra check to make sure that we always use the newer guard selection code for picking our guards. Closes ticket 22779.
    • When downloading (micro)descriptors, don’t split the list into multiple requests unless we want at least 32 descriptors. Previously, we split at 4, not 32, which led to significant overhead in HTTP request size and degradation in compression performance. Closes ticket 23220.
  • 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.
  • Minor features (control port):
    • If an application tries to use the control port as an HTTP proxy, respond 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 not fetching router descriptors. Closes ticket 5847. Patch by Kevin Butler.
    • Add GETINFO “{desc,md}/download-enabled”, to inform the controller whether Tor will try to download router descriptors and microdescriptors respectively. Closes ticket 22684.
    • 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”.
  • 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 it, install calltool from http://ift.tt/2w3YRfO and run “make callgraph”. Closes ticket 19307.
  • Minor features (ed25519):
    • Add validation function to checks for torsion components in ed25519 public keys, used by prop224 client-side code. Closes ticket 22006. Math help by Ian Goldberg.
  • Minor features (exit relay, DNS):
    • Improve the clarity and safety of the log message from evdns when receiving an apparently spoofed DNS reply. Closes ticket 3056.
  • Minor features (integration, hardening):
    • Add 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.
  • Minor features (logging):
    • 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.
    • If the sandbox filter fails to load, suggest to the user that their kernel might not support seccomp2. Closes ticket 23090.
  • Minor features (portability):
    • Check at configure time whether uint8_t is the same type as unsigned char. Lots of existing code already makes this assumption, and there could be strict aliasing issues if the assumption is violated. Closes ticket 22410.
  • 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.
  • 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.
  • 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.
  • Minor features (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.
    • Add a unit test to verify that we can parse a hardcoded v2 hidden service descriptor. Closes ticket 15554.
  • 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.
  • 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.
  • 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.
    • For defense-in-depth, make the controller’s write_escaped_data() function robust to extremely long inputs. Fixes bug 19281; bugfix on 0.1.1.1-alpha. Reported by Guido Vranken.
  • Minor bugfixes (compilation):
    • Fix unused-variable warnings in donna’s Curve25519 SSE2 code. Fixes bug 22895; bugfix on 0.2.7.2-alpha.
  • Minor bugfixes (consensus expiry):
    • Check for adequate directory information correctly. Previously, Tor would reconsider whether it had sufficient directory information every 2 minutes. Fixes bug 23091; bugfix on 0.2.0.19-alpha.
  • Minor bugfixes (directory protocol):
    • 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 the Date header, the client would never hear about a wrong clock. Fixes bug 23499; bugfix on 0.0.8rc1.
    • Make clients wait for 6 seconds before trying to download a consensus from an authority. Fixes bug 17750; bugfix on 0.2.8.1-alpha.
  • 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.
  • 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 the 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.
  • 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.
  • 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”.
  • 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.
    • The tor specification 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.
  • Minor bugfixes (portability):
    • Stop using the PATH_MAX variable, which is not defined on GNU Hurd. Fixes bug 23098; bugfix on 0.3.1.1-alpha.
  • 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.
    • Avoid unnecessary calls to directory_fetches_from_authorities() on relays, to prevent spurious address resolutions and descriptor rebuilds. This is a mitigation for bug 21789. Fixes bug 23470; bugfix on in 0.2.8.1-alpha.
  • Minor bugfixes (tests):
    • 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.
    • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.

原文:http://ift.tt/2f6bn7r




via 细节的力量 http://ift.tt/2fFh54o

Tor 0.3.1.7 is now released!

There’s a new stable Tor release series available!  After months of work, you can now download the source code for Tor 0.3.1.7 from the usual place on the website. Packages should become available over the coming days, including (we hope) a Tor Browser release before the end of the month.

Tor 0.3.1.7 is the first stable release in the 0.3.1 series.

With the 0.3.1 series, Tor now serves and downloads directory information in more compact formats, to save on bandwidth overhead. It also contains a new padding system to resist netflow-based traffic analysis, and experimental support for building parts of Tor in Rust (though no parts of Tor are in Rust yet). There are also numerous small features, bugfixes on earlier release series, and groundwork for the onion services revamp of 0.3.2.

This release also includes a fix for TROVE-2017-008, a security bug that affects onion services running with the SafeLogging option disabled. For more information, see http://ift.tt/2xwk5Hz

Per our stable release policy, we plan to support each stable release series for at least the next nine months, or for three months after the first stable release of the next series: whichever is longer. If you need a release with long-term support, we recommend that you stay with the 0.2.9 series.

Below is a list of the changes since 0.3.0. For a list of all changes since 0.3.1.6-rc, see the ChangeLog file.

Changes In Version 0.3.1.7 – 2017-09-18

  • New dependencies:
    • To build with zstd and lzma support, Tor now requires the pkg-config tool at build time.
  • Major bugfixes (security, onion services, loggging):
    • Fix a bug where we could log uninitialized stack when a certain onion service error occurred while SafeLogging was disabled. Fixes bug #23490; bugfix on 0.2.7.2-alpha. This is also tracked as TROVE-2017-008 and CVE-2017-0380.
  • Major features (build system, continuous integration):
    • Tor’s repository now includes a Travis Continuous Integration (CI) configuration file (.travis.yml). This is meant to help new developers and contributors who fork Tor to a Github repository be better able to test their changes, and understand what we expect to pass. To use this new build feature, you must fork Tor to your Github account, then go into the “Integrations” menu in the repository settings for your fork and enable Travis, then push your changes. Closes ticket 22636.
  • Major features (directory protocol):
    • Tor relays and authorities can now serve clients an abbreviated version of the consensus document, containing only the changes since an older consensus document that the client holds. Clients now request these documents when available. When both client and server use this new protocol, they will use far less bandwidth (up to 94% less) to keep the client’s consensus up-to-date. Implements proposal 140; closes ticket 13339. Based on work by Daniel Martí.
    • Tor can now compress directory traffic with lzma or with zstd compression algorithms, which can deliver better bandwidth performance. Because lzma is computationally expensive, it’s only used for documents that can be compressed once and served many times. Support for these algorithms requires that tor is built with the libzstd and/or liblzma libraries available. Implements proposal 278; closes ticket 21662.
    • Relays now perform the more expensive compression operations, and consensus diff generation, in worker threads. This separation avoids delaying the main thread when a new consensus arrives.
  • Major features (experimental):
    • Tor can now build modules written in Rust. To turn this on, pass the “–enable-rust” flag to the configure script. It’s not time to get excited yet: currently, there is no actual Rust functionality beyond some simple glue code, and a notice at startup to tell you that Rust is running. Still, we hope that programmers and packagers will try building Tor with Rust support, so that we can find issues and solve portability problems. Closes ticket 22106.
  • Major features (traffic analysis resistance):
    • Connections between clients and relays now send a padding cell in each direction every 1.5 to 9.5 seconds (tunable via consensus parameters). This padding will not resist specialized eavesdroppers, but it should be enough to make many ISPs’ routine network flow logging less useful in traffic analysis against Tor users.

      Padding is negotiated using Tor’s link protocol, so both relays and clients must upgrade for this to take effect. Clients may still send padding despite the relay’s version by setting ConnectionPadding 1 in torrc, and may disable padding by setting ConnectionPadding 0 in torrc. Padding may be minimized for mobile users with the torrc option ReducedConnectionPadding. Implements Proposal 251 and Section 2 of Proposal 254; closes ticket 16861.

    • Relays will publish 24 hour totals of padding and non-padding cell counts to their extra-info descriptors, unless PaddingStatistics 0 is set in torrc. These 24 hour totals are also rounded to multiples of 10000.
  • Major bugfixes (onion service, relay, security):
    • Fix a remotely triggerable assertion failure when a onion service handles a malformed BEGIN cell. Fixes bug 22493, tracked as TROVE-2017-004 and as CVE-2017-0375; bugfix on 0.3.0.1-alpha.
    • Fix a remotely triggerable assertion failure caused by receiving a BEGIN_DIR cell on a onion service rendezvous circuit. Fixes bug 22494, tracked as TROVE-2017-005 and CVE-2017-0376; bugfix on 0.2.2.1-alpha.
  • Major bugfixes (path selection, security):
    • When choosing which guard to use for a circuit, avoid the exit’s family along with the exit itself. Previously, the new guard selection logic avoided the exit, but did not consider its family. Fixes bug 22753; bugfix on 0.3.0.1-alpha. Tracked as TROVE-2017- 006 and CVE-2017-0377.
  • Major bugfixes (connection usage):
    • We use NETINFO cells to try to determine if both relays involved in a connection will agree on the canonical status of that connection. We prefer the connections where this is the case for extend cells, and try to close connections where relays disagree on their canonical status early. Also, we now prefer the oldest valid connection for extend cells. These two changes should reduce the number of long-term connections that are kept open between relays. Fixes bug 17604; bugfix on 0.2.5.5-alpha.
    • Relays now log hourly statistics (look for “channel_check_for_duplicates” lines) on the total number of connections to other relays. If the number of connections per relay is unexpectedly large, this log message is at notice level. Otherwise it is at info.
  • Major bugfixes (entry guards):
    • When starting with an old consensus, do not add new entry guards unless the consensus is “reasonably live” (under 1 day old). Fixes one root cause of bug 22400; bugfix on 0.3.0.1-alpha.
    • Don’t block bootstrapping when a primary bridge is offline and we can’t get its descriptor. Fixes bug 22325; fixes one case of bug 21969; bugfix on 0.3.0.3-alpha.
  • Major bugfixes (linux TPROXY support):
    • Fix a typo that had prevented TPROXY-based transparent proxying from working under Linux. Fixes bug 18100; bugfix on 0.2.6.3-alpha. Patch from “d4fq0fQAgoJ”.
  • Major bugfixes (openbsd, denial-of-service):
    • Avoid an assertion failure bug affecting our implementation of inet_pton(AF_INET6) on certain OpenBSD systems whose strtol() handling of “0xx” differs from what we had expected. Fixes bug 22789; bugfix on 0.2.3.8-alpha. Also tracked as TROVE-2017-007.
  • Major bugfixes (relay, link handshake):
    • When performing the v3 link handshake on a TLS connection, report that we have the x509 certificate that we actually used on that connection, even if we have changed certificates since that connection was first opened. Previously, we would claim to have used our most recent x509 link certificate, which would sometimes make the link handshake fail. Fixes one case of bug 22460; bugfix on 0.2.3.6-alpha.
  • Major bugfixes (relays, key management):
    • Regenerate link and authentication certificates whenever the key that signs them changes; also, regenerate link certificates whenever the signed key changes. Previously, these processes were only weakly coupled, and we relays could (for minutes to hours) wind up with an inconsistent set of keys and certificates, which other relays would not accept. Fixes two cases of bug 22460; bugfix on 0.3.0.1-alpha.
    • When sending an Ed25519 signing->link certificate in a CERTS cell, send the certificate that matches the x509 certificate that we used on the TLS connection. Previously, there was a race condition if the TLS context rotated after we began the TLS handshake but before we sent the CERTS cell. Fixes a case of bug 22460; bugfix on 0.3.0.1-alpha.
  • Minor features (security, windows):
    • Enable a couple of pieces of Windows hardening: one (HeapEnableTerminationOnCorruption) that has been on-by-default since Windows 8, and unavailable before Windows 7; and one (PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION) which we believe doesn’t affect us, but shouldn’t do any harm. Closes ticket 21953.
  • Minor features (bridge authority):
    • Add “fingerprint” lines to the networkstatus-bridges file produced by bridge authorities. Closes ticket 22207.
  • Minor features (code style):
    • Add “Falls through” comments to our codebase, in order to silence GCC 7’s -Wimplicit-fallthrough warnings. Patch from Andreas Stieger. Closes ticket 22446.
  • Minor features (config options):
    • Allow “%include” directives in torrc configuration files. These directives import the settings from other files, or from all the files in a directory. Closes ticket 1922. Code by Daniel Pinto.
    • Make SAVECONF return an error when overwriting a torrc that has includes. Using SAVECONF with the FORCE option will allow it to overwrite torrc even if includes are used. Related to ticket 1922.
    • Add “GETINFO config-can-saveconf” to tell controllers if SAVECONF will work without the FORCE option. Related to ticket 1922.
  • Minor features (controller):
    • Warn the first time that a controller requests data in the long- deprecated ‘GETINFO network-status’ format. Closes ticket 21703.
  • Minor features (defaults):
    • The default value for UseCreateFast is now 0: clients which haven’t yet received a consensus document will now use a proper ntor handshake to talk to their directory servers whenever they can. Closes ticket 21407.
    • Onion key rotation and expiry intervals are now defined as a network consensus parameter, per proposal 274. The default lifetime of an onion key is increased from 7 to 28 days. Old onion keys will expire after 7 days by default. This change will make consensus diffs much smaller, and save significant bandwidth. Closes ticket 21641.
  • Minor features (defensive programming):
    • Create a pair of consensus parameters, nf_pad_tor2web and nf_pad_single_onion, to disable netflow padding in the consensus for non-anonymous connections in case the overhead is high. Closes ticket 17857.
  • Minor features (diagnostic):
    • Add a stack trace to the bug warnings that can be logged when trying to send an outgoing relay cell with n_chan == 0. Diagnostic attempt for bug 23105.
    • Add logging messages to try to diagnose a rare bug that seems to generate RSA->Ed25519 cross-certificates dated in the 1970s. We think this is happening because of incorrect system clocks, but we’d like to know for certain. Diagnostic for bug 22466.
    • Avoid an assertion failure, and log a better error message, when unable to remove a file from the consensus cache on Windows. Attempts to mitigate and diagnose bug 22752.
  • Minor features (directory authority):
    • Improve the message that authorities report to relays that present RSA/Ed25519 keypairs that conflict with previously pinned keys. Closes ticket 22348.
  • Minor features (directory cache, consensus diff):
    • Add a new MaxConsensusAgeForDiffs option to allow directory cache operators with low-resource environments to adjust the number of consensuses they’ll store and generate diffs from. Most cache operators should leave it unchanged. Helps to work around bug 22883.
  • Minor features (fallback directory list):
    • Update the fallback directory mirror whitelist and blacklist based on operator emails. Closes task 21121.
    • Replace the 177 fallbacks originally introduced in Tor 0.2.9.8 in December 2016 (of which ~126 were still functional) with a list of 151 fallbacks (32 new, 119 unchanged, 58 removed) generated in May 2017. Resolves ticket 21564.
  • Minor features (geoip):
    • Update geoip and geoip6 to the September 6 2017 Maxmind GeoLite2 Country database.
  • Minor features (onion services, logging):
    • Log a message when an onion service descriptor has fewer introduction points than specified in HiddenServiceNumIntroductionPoints. Closes tickets 21598.
    • Log a message when an onion service reaches its introduction point circuit limit, and when that limit is reset. Follow up to ticket 21594; closes ticket 21622.
    • Warn user if multiple entries in EntryNodes and at least one HiddenService are used together. Pinning EntryNodes along with an onion service can be possibly harmful; for instance see ticket 14917 or 21155. Closes ticket 21155.
  • Minor features (linux seccomp2 sandbox):
    • We now have a document storage backend compatible with the Linux seccomp2 sandbox. This backend is used for consensus documents and diffs between them; in the long term, we’d like to use it for unparseable directory material too. Closes ticket 21645
    • Increase the maximum allowed size passed to mprotect(PROT_WRITE) from 1MB to 16MB. This was necessary with the glibc allocator in order to allow worker threads to allocate more memory — which in turn is necessary because of our new use of worker threads for compression. Closes ticket 22096.
  • Minor features (logging):
    • Log files are no longer created world-readable by default. (Previously, most distributors would store the logs in a non- world-readable location to prevent inappropriate access. This change is an extra precaution.) Closes ticket 21729; patch from toralf.
  • Minor features (performance):
    • Our Keccak (SHA-3) implementation now accesses memory more efficiently, especially on little-endian systems. Closes ticket 21737.
    • Add an O(1) implementation of channel_find_by_global_id(), to speed some controller functions.
  • Minor features (relay, configuration):
    • The MyFamily option may now be repeated as many times as desired, for relays that want to configure large families. Closes ticket 4998; patch by Daniel Pinto.
  • Minor features (relay, performance):
    • Always start relays with at least two worker threads, to prevent priority inversion on slow tasks. Part of the fix for bug 22883.
    • Allow background work to be queued with different priorities, so that a big pile of slow low-priority jobs will not starve out higher priority jobs. This lays the groundwork for a fix for bug 22883.
  • Minor features (safety):
    • Add an explicit check to extrainfo_parse_entry_from_string() for NULL inputs. We don’t believe this can actually happen, but it may help silence a warning from the Clang analyzer. Closes ticket 21496.
  • Minor features (testing):
    • Add more tests for compression backend initialization. Closes ticket 22286.
    • Add a “–disable-memory-sentinels” feature to help with fuzzing. When Tor is compiled with this option, we disable a number of redundant memory-safety failsafes that are intended to stop bugs from becoming security issues. This makes it easier to hunt for bugs that would be security issues without the failsafes turned on. Closes ticket 21439.
    • Add a general event-tracing instrumentation support to Tor. This subsystem will enable developers and researchers to add fine- grained instrumentation to their Tor instances, for use when examining Tor network performance issues. There are no trace events yet, and event-tracing is off by default unless enabled at compile time. Implements ticket 13802.
    • Improve our version parsing tests: add tests for typical version components, add tests for invalid versions, including numeric range and non-numeric prefixes. Unit tests 21278, 21450, and 21507. Partially implements 21470.
  • Minor bugfixes (bandwidth accounting):
    • Roll over monthly accounting at the configured hour and minute, rather than always at 00:00. Fixes bug 22245; bugfix on 0.0.9rc1. Found by Andrey Karpov with PVS-Studio.
  • Minor bugfixes (code correctness):
    • Accurately identify client connections by their lack of peer authentication. This means that we bail out earlier if asked to extend to a client. Follow-up to 21407. Fixes bug 21406; bugfix on 0.2.4.23.
  • Minor bugfixes (compilation warnings):
    • Suppress -Wdouble-promotion warnings with clang 4.0. Fixes bug 22915; bugfix on 0.2.8.1-alpha.
    • Fix warnings when building with libscrypt and openssl scrypt support on Clang. Fixes bug 22916; bugfix on 0.2.7.2-alpha.
    • When building with certain versions of the mingw C header files, avoid float-conversion warnings when calling the C functions isfinite(), isnan(), and signbit(). Fixes bug 22801; bugfix on 0.2.8.1-alpha.
  • Minor bugfixes (compilation):
    • Avoid compiler warnings in the unit tests for calling tor_sscanf() with wide string outputs. Fixes bug 15582; bugfix on 0.2.6.2-alpha.
  • Minor bugfixes (compression):
    • When spooling compressed data to an output buffer, don’t try to spool more data when there is no more data to spool and we are not trying to flush the input. Previously, we would sometimes launch compression requests with nothing to do, which interferes with our 22672 checks. Fixes bug 22719; bugfix on 0.2.0.16-alpha.
  • Minor bugfixes (configuration):
    • Do not crash when starting with LearnCircuitBuildTimeout 0. Fixes bug 22252; bugfix on 0.2.9.3-alpha.
  • Minor bugfixes (connection lifespan):
    • Allow more control over how long TLS connections are kept open: unify CircuitIdleTimeout and PredictedPortsRelevanceTime into a single option called CircuitsAvailableTimeout. Also, allow the consensus to control the default values for both this preference and the lifespan of relay-to-relay connections. Fixes bug 17592; bugfix on 0.2.5.5-alpha.
    • Increase the initial circuit build timeout testing frequency, to help ensure that ReducedConnectionPadding clients finish learning a timeout before their orconn would expire. The initial testing rate was set back in the days of TAP and before the Tor Browser updater, when we had to be much more careful about new clients making lots of circuits. With this change, a circuit build timeout is learned in about 15-20 minutes, instead of 100-120 minutes.
  • Minor bugfixes (controller):
    • Do not crash when receiving a HSPOST command with an empty body. Fixes part of bug 22644; bugfix on 0.2.7.1-alpha.
    • Do not crash when receiving a POSTDESCRIPTOR command with an empty body. Fixes part of bug 22644; bugfix on 0.2.0.1-alpha.
    • GETINFO onions/current and onions/detached no longer respond with 551 on empty lists. Fixes bug 21329; bugfix on 0.2.7.1-alpha.
    • Trigger HS descriptor events on the control port when the client fails to pick an onion service directory for an onion service. This can happen if all the hidden service directories are in ExcludeNodes, or they have all been queried within the last 15 minutes. Fixes bug 22042; bugfix on 0.2.5.2-alpha.
  • Minor bugfixes (correctness):
    • Avoid undefined behavior when parsing IPv6 entries from the geoip6 file. Fixes bug 22490; bugfix on 0.2.4.6-alpha.
  • Minor bugfixes (coverity build support):
    • Avoid Coverity build warnings related to our BUG() macro. By default, Coverity treats BUG() as the Linux kernel does: an instant abort(). We need to override that so our BUG() macro doesn’t prevent Coverity from analyzing functions that use it. Fixes bug 23030; bugfix on 0.2.9.1-alpha.
  • Minor bugfixes (defensive programming):
    • Detect and break out of infinite loops in our compression code. We don’t think that any such loops exist now, but it’s best to be safe. Closes ticket 22672.
    • Fix a memset() off the end of an array when packing cells. This bug should be harmless in practice, since the corrupted bytes are still in the same structure, and are always padding bytes, ignored, or immediately overwritten, depending on compiler behavior. Nevertheless, because the memset()’s purpose is to make sure that any other cell-handling bugs can’t expose bytes to the network, we need to fix it. Fixes bug 22737; bugfix on 0.2.4.11-alpha. Fixes CID 1401591.
  • Minor bugfixes (directory authority):
    • When a directory authority rejects a descriptor or extrainfo with a given digest, mark that digest as undownloadable, so that we do not attempt to download it again over and over. We previously tried to avoid downloading such descriptors by other means, but we didn’t notice if we accidentally downloaded one anyway. This behavior became problematic in 0.2.7.2-alpha, when authorities began pinning Ed25519 keys. Fixes bug 22349; bugfix on 0.2.1.19-alpha.
    • When rejecting a router descriptor for running an obsolete version of Tor without ntor support, warn about the obsolete tor version, not the missing ntor key. Fixes bug 20270; bugfix on 0.2.9.3-alpha.
    • Prevent the shared randomness subsystem from asserting when initialized by a bridge authority with an incomplete configuration file. Fixes bug 21586; bugfix on 0.2.9.8.
  • Minor bugfixes (error reporting, windows):
    • When formatting Windows error messages, use the English format to avoid codepage issues. Fixes bug 22520; bugfix on 0.1.2.8-alpha. Patch from “Vort”.
  • Minor bugfixes (exit-side DNS):
    • Fix an untriggerable assertion that checked the output of a libevent DNS error, so that the assertion actually behaves as expected. Fixes bug 22244; bugfix on 0.2.0.20-rc. Found by Andrey Karpov using PVS-Studio.
  • Minor bugfixes (fallback directories):
    • Make the usage example in updateFallbackDirs.py actually work, and explain what it does. Fixes bug 22270; bugfix on 0.3.0.3-alpha.
    • Decrease the guard flag average required to be a fallback. This allows us to keep relays that have their guard flag removed when they restart. Fixes bug 20913; bugfix on 0.2.8.1-alpha.
    • Decrease the minimum number of fallbacks to 100. Fixes bug 20913; bugfix on 0.2.8.1-alpha.
    • Make sure fallback directory mirrors have the same address, port, and relay identity key for at least 30 days before they are selected. Fixes bug 20913; bugfix on 0.2.8.1-alpha.
  • Minor bugfixes (file limits, osx):
    • When setting the maximum number of connections allowed by the OS, always allow some extra file descriptors for other files. Fixes bug 22797; bugfix on 0.2.0.10-alpha.
  • Minor bugfixes (onion services):
    • Increase the number of circuits that a service is allowed to open over a specific period of time. The value was lower than it should be (8 vs 12) in the normal case of 3 introduction points. Fixes bug 22159; bugfix on 0.3.0.5-rc.
    • Fix a BUG warning during HSv3 descriptor decoding that could be cause by a specially crafted descriptor. Fixes bug 23233; bugfix on 0.3.0.1-alpha. Bug found by “haxxpop”.
    • Stop printing a cryptic warning when an onion service gets a request to connect to a virtual port that it hasn’t configured. Fixes bug 16706; bugfix on 0.2.6.3-alpha.
    • Simplify onion service descriptor creation by using an existing flag to check if an introduction point is established. Fixes bug 21599; bugfix on 0.2.7.2-alpha.
  • Minor bugfixes (link handshake):
    • Lower the lifetime of the RSA->Ed25519 cross-certificate to six months, and regenerate it when it is within one month of expiring. Previously, we had generated this certificate at startup with a ten-year lifetime, but that could lead to weird behavior when Tor was started with a grossly inaccurate clock. Mitigates bug 22466; mitigation on 0.3.0.1-alpha.
  • Minor bugfixes (linux seccomp2 sandbox):
    • Avoid a sandbox failure when trying to re-bind to a socket and mark it as IPv6-only. Fixes bug 20247; bugfix on 0.2.5.1-alpha.
    • Permit the fchmod system call, to avoid crashing on startup when starting with the seccomp2 sandbox and an unexpected set of permissions on the data directory or its contents. Fixes bug 22516; bugfix on 0.2.5.4-alpha.
  • Minor bugfixes (logging):
    • When decompressing, do not warn if we fail to decompress using a compression method that we merely guessed. Fixes part of bug 22670; bugfix on 0.1.1.14-alpha.
    • When decompressing, treat mismatch between content-encoding and actual compression type as a protocol warning. Fixes part of bug 22670; bugfix on 0.1.1.9-alpha.
    • Downgrade “assigned_to_cpuworker failed” message to info-level severity. In every case that can reach it, either a better warning has already been logged, or no warning is warranted. Fixes bug 22356; bugfix on 0.2.6.3-alpha.
    • Log a better message when a directory authority replies to an upload with an unexpected status code. Fixes bug 11121; bugfix on 0.1.0.1-rc.
    • Downgrade a log statement about unexpected relay cells from “bug” to “protocol warning”, because there is at least one use case where it can be triggered by a buggy tor implementation. Fixes bug 21293; bugfix on 0.1.1.14-alpha.
  • Minor bugfixes (logging, relay):
    • Remove a forgotten debugging message when an introduction point successfully establishes an onion service prop224 circuit with a client.
    • Change three other log_warn() for an introduction point to protocol warnings, because they can be failure from the network and are not relevant to the operator. Fixes bug 23078; bugfix on 0.3.0.1-alpha and 0.3.0.2-alpha.
  • Minor bugfixes (relay):
    • Inform the geoip and rephist modules about all requests, even on relays that are only fetching microdescriptors. Fixes a bug related to 21585; bugfix on 0.3.0.1-alpha.
  • Minor bugfixes (memory leaks):
    • Fix a small memory leak at exit from the backtrace handler code. Fixes bug 21788; bugfix on 0.2.5.2-alpha. Patch from Daniel Pinto.
    • When directory authorities reject a router descriptor due to keypinning, free the router descriptor rather than leaking the memory. Fixes bug 22370; bugfix on 0.2.7.2-alpha.
    • Fix a small memory leak when validating a configuration that uses two or more AF_UNIX sockets for the same port type. Fixes bug 23053; bugfix on 0.2.6.3-alpha. This is CID 1415725.
  • Minor bugfixes (process behavior):
    • When exiting because of an error, always exit with a nonzero exit status. Previously, we would fail to report an error in our exit status in cases related to __OwningControllerProcess failure, lockfile contention, and Ed25519 key initialization. Fixes bug 22720; bugfix on versions 0.2.1.6-alpha, 0.2.2.28-beta, and 0.2.7.2-alpha respectively. Reported by “f55jwk4f”; patch from “huyvq”.
  • Minor bugfixes (robustness, error handling):
    • Improve our handling of the cases where OpenSSL encounters a memory error while encoding keys and certificates. We haven’t observed these errors in the wild, but if they do happen, we now detect and respond better. Fixes bug 19418; bugfix on all versions of Tor. Reported by Guido Vranken.
  • Minor bugfixes (testing):
    • Fix an undersized buffer in test-memwipe.c. Fixes bug 23291; bugfix on 0.2.7.2-alpha. Found and patched by Ties Stuij.
    • Use unbuffered I/O for utility functions around the process_handle_t type. This fixes unit test failures reported on OpenBSD and FreeBSD. Fixes bug 21654; bugfix on 0.2.3.1-alpha.
    • Make display of captured unit test log messages consistent. Fixes bug 21510; bugfix on 0.2.9.3-alpha.
    • Make test-network.sh always call chutney’s test-network.sh. Previously, this only worked on systems which had bash installed, due to some bash-specific code in the script. Fixes bug 19699; bugfix on 0.3.0.4-rc. Follow-up to ticket 21581.
    • Fix a memory leak in the link-handshake/certs_ok_ed25519 test. Fixes bug 22803; bugfix on 0.3.0.1-alpha.
    • The unit tests now pass on systems where localhost is misconfigured to some IPv4 address other than 127.0.0.1. Fixes bug 6298; bugfix on 0.0.9pre2.
  • Minor bugfixes (voting consistency):
    • Reject version numbers with non-numeric prefixes (such as +, -, or whitespace). Disallowing whitespace prevents differential version parsing between POSIX-based and Windows platforms. Fixes bug 21507 and part of 21508; bugfix on 0.0.8pre1.
  • Minor bugfixes (Windows service):
    • When running as a Windows service, set the ID of the main thread correctly. Failure to do so made us fail to send log messages to the controller in 0.2.1.16-rc, slowed down controller event delivery in 0.2.7.3-rc and later, and crash with an assertion failure in 0.3.1.1-alpha. Fixes bug 23081; bugfix on 0.2.1.6-alpha. Patch and diagnosis from “Vort”.
  • Minor bugfixes (windows, relay):
    • Resolve “Failure from drain_fd: No error” warnings on Windows relays. Fixes bug 21540; bugfix on 0.2.6.3-alpha.
  • Code simplification and refactoring:
    • Break up the 630-line function connection_dir_client_reached_eof() into a dozen smaller functions. This change should help maintainability and readability of the client directory code.
    • Isolate our use of the openssl headers so that they are only included from our crypto wrapper modules, and from tests that examine those modules’ internals. Closes ticket 21841.
    • Simplify our API to launch directory requests, making it more extensible and less error-prone. Now it’s easier to add extra headers to directory requests. Closes ticket 21646.
    • Our base64 decoding functions no longer overestimate the output space that they need when parsing unpadded inputs. Closes ticket 17868.
    • Remove unused “ROUTER_ADDED_NOTIFY_GENERATOR” internal value. Resolves ticket 22213.
    • The logic that directory caches use to spool request to clients, serving them one part at a time so as not to allocate too much memory, has been refactored for consistency. Previously there was a separate spooling implementation per type of spoolable data. Now there is one common spooling implementation, with extensible data types. Closes ticket 21651.
    • Tor’s compression module now supports multiple backends. Part of the implementation for proposal 278; closes ticket 21663.
  • Documentation:
    • Add a manpage description for the key-pinning-journal file. Closes ticket 22347.
    • Correctly note that bandwidth accounting values are stored in the state file, and the bw_accounting file is now obsolete. Closes ticket 16082.
    • Document more of the files in the Tor data directory, including cached-extrainfo, secret_onion_key{,_ntor}.old, hidserv-stats, approved-routers, sr-random, and diff-cache. Found while fixing ticket 22347.
    • Clarify the manpage for the (deprecated) torify script. Closes ticket 6892.
    • Clarify the behavior of the KeepAliveIsolateSOCKSAuth sub-option. Closes ticket 21873.
    • Correct documentation about the default DataDirectory value. Closes ticket 21151.
    • Document the default behavior of NumEntryGuards and NumDirectoryGuards correctly. Fixes bug 21715; bugfix on 0.3.0.1-alpha.
    • Document key=value pluggable transport arguments for Bridge lines in torrc. Fixes bug 20341; bugfix on 0.2.5.1-alpha.
    • Note that bandwidth-limiting options don’t affect TCP headers or DNS. Closes ticket 17170.
  • Removed features (configuration options, all in ticket 22060):
    • These configuration options are now marked Obsolete, and no longer have any effect: AllowInvalidNodes, AllowSingleHopCircuits, AllowSingleHopExits, ExcludeSingleHopRelays, FastFirstHopPK, TLSECGroup, WarnUnsafeSocks. They were first marked as deprecated in 0.2.9.2-alpha and have now been removed. The previous default behavior is now always chosen; the previous (less secure) non- default behavior is now unavailable.
    • CloseHSClientCircuitsImmediatelyOnTimeout and CloseHSServiceRendCircuitsImmediatelyOnTimeout were deprecated in 0.2.9.2-alpha and now have been removed. HS circuits never close on circuit build timeout; they have a longer timeout period.
    • {Control,DNS,Dir,Socks,Trans,NATD,OR}ListenAddress were deprecated in 0.2.9.2-alpha and now have been removed. Use the ORPort option (and others) to configure listen-only and advertise-only addresses.
  • Removed features (tools):
    • We’ve removed the tor-checkkey tool from src/tools. Long ago, we used it to help people detect RSA keys that were generated by versions of Debian affected by CVE-2008-0166. But those keys have been out of circulation for ages, and this tool is no longer required. Closes ticket 21842.

原文:http://ift.tt/2hcDFOp




via 细节的力量 http://ift.tt/2xNElDt