Decoy routing system for censorship resistance

cecylia 534f2196c1 removed print statements, fixed MAC verification bug 8 years ago
client 534f2196c1 removed print statements, fixed MAC verification bug 8 years ago
relay_station 91d7753ee1 fixed missing resource chunk bug and removed extraneous print statements. Rewrote all retransmit code 8 years ago
telex-tag-v3 aaf56e91d9 adapted telex code to tag a test connection 9 years ago
README.txt 69c9995915 added sane README.txt with install directions 8 years ago

README.txt

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]