Introducing Talla: An Erlang implementation of Tor

Lecture by Alexander Færøy at SHA2017 in Zeewolde, The Netherlands on August 5, 2017.

In this lecture, we will be walking over the architecture and implementation choices behind Talla – a highly concurrent third party, implementation of a Tor relay daemon in the functional programming language Erlang. Having multiple implementations of a critical component like Tor is essential to avoid mono-cultures within a software ecosystem. A critical bug in the currently available C Tor implementation would allow an attacker to take down the entire network.

We will be starting with a short introduction to the ecosystem around Tor, a bit of history of why we ended up starting the Talla project, how far we are from being able to allow ordinary users to try it out on the Tor production network and why you should avoid it for now.

With the help of tools designed for the official C implementation of Tor, we have been using Talla together with ordinary Tor relay nodes in a simulated test network, that everyone can run easily on their computers.

The goal of the lecture is to give the audience a better understanding of the design, architecture, and testing of a highly concurrent, fault-tolerant, and complex application in Erlang.

No prior knowledge of the Erlang programming language is necessary, but basic familiarity with the Tor network will be assumed.