The Open Observatory of Network Interference (OONI) is a free software project under the Tor Project which aims to detect internet censorship and signs of network tampering. OONI shares observations and data about the nature, methods, and prevalence of censorship and network tampering around the world, through the use of open methodologies and FLOSS tools.
ooniprobe is a program that users can run to probe their network and to collect data for the OONI project. Are you interested in testing your network for censorship and traffic manipulation? Do you want to collect data to share with others, so that you and others can better understand your network? If so, please read this document to learn how to install and run ooniprobe.
OONI’s testing methodology measures:
- Blocking of websites
- Blocking of instant messaging apps
- Blocking of censorship circumvention tools (Tor, VPN, Psiphon, Lantern)
- Detection of middle boxes proxy technologies that could be responsible for censorship and/or surveillance
- Speed and network performance tests (NDT)
Explore OONI Data and ReportsOONI has been monitoring internet censorship around the world since 2012. Explore OONI data and browse countries to find the one you want to investigate measurements for.
Read OONI reports of censorship in Egypt, Indonesia, Thailand, Malaysia, Kenya, Gambia, Turkey, Ethiopia, Brazil, Greece, and Palestine.
Supported platformsOONI can currently be installed on OS X, Linux, Raspberry Pi, IOS, and Android.
Lepidopter, a distribution of ooniprobe for Raspberry Pi platforms, was developed to deploy plug-and-play, cheap devices that keep tabs on censorship.
The rest of this blog is devoted to configuring ooniprobe on C.H.I.P, the world’s first $9 computer.
CHIP contains a 1GHz R8 processor, 4GB of high speed storage, 512Mb of RAM, built-in WiFi B/G/N, and a flavor of Debian available under the name CHIP Operating System. As such, it is cheap and sufficiently powerful and robust enough to run ooniprobe.
I will not attempt to automate network measurement collection as Lepidopter does, but will provide a guide to configure ooniprobe on CHIP (anti-censorCHIP).
In a later blog I hope to describe a plug-and-play of version ooniprobe so as to enable users to contribute to the collection of network measurements consistently across time, without having to manually run ooniprobe from CHIP, regardless of their technical skills.
Before you start installing and running ooniprobe, I urge you to read the risks involved. Read it once more.
Installing Tor on CHIPTo get configure WiFi, install Tor on CHIP, and connect over SSH, read my previous blog post.
Installing ooniprobe on CHIPStep 1: Log into CHIP either over a USB serial connection or SSH
screen /dev/tty.usbmodemXXXX
chip login: chip
Password: chip
Step 2 Configure the torproject repository by typing the following:
gpg --keyserver keys.gnupg.net --recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org jessie main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
Step 3 Type the following to install ooniprobe:
sudo apt-get install ooniprobe deb.torproject.org-keyring
Step 4: Type the following to install dependencies:
sudo apt-get install -y build-essential libdumbnet-dev libpcap-dev libgeoip-dev libffi-dev python-dev python-pip tor libssl-dev obfs4proxy tcpdump
sudo wget https://raw.githubusercontent.com/TheTorProject/ooni-probe/master/scripts/
sudo pip install pyopenssl --upgrade
sudo pip install pyasn1 --upgrade
sudo pip install txsocksx --upgrade
Step 5: Using ooniprobe:
Net test is a set of measurements to assess what kind of internet censorship is occurring.
Decks are collections of ooniprobe nettests with some associated inputs.
mkdir my_decks
oonideckgen -o my_decks/
ooniprobe -i /home/chip/web-full.yaml
If you have SSH configured over a Tor Hidden Service, you are now ready to deploy Anti-censorCHIP to overtly or covertly to monitor your favorite repressive regime’s network for signs of censorship and tampering.
Get Involved With OONICommunity:
Join OONI in IRC #ooni on OFTC or on the ooni-talk and ooni-dev mailing lists to discuss the project, what you’ve learned from measurements and ways you can help out.
If you are contributing regular ooniprobe measurements be sure to also subscribe to ooni-operators for important updates.
Partnerships:
Interested in exploring internet censorship? Learn about OONI’s partnership program.
Submit URLs for testing:
Help OONI detect censorship by submitting URLs for testing! Learn more here.
Code and developer documentation:
OONI source code is available on github and mirrored on Tor Project git. If you have code you would like to contribute you should open a pull request or file an issue.
If you are interested in hacking on OONI or writing your own nettests you should look at the developer documentation.
Questions? Reach out to snehan@minerva.kgi.edu
Comments