An Introduction to the Tor Ecosystem for Developers
Alexander Færøy February 2, 2020
FOSDEM
An Introduction to the Tor Ecosystem for Developers Alexander Fry - - PowerPoint PPT Presentation
An Introduction to the Tor Ecosystem for Developers Alexander Fry February 2, 2020 FOSDEM About Me Core Developer at The Tor Project since early 2017. Free Sofware developer since 2006. Worked with distributed systems in the
Alexander Færøy February 2, 2020
FOSDEM
since early 2017.
the Erlang programming language, WebKit-based mobile web browsers, consulting, and firmware development.
hacker festival BornHack.
1
circumvention.
developers, users, and relay
2
Early 2000s Working with the U.S. Naval Research Laboratory. 2004 Sponsorship by the Electronic Frontier Foundation. 2006 The Tor Project, Inc. became a non-profit. 2008 Tor Browser development. 2010 The Arab spring. 2013 The summer of Snowden. 2018 Anti-censorship team created. 2019 Tor Browser for Android released. 2020 Network Health team created.
3
Somewhere between 2,000,000 and 8,000,000 daily users.
But we also ship Tor to others:
2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2,000 4,000 6,000 8,000 Number of Relays
Relays Bridges Source: metrics.torproject.org
8
2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 200 400 600 Bandwidth in Gbit/s Total Relay Bandwidth
Advertised Bandwidth Bandwidth History Source: metrics.torproject.org
9
Tor’s safety comes from diversity:
diverse they are, the fewer attackers are in a position to do traffic confirmation.
means almost all of them are normal citizens. Research problem: How do we measure diversity over time?
10
2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2,000 4,000 6,000 Number of Relays per Platform
Linux BSD Windows macOS Other Source: metrics.torproject.org
11
https://trac.torproject.org/
11
11
The team dedicated to develop and maintain the “Tor” codebase. Internally, we ofen refer to “Tor” as “little-t-tor”. Deal with everything that “impacts the network”.
12
language.
tests, coverity, static code analysis, and code review policies.
reviews, auditing, working with downstream projects (Tor Browser and distro packagers), and specification design and implementation.
13
Source: viva64.com
14
Version Merge Window Feature Freeze Release End of Life 0.3.5 (LTS) 15/6/2018 15/9/2018 7/1/2019 1/2/2022 0.4.0 15/10/2018 15/1/2019 2/5/2019 2/2/2020 0.4.1 15/2/2018 15/5/2019 20/8/2019 20/5/2020 0.4.2 10/6/2019 15/9/2019 9/12/2019 15/9/2022 0.4.3 11/10/2019 15/1/2020 15/4/2019 TBD 0.4.4 15/2/2020 15/5/2020 15/8/2020 TBD 0.4.5 15/6/2020 15/9/2020 15/12/2020 TBD
15
you are interested in hacking on.
satisfied using make check.
and await review.
16
covers (some of) Linux, macOS, and Windows.
become overly complex, etc.
17
Protocol changes require a specification proposal and discussion before implementation. Specifications can be found at gitweb.torproject.org/torspec.
18
The Tor Network
E1 R1 R3 R4 R5 R6 R2
Webserver Bandwidth Scanner
19
The Tor Network
E1 R1 R3 R4 R5 R6 R2
Webserver Bandwidth Scanner
20
The Tor Network
E1 R1 R3 R4 R5 R6 R2
Webserver Bandwidth Scanner
21
language.
from Bandwidth Scanners.
https://sbws.readthedocs.io/
22
work that was previously handled by the network team.
shipped with in Tor Browser.
23
Censored Region
Alice
PT Client
Bridge Relay
PT Server
Obfuscated Protocol
25
Source: bridges.torproject.org
26
27
Censored Region
Alice
Snowflake PT Client Snowflake PT Server
Bridge
Snowflake Broker
28
Censored Region
Alice
Snowflake PT Client Snowflake PT Server
Bridge
Snowflake Broker
29
Censored Region
Alice
Snowflake PT Client Snowflake PT Server
Bridge
Snowflake Broker
30
Censored Region
Alice
Snowflake PT Client Snowflake PT Server
Bridge
Snowflake Broker
31
Censored Region
Alice
Snowflake PT Client Snowflake PT Server
Bridge
Snowflake Broker
32
33
programming language.
https://snowflake.torproject.org/
34
The team responsible for the user-facing applications such as Tor Browser. Works closely with the UX team on analysing and improving the user experience of our products.
35
36
Anti-Censorship Team
Applications Team
Network Team
37
Build Step
38
Verifiable Build Step
39
Verifiable Usable Build Step
40
Verifiable Usable
Build Step
41
Unfortunatenly, we don’t have time to go over everything we do in the Tor Project in this talk. We also have teams doing amazing work in areas such as:
42
research projects.
general.
43
This work is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License