Create lightweight censorship analyser for users
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.