This shows you the differences between two versions of the page.
pc:laboratoare:12 [2020/01/10 11:51] mihai.dumitru2201 [Criptare] |
pc:laboratoare:12 [2022/06/02 13:08] (current) dorinel.filip |
||
---|---|---|---|
Line 22: | Line 22: | ||
* E(M, K) = C | * E(M, K) = C | ||
* D(C, K) = M | * D(C, K) = M | ||
+ | |||
+ | |||
==== Criptare Simetrica ==== | ==== Criptare Simetrica ==== | ||
Line 38: | Line 40: | ||
[[https://en.wikipedia.org/wiki/Advanced_Encryption_Standard|AES]], | [[https://en.wikipedia.org/wiki/Advanced_Encryption_Standard|AES]], | ||
- | [[https://en.wikipedia.org/wiki/Data_Encryption_Standard|AES]], | + | [[https://en.wikipedia.org/wiki/Data_Encryption_Standard|DES]], |
[[https://en.wikipedia.org/wiki/Triple_DES|3DES]], | [[https://en.wikipedia.org/wiki/Triple_DES|3DES]], | ||
[[https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm|IDEA]], | [[https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm|IDEA]], | ||
Line 44: | Line 46: | ||
<note> | <note> | ||
- | In cazul criptarii simetrice dificultatea provine din necesitatea existenti unui mecanism de securitate pentru distribuirea cheii secrete. In plus, nu este fezabil ca orice pereche de entitati care doresc sa comunice criptat sa impartaseasca un secret (e.g.google ar trebui sa aiba cate o cheie pentru fiecare client). Exista protocoale de schimbare de chei (__key exchange__), astfel incat doua entitati sa poata alege impreuna o cheie privata peste un canal de comunicare nesigur, astfel incat nimeni altcineva care poate vedea informatia transmisa sa nu poata determina cheia (si, deci, nici mesajele ulterioare, criptate cu cheia aleasa). Cel mai cunoscut astfel de protocol este DiffieHellman. Acesta este totusi nesigur in cazul atacurilor de tipul Man-in-the-Middle cand atacatorul poate intercepta mesaje si produce propriile mesaje. | + | In cazul criptarii simetrice dificultatea provine din necesitatea existenti unui mecanism de securitate pentru distribuirea cheii secrete. In plus, nu este fezabil ca orice pereche de entitati care doresc sa comunice criptat sa impartaseasca un secret (e.g.google ar trebui sa aiba cate o cheie pentru fiecare client). Exista protocoale de schimbare de chei (__key exchange__), astfel incat doua entitati sa poata alege impreuna o cheie privata peste un canal de comunicare nesigur, astfel incat nimeni altcineva care poate vedea informatia transmisa sa nu poata determina cheia (si, deci, nici mesajele ulterioare, criptate cu cheia aleasa). Cel mai cunoscut astfel de protocol este DiffieHellman. Acesta este totusi nesigur in cazul atacurilor de tipul [[https://en.wikipedia.org/wiki/Man-in-the-middle_attack|Man-in-the-Middle]] cand atacatorul poate intercepta mesaje si produce propriile mesaje. |
</note> | </note> | ||
+ | |||
+ | |||
==== Criptare Asimetrica ==== | ==== Criptare Asimetrica ==== | ||
Line 71: | Line 75: | ||
Pentru sistemele de criptare asimetrica, exista problema: cum putem fi siguri ca cheia publica primita chiar apartine cui credem ca apartine? (un atacator ar putea folosi un atac Man-in-the-Middle pentru a ne livra propria sa cheie). | Pentru sistemele de criptare asimetrica, exista problema: cum putem fi siguri ca cheia publica primita chiar apartine cui credem ca apartine? (un atacator ar putea folosi un atac Man-in-the-Middle pentru a ne livra propria sa cheie). | ||
</note> | </note> | ||
+ | |||
==== Rezumate de mesaje ==== | ==== Rezumate de mesaje ==== | ||
- | Rezumatul (hash) unui mesaj este un sir de biti de lungime fixa, generat cu ajutorul unei functii de dispersie neinversabile aplicata mesajului. Funct, ia de dispersie H trebuie sa aiba urmatoarele proprietati: | + | Rezumatul (hash) unui mesaj este un sir de biti de lungime fixa, generat cu ajutorul unei functii de dispersie neinversabile aplicata mesajului. Functia de dispersie H trebuie sa aiba urmatoarele proprietati: |
- Dandu-se un mesaj M, este usor de calculat H(M) | - Dandu-se un mesaj M, este usor de calculat H(M) | ||
- Dandu-se un rezumat H(M), este greu de calculat M | - Dandu-se un rezumat H(M), este greu de calculat M | ||
Line 87: | Line 92: | ||
[[https://en.wikipedia.org/wiki/SHA-2|SHA-2]], | [[https://en.wikipedia.org/wiki/SHA-2|SHA-2]], | ||
[[https://en.wikipedia.org/wiki/SHA-3|SHA-3]] | [[https://en.wikipedia.org/wiki/SHA-3|SHA-3]] | ||
+ | |||
+ | |||
==== Semnaturi digitale ==== | ==== Semnaturi digitale ==== | ||
Line 104: | Line 111: | ||
- Bob decripteaza C folosind cheia publica R0 = D(C, PA) | - Bob decripteaza C folosind cheia publica R0 = D(C, PA) | ||
- Daca R = R0, Bob are garantia ca mesajul a fost semnat de Alice si nimeni nu l-a modificat | - Daca R = R0, Bob are garantia ca mesajul a fost semnat de Alice si nimeni nu l-a modificat | ||
+ | |||
+ | |||
==== Gestiunea cheilor publice ==== | ==== Gestiunea cheilor publice ==== | ||
Line 113: | Line 122: | ||
Informatii despre baza lantului de incredere sunt incluse in aplicatii (mail client, web browser etc.), sau in sistemul de operare, care serveste aplicatiile interesate. | Informatii despre baza lantului de incredere sunt incluse in aplicatii (mail client, web browser etc.), sau in sistemul de operare, care serveste aplicatiile interesate. | ||
+ | |||
+ | |||
==== OpenSSL ==== | ==== OpenSSL ==== | ||
Line 122: | Line 133: | ||
Printre comenzi se numara: | Printre comenzi se numara: | ||
- | * **ca** - utilizata pentru managementul unei autoritati de certificare (se pot genera certificate, care sunt stocate apoi intr-i baza de date) | + | * **ca** - utilizata pentru managementul unei autoritati de certificare (se pot genera certificate, care sunt stocate apoi intr-o baza de date) |
* **dgst** - pentru calculul de rezumate de mesaje | * **dgst** - pentru calculul de rezumate de mesaje | ||
* **genrsa** - pentru generarea de chei RSA | * **genrsa** - pentru generarea de chei RSA | ||
Line 230: | Line 241: | ||
openssl enc -d -aes-256-cbc -a -in file.enc | openssl enc -d -aes-256-cbc -a -in file.enc | ||
</code> | </code> | ||
+ | |||
==== Cerinte laborator ==== | ==== Cerinte laborator ==== | ||
Line 236: | Line 248: | ||
1. Obtineti certificatul de la google.com si identificati urmatoarele campuri: | 1. Obtineti certificatul de la google.com si identificati urmatoarele campuri: | ||
- | * tipul cifrului folosit | + | * algoritmul folosit pentru semnarea certificatului |
* entitatea care a eliberat certificatul | * entitatea care a eliberat certificatul | ||
* intervalul de timp in care certificatul e valid | * intervalul de timp in care certificatul e valid | ||
Line 245: | Line 257: | ||
Exemple de pagini http cu formular de login: | Exemple de pagini http cu formular de login: | ||
* http://login.onlineplanservice.com/Login.aspx?ReturnUrl=%2f | * http://login.onlineplanservice.com/Login.aspx?ReturnUrl=%2f | ||
- | * http://iczn.org/ | ||
- | * http://login.hotpotatoes.net/ | ||
3. Pentru login prin https, analizati portiunea de TLS handshake si identificati urmatoarele campuri: | 3. Pentru login prin https, analizati portiunea de TLS handshake si identificati urmatoarele campuri: |