Differences

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

Link to this comparison view

ic:labs:08 [2023/11/20 15:42]
marios.choudary
ic:labs:08 [2023/11/22 01:03] (current)
razvan.smadu [Exercițiul 1 - OpenSSL în linia de comanda (3p)]
Line 3: Line 3:
 Prezentarea PowerPoint pentru acest laborator poate fi găsită [[https://​drive.google.com/​file/​d/​188HfjYdDqc97bPXiaF6tccVcU4pSy6-f/​view?​usp=sharing|aici]]. Prezentarea PowerPoint pentru acest laborator poate fi găsită [[https://​drive.google.com/​file/​d/​188HfjYdDqc97bPXiaF6tccVcU4pSy6-f/​view?​usp=sharing|aici]].
  
-<​hidden>​ +==== Exercițiul 1 - OpenSSL în linia de comanda ​(3p) ====
-==== Exercițiul 1 - OpenSSL în linia de comanda ====+
  
 OpenSSL este o suita de funcții criptografice,​ care oferă atât o facilitate de unelte în linie de comandă OpenSSL este o suita de funcții criptografice,​ care oferă atât o facilitate de unelte în linie de comandă
Line 10: Line 9:
 în linie de comandă ca să pridenți ceva experiență cu aceste funcții foarte populare și utile. în linie de comandă ca să pridenți ceva experiență cu aceste funcții foarte populare și utile.
  
- Verificați că aveți OpenSSL (eu voi folosi versiunea ​3.0.2)+Acum: ati primit niste fisiere top secret in arhiva {{:​ic:​labs:​top_secret.zip|top secret}}. 
 +Aceasta contine un fisier binar (data_enc_mac.bin) cu un mesaj criptat + un MAC, i.e. 
 + 
 +file = enc(ke,m) + mac-cbc(km,m) 
 + 
 +Vreti sa aflati mesajul secret si sa verificati ca este corect (mac corect). 
 +Pentru asta va trebuie cheile de criptare (ke) si de MAC (km). 
 +Stim ca criptarea s-a facut cu aes-128-cbc cu iv=000.00 (16 octeti) iar mac-ul este CMAC cu AES-128-CBC. 
 + 
 +Din fericire mai avem in arhiva un fisier (tot binar, data_kek.bin.pass_hellokitty) care contine un master key (k0), dar care 
 +este criptat si el cu aes-128-cbc si pbkdf2, cu passphrase din numele fisierului.  
 + 
 +Mai stim ca putem folosi acest master key (k0) pentru a deriva cheile de criptare si MAC de mai sus (ke, km) 
 +prin aplicarea functiei SHA256, ​i.e. (ke, km) = SHA256(k0) 
 + 
 +Acum stim cam tot ce avem nevoie pentru a afla si a verifica mesajul secret. 
 +Care este acest mesaj? 
 + 
 +Vedeti [[https://​www.openssl.org/​docs/​man1.1.1/​man1/​enc.html|aici]] informatii ajutatoare pentru criptare si criptare cu pbkdf, [[https://​www.openssl.org/​docs/​man1.1.1/​man1/​openssl-dgst.html|aici]] informatii pentru SHA256 si 
 +[[https://​www.openssl.org/​docs/​man3.0/​man1/​openssl-mac.html|aici]] pentru MAC. 
 + 
 +  * Incepeti prin verificarea versiunii de OpenSSL (eu am folosit ​3.0.2):
 <​code>​ <​code>​
     #openssl version     #openssl version
 </​code>​ </​code>​
  
- ​- ​+  * Apoi decriptati fisierul binar kek cu passphrase-ul din numele fisierului pentru a obtine k0 (vedeti openssl enc ... -pbkdf2...). 
 +<​code>​ 
 +  #openssl enc -d -aes128 -pbkdf2 ​-in... 
 +</​code>​
  
-</hidden>+  * Acum folositi SHA256 pentru a obtine (ke|km) = SHA256(k0). Vedeti openssl -dgst. Puteti face pipe ca sa trimiteti date de intrare catre SHA256 sau alte functii openssl, e.g.: 
 +<​code>​ 
 +   #echo -n $k0 | openssl dgst -sha256 
 +</code> 
 +unde k0 contine cheia aflata la punctul precedent (hint: ar trebui sa fie gustoasa...).
  
-Puteți lucra acest laborator folosind ​platforma Google Colab, accesând [[https://​colab.research.google.com/​drive/19L4IVkLwV-BQ8IP4PD1Brj801YlGeLMC?​usp=sharing|acest]] link.+ 
 +  * Cu ke (primii 16 octeti din rezultatul de mai sus) putem decripta mesajul (folositi -nopad, nu e nevoie de padding). Vedeti openssl enc -d .... Aici trebuie sa folositi primii N-16 octeti din fisier (ultimii 16 sunt MAC-ul). Puteti trunchia cu cat sau alta metoda la alegere, e.g.: 
 +<​code>​ 
 +   #cat data_enc_mac.bin | head -c80 
 +</​code>​ 
 + 
 +apoi folositi iarasi openssl enc -aes128 -d  -K... -iv... -nopad ​ (cu parametru in fisier sau cu pipe ca mai sus) 
 +ca sa decriptati mesajul. 
 + 
 +  * In sfarsit, puteti verifica ca mesajul primit este corect (desi ar trebui sa para un text inteligibil) prin aplicarea MAC-ului CMAC cu AES-128-CBC peste ultimii 16 octeti din fisierul binar data_enc_mac.bin. Vedeti functia 
 +<​code>​ 
 +  openssl mac -cipher AES-128-CBC -binary 
 +</​code>​ 
 +cu parametrul -macopt hexkey:... (aici km in hexa) 
 + 
 + 
 +==== Exercițiul 2+ ==== 
 + 
 +Pentru al doilea exercitiu puteti folosi ​platforma Google Colab, accesând [[https://​colab.research.google.com/​github/ACS-IC-labs/​IC-labs/​blob/​main/​labs/​lab08/​lab8.ipynb|acest]] link.
  
 <​hidden>​ <​hidden>​
 +
 +
 În acest laborator vom studia despre Message Authentication Codes (MAC). În acest laborator vom studia despre Message Authentication Codes (MAC).
  
ic/labs/08.1700487768.txt.gz · Last modified: 2023/11/20 15:42 by marios.choudary
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