To be able to illustrate what modifications across a network such as the Tor network could improve it, or what forms of attacks could undermine its security or privacy goals, one has to do some sort of experimentation. The frameworks of such experimentation approaches highly rely on the ultimate glass the experimenter has in mind.
An experimenter may choose to undergo his/her experiments in real-time on the actual network, which is not a wise decision to take. Apart from the obstacles related to the uncontrolled nature of the environment and how difficult it can be to generate reproducible results, the innate nature of the Tor network renders such experimentation approaches antithetical to the network’s goals in many incidents. Due to the fact that research across the Tor network can be extremely sensitive, the Tor Project has a group of strict guidelines regarding what can represent acceptable research approaches on the Tor network. The most essential guideline is “Use a test Tor network whenever possible”. Consequently, ethics imply that researchers have to have means for testing Tor changes and various forms of attacks on separate networks.
There are several methods for constructing test networks on both real and emulated networks. For instance, researchers can build a network comprised of virtual machines running the Tor client and configured to run some of Tor’s necessary components. As such, one can use “Chutney”, which is a way to run several instances of the Tor client on a single machine. Nevertheless, such techniques won’t natively scale easily, as they require networks to be manually set up. On the other hand, a few projects, which help in setting up emulated networks of large size, exist such as ExperimenTor, Mininet, NetMirage and SNEAC. Moreover, there exists large test networks on which a Tor network could be run such as PlanetLab. Such emulation networks, even though more or less effective, still exhibit the problems associated with enormous hardware requirements and scaling difficulties. Even more, dependence on real-time emulation can influence the reproducibility of performed experiments, due to the fact that the results will largely rely on the conditions upon which the experiments were performed.
Another way to build a test network is to rely on simulated networks, via tools such as “ns-3”. As simulators isolate real-time actions from simulated actions, simulations are usually more isolated from their hosting environments. Even though simulation permits the performance of experiments that don’t rely on the conditions of the machine on which the experiment is performed, they have the drawback of being “less real” as opposed to real or emulated test networks, as they don’t actually run the software. In an attempt to address this problem associated with the use of simulators, new tools were created allowing running native code within the simulation environment, e.g. DCE and Shadow. Nevertheless, it the use of the native Tor source code with DCE was never documented. On the other hand, Shadow currently represents one of the most popular tools used for performing experiments across the Tor network.
A recent study proposed the construction of a novel platform for simulation of Tor networks, which provides higher level of performance when compared to presently available techniques. The new platform makes it possible to perform existing experiments at higher speeds and also renders large sizes experiments across the Tor network more feasible. The researchers implemented their technique via modification of the network simulator; “Shadow”. They provided the following:
- A new customized dynamic loader for Shadow. This led to reduction of performance problems, minimization of memory requirements of large experiments and improved simulation realism.
- A new runtime scheduler for Shadow’s host-to-thread assignments. The runtime scheduler in combination with the new loader permits assigning simulated hosts-to-threads as an experiment is actually running, rather than only during initialization of the simulation process.
- The study presented some experiments that proved that the aforementioned modifications can definitely improve Shadow’s performance when used on simulated Tor networks that involve hundreds or even tens of thousands of hosts.
- The researchers made their new code modifications to Shadow available to the public via a Github repository, so that other researchers would be able to use them on moderately sized, as well as, large experiments.