Planet Tor

@blog September 17, 2021 - 18:57 • a day ago
New Alpha Release: Tor 0.4.7.1-alpha
New Alpha Release: Tor 0.4.7.1-alpha ahf September 17, 2021

There's a new alpha release available for download. If you build Tor from source, you can download the source code for 0.4.7.1-alpha from the download page on the website. Packages should be available over the coming weeks, with a new alpha Tor Browser release likely some time next week.

Remember, this is an alpha release: you should only run this if you'd like to find and report more bugs than usual.

This version is the first alpha release of the 0.4.7.x series. One major feature is Vanguards Lite, from proposal 333, to help mitigate guard discovery attacks against onion services. It also includes numerous bugfixes.

Changes in version 0.4.7.1-alpha - 2021-09-17

  • Major features (Proposal 332, onion services, guard selection algorithm):
    • Clients and onion services now choose four long-lived "layer 2" guard relays for use as the middle hop in all onion circuits. These relays are kept in place for a randomized duration averaging 1 week. This mitigates guard discovery attacks against clients and short-lived onion services such as OnionShare. Long-lived onion services that need high security should still use the Vanguards addon (https://github.com/mikeperry-tor/vanguards). Closes ticket 40363; implements proposal 333.
  • Minor features (bridge testing support):
    • Let external bridge reachability testing tools discard cached bridge descriptors when setting new bridges, so they can be sure to get a clean reachability test. Implements ticket 40209.

 

  • Minor features (fuzzing):
    • When building with --enable-libfuzzer, use a set of compiler flags that works with more recent versions of the library. Previously we were using a set of flags from 2017. Closes ticket 40407.
  • Minor features (testing configuration):
    • When TestingTorNetwork is enabled, skip the permissions check on hidden service directories. Closes ticket 40338.
    • On a testing network, relays can now use the TestingMinTimeToReportBandwidth option to change the smallest amount of time over which they're willing to report their observed maximum bandwidth. Previously, this was fixed at 1 day. For safety, values under 2 hours are only supported on testing networks. Part of a fix for ticket 40337.
    • Relays on testing networks no longer rate-limit how frequently they are willing to report new bandwidth measurements. Part of a fix for ticket 40337.
    • Relays on testing networks now report their observed bandwidths immediately from startup. Previously, they waited until they had been running for a full day. Closes ticket 40337.
  • Minor bugfixes (circuit padding):
    • Don't send STOP circuit padding cells when the other side has already shut down the corresponding padding machine. Fixes bug 40435; bugfix on 0.4.0.1-alpha.
  • Minor bugfixes (compatibility):
    • Fix compatibility with the most recent Libevent versions, which no longer have an evdns_set_random_bytes() function. Because this function has been a no-op since Libevent 2.0.4-alpha, it is safe for us to just stop calling it. Fixes bug 40371; bugfix on 0.2.1.7-alpha.
  • Minor bugfixes (control, sandbox):
    • Allows the control command SAVECONF to succeed when the seccomp sandbox is enabled. Makes SAVECONF keep only one backup file, to simplify implementation. Fixes bug 40317; bugfix on 0.2.5.4-alpha. Patch by Daniel Pinto.
  • Minor bugfixes (heartbeat):
    • Adjust the heartbeat log message about distinct clients to consider the HeartbeatPeriod rather than a flat 6-hour delay. Fixes bug 40330; bugfix on 0.2.6.3-alpha.
  • Minor bugfixes (logging, relay):
    • Add spaces between the "and" when logging the "Your server has not managed to confirm reachability for its" on dual-stack relays. Fixes bug 40453; bugfix on 0.4.5.1-alpha. Patch by Neel Chauhan.
  • Minor bugfixes (onion service):
    • Do not flag an HSDir as non-running in case the descriptor upload or fetch fails. An onion service closes pending directory connections before uploading a new descriptor which leads to wrongly flagging many relays and thus affecting circuit path selection. Fixes bug 40434; bugfix on 0.2.0.13-alpha.
  • Minor bugfixes (statistics):
    • Fix a fencepost issue when we check stability_last_downrated where we called rep_hist_downrate_old_runs() twice. Fixes bug 40394; bugfix on 0.2.0.5-alpha. Patch by Neel Chauhan.
  • Minor bugfixes (tests):
    • Fix a bug that prevented some tests from running with the correct names. Fixes bug 40365; bugfix on 0.4.3.1-alpha.
  • Documentation:
    • Add links to original tor design paper and anonbib to docs/HACKING/README.1st.md. Closes ticket 33742. Patch from Emily Bones.
    • Describe the "fingerprint-ed25519" file in the tor.1 man page. Fixes bug 40467; bugfix on 0.4.3.1-alpha. Patch by Neel Chauhan.
...
@ooni September 17, 2021 - 00:00 • 2 days ago
Job Opening: Mobile Developer for OONI Probe
Are you a mobile developer interested in defending human rights on the internet? We have a job opening for you! The OONI team (a non-profit fighting internet censorship, originally born out of the Tor Project) is looking for a dedicated mobile developer to work on OONI Probe: a free software app designed to measure internet censorship and network performance. The application deadline is Sunday, 31st October 2021. Job description If you join our team, you will lead the development of the OONI Probe mobile app, supporting human rights defenders worldwide to investigate and fight internet censorship. ...
@ooni September 10, 2021 - 00:00 • 9 days ago
Italy blocks Gutenberg book publishing website
Cases of internet censorship (that affect public interest) are rarely reported in Europe. Yet, www.gutenberg.org, a book-publishing website run by a non-profit organization, has been blocked in Italy since May 2020. In this report, we share OONI network measurement data on the ongoing blocking of www.gutenberg.org across networks in Italy. Background Methods Findings Blocking methods by ISP Vodafone Italia (AS30722) ...
@blog September 8, 2021 - 18:43 • 11 days ago
New Release: Tor Browser 10.5.6 (Windows, macOS, Linux)
New Release: Tor Browser 10.5.6 (Windows, macOS, Linux) sysrqb September 08, 2021

Tor Browser 10.5.6 is now available from the Tor Browser download page and also from our distribution directory.

This version updates Firefox to 78.14.0esr. This version includes important security updates to Firefox.

Warning:
Tor Browser will stop supporting version 2 onion services very soon. Please see the previously published deprecation timeline. Migrate your services and update your bookmarks to version 3 onion services as soon as possible.

The full changelog since Tor Browser 10.5.5:

  • Windows + OS X + Linux
    • Update Firefox to 78.14.0esr
    • Update Openssl to 1.1.1l
  • Build System
    • OS X
      • Bug 40358: Make OpenSSL 1.1.1l buildable for macOS
...
@blog September 7, 2021 - 12:21 • 12 days ago
New Release: Tails 4.22
New Release: Tails 4.22 Tails September 07, 2021

In Tails 4.22, we focused on solving the most important issues in the Tor Connection assistant to make it more robust and easier to use.

Changes and updates

Included software and hardware support

  • Update Tor Browser to 10.5.6.
  • Update Thunderbird to 78.13.
  • Update the AMD graphics firmware to 20210818. This should improve the support for some AMD graphics cards.

Tor Connection

  • Change the custom bridge interface to only allow entering 1 bridge. (#18550)
    People had troubles knowing how to enter their custom bridges when the widget was a textarea and only the first bridge is used anyway.
  • Allow saving 1 custom bridge in the Persistent Storage. (#5461)
  • Allow fixing the clock manually when connecting to Tor using bridges fails. (#15548)
    This helps people East from London connect to Tor using obfs4 bridges and makes connecting to Tor more robust in general.
  • Reduce the timeout that determines whether we can connect to Tor at all from 30 seconds to 10 seconds. Increase the timeout to start Tor entirely from 120 seconds to 600 seconds. (#18501).
    Tor Connection now fails quicker when it's impossible to connect to Tor, while being more robust on slow Internet connections.
  • Allow trying again to connect to Tor from the error screen. (#18539)

Unsafe Browser

  • Stop restarting Tor when exiting the Unsafe Browser. (#18562)
  • Only mention the Persistent Storage in the Unsafe Browser warning when there is already a Persistent Storage. (#18551)

Others

  • Make sure that automatic upgrades are downloaded from a working mirror. (#15755)
  • Add Russian to the offline documentation included in Tails.

Fixed problems

Tor Connection

  • Fix connecting to Tor using the default bridges. (#18462)
  • Fix connecting to Tor when the Wi-Fi settings are saved in the Persistent Storage. (#18532)
  • Stop trying to connect to Tor in the background when Tor Connection reaches the error screen. (#18740)

For more details, read our changelog.

Known issues

None specific to this release.
See the list of long-standing issues.

Get Tails 4.22

To upgrade your Tails USB stick and keep your persistent storage

To install Tails on a new USB stick

Follow our installation instructions:

The Persistent Storage on the USB stick will be lost if you install instead of upgrading.

To download only

If you don't need installation or upgrade instructions, you can download Tails 4.22 directly:

What's coming up?

Tails 4.23 is scheduled for October 5.
Have a look at our roadmap to see where we are heading to.

Support and feedback

For support and feedback, visit the Support section on the Tails website.

...
@anarcat September 5, 2021 - 18:40 • 14 days ago
Automating major Debian upgrades

It's major upgrade time again! The Debian project just published the Debian 11 "bullseye" release, and it's pretty awesome! This makes me realized that I have never written here about my peculiar upgrade process, and figured it was worth bringing that up to a wider audience.

My upgrade process also has a notable changes section which includes major version changes (e.g. Inkscape 1.0!), new packages (e.g. podman!) and important behavior changes (e.g. driverless scanning and printing!).

I'm particularly interested to hear about any significant change I might have missed. If you know of a cool new package that shipped with bullseye and that I forgot, do let me know!

But that's for the cool new stuff. We need to talk about the problems with Debian major upgrades.

Background

I have been maintaining detailed upgrade guides, on my wiki, starting with the jessie release, but I have actually written such guides for Koumbit.org as far back as Debian squeeze in 2011 (another worker wrote the older Debian lenny upgrade guide in 2009). Koumbit, since then, has kept maintaining those guides all the way to the latest bullseye upgrade, through 7 major releases!

Over the years, those guides evolved from a quick "cheat-sheet" format copied from the release notes into a more or less "scripted" form that I currently use.

Each guide has a procedure made of a few steps that can be basically copy-pasted to batch-upgrade a host (or multiple hosts in parallel) as quickly as possible. There is also the predict-os script which allows you to keep track of progress of the upgrades in a Puppet cluster.

Limitations of the official procedure

In comparison with my procedure, the official upgrade guide is mostly designed to upgrade a single machine, typically a workstation, with a rather slow and exhaustive process. The PDF version of the upgrade guide is 14 pages long! This, obviously, does not work when you have tens or hundreds of machines to upgrade.

Debian upgrades are notorious for being extremely reliable, but we have a lot of packages, and there are always corner cases where the upgrade will just fail because of a bug specific to your environment. Those will only be fixed after some back and forth in the community (and that's assuming users report those bugs, which is not always the case). There's no obvious way to deploy "hot fixes" in this context, at least not without fixing the package and publishing it on an unofficial Debian archive while the official ones catch up. This is slow and difficult.

Or some packages require manual labor. Examples of this are the PostgreSQL or Ganeti packages which require you to upgrade your clusters by hand, while the old and new packages live side by side. Debian packages bring you far in the upgrade process, but sometimes not all the way.

Which means every Debian install needs to be manually upgraded and inspected when a new release comes out. That's slow and error prone and we can do better.

How to automate major upgrades

I have a proposal to automate this. It's been mostly dormant in the Debian wiki, for 5 years now. Fundamentally, this is a hard problem: Debian gets installed in so many different environments, from workstations to physical servers to virtual machines, embedded systems and so on, that it's extremely hard to come up with a "one size fits all" system.

The (manual) procedure I'm using is mostly targeting servers, but I'm also using it on workstations. And I'll note that it's specific to my home setup: I have a different procedure at work, although it has a lot of common code.

To automate this, I would factor out that common code with hooks where you could easily inject special code like "you need to upgrade ferm first", "you need an extra reboot here", or "this is how you finish the PostgreSQL upgrade".

With Debian getting closer to a 2 year release cycle, with the previous release being supported basically only one year after the new stable comes out, I feel more and more strongly that this needs better automation.

So I'm thinking that I should write a prototype for this. Ubuntu has do-release-upgrade that is too Ubuntu-specific to be reused. An attempt at collaborating on this has been mostly met with silence from Ubuntu's side as well.

I'm thinking that using something like Fabric, Mitogen, or Transilience: anything that will allow me to write simple, portable Python code that can run transparently on a local machine (for single systems upgrades, possibly with a GUI frontend) to remote servers (for large clusters of servers, maybe with canaries and grouping using Cumin). I'll note that Koumbit started experimenting with Puppet Bolt in the bullseye upgrade process, but that feels too site-specific to be useful more broadly.

Trade-offs

I am not sure where this stands in the XKCD time trade-off evaluation, because the table doesn't actually cover the time frequency of Debian release (which is basically "biennial") and the amount of time the upgrade would take across a cluster (which varies a lot, but that I estimate to be between one to 6 hours per machine).

Assuming I have 80 machines to upgrade, that is 80 to 480 hours (between ~3 to 20 days) of work! It's unclear how much work such an automated system would shave off, however. Assuming things are an order of magnitude faster (say I upgrade 10 machines at a time), I would shave off between 3 and 18 days of work, which implies I might allow myself to spend a minimum of 5 days working on such a project.

The other option: never upgrade

Before people mention those: I am aware of containers, Kubernetes, and other deployment mechanisms. Indeed, those may be a long-term solution, we currently can't afford to migrate everything over to containers right now: that is a huge migration and a total paradigm shift. At that point, whatever is left might not even be Debian in the first place. And besides, if you run Kubernetes, you still need to run some OS underneath and upgrade that, so that problem never completely disappears.

Still, maybe that's the final answer: never upgrade.

For some stateless machines like DNS replicas or load balancers, that might make a lot of sense as there's no or little data to carry to the new host. But this implies a seamless and fast provisioning process, and we don't have that either: at my work, installing a machine takes about as long as upgrading it, and that's after a significant amount of work automating that process, partly writing my own Debian installer with Fabric (!).

What is your process?

I'm curious to hear what people think of those ideas. It strikes me as really odd that no one has really tackled that problem yet, considering how many clusters of Debian machines are out there. Surely people are upgrading those, and not following that slow step by step guide, right?

I suspect everyone is doing the same thing: we all have our little copy-paste script we batch onto multiple machines, sometimes in parallel. That is what the Debian.org sysadmins are doing as well.

There must be a better way. What is yours?

My upgrades so far

So far, I have upgraded 2 out of my 3 home machines running buster -- others have been installed directly in bullseye -- with only my main, old, messy server left. Upgrades have been pretty painless so far (see another report, for example), much better than the previous buster upgrade. Obviously, for me personal use, automating this is pointless.

Work-side, however, is another story: we have over 80 boxes to upgrade there and that will take a while. The last stretch to buster cycle took about two years to complete, so we might be done by the time the next release (12, "bookworm") is released, but that's actually a full year after "buster" becomes EOL, so it's actually too late...

At least I fixed the installers so that new the machines we create all ship with bullseye, so we stopped accumulating new buster hosts...

Thanks to lelutin and pabs for reviewing a draft of this post.

...
@atagar September 3, 2021 - 21:49 • 15 days ago
Status Report for August 2021

Howdy all! I hope everyone is riding out this delta covid surge reasonably well.

This will likely be my last Pywikibot report. My code reviews are stuck and working on Pywikibot is remarkably lonely. Pywikibot is neat, but it’s difficult to stay interested when my contributions dawdle on a shelf. C’est la vie.

Roman Colosseum

In lieu of code I’m binging Death Throes of the Republic. Rome’s collapse began with the senate’s murder of the reformer Tiberius Gracchus. Breaking the norm against political violence just once spiraled out of control into a tit-for-tat revenge cycle that must have horrified its original perpetrators.

Rome offers a troubling warning of what the January 6th lynch mob could have begun. Folks, lets not play with fire.


Type Hints

Prior to my Rome binge I doubled down on Pywikibot’s type hints. Poor Xqt. I kinda buried him in code reviews…

...
@kushal September 3, 2021 - 02:21 • 16 days ago
Default values, documentation and Ansible

While testing my qubes_ansible project on the upcoming Qubes OS 4.1 project, I noticed something really strange. But, before getting into that, this Ansible module and the connection plugin are for Qubes OS only, and based on the excellent Python modules provided by the Qubes team.

The error goes like this during the fact gathering steps (reformatted for the blog):

fatal: [debian-10]: UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to create temporary directory.In some cases, you may have
    been able to authenticate and did not have permissions on the target
    directory. Consider changing the remote tmp path in ansible.cfg to a path
    rooted in \"/tmp\", for more error information use -vvv. Failed command
    was: ( umask 77 && mkdir -p \"` echo ~The *user* is the default user in
    Qubes./.ansible/tmp `\"&& mkdir \"` echo ~The *user* is the default user in
    Qubes./.ansible/tmp/ansible-tmp-1630548982.9355698-7707-90110802425258 `\"
    && echo ansible-tmp-1630548982.9355698-7707-90110802425258=\"` echo ~The
    *user* is the default user in
    Qubes./.ansible/tmp/ansible-tmp-1630548982.9355698-7707-90110802425258 `\"
    ), exited with result 1, stderr output: mkdir: cannot create directory
    ‘~The ~The *user* account as default in Qubes OS. ~The ~The *user* account
    as default in Qubes OS. account as default in Qubes OS. ~The ~The *user*
    account as default in Qubes OS. ~The ~The *user* account as default in
    Qubes OS. account as default in Qubes OS. account as default in Qubes OS.
    is the default user in Qubes.’: File name too long\n",
    "unreachable": true
}

Most important part is the default user's home directory part, echo ~The user is the default user in Qubes./.ansible/tmp. For a moment I totally freaked out, as this looks like documentation. After reading the code more, I can see it is coming from the DOCUMENTATION variable in my plugin. After playing around a bit more and trying out different values I can see that the default value mentioned in the documentation is becoming the default value in the Python code.

After searching more I can see that the Ansible developers want the documentation string to be the gold standard and the code is parsing it find the default values. In my mind this is more confusing. I would expect the default value to be declared inside of the code.

Parsing the DOCUMENTATION and then finding the default values there in a Python code still does not fit in my brain. Fixed the issue for now, let me see what other surprises are waiting in the future.

...
@blog September 2, 2021 - 12:00 • 17 days ago
New Release: Tor Browser 11.0a6 (Android Only)
New Release: Tor Browser 11.0a6 (Android Only) sysrqb September 02, 2021

Tor Browser 11.0a6 is now available from the Tor Browser download page and also from our distribution directory.

Note: This is an alpha release, an experimental version for users who want to help us test new features. For everyone else, we recommend downloading the latest stable release instead.

This version updates Fenix's Geckoview component to 92.0b9.

Warning:
Tor Browser Alpha does not support version 2 onion services. Tor Browser (Stable) will stop supporting version 2 onion services very soon. Please see the deprecation F.A.Q. entry regarding Tor version 0.4.6. Migrate your services and update your bookmarks to version 3 onion services as soon as possible.

The full changelog since Tor Browser 11.0a5:

  • Android
    • Bug 40611: Rebase geckoview patches onto 92.0b9
...
@ooni August 31, 2021 - 00:00 • 19 days ago
No Access: LGBTIQ Website Censorship in Six Countries
Today, in collaboration with OutRight Action International and the Citizen Lab, we are excited to share our new research report, “No Access: LGBTIQ Website Censorship in Six Countries”, which examines the blocking of LGBTIQ websites in Indonesia, Malaysia, Iran, Russia, Saudi Arabia, and the United Arab Emirates (UAE). READ FULL REPORT Annotated Bibliography Below we share some of our key research findings. Summary of findings We joined forces with OutRight Action International and the Citizen Lab to examine the blocking of LGBTIQ websites in six countries: Indonesia, Malaysia, Iran, Russia, Saudi Arabia, and the United Arab Emirates (UAE). ...
@blog August 24, 2021 - 15:36 • 26 days ago
New Release: Tor Browser 11.0a5
New Release: Tor Browser 11.0a5 sysrqb August 24, 2021

Tor Browser 11.0a5 is now available from the Tor Browser download page and also from our distribution directory.

Note: This is an alpha release, an experimental version for users who want to help us test new features. For everyone else, we recommend downloading the latest stable release instead.

This version updates Tor to 0.4.6.7 that includes a fix for a security issue. On Android, this version updates Firefox to 91.2.0.

Warning:
Tor Browser Alpha does not support version 2 onion services. Tor Browser (Stable) will stop supporting version 2 onion services very soon. Please see the deprecation F.A.Q. entry regarding Tor version 0.4.6. Migrate your services and update your bookmarks to version 3 onion services as soon as possible.

The full changelog since Tor Browser 11.0a4:

  • All Platforms
    • Update Tor to 0.4.6.7
  • Linux
    • Bug 40582: Tor Browser 10.5.2 tabs always crash on Fedora Xfce Rawhide
  • Android
    • Update Fenix to 91.2.0
...
@ooni August 24, 2021 - 00:00 • 26 days ago
Mining OONI data
OONI receives measurement data from OONI Probes around the world and processes it in real-time to detect censorship. There are different ways to access the output of the processing: OONI Explorer, the OONI API and dumps of the PostgreSQL database. OONI Explorer provides a user-friendly web interface to all visitors. The OONI API is meant for developers and researches and allows searching for measurement metadata, fetching single measurements, and generating statistics. ...
@ooni August 24, 2021 - 00:00 • 26 days ago
A brief introduction to OONI
This is gentle introduction to OONI that does not require readers to have a technical background. If you are familiar with how the Internet works and how it can be censored you can skip The basics. For frequently asked questions and answers, please refer to the OONI FAQ. The basics You might be connecting to the Internet from a local network or using an Internet Service Provider (ISP). ISPs are usually not connected to each other. ...
@ooni August 24, 2021 - 00:00 • 26 days ago
Zambia: Social media blocked amid 2021 general elections
Recently, on 12th August 2021, general elections were held in Zambia, during which access to popular online social media platforms was reportedly blocked. In this report, we share relevant OONI data on the blocking of WhatsApp, Twitter, and Facebook amid Zambia’s 2021 general election. Background Methods Findings Blocking of WhatsApp Blocking of Twitter and Facebook Conclusion ...
@blog August 20, 2021 - 13:30 • 30 days ago
New Release: Tor Browser 10.5.5
New Release: Tor Browser 10.5.5 sysrqb August 20, 2021

Tor Browser 10.5.5 is now available from the Tor Browser download page and also from our distribution directory.

This version updates Tor to 0.4.5.10 that includes a fix for a security issue. On Android, this version updates Firefox to 91.2.0 and includes important security updates.

Warning:
Tor Browser will stop supporting version 2 onion services very soon. Please see the previously published deprecation timeline. Migrate your services and update your bookmarks to version 3 onion services as soon as possible.

The full changelog since Tor Browser 10.5.4:

  • All Platforms
    • Update Tor to 0.4.5.10
  • Linux
    • Bug 40582: Tor Browser 10.5.2 tabs always crash on Fedora Xfce Rawhide
  • Android
    • Update Fenix to 91.2.0
    • Update NoScript to 11.2.11
    • Bug 40063: Move custom search providers
    • Bug 40176: TBA: sometimes I only see the banner and can't tap on the address bar
    • Bug 40181: Remove V2 Deprecation banner on about:tor for Android
    • Bug 40184: Rebase fenix patches to fenix v91.0.0-beta.5
    • Bug 40185: Use NimbusDisabled
    • Bug 40186: Hide Credit Cards in Settings
  • Build System
    • Android
      • Update Go to 1.15.15
      • Bug 40331: Update components for mozilla91
...
@blog August 19, 2021 - 22:27 • 1 months ago
Join Tor Project's Documentation Hackathon: August 30 - September 3
Join Tor Project's Documentation Hackathon: August 30 - September 3 Gus August 19, 2021

Between August 30 and September 3, the Tor Project will host the third edition of our user documentation hackathon, the DocsHackathon. If you've never volunteered with us before, this is a great opportunity for you to become involved in the community, get closer to our work, and make meaningful contributions. The DocsHackathon is a totally remote and online event.

Documentation is extremely valuable to the health of open source software projects, but it is often overlooked. We are a small team at the Tor Project, and as a nonprofit organization with a big mission, we rely on volunteer contributions around the world to keep up with an ever-changing internet freedom landscape with the appropriate tools to navigate it. Keeping Tor's documentation up-to-date, organized, and accessible is a way to potentially help millions of people access a private, secure, and uncensored internet by using our tools.

If you helped out in the previous editions (2020, 2019), we hope you can join us again or help spread the word. Once the #DocsHackathon is completed, we'll reward the top three contributors with official Tor swag.

So if you're a copywriter, front-end dev, tester, or content reviewer, we'd appreciate your help improving our documentation, updating our support and community portal, and ensuring their relevancy. Don't feel like any of these apply to you but still want to help out? Chat with us on IRC (#tor-www - irc.oftc.net) or the Community team mailing list to join us and find out where you could add value.

## How to join the event

To participate in the DocsHackathon:

1. Register to get access to the event agenda: https://survey.torproject.org/index.php/212451
2. Join the Community team mailing list.
3. Take a look at all of the tickets marked with the "DocsHackathon" keyword on GitLab.
4. If you have a documentation issue that is not currently reflected on GitLab, create it, tag it DocsHackathon, and let one of us know on IRC channel #tor-www. If you prefer, you can submit new issues using Anon-Ticket.
5. Choose a ticket and start working on it! You can submit Pull Requests on our GitHub mirror or from your own git instance.
6. This isn't a requirement, but: if you want to talk about the hackathon on social media, we're using the tag #DocsHackathon.

A contribution will be counted when your PR or merge request is merged to the master branch of the relevant repository. The awards to contributors will be announced after all the merges are done.

We are a small nonprofit with a big mission, and we sincerely appreciate your help getting our documentation up to speed. We look forward to working with you soon.

...
@blog August 17, 2021 - 03:13 • 1 months ago
New Release: Tor Browser 11.0a4
New Release: Tor Browser 11.0a4 sysrqb August 16, 2021

Tor Browser 11.0a4 is now available from the Tor Browser download page and also from our distribution directory.

Note: This is an alpha release, an experimental version for users who want to help us test new features. For everyone else, we recommend downloading the latest stable Windows/macOS/Linux or Android release instead.

This version updates Firefox to version 78.13.0esr on Windows, macOS, and Linux, and Firefox to version 91.1.0 on Android. This version includes important security updates to Firefox on Windows, macOS, and Linux, and Android.

Warning:
Tor Browser Alpha does not support version 2 onion services. Tor Browser (Stable) will stop supporting version 2 onion services very soon. Please see the deprecation F.A.Q. entry regarding Tor version 0.4.6. Migrate your services and update your bookmarks to version 3 onion services as soon as possible.

The full changelog since Tor Browser 11.0a3:

  • All Platforms
  • Windows + OS X + Linux
    • Update Firefox to 78.13.0esr
    • Bug 40041: Remove V2 Deprecation banner on about:tor for desktop
    • Bug 40534: Cannot open URLs on command line with Tor Browser 10.5
    • Bug 40547: UX: starting in offline mode can result in difficulty to connect later
    • Bug 40561: Refactor about:torconnect implementation
    • Bug 40567: RFPHelper is not init until after about:torconnect bootstraps
  • Android
    • Update Fenix to 91.1.0
    • Bug 40186: Hide Credit Cards in Settings
  • Build System
    • All Platforms
      • Update Go to 1.16.7
...
@blog August 16, 2021 - 19:34 • 1 months ago
New Stable Releases: Tor 0.3.5.16, 0.4.5.10 and 0.4.6.7
New Stable Releases: Tor 0.3.5.16, 0.4.5.10 and 0.4.6.7 dgoulet August 16, 2021

Greetings!

We have a new stable release today. If you build Tor from source, you can download the source code for the latest stable release on the download page. Packages should be available within the next several weeks, with a new Tor Browser later this week.

The ChangeLog for 0.4.6.7 follows below. For the changelogs for other releases, see the announcement email. These releases backport stability fixes from later Tor releases, and a security issue classified as HIGH per our policy.

Tor 0.4.6.7 fixes several bugs from earlier versions of Tor, including one that could lead to a denial-of-service attack. Everyone running an earlier version, whether as a client, a relay, or an onion service, should upgrade to Tor 0.3.5.16, 0.4.5.10, or 0.4.6.7.

Changes in version 0.4.6.7 - 2021-08-16

  • Major bugfixes (cryptography, security):
    • Resolve an assertion failure caused by a behavior mismatch between our batch-signature verification code and our single-signature verification code. This assertion failure could be triggered remotely, leading to a denial of service attack. We fix this issue by disabling batch verification. Fixes bug 40078; bugfix on 0.2.6.1-alpha. This issue is also tracked as TROVE-2021-007 and CVE-2021-38385. Found by Henry de Valence.
  • Minor feature (fallbackdir):
    • Regenerate fallback directories list. Close ticket 40447
  • Minor features (geoip data):
    • Update the geoip files to match the IPFire Location Database, as retrieved on 2021/08/12.
  • Minor bugfix (crypto):
    • Disable the unused batch verification feature of ed25519-donna. Fixes bug 40078; bugfix on 0.2.6.1-alpha. Found by Henry de Valence.
  • Minor bugfixes (onion service):
    • Send back the extended SOCKS error 0xF6 (Onion Service Invalid Address) for a v2 onion address. Fixes bug 40421; bugfix on 0.4.6.2-alpha.
  • Minor bugfixes (relay):
    • Reduce the compression level for data streaming from HIGH to LOW in order to reduce CPU load on the directory relays. Fixes bug 40301; bugfix on 0.3.5.1-alpha.
  • Minor bugfixes (timekeeping):
    • Calculate the time of day correctly on systems where the time_t type includes leap seconds. (This is not the case on most operating systems, but on those where it occurs, our tor_timegm function did not correctly invert the system's gmtime function, which could result in assertion failures when calculating voting schedules.) Fixes bug 40383; bugfix on 0.2.0.3-alpha.
...
@blog August 10, 2021 - 16:33 • 1 months ago
New Release: Tor Browser 10.5.4 (Windows, macOS, Linux)
New Release: Tor Browser 10.5.4 (Windows, macOS, Linux) sysrqb August 10, 2021

Tor Browser 10.5.4 is now available from the Tor Browser download page and also from our distribution directory.

This version updates Firefox to 78.13.0esr. This version includes important security updates to Firefox.

Warning:
Tor Browser will stop supporting version 2 onion services very soon. Please see the previously published deprecation timeline. Migrate your services and update your bookmarks to version 3 onion services as soon as possible.

The full changelog since Tor Browser 10.5.2:

  • Windows + OS X + Linux
    • Update Firefox to 78.13.0esr
    • Update NoScript to 11.2.11
    • Bug 40041: Remove V2 Deprecation banner on about:tor for desktop
    • Bug 40506: Saved Logins not available in 10.5
    • Bug 40524: Update DuckDuckGo onion site URL in search preferences and onboarding
  • Build System
    • Windows + OS X + Linux
      • Update Go to 1.15.14
...
@blog August 6, 2021 - 03:04 • 1 months ago
New Release: Tor Browser 11.0a3 (Android Only)
New Release: Tor Browser 11.0a3 (Android Only) sysrqb August 05, 2021

Tor Browser 11.0a3 is now available from the Tor Browser download page and also from our distribution directory.

Note: This is an alpha release, an experimental version for users who want to help us test new features. For everyone else, we recommend downloading the latest stable release instead.

This version updates Fenix to 91.0.0-beta.5.

Warning:
Tor Browser Alpha does not support version 2 onion services. Tor Browser (Stable) will stop supporting version 2 onion services later this year. Please see the deprecation F.A.Q. entry regarding Tor version 0.4.6. Migrate your services and update your bookmarks to version 3 onion services as soon as possible.

The full changelog since Tor Browser 11.0a2:

  • Android
    • Update NoScript to 11.2.11
    • Bug 40176: TBA: sometimes I only see the banner and can't tap on the address bar
    • Bug 40185: Use NimbusDisabled
    • Bug 40181: Remove V2 Deprecation banner on about:tor for Android
    • Bug 40184: Rebase fenix patches to fenix v91.0.0-beta.5
    • Bug 40063: Move custom search providers
  • Build System
    • Android
...
@atagar July 30, 2021 - 22:48 • 2 months ago
Status Report for July 2021

Happy summer everyone! This month my sister and I camped at Fort Townsend, which aside from adorable douglas squirrels features an explosive dismantling tower. Its plaque reads…

“This brick building was a US Navy Explosives Laboratory built during World War II. Enemy submarine torpedoes and sea mines were brought here to be dissembled. A large two million volt x-ray machine was utilized to detect the exact position of the detonation fuse. Ten inches of steel could be penetrated by the high powered machine.”

I love history. According to Dan Carlin’s Supernova in the East Japan had significantly superior torpedoes at the outbreak of war. Maybe this tower helped close that gap?

Torpedo tower


Type Hints

Much of my work from last month is stuck in code review purgatory, so this month I swapped to type hinting which is far quicker to review. Pywikibot has 94 files so like our scripts this will be an ongoing project.

Naturally this is accompanied by small bug fixes as I go…

...
@blog July 27, 2021 - 13:17 • 2 months ago
Help Tor Smash Bugs: August 1-31!
Help Tor Smash Bugs: August 1-31! Al Smith July 27, 2021

The Bug Smash Fund is back for its third year! In 2019, we launched Tor’s Bug Smash Fund to raise money that would support our developers finding and fixing bugs in our software and to conduct routine maintenance. Maintenance isn’t a flashy new feature, and that makes it less interesting to many traditional funders, but it’s what keeps the reliable stuff working--and with your support, we’ve closed 370 Bug Smash Fund tickets.

These bugs and issues ranged from anti-censorship development, testing, onion services, documentation and improvements, Tor Browser UX changes, and tooling for development. This work keeps Tor Browser, the Tor network, and the many tools that rely on Tor strong, safe, and running smoothly.

And there’s so much more we can accomplish. Thirty-seven tickets tagged BugSmashFund are still open, and as you know, a big part of building software is ensuring that you can address issues when you find them. As such, starting August 1, every donation we receive during the month of August will count towards the Bug Smash Fund 2021.

A link to the Tor Project's donate page

Your donation today to the Bug Smash Fund will help us:

There are many different ways to contribute to the Bug Smash Fund, and all of them count towards reaching this goal:

Your support keeps Tor strong. Thank you for being part of the fight for privacy online.

...
@kushal July 21, 2021 - 04:10 • 2 months ago
Trouble of zoom and participant name

Last night I was in a panel along with Juan Andrés Guerrero-Saade organized by Aveek Sen, the topic was "Tips on how journalists can avoid getting snooped". You can watch the recording at Youtube.

But this post is not about that. It is about Zoom. Just before logging into the call, I made sure that the name is changed while joining the call, generally my daughter uses the Zoom and her name was mentioned before. I personally have almost zero zoom usage (except 2-3 times in last 1 year). But, after logging into the call, zoom again went back to the older name, and did not allow me to change it during the session. I kept trying during the session without any luck. I don't know why did they do this or why I could not find a way to change my name, but I feel this is really stupid.

...
@anarcat July 21, 2021 - 01:44 • 2 months ago
Hacking my Kobo Clara HD

I just got a new Kobo ebook reader, a Kobo Clara HD. It's pretty similar to the Glo HD I had but which has unfortunately died after 5 years, even after trying to replace the battery.

Quick hardware review

This is a neat little device. It's very similar to the Glo HD, which is a bit disappointing: you'd think they would have improved on the design in the 5+ years since the Glo HD has come out.. It does have an "amber" night light which is nice, but the bezel is still not level with the display, and the device is still kind of on the thick side. A USB-C (instead of micro-USB) port would have been nice too.

But otherwise, it's pretty slick, and just works. And because the hardware design didn't change, I can still hack at it like a madman, which is really why I bought this thing in the first place.

Hopefully it will last longer than 5 years. Ebook readers should really last for decades, not years, but I guess that's too much to expect from our consumerist, suicidal, extinctionist society.

Configuration hacks

Here are the hacks I done on the device. I had done many more hacks on the Kobo Glo HD, but I decided to take a more streamlined, minimalist and, hopefully, easier for new users than the pile of hacks I was doing before (which I expand on at the end of the article).

SD card replacement

I replaced the SD card. The original card shipped with the Clara HD was 8GB which meant all my books actually fitted on the original, but just barely. The new card is 16GB.

Unfortunately, I did this procedure almost at the end of this guide (right before writing the syncthing scripts, below). Next time, that should be the first thing done so the original SD card acts as a pristine copy of the upstream firmware. So even though this seems like an invasive and difficult procedure, I actually do recommend you do it first.

The process is basically to:

  1. crack open the Kobo case (don't worry, it sounds awful but I've done it often)
  2. take the SD card out
  3. copy it over to a new, larger card (say on your computer)
  4. put the larger card in

This guide has all the details.

Registration bypass hack

This guide (from the same author!) has this awesome trick to bypass the annoying registration step. Basically:

  1. pretend you do not have wifi
  2. mount the device
  3. sqlite3 /media/.../KOBOeReader/.kobo/KoboReader.sqlite
  4. INSERT INTO user(UserID,UserKey) VALUES('1','');
  5. unmount the device

More details in the above guide, again.

Install koreader

My e-reader of choise is Koreader. It's just that great. I still don't find the general user interface (ie. the "file browswer") as intuitive as the builtin one, but the book reading just feels better. And anyways it's the easier way to get a shell on the device.

Follow those instructions, particularly the NickelMenu instructions (see also the NickelMenu home page). Yes, you need to install some other thing to start koreader, which doesn't start on its own. NickelMenu is the simplest and better integrated I have found.

You might also want to install some dictionnaries and configure SSH:

  1. mount USB
  2. drop your SSH public key in .../KOBOeReader/.adds/koreader/settings/SSH/authorized_keys
  3. unmount USB
  4. enable SSH in koreader (Gear -> Network -> SSH -> start SSH)

Note that ed25519 keys do not work: try an RSA key. This might be because koreader ships with dropbear (or an older version), but I haven't verified this.

Install syncthing

I use Syncthing to copy all my books into the device now. I was previously using Koreader's OPDS support with Calibre's web interface, but that was clunky and annoying, and I'd constantly have to copy books around. Now the entire collection is synchronized.

As a bonus, I can actually synchronise (and backup!) the koreader metadata, since it's stored next to the files. So in theory, this means I could use koreader from multiple devices and have my reading progress sync'd, but I haven't tested that feature just yet.

I chose Syncthing because it's simple, lightweight, supported on Linux and Android, and statically compiles by default which means it's easy to deploy on the Kobo.

Here is how I installed and started Syncthing at first:

  1. Download the latest version for ARM
  2. extract the archive
  3. copy the syncthing binary into .../KOBOeReader/.adds/
  4. login over SSH (see above on how to enable) with -p 2222 -l root
  5. create the following directory: ~/.config/syncthing/
  6. create the following configuration file, named config.xml:

    <configuration version="18">
        <gui enabled="true" tls="false" debugging="false">
            <address>0.0.0.0:8384</address>
        </gui>
    </configuration>
    
  7. copy a valid ca-certificates.crt file (say from your Linux desktop) into /etc/ssl/certs/ on the Kobo (otherwise syncthing cannot bootstrap discovery servers)
  8. launch syncthing over SSH: /mnt/onboard/.adds/syncthing

You should now be able to connect to the syncthing GUI through your web browser.

Immediately change the GUI admin user and password on the Settings: GUI tab.

Then, figure out how to start it. Here are your options:

  1. on boot (inittab or whatever). downside: power usage.
  2. on wifi (udev hacks). downside: unreliable (see wallabako).
  3. on demand (e.g. nickel menu, koreader terminal shortcuts). downside: kind of clunky in koreader, did not work in nickel menu.
  4. manually, through shell. downside: requires a shell, but then again we already have one through koreader?

What I have done is to write trivial shell scripts (in .../KOBOeReader/scripts) to start syncthing. The first is syncthing-start.sh:

#!/bin/sh

/mnt/onboard/.adds/syncthing serve &

Then syncthing-stop.sh:

#!/bin/sh

/usr/bin/pkill syncthing

This makes those scripts usable from the koreader file browser. Then the folder can be added to the folder shortcuts and a long-hold on the script will allow you to execute it.

Still have to figure out why the Nickel Menu script is not working, but it could simply reuse the above to simplify debugging. This is the script I ended up with, in .../KOBOeReader/.adds/nm/syncthing:

menu_item :main    :Syncthing (toggle)    :cmd_spawn         :exec /mnt/onboard/scripts/syncthing-stop.sh
  chain_success:skip:4
    chain_success                      :cmd_spawn          :exec /mnt/onboard/scripts/syncthing-start.sh
    chain_success                      :dbg_toast          :Started Syncthing server
    chain_failure                      :dbg_toast          :Error starting Syncthing server
    chain_always:skip:-1
  chain_success                        :dbg_toast          :Stopped Syncthing server
menu_item :main    :Syncthing (start)    :cmd_output         :exec /mnt/onboard/scripts/syncthing-start.sh
menu_item :main    :Syncthing (stop)    :cmd_output         :exec /mnt/onboard/scripts/syncthing-stop.sh

It's unclear why this doesn't work: I only get "Error starting Syncthing server" for the toggle, and no output for the (start) action. In either case, syncthing doesn't actually start.

Avoided tasks

This list wouldn't be complete without listing more explicitly the stuff I have done before on the Kobo Glo HD and which I have deliberately decided not to do here because my time is precious:

  • plato install: beautiful project, but koreader is good enough
  • wallabako setup: too much work to maintain, Wallabag articles are too distracting and available on my phone anyways
  • using calibre to transfer books: not working half the time, different file layout than the source, one less Calibre dependency
  • using calibre to generate e-books based on RSS feeds (yes, I did that, and yes, it was pretty bad and almost useless)
  • SSH support: builtin to koreader

Now maybe I'll have time to actually read a book...

...