Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ac:laboratoare:08 [2024/11/14 13:00]
dimitrie.valu
ac:laboratoare:08 [2024/11/14 13:05] (current)
dimitrie.valu
Line 1: Line 1:
 ===== Lab 08 - Whatsapp End-to-end Encryption (part 2) ===== ===== Lab 08 - Whatsapp End-to-end Encryption (part 2) =====
  
-In this lab you will continue the implementation of the Signal ​protocol, which is the basis for WhatsApp'​s end-to-end encryption.+In this lab you will continue the implementation of the Signal ​Protocol, which is the basis for WhatsApp'​s end-to-end encryption.
  
 The protocol is described [[https://​cryptome.org/​2016/​04/​whatsapp-crypto.pdf|here]]. The protocol is described [[https://​cryptome.org/​2016/​04/​whatsapp-crypto.pdf|here]].
Line 8: Line 8:
 For the Elliptic Curves, you can use [[https://​github.com/​Muterra/​donna25519|this]] library. For the Elliptic Curves, you can use [[https://​github.com/​Muterra/​donna25519|this]] library.
  
-For installationfollow ​these steps (NOTE: **you can use your ''​%%fep%%''​ instance via Python3 environments**):​ +If you solved the previous labuse your previous setup (replace the files with the ones from the ''​%%.zip%%''​ below to prevent any issues). If you are starting out with these labs, follow the steps below (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 24: Line 24:
  
 **If local installation does not work, use your ''​%%fep%%''​ instance.** **If local installation does not work, use your ''​%%fep%%''​ instance.**
- 
-=== Task === 
-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**) 
-Print it on both clients and make sure they both have the same secret. 
- 
-== How to run == 
-Open three different terminals. 
- 
-First terminal (start the server): 
-<​code>​python main_server.py</​code>​ 
- 
-Second terminal (start the first client and enter ''​%%RECV%%''​ mode: 
-<​code>​ 
-python main_client.py 
-RECV 
-</​code>​ 
- 
-Third terminal (start the second client and send a message): 
-<​code>​ 
-python main_client.py 
-MSG <​id_other_client>​ Hello! 
-</​code>​ 
  
  
Line 76: Line 52:
 while chain_key_r can be left as '​None'​ for now. while chain_key_r can be left as '​None'​ for now.
 </​note>​ </​note>​
 +
 +== How to run ==
 +Open three different terminals.
 +
 +First terminal (start the server):
 +<​code>​python main_server.py</​code>​
 +
 +Second terminal (start the first client and enter ''​%%RECV%%''​ mode:
 +<​code>​
 +python main_client.py
 +RECV
 +</​code>​
 +
 +Third terminal (start the second client and send a message):
 +<​code>​
 +python main_client.py
 +MSG <​id_other_client>​ Hello!
 +</​code>​
ac/laboratoare/08.1731582000.txt.gz · Last modified: 2024/11/14 13:00 by dimitrie.valu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0