Welcome to the readme file for the Socket Programming-project!
This project focusses on the security of transfering live video through socket programming using Python 3.12. This project consists of three seperate prototypes using different approached to encryption:
• Prototype 1 (ALE_Client.py & ALE_Server.py): Application Level Encryption (ALE)
• Prototype 2 (TLS_Client.py & TLS_Server.py): Transport Layer Security (TLS)
• Prototype 3 (ALE_TLS_Client.py & ALE_TLS_Server.py): ALE + TLS
This readme file will provide instruction on how to use each prototype in a ubuntu 20.04 environment:
- Make sure to use two seperate terminals
- In both terminals to the folder of this using the linux commandline.
cd {path to project} - Only use this step if you want a fresh venv for this project! Otherwise skip to step 4.
3.a Create a new virtualenv by usingvirtualenv venv
3.b Activate the virtualenv by usingsource ./venv/bin/activate(note: this command is different for windows machines)
3.c install dependecies of this project viapip install -r requirements.txt - In both terminals activate the the virtualenv by using
source ./venv/bin/activate(note: this command is different for windows machines) - Run the server socket using
python ALE_Server.py - Run the client socket using
python ALE_Client.py - Video transmitted should be visible, press 'q' to exit and close both sockets.
- For this prototype a root self signed certificate and private key must be used, follow the steps of: https://gist.github.com/cecilemuller/9492b848eb8fe46d462abeb26656c4f8 and place the files in the keys folder
- Make sure to use two seperate terminals
- In both terminals to the folder of this using the linux commandline.
cd {path to project} - Only use this step if you want a fresh venv for this project! Otherwise skip to step 5.
4.a Create a new virtualenv by usingvirtualenv venv
4.b Activate the virtualenv by usingsource ./venv/bin/activate(note: this command is different for windows machines)
4.c install dependecies of this project viapip install -r requirements.txt - In both terminals activate the the virtualenv by using
source ./venv/bin/activate(note: this command is different for windows machines) - Run the server socket using
python TLS_Server.py - Run the client socket using
python TLS_Client.py - Video transmitted should be visible, press 'q' to exit and close both sockets.
Prototype 3 (ALE_TLS_Client.py & ALE_TLS_Server.py): Application Layer Encryption & Transport Layer Security (TLS)
- For this prototype a root self signed certificate and private key must be used, follow the steps of: https://gist.github.com/cecilemuller/9492b848eb8fe46d462abeb26656c4f8 and place the files in the keys folder
- Make sure to use two seperate terminals
- In both terminals to the folder of this using the linux commandline.
cd {path to project} - Only use this step if you want a fresh venv for this project! Otherwise skip to step 5.
4.a Create a new virtualenv by usingvirtualenv venv
4.b Activate the virtualenv by usingsource ./venv/bin/activate(note: this command is different for windows machines)
4.c install dependecies of this project viapip install -r requirements.txt - In both terminals activate the the virtualenv by using
source ./venv/bin/activate(note: this command is different for windows machines) - Run the server socket using
python ALE_TLS_Server.py - Run the client socket using
python ALE_TLS_Client.py - Video transmitted should be visible, press 'q' to exit and close both sockets.