Tor’s anti-censorship team writes monthly reports to keep the world updated on its progress. This blog post summarizes the anti-censorship work we got done in September 2020. Let us know if you have any questions or feedback!
Snowflake
Merged a contribution from Peter Gerber to consider more IP address ranges local, for the purpose of stripping from SDP offers sent to the broker.
Rdsys
Built an HTTP streaming API between rdsys’s backend and its distributors that allows distributors to receive resource updates (e.g. a bridge changing its IP address) in real-time.
Implemented a registration API that allows standalone-proxies (i.e. without a corresponding Tor bridge) to register themselves:
https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/4
Added lots of unit tests. Rdsys’s domain logic is 72.1% tested.
Experimented with reCAPTCHA support in rdsys. We could port BridgeDB’s HTTPS distributor to rdsys and replace our Gimp-generated CAPTCHAs with Google’s reCAPTCHA. To prevent exposing our users to Google, we would have to set up a reverse proxy, so Google only gets to see our machine’s IP address. This is possible but messy to build.
Started brainstorming Salmon’s user interface; in particular how we can best integrate it in Tor Browser:
https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/7
Started writing up rdsys’s design and architecture. The goal is to eventually publish a technical blog post that discusses how we built rdsys.
Bridgestrap
Wrapped up a “minimum viable product” of bridgestrap:
https://gitlab.torproject.org/tpo/anti-censorship/trac/-/issues/31874
Filed issues to improve how bridgestrap spawns a Tor instance to test bridges:
https://gitlab.torproject.org/tpo/anti-censorship/bridgestrap/-/issues/1
https://gitlab.torproject.org/tpo/anti-censorship/bridgestrap/-/issues/2
https://gitlab.torproject.org/tpo/anti-censorship/bridgestrap/-/issues/3
Miscellaneous
Our infrastructure monitoring daemon’s emails started getting rejected by Gandi’s spam filter. We reported the issue and Gandi fixed it shortly after.
Read the HTTPT paper as part of our reading group and filed several issues that summarise what’s necessary to deploy HTTPT as our next pluggable transport:
https://github.com/net4people/bbs/issues/50
https://censorbib.nymity.ch/#Frolov2020b
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/…
Filed an issue to improve our terminology around bridges:
https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/8
Brainstormed how Tor Browser could detect censorship:
https://gitlab.torproject.org/tpo/applications/tor-browser-spec/-/issue…
Outreach
Philipp will present rdsys in a lightning talk at the Pluggable Transport Implementer’s Meeting on Oct 13:
https://www.pluggabletransports.info/ptim2020/Published a blog post about Hashik’s experience as one of Tor’s GSoC’20 students:
https://blog.torproject.org/gsoc-2020-snowflake-proxy-mobileRecorded a brief video that summarises Tor’s anti-censorship work for a class at the University of Michigan.