This repo contains the code base for the master thesis Towards User Privacy for Subscription Based Services.


Preparation

Before you can start MIXNET, you need a running integritee-node. The last version we used was commit 6b3f13932775f71c414d02bed8abac808cb75f73 .

Build the node:

# clone and build the node
cd ..
git clone https://github.com/integritee-network/integritee-node.git
cd integritee-node
# Install the correct rust-toolchain 
rustup show
# build the node
cargo build --release
# another 10min

After successfully building you can start the node with these example parameters: ./target/release/integritee-node --dev --tmp --ws-port 9995 --port 30395 --rpc-port 9996

MIXNET

Building MIXNET:

# clone and build the worker and the client
git clone https://github.com/integritee-network/worker.git
cd worker
# Install the correct rust-toolchain 
rustup show
SGX_MODE=SW make
# this might take 10min+ on a fast machine

Preparation:

cd ~/bin
# create empty INTEL key files
touch spid.txt key.txt
# fill the files with your Intel SGX development or production (commercial) license
echo "<YOUR SPID>" > bin/spid.txt
echo "<YOUR KEY>" > bin/key.txt
# prepare service
./integritee-service init-shard
./integritee-service shielding-key
./integritee-service signing-key
./integritee-service mrenclave > ~/mrenclave.b58
./integritee-service run --skip-ra

After building and preparing MIXNET, you can run it using the following commands: cd bin/ && ./integritee-service -p 9995 mixnet Make sure that the port is the same as the one you used for --ws-port in the Integritee-node.

To add new services, edit the services.txt file and don't forget to add corresponding logic to the frontend selection as well as necessary adjustments in the proxy-module (Cookie Validation, special cases etc).