Opened 6 weeks ago

Last modified 6 days ago

#30794 assigned project

Create lightweight censorship analyser for users

Reported by: phw Owned by: phw
Priority: Medium Milestone:
Component: Circumvention/Censorship analysis Version:
Severity: Normal Keywords: tbb-bridges
Cc: cohosh, gaba, dcf Actual Points:
Parent ID: Points: 5
Reviewer: Sponsor:

Description

Users occasionally show up on #tor and wonder why they are unable to connect to the network. We sometimes suspect censorship but it's often difficult to confirm this hypothesis. It would be useful to have a lightweight censorship analysis tool for users to run. Think of it as a small, specialised OONI: It should be a self-contained executable that tests if the user's computer can do the following:

  • Connect to the TCP port of our directory authorities.
  • Connect to the TCP port of a handful of relays.
  • Connect to the TCP port of our default bridges.
  • Resolve critical domains (e.g., bridges.tp.o) correctly.
  • Fetch the index page of critical websites (e.g., bridges.tp.o) over HTTPS.
  • Establish a TLS connection with a bridge authority and a relay.
  • ...

The output of the tool can be a simple text file that the user can then email to us, or paste in a chat window. We originally had this idea several years ago and documented it in a research paper but nobody every followed up. Such a tool could also be useful as part of an anti-censorship rapid response process.

If this sounds like a good idea, then I suggest that we build the tool in Go because 1) we have several talented Go hackers, 2) Go binaries are self-contained, and 3) since Go 1.5, cross-compiling for Windows seems relatively simple.

Child Tickets

Change History (2)

comment:1 Changed 6 days ago by ahf

Sponsor: Sponsor28-can

Removing sponsor.

comment:2 Changed 6 days ago by phw

I created a simple proof of concept: https://dip.torproject.org/anti-censorship/emma. I cross-compiled a .exe file by running:

GOOS=windows GOARCH=386 go build -o emma.exe
Note: See TracTickets for help on using tickets.