dmayer / time_trial

Time Trial - A tool for performing feasibility analyses of timing attacks
http://matasano.com/research/TimeTrial.pdf
MIT License
83 stars 16 forks source link

Time Trial GUI

The source code for the time trial GUI is in the time_trial folder.

Requirements

Running time_trial

Racer

The host executing the trials must have both the C++ code and the time trial Python code installed. The Python code is required in order to connect to the redis server and drive the execution of the trial. Since the relative path to the C++ binaries is currently hard-coded in the Python code, the folder structure should not be changed. Linux is the recommended operating system (tesing performed using Ubuntu 14.04 Server LTS).

The source code for the C++ component is in the racer folder.

Requirements

The following packages are required in order to compile the racer code:

On Ubuntu, install all packages via: sudo apt-get install build-essential scons libgmp-dev libcurl4-openssl-dev libcppnetlib-dev

Compiling the source

The racer C++ code is built using the SCons build system. When all required packages are installed, it should be sufficient to call scons in the racer folder to build all components. The binaries are created in the the racer/bin/ folder. There is no need to direclty execute the binary. The racer driver will rake care of that automatically via the rqworker (see below),

Executing Trials

On the host running the Time Trial GUI:

At this point, the rqworker will connect to redis (via the SSH tunnel), pull a job for the named racer, and execute it. Once complete, the results will populate the time trial UI (this may require a refresh).

From here, a feasibility analysis can be performed by right clicking an individual trial in the table view and selecting either "shorter trial" or "longer trial". The choice should correspond to the two different timings one expects in the experiment. When switching to the "Feasibility Analysis" tab, two plots should be visible that can be customized. In additon, the box test can be executed using variable parameters.

Automated Attacks

To come.

Disclaimer

The source code was developed with a focus on the required functionality. Security considerations were not a priority and thus untrusted access to time_trial and the racer should be restricted.