This shows you the differences between two versions of the page.
| ac:laboratoare:07 [2024/11/14 10:59] dimitrie.valu | ac:laboratoare:07 [2025/07/30 20:46] (current) dimitrie.valu | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Lab 07 - Whatsapp End-to-end Encryption ===== | ===== Lab 07 - Whatsapp End-to-end Encryption ===== | ||
| - | In this lab you will implement a simplified version of The Signal Protocol, which is the basis for WhatsApp's end-to-end encryption. | + | In this lab you will implement a simplified version of the Signal Protocol, which is the basis for WhatsApp's end-to-end encryption. | 
| - | The first versions of Whatsapp protocol were described [[https://cryptome.org/2016/04/whatsapp-crypto.pdf|here]]. A more recent document is available [[https://www.whatsapp.com/security/WhatsApp-Security-Whitepaper.pdf|here]]. | + | The first versions of the Whatsapp protocol were described [[https://cryptome.org/2016/04/whatsapp-crypto.pdf|here]]. A more recent document is available [[https://www.whatsapp.com/security/WhatsApp-Security-Whitepaper.pdf|here]]. | 
| WhatsApp's security is based on the Signal protocol, which was first used by TextSecure. The Signal protocol is | WhatsApp's security is based on the Signal protocol, which was first used by TextSecure. The Signal protocol is | ||
| described in detail in [[https://s3.amazonaws.com/files.douglas.stebila.ca/files/research/papers/EuroSP-CCDGS17-full.pdf|this]] paper. | described in detail in [[https://s3.amazonaws.com/files.douglas.stebila.ca/files/research/papers/EuroSP-CCDGS17-full.pdf|this]] paper. | ||
| Line 10: | Line 10: | ||
| For installation, follow these steps (NOTE: **you can use your ''%%fep%%'' instance via Python3 environments**): | For installation, follow these steps (NOTE: **you can use your ''%%fep%%'' instance via Python3 environments**): | ||
| - | * Install the necessary tools (not necessary on ''%%fep%%'': | + | * Install the necessary tools (not necessary on ''%%fep%%''): | 
| <code> | <code> | ||
| sudo apt install build-essential python3-dev | sudo apt install build-essential python3-dev | ||
| Line 19: | Line 19: | ||
| <code> | <code> | ||
| python3 -m venv create env | python3 -m venv create env | ||
| + | source ./env/bin/activate | ||
| pip install --upgrade pip | pip install --upgrade pip | ||
| pip install cryptography donna25519 | pip install cryptography donna25519 | ||
| Line 28: | Line 29: | ||
| Find the required zip here - {{:ac:laboratoare:lab07.zip|}}. | Find the required zip here - {{:ac:laboratoare:lab07.zip|}}. | ||
| - | Create a common master_secret for two clients which communicate through a server. (**TODO 1.1** & **TODO 1.2**) | + | Create a common ''%%master_secret%%'' for two clients which communicate through a server. (**TODO 1.1** & **TODO 1.2**) | 
| Print it on both clients and make sure they both have the same secret. | Print it on both clients and make sure they both have the same secret. | ||