Slitheen is a decoy routing system for censorship resistance. The source code consists of two parts: the client code (to be distributed and run on the machines of users wishing to circumvent censorship), and the relay station code (to be run on a relay station deployed by an ISP in the middle of the network). If you have any questions about the code or installation, please contact Cecylia Bocovich . INSTALLTION INSTRUCTIONS: For the client: - The client code consists of two parts: (1) an Overt User Simulator (OUS) that issues repeated requests to uncensored sites, and (2) a SOCKS proxy frontend that takes connection requests and data from the user's browser and feeds it to the OUS. 0. Building this system requires the following dependencies: apt-get install build-essential g++ flex bison gperf ruby perl \ libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev \ libpng-dev libjpeg-dev python libx11-dev libxext-dev 1. Fetch all necessary git repositories: git clone git@git-crysp.uwaterloo.ca:openssl git clone git@git-crysp.uwaterloo.ca:phantomjs 2. Build our modified version of openssl cd openssl ./config --prefix=../sslout --openssldir=../sslout/openssl make make test make install cd .. 3. Build phantomJS (Note: this takes a ridiculously long time) cd phantomjs ./build.py cp bin/phantomjs ../client/ 4. Obtain public key from relay station save file as pubkey in client/ directory For the relay station: 0. Install dependencies apt-get libpcap-dev 1. Fetch necessary git repository: git clone git@git-crysp.uwaterloo.ca:openssl 2. Build openssl cd openssl ./config --prefix=../sslout --openssldir=../sslout/openssl make make test make install cd .. 4. Generate public/private key pair cd telex-tag-v3 make ./genkeys cp pubkey ../relay_station cd .. 3. Build slitheen proxy cd relay_station make 4. Run proxy ./slitheen-proxy [interface to client] [interface to world]