Skip to content

OONI Probe CLI v3.16.0

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Sep 17:58
v3.16.0

Highlights

  • web connectivity's long-term evolution #882 #870: we have implemented an improved version of Web Connectivity that improves TLS and DNS censorship detection while retaining backward compatibility. In particular, we are now able to detect duplicate DNS over UDP responses when some middlebox replies to DNS queries but also allows replies from legitimate servers to reach users (which is what happens, for example, in China). This new version of Web Connectivity is only available to miniooni users, who can invoke it using miniooni [email protected]. We look forward to collect more data and perform A/B comparison with the current stable version. We aim to make this new version of Web Connectivity the default in the next release of ooniprobe. To help us collect more data, if you are a miniooni user, please run miniooni [email protected] periodically, check the resulting JSON, and reach out to us in case you see unexpected results. Thank you!

  • call getaddrinfo directly #764 #908: previous releases of ooniprobe and miniooni used the Go resolver to lookup domain names, but this strategy was problematic because it hid the real system resolver error. A particularly problematic case was Android (see ooni/probe#2029 for more info). To workaround this issue, we ensured that we always link with the C library for officially built binaries and we implemented saving the raw error from libc's getaddrinfo in such a case. This change makes the resulting measurement more transparent and enables third parties to more easily vet our results.

  • oohelperd improvements #890 #886: this release includes improvements in the Web Connectivity test helper that allow Web Connectivity's long term evolution's code to perform better TLS blocking detection decisions. In addition to this change, the improved test helper also includes in its response additional data useful to determine whether IP addresses resolved by any version of Web Connectivity (including the stable version) are legitimate or invalid for the requested domain.

  • build ooniprobe for armv6 #904: we're now building ooniprobe for armv6, as requested by the community.

  • implement rolling builds #910 #920: we created a new (fake) release called rolling. Every night a build task builds the master branch and publishes binaries in such a release. Additionally, we have a way to manually force specific builds to publish packages to be tested in such a release. If you want to run very recent binaries with all the latest changes, you should download from this release. This set of changes is an initial response to community requests regarding facilitating using ooniprobe and miniooni for research purposes in unattended, censored environments.

  • make miniooni CLI more user friendly #913 #932: we modified miniooni's CLI to make miniooni [experiment] [options] work exactly as miniooni [options] [experiment]. Previously, only the latter was supported. Additionally, we revamped the output emitted with --help to provide experiment-specific contextual information, including a list of all supported options. These changes should hopefully simplify using miniooni for research purposes. Additionally, now you can pass --emoji as a command line flag to get emoji output (which simplifies quickly eyeballing logs).

  • build miniooni and ooniprobe for android #907: we're now building miniooni and ooniprobe for Android, such that they could be run from Termux's CLI, as requested by the community.

  • oonirun v2 #842 #843 #844 #916: the miniooni included in this release includes a preview of OONI Run v2 links which allows anyone to execute arbitrary OONI Run v2 descriptors by using the miniooni oonirun -i URL command. Please, read the provisional design document for this OONI Run v2 preview for more information: https://github.com/ooni/probe-cli/blob/v3.16.0/docs/design/dd-004-minioonirunv2.md.

  • use ooni/oocrypto instead of ooni/go #751 #872: anticipating future changes in which we will make our TLS fingerprint more similar to Chrome's own fingerprint, this release switches to our fork of Go's crypto/tls library.

  • dnscheck: lower the default timeouts #917: we lowered the default timeout of dnscheck, following a community request.

  • generally expose more low-level fields: we improved the data model to include extra information useful to treat each kind of event separately (see ooni/spec#261). This change is the initial step to implement a community request to provide OONI measurements in tabular data, where each table is a specific kind of event (e.g. DNS lookup, TLS handshake).

  • step-by-step design document #814: we designed and implemented a new strategy for organizing experiment's code that simplify collecting better data and ultimately enables providing self-sufficient events in tabular format.

What's Changed in detail

Full Changelog: v3.15.3...v3.16.0