[tor-dev] Arturo's June Status Report

Arturo Filastò art at torproject.org
Wed Jul 11 14:19:08 UTC 2012


# Summary

I worked mainly on documentation and specification tasks related to 
OONI. Did a bit of travelling and a bit of coding too.

# Documentation/Design related

The wiki is starting to look good. Most of the basic analysis required 
for moving on to implementing
OONI is in place. We still need to have some more discussion on a few 
design choices, but the overall
concept is in place.

In particular we have finished the analysis of Tests.

I created templates for the analysis of Censorship detection tools 
(https://trac.torproject.org/projects/tor/wiki/doc/OONI/CensorshipDetectionTools/Template)

did the analysis of Neubot: 
https://trac.torproject.org/projects/tor/wiki/doc/OONI/CensorshipDetectionTools/NeuBot
and of Herdict: 
https://trac.torproject.org/projects/tor/wiki/doc/OONI/CensorshipDetectionTools/Herdict

We created the methodology for specifying and writing OONI probe tests:
https://trac.torproject.org/projects/tor/wiki/doc/OONI/TestWritingMethodology

created a module view and a component and connector view and specified 
the overall
architecture of OONI: 
https://trac.torproject.org/projects/tor/wiki/doc/OONI/Architecture

I started defining the API for the backend system in particular the 
reporting mechanism:
https://trac.torproject.org/projects/tor/wiki/doc/OONI/Backend.

In the past days had some discussions with jake and isis if we should be 
using HTTP for reporting.
Jake suggested that we use rsync instead of HTTP. I will detail in a 
following mail the pro and cotra
of one solution over the other.

We finished specifying the basic set of Test for OONI here: 
https://trac.torproject.org/projects/tor/wiki/doc/OONI/Tests

The data collection scheme has been defined here: 
https://trac.torproject.org/projects/tor/wiki/doc/OONI/DataCollection.

I got a few good tips from Nick on the topic of design and specification 
of software. What I took from it is that in the end the design that you 
make will not be ultimate and you will end up changing it. For this 
reason it's good to start implementing some of the tests and that will 
allow you to understand what is the abstraction that fits all of them.
He used a very nice analogy, it's like having a set of points in N 
dimensional space and by designing an abstraction for it you are trying 
to find an hypercube that fits all of them (I may have a bit 
re-elaborated this).

# Coding

Implemented an HTTP utility library for writing HTTP based OONI tests 
and implemented a few of the using
such library.

Wrote a OONI scapy twisted library that replaces scapys send and receive 
functions with some based on
twisted. Wrote an OONI Test protocol for it.

Implemented based on OONI a test written by phw that does packet 
mutation to bissect censorship fingerprints.

Misc. code refactoring.

# Travel/Advocacy

Travelled to Madrid to do a talk on Tor and GlobaLeaks. Met there with 
Jillian York.

Went to hackmeeting in l'Aquila and did a talk about Tor and censorship 
( http://www.slideshare.net/hellais/tor-censorship-2012-ooni). I believe 
this talk went very well and everybody was very excited about Tor at the 
end of it.

# What I plan to do next

Work on drawing these N dots, by implementing test for OONI. I will 
finish one of the first fully client server tests based on OONI called 
b0wser (the server part is almost done). Figure out what should be done 
with the backend and start having a test backend deployment on ooni.nu.

- Art.



More information about the tor-dev mailing list