Simone worked with Measurement Lab at the Open Technology Institute to advance the MeasurementKit platform.
Simone spent his fellowship focused on advancing the MeasurementKit platform. MeasurementKit is the engine underneath censorship detection tool OONI-Probe’s mobile testing platform and the Measurement Lab network performance testing platform, which generate millions of data points each year.
Specifically, as part of his fellowship, Simone focused on making network performance measurements more easily available on mobile and embedded devices, and on making the engine used by OONI available on Windows and more capable. Simone extracted from Measurement Kit libndt, a small library tailored for the needs of people that just want to integrate NDT, a well-known network performance test. Based on prospective integrators’ feedback, this simplifies their job, because they do not need to integrate a bigger library with OONI related functionality and complexity, which may not be what they want, from the point of view of software management simplicity, size of the binary to be integrated, and, last but not least, regulatory implications (a network performance test is a relatively neutral concept, while the availability of network interference tests in the same binary may raise eyebrows in specific markets or discourage integrators). In addition, during his fellowship, Simone co-designed with his host organization, Measurement Lab, a better network performance test protocol, called ndt7, that collects more useful low level information building on recent Linux kernel advancements, and that should use less bandwidth by default. The latter makes ndt7 more palatable to users in developing markets that have metered, mobile internet connections than other network performance tests. Both ndt7 and the NDT engine extracted from Measurement Kit have been extended to use TLS and WebSockets, thus being more web friendly and more likely to work in mobile environments.
With respect to improving Measurement Kit as the engine used by OONI, Simone carried ported the engine to Windows using the GNU toolchain and made sure that selected subcomponents (e.g. libndt) can also be compiled with the Microsoft toolchain. Furthermore, he integrated into Measurement Kit a new engine based on cURL, that allows to more easily and more effectively fetch web pages, including also support for HTTP2 and for extracting the full certificate chain returned by a server. He also researched the best DNS engine to be integrated into Measurement Kit to collect low level DNS information useful to understand DNS meddling, and wrote prototypes using as backends c-ares and getdns. In collaboration with other OONI researchers, he also helped to design and prototype a better measurement strategy based on the separation of applications protocols (using cURL as mentioned) and measurement vantage points.