Hello Tor Project people,
In September, the Network Team have worked on the following items:
- Work on various new policy proposals in the network team: 1. PR policy. 2. Merge policy. 3. Commit policy.
- Retirement of EOL relays. - 0.4.1.6 release - 0.4.2 release prep. We froze the 0.4.2.x series to new series, identified all the issues we want to fix on the 042Status page, put out an alpha, and started working on the pending issues.
- C code style discussion Nick started working on a survey to figure out where we stand on issues of consistent code style.
# Project to improve Onion Service [0]
We started work on adopting OnionBalance features into onion services v3. We kicked off this activity by working on stem support for v3 descriptors. There is currently no support in stem to get descriptor information for v3 onion services (HSv3) and we have been tackling this issue by:
1. Implementing HSv3 descriptor encoding in stem, 2. Adding code to stem to calculate the Hidden Service Directories (HSDirs) that are responsible for these v3 descriptors, and 3. Investigating the best way to implement key blinding for HSv3 in stem.
Additionally, we have been working on enhancing onion services overall by working on a number of bugfixes and improvements. We are very excited to announce that we now have complete support for IPv6 in v3 onion services. We have also been working on identifying bugs related to HSv3 timeouts[8] through the use of a health monitoring tool. As a result of this work we have now identified four new bugs and are in the process of writing fixes for them. We have also been making progress investigating an issue with missing HSv3 descriptors when setting up an intro circuit. All of these help to make v3 Onion services more scalable and stable which we hope will help with their adoption.
We have also been busy working with the SecureDrop team over the past few months and are happy to share that the latest SecureDrop v1.0.0 release has added support for enabling v3 onion services.
Other than that, work has continued on the Denial of Service (DoS) defenses with the implementation and merge of proposal 305 which allows HSv3 operators to send a number of DoS defense parameters to their introduction. We are also still in discussions regarding whether our proposed fix for an attack that forces rotation of the intro point for an onion service is good enough or whether we need to go back to the drawing board to find a better solution. Once the outstanding issues on these items are resolved, these features should be available from the first tor v0.4.2 stable release.
# Project on Modularization of Key Aspects of the Tor Network [1]
We have been working on refactoring our code to make the modules more resilient, segregated, and automatically testable. We started setting up a system to change how Tor modules should communicate, designed to reduce module complexity and maintenance burden. For that we created a generic publish/subscribe system for cross-module communications. We worked on rearranging files for the module dirauth so that more directory authority code can be compiled out when unneeded and spent time fixing bugs related the refactoring of key modules. We also refactored crypto_digest.c to have fewer ifdefs.
We are working on distributing the config.c module across several modules [5][39][46]. It initializes many other modules, and provides the proper amounts to a set of global variables for the configuration settings. Similar to config.c, we are working to distribute the functionality of control.c across several modules [29] [47]. control.c queries and manipulates the internal states of many different subsystems, so it currently needs to know about all those internals.
[0] https://trac.torproject.org/projects/tor/wiki/org/sponsors/Sponsor27 [1] https://trac.torproject.org/projects/tor/wiki/org/sponsors/Sponsor31
All the best, Alex.