aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2019-05-17 10:12:07 -0400
committerNick Mathewson <nickm@torproject.org>2019-05-17 10:12:07 -0400
commitaa4f2f739737edd8d1570474ee459d5b98713aba (patch)
tree3b4389a6723506b4dc4d4acc623a11e797f91bab /ChangeLog
parentb2b779228d46334a03e62f0e07c2300adce5e0b3 (diff)
downloadtor-aa4f2f739737edd8d1570474ee459d5b98713aba.tar.gz
tor-aa4f2f739737edd8d1570474ee459d5b98713aba.zip
Initial changelog draft for 0.4.1.1-alpha (mostly automated)
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog432
1 files changed, 432 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a69a7253b0..827c4c3131 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,435 @@
+Changes in version 0.4.1.1-alpha - 2019-05-??
+ This is the first alpha in the 0.4.1.x series. It introduces
+ lightweight circuit padding to make some onion-service circuits harder
+ to distinguish, includes a new "authenticated SENDME" feature to make
+ certain denial-of-service attacks more difficult, and improves
+ performance in several areas.
+
+ o Major features (Circuit padding):
+ - Onion service clients will now add padding cells to the initial
+ portions of their INTRODUCE and RENDEZVOUS circuits, to make those
+ circuits' traffic patterns look more like general purpose Exit
+ traffic. The overhead for this is 2 extra cells in each direction
+ for RENDEZVOUS circuits, and 1 extra upstream cell and 10
+ downstream cells for INTRODUCE circuits. This will only be enabled
+ if the circuit's middle node supports this feature, too. (Clients
+ may specify fixed middle nodes with the MiddleNodes torrc
+ directive, and may force-disable this feature with the
+ CircuitPadding torrc directive). Closes ticket 28634.
+
+ o Major features (code organization):
+ - Tor now includes a generic publish-subscribe message-passing
+ subsystem that we can use to organize intermodule dependencies. We
+ hope to use this to reduce dependencies between modules that don't
+ need to be related, and to generally simplify our codebase. Closes
+ ticket 28226.
+
+ o Major features (controller protocol):
+ - Controller commands are now parsed using a generalized parsing
+ subsystem. Previously, each controller command was responsible for
+ parsing its own input. Closes ticket 30091.
+
+ o Major features (flow control):
+ - Implement authenticated SENDMEs detailed in proposal 289. A SENDME
+ cell now includes the digest of the last cell received so once the
+ end point receives the SENDME, it can confirm the other side's
+ knowledge of the previous cells that were sent. This behavior is
+ controlled by two new consensus parameters, see proposal for more
+ details. Fixes ticket 26288.
+
+ o Major features (performance):
+ - Update our node selection algorithm to exclude nodes in linear
+ time. Previously, the algorithm was quadratic, which could slow
+ down heavily used onion services. Closes ticket 30307.
+
+ o Minor feature (circuit padding):
+ - We now use a fast RNG when scheduling circuit padding. Part of
+ ticket 28636.
+
+ o Minor feature (maintenance scripts):
+ - Add to scripts/maint/ helper maintainer scripts used for git
+ maintenance. Closes ticket 29391.
+
+ o Minor features (circuit padding):
+ - Allow the padding machine designer to pick the edges of their
+ histogram instead of trying to compute them automatically using an
+ exponential formula. Resolves some undefined behavior in the case
+ of small histograms and allows greater flexibility on machine
+ design. Closes ticket 29298; bugfix on 0.4.0.1-alpha.
+ - Provide the ability for circuit padding machines to hold a circuit
+ open until they are done padding it. Closes ticket 28780.
+
+ o Minor features (compile-time modules):
+ - Add a --list-modules command to print a list of which compile-time
+ modules are enabled. Closes ticket 30452.
+
+ o Minor features (continuous integration):
+ - Remove sudo configuration lines from .travis.yml as they are no
+ longer needed with current Travis build environment. Resolves
+ issue 30213.
+
+ o Minor features (controller):
+ - Add onion service version 3 support to HSFETCH. Previously, only
+ version 2 onion services were supported. Closes ticket 25417.
+ Patch by Neel Chauhan
+
+ o Minor features (debugging):
+ - Introduce tor_assertf() and tor_assertf_nonfatal() to enable
+ logging of additional information during assert failure. Now we
+ can use format strings to include pieces of information that are
+ relevant for trouble shooting. Resolves ticket 29662.
+
+ o Minor features (defense in depth):
+ - In smartlist_remove_keeporder(), set any pointers that become
+ unused to NULL, in case a bug causes them to be used later. Closes
+ ticket 30176. Patch from Tobias Stoeckmann.
+ - Tor now uses a fast cryptographically strong PRNG even for
+ decisions that we do not believe are security-sensitive.
+ Previously, for performance reasons, we had used a trivially
+ predictable linear congruential generator algorithm for certain
+ load-balancing and statistical sampling decisions. Now we use our
+ fast RNG in those cases. Closes ticket 29542.
+
+ o Minor features (developer tooling):
+ - Call practracker from pre-push and pre-commit git hooks to let a
+ developer know if they made any code style violations in their
+ last commit. This should help preventing code style violations
+ appearing upstream. Closes ticket 30051.
+ - Call pre-commit git hook from pre-push hook to make sure we're
+ running documentation and code style checks before pushing to
+ remote git repository. Implements feature 30033.
+ - Modify git pre-push hook script to disallow pushing branches other
+ than master, release-* and maint-* to origin remote. Implements
+ feature 29532.
+
+ o Minor features (developer tools):
+ - Add a script to check that each header has a well-formed and
+ unique guard marco. Closes ticket 29756.
+ - Introduce a post-merge git hook script to check if we're pulling
+ in any changes to our git workspace management scripts from
+ upstream. Resolves issue 29588.
+
+ o Minor features (development tools):
+ - Tor's test scripts now check for files and functions that seem too
+ long and complicated. Existing overlong functions and files are
+ accepted for now, but should eventually be refactored. Closes
+ ticket 29221.
+
+ o Minor features (geoip):
+ - Update geoip and geoip6 to the May 13 2019 Maxmind GeoLite2
+ Country database. Closes ticket 30522.
+
+ o Minor features (git scripts):
+ - In git-pull-all.sh, also fetch the latest tor-github pull
+ requests. Implements ticket 30114.
+
+ o Minor features (HTTP tunnel):
+ - Return an informative web page when the HTTPTunnelPort is used as
+ an HTTP proxy. Closes ticket 27821, patch by "eighthave".
+
+ o Minor features (IPv6, v3 onion services):
+ - Make v3 onion services put IPv6 addresses in service descriptors.
+ Before this change, service descriptors only contained IPv4
+ addressesd. Implements 26992.
+
+ o Minor features (modularity):
+ - The --disable-module-dirauth compile-time option now disables even
+ more dirauth-only code. Closes ticket 30345.
+
+ o Minor features (performance):
+ - Use OpenSSL's implementations of SHA3 when available (in OpenSSL
+ 1.1.1 and later), since they tend to be faster than tiny-keccak.
+ Closes ticket 28837.
+
+ o Minor features (performance, RNG):
+ - Tor now constructs a fast secure pseudorandom number generator for
+ each thread, to use for cases where performance is critical. This
+ PRNG is based on AES-CTR, using a buffering construction similar
+ to libottery and the (newer) OpenBSD arc4random() code. It
+ outperforms OpenSSL 1.1.1a's CSPRNG by roughly a factor of 100 for
+ small outputs. Although we believe it to be cryptographically
+ strong, we are only using it when necessary for reasonable
+ performance. Implements tickets 29023 and 29536.
+
+ o Minor features (testing):
+ - Tor's unit test code now contains a standard set of functions to
+ replace the PRNG with a deterministic or reproducible version for
+ testing. Previously, various tests implemented this in various
+ ways. Implements ticket 29732.
+ - We now have a script, cov-test-determinism.sh, to identify places
+ where our unit test coverage has become nondeterministic. Closes
+ ticket 29436.
+
+ o Minor bugfixes (bridge authority):
+ - We set bridges as running when we dump the bridge status to a
+ file. Previously, we set bridges as running in a GETINFO
+ controller, but these shouldn't modify vital data structures.
+ Fixes bug 24490; bugfix on 0.2.0.13-alpha. Patch by Neel Chauhan
+
+ o Minor bugfixes (Channel padding statistics):
+ - Channel padding write totals and padding-enabled totals are now
+ counted properly in relay extrainfo descriptors. Fixes bug 29231;
+ bugfix on 0.3.1.1-alpha
+
+ o Minor bugfixes (circuit padding):
+ - Add a torrc option to disable circuit padding. Fixes bug 28693;
+ bugfix on 0.4.0.1-alpha.
+ - Allow circuit padding machines to specify that they do not
+ contribute much overhead, and provide consensus flags and torrc
+ options to force clients to only use low overhead machines. Fixes
+ bug 29203; bugfix on 0.4.0.1-alpha.
+ - Provide consensus parameter to fully disable circuit padding, to
+ be used in emergency network overload situations. Fixes bug 30173;
+ bugfix on 0.4.0.1-alpha.
+ - The circuit padding subsystem does not schedule padding if dormant
+ mode is enabled. Fixes bug 28636; bugfix on 0.4.0.1-alpha.
+
+ o Minor bugfixes (circuitpadding):
+ - Inspect circuit-level cell queue before sending padding, to avoid
+ sending padding while too much data is queued. Fixes bug 29204;
+ bugfix on 0.4.0.1-alpha.
+
+ o Minor bugfixes (compilation, unusual configuration):
+ - Avoid failures when building with ALL_BUGS_ARE_FAILED due to
+ missing declarations of abort(), and prevent other such failures
+ in the future. Fixes bug 30189; bugfix on 0.3.4.1-alpha.
+
+ o Minor bugfixes (controller protocol):
+ - Teach the controller parser to correctly distinguish an object
+ preceded by an argument list from one without. Previously, it
+ couldn't distinguish an argument list from the first line of a
+ multiline object. Fixes bug 29984; bugfix on 0.2.3.8-alpha.
+
+ o Minor bugfixes (developer tools):
+ - Update our pre-commit.git-hook script to work correctly on older
+ Tor branches and release branches without any changes files, and
+ to actually exit when something fails. Fixes bug 29553; bugfix
+ on 0.4.0.2-alpha.
+
+ o Minor bugfixes (dirauth, ipv6):
+ - If we are a durauth with IPv6 and are marking relays as running,
+ mark ourselves as reachable on IPv6. Fixes bug 24338; bugfix on
+ 0.4.0.2-alpha. Patch by Neel Chauhan
+
+ o Minor bugfixes (documentation):
+ - Improve the documentation for MapAddress .exit. Fixes bug 30109;
+ bugfix on 0.1.0.1-rc.
+ - Improve the monotonic time module and function documentation.
+ Explain what "monotonic" actually means, and document some results
+ that have surprised people. Fixes bug 29640; bugfix
+ on 0.2.9.1-alpha.
+
+ o Minor bugfixes (documentation, manpage):
+ - Use proper formatting when providing an example on quoting options
+ that contain whitespace. Fixes bug 29635; bugfix on 0.2.3.18-rc.
+
+ o Minor bugfixes (lib):
+
+ o Minor bugfixes (logging):
+ - Do not log a warning for OpenSSL versions that should be
+ compatible. Fixes bug 30190; bugfix on 0.2.4.2-alpha
+
+ o Minor bugfixes (logging, configuration):
+ - Warn operators when MyFamily option is set but ContactInfo is
+ missing, as the latter should be set too. Fixes bug 25110; bugfix
+ on 0.3.3.1-alpha.
+
+ o Minor bugfixes (memory leak):
+ - Avoid a minor memory leak that could occur on relays when creating
+ a keys directory failed. Fixes bug 30148; bugfix on 0.3.3.1-alpha.
+
+ o Minor bugfixes (onion services):
+ - Avoid a GCC 9.1.1 warning (and possible crash depending on libc
+ implemenation) when failing to load an onion service client
+ authorization file. Fixes bug 30475; bugfix on 0.3.5.1-alpha.
+ - If we are launching repeated HSFETCH queries and are rate-limited,
+ we introduce a new controller response QUERY_RATE_LIMITED instead
+ of QUERY_NO_HSDIR, while keeping the latter for when onion service
+ directories are missing a descriptor. Previously, we returned
+ QUERY_NO_HSDIR for both cases. Fixes bug 28269; bugfix on
+ 0.3.1.1-alpha. Patch by Neel Chauhan
+ - If we are relaunching a circuit to a rendevous service in
+ rend_service_relaunch_rendezvous() and
+ hs_service_requires_uptime_circ() is true, the
+ CIRCLAUNCH_NEED_UPTIME flag is added to the circuit. Previously,
+ we only set this flag when we received a INTRODUCE2 cell in
+ rend_service_receive_introduction(). Fixes bug 17357; bugfix on
+ 0.4.0.2-alpha. Patch by Neel Chauhan
+
+ o Minor bugfixes (onion services, performance):
+ - If we are building circuits to onion services, in
+ circuit_is_acceptable() we only call tor_addr_parse() in places
+ where we use the returned family and address values from this
+ function. Previously, we called tor_addr_parse() in
+ circuit_is_acceptable() even if it wasn't used. This change will
+ improve performance when building circuits. Fixes bug 22210;
+ bugfix on 0.2.8.12. Patch by Neel Chauhan
+
+ o Minor bugfixes (performance):
+ - When checking a node for bridge status, use a fast check to make
+ sure that its identity is set. Previously, we used a constant-time
+ check, which is not necessary when verifying a BUG() condition that
+ causes a stack trace. Fixes bug 30308; bugfix on 0.3.5.1-alpha.
+
+ o Minor bugfixes (pluggable transports):
+ - Tor now sets TOR_PT_EXIT_ON_STDIN_CLOSE=1 for client transports as
+ well as servers. Fixes bug 25614; bugfix on 0.2.7.1-alpha.
+
+ o Minor bugfixes (probability distributions):
+ - Refactor and improve parts of the probability distribution code
+ that made Coverity complain. Fixes bug 29805; bugfix
+ on 0.4.0.1-alpha.
+
+ o Minor bugfixes (python):
+ - Stop assuming that /usr/bin/python3 exists. For scripts that work
+ with python2, use /usr/bin/python. Otherwise, use /usr/bin/env
+ python3. Fixes bug 29913; bugfix on 0.2.5.3-alpha.
+
+ o Minor bugfixes (relay):
+ - If we are are a relay and have IPv6Exit to 1 while ExitRelay is
+ auto, we act as if ExitRelay is 1. Previously, we ignored IPv6Exit
+ if ExitRelay was 0 or auto. Fixes bug 29613; bugfix on
+ 0.3.5.1-alpha. Patch by Neel Chauhan.
+
+ o Minor bugfixes (stats):
+ - When ExtraInfoStatistics is 0, stop including bandwidth usage
+ statistics, GeoIPFile hashes, ServerTransportPlugin lines, and
+ bridge statistics by country in extra-info documents. Fixes bug
+ 29018; bugfix on 0.2.4.1-alpha.
+
+ o Minor bugfixes (testing):
+ - Call setrlimit() to disable core dumps in test_bt_cl.c instead of
+ using `ulimit -c` in test_bt.sh, which violates POSIX shell
+ compatibility. Fixes bug 29061; bugfix on 0.3.5.1-alpha.
+
+ o Minor bugfixes (testing, v3 onion services):
+ - Fix some incorrect code in the v3 onion service unit tests. Fixes
+ bug 29243; bugfix on 0.3.2.1-alpha.
+
+ o Minor bugfixes (tor-resolve):
+ - Fix a memory leak in tor-resolve that could happen if Tor gave it
+ a malformed SOCKS response. (Memory leaks in tor-resolve don't
+ actually matter, but it's good to fix them anyway.) Fixes bug
+ 30151; bugfix on 0.4.0.1-alpha.
+
+ o Minor bugfixes (unit tests):
+ - In the "routerkeys/*" tests, check the return values of mkdir()
+ for possible failures. Fixes bug 29939; bugfix on 0.2.7.2-alpha.
+ Found by Coverity as CID 1444254.
+ - Split test_utils_general() to several smaller test functions in
+ test_utils_general(). This makes it easier to perform resource
+ deallocation on assert failure and fixes Coverity warnings CID
+ 1444117 and CID 1444118. Fixes bug 29823; bugfix on 0.2.9.1-alpha.
+
+ o Minor bugfixes (v3 onion services):
+ - Stop ignoring IPv6 link specifiers sent to v3 onion services. v3
+ onion service IPv6 support is still incomplete, see 23493 for
+ details. Fixes bug 23588; bugfix on 0.3.2.1-alpha. Patch by
+ Neel Chauhan.
+
+ o Code simplification and refactoring:
+ - Abstract out the low-level formatting of replies on the control
+ port. Implements ticket 30007.
+ - Add several assertions in an attempt to fix some Coverity
+ warnings. Closes ticket 30149.
+ - Introduce a connection_dir_buf_add() helper function that checks
+ for compress_state of dir_connection_t and automatically writes a
+ string to directory connection with or without compression.
+ Resolves issue 28816.
+ - Make the base32_decode() API return the number of bytes written,
+ for consistency with base64_decode(). Closes ticket 28913.
+ - Move most relay-only periodic events out of mainloop.c into the
+ relay subsystem. Closes ticket 30414.
+ - Refactor and encapsulate parts of the codebase that manipulate
+ crypt_path_t objects. Resolves issue 30236.
+ - Refactor several places in our code that coverity incorrectly
+ believed that we might have memory leaks, so that we can analyze
+ our software more easily. Closes ticket 30147.
+ - Remove redundant return values in crypto_format, and the
+ associated return value checks elsewhere in the code. Make the
+ implementations in crypto_format consistent, and remove redundant
+ code. Resolves ticket 29660.
+ - Rename tor_mem_is_zero() to fast_mem_is_zero(), to emphasize that
+ it is not a constant-time function. Closes ticket 30309.
+ - Replace hs_desc_link_specifier_t with link_specifier_t, and remove
+ all hs_desc_link_specifier_t-specific code. Fixes bug 22781;
+ bugfix on 0.3.2.1-alpha.
+ - Simplify v3 onion service link specifier handling code. Fixes bug
+ 23576; bugfix on 0.3.2.1-alpha.
+ - Split crypto_digest.c into three parts: 1) general code that does
+ not depend on either NSS or OpenSSL (stays in crypto_digest.c); 2)
+ code that depends on NSS API (moved to crypto_digest_nss.c); 3)
+ code that depends on OpenSSL API (moved to
+ crypto_digest_openssl.c). Resolves ticket 29108.
+ - Split up the control.c file into several submodules, in
+ preparation for distributing its current responsibilities
+ throughout the codebase. Closes ticket 29894.
+ - Start move responsibility for knowing about periodic events to the
+ appropriate subsystems, so that the mainloop doesn't need to know
+ all the periodic events in the rest of the codebase. Implements
+ tickets 30293 and 30294.
+
+ o Documentation:
+ - Document how to find git commits and tags for bug fixes in
+ CodingStandards.md. And update some changes file documentation.
+ Closes ticket 30261.
+
+ o Removed features:
+ - Remove linux-tor-prio.sh script from contrib/operator-tools
+ directory. Resolves issue 29434.
+ - Remove obsolete OpenSUSE initscript. Resolves issue 30076.
+ - Remove the obsolete script at contrib/dist/tor.sh.in. Resolves
+ issue 30075.
+
+ o Testing:
+ - Check that representative subsets of values of `int` and `unsigned
+ int` can be represented by `void *`. Resolves issue 29537.
+
+ o Code simplification and refactoring (circuit padding):
+ - Avoid calling monotime_absolute_usec() in circuit padding machines
+ that do not use token removal or circuit RTT estimation. Fixes bug
+ 29085; bugfix on 0.4.0.1-alpha.
+
+ o Code simplification and refactoring (shell scripts):
+ - Cleanup autogen.sh to silence shellcheck warnings. Closes
+ ticket 26069.
+ - Cleanup test_keygen.sh to silence all shellcheck warnings. Closes
+ ticket 29062.
+ - Cleanup test_switch_id.sh to silence shellcheck warnings. Closes
+ ticket 29065.
+ - Fix issues shellcheck found in test_rebind.sh. Resolves
+ issue 29063.
+ - Fix shellcheck warning SC2006 in src/test/fuzz/minimize.sh.
+ Resolves issue 30079.
+ - Fix shellcheck warning in test_rust.sh. Fixes issue 29064.
+ - Fix shellcheck warning in torify script. Resolves issue 29070.
+ - Fix shellcheck warnings in asciidoc-helper.sh. Resolves
+ issue 29926.
+ - Fix shellcheck warnings in fuzz_multi.sh. Resolves issue 30077.
+ - Fix shellcheck warnings in fuzz_static_testcases.sh. Resolves
+ ticket 29059.
+ - Fix shellcheck warnings in nagios-check-tor-authority-cert script.
+ Resolves issue 29071.
+ - Fix shellcheck warnings in src/test/fuzz/fixup_filenames.sh.
+ Resolves issue 30078.
+ - Fix shellcheck warnings in test-network.sh. Resolves issue 29060.
+ - Fix shellcheck warnings in test_key_expiration.sh. Resolves
+ issue 30002.
+ - Fix shellcheck warnings in zero_length_keys.sh. Resolves
+ issue 29068.
+ - Fix test_workqueue_*.sh scripts to silence shellcheck SC2086
+ warnings. Fixes issue 29067.
+
+ o Testing (chutney):
+ - In "make test-network-all", test IPv6-only v3 single onion
+ services, using the chutney network single-onion-v23-ipv6-md. This
+ test will not pass until 23588 has been merged. Closes
+ ticket 27251.
+
+ o Testing (continuous integration):
+ - In Travis, show stem's tor log after failure. Closes ticket 30234.
+
+
Changes in version 0.4.0.5 - 2019-05-02
This is the first stable release in the 0.4.0.x series. It contains
improvements for power management and bootstrap reporting, as well as