22
IT331-Projektni zadatak Analiza SSL protokola prilikom kupovine preko interneta Student: Mentor: Vladimir Apostolov 1559 Miroslava Raspopović

Analiza SSL protokola na amazonu

Embed Size (px)

DESCRIPTION

Analiza SSL protokola na amazonu

Citation preview

Page 1: Analiza SSL protokola na amazonu

IT331-Projektni zadatak

Analiza SSL protokola prilikom kupovine preko interneta

Student: Mentor:

Vladimir Apostolov 1559 Miroslava Raspopović

Niš, 16.04.2016.

Page 2: Analiza SSL protokola na amazonu

SadržajUvod......................................................................................................................................................3

1. TSL/SSL..............................................................................................................................................4

2. Wireshark hvatanje paketa i komunikacija između lokalnog računara i servera............................5

3. Hello poruke......................................................................................................................................7

3.1 Client Hello..................................................................................................................................7

3.2 Server Hello.................................................................................................................................8

4. Sertifikati i razmena šifrovanih poruka............................................................................................9

5. Razmena ključeva...........................................................................................................................12

6. Diffie Hellman razmena ključeva....................................................................................................14

7. Informacije u podacima..................................................................................................................15

8. Zaključak.........................................................................................................................................16

9. Dodatak...........................................................................................................................................17

Literatura............................................................................................................................................18

Page 3: Analiza SSL protokola na amazonu

Uvod

Tokom ovog rada, bavićemo se analizom SSL protokola prilikom kupovine na internetu,

tačnije obratićemo pažnju na sajt amazon, preko koga se naručuje veliki broj stvari preko

interneta. Fokus će biti na komunikaciji između lokalnog računara i servera amazona, kako

se razmenjuju paketi između lokalnog računara i servera, šta koji paket pokazuje, koje su

njegove funkcije kao i paket u kome se nalazi username i password korisnikovog naloga na

amazonu.

Za izradu ovog zadatka potrebno je koristiti paket analizator, u nasem slučaju će to biti

Wireshark koji je otvorenog koda i koristi se za mrežno rešavanje problema, analizu kao i za

razvoj komunikacionog protokola.

Osnovni cilj ovog rada biće hvatanje paketa u kojima se vidi komunikacija između lokalnog

računara i servera kao i koji su ti paketi koje šalju jedno drugom.

Page 4: Analiza SSL protokola na amazonu

1. TSL/SSL

Transport Layer Security( TSL ) i Secure Sockets Layer ( SSL ) su kriptografski protokoli koji

omogućuju sigurnu komunikaciju putem interneta u šifrovanom obliku. SSL nam omogućuje

enkripciju prometa na internetu i koristi se za sigurnu komunikaciju između servera i

klijenta. SSL u suštini predstavlja komunikacioni sloj koji se koristi da osigura sigurnost

komunikacije između transportnog i aplikativnog sloja, tako što se on nalazi negde između

njih.

SSL obezbeđuje tajnost i integritet podataka korišćenjem kombinacije kriptovanja javnim

ključem RSA, simetričnog kriptovanja DES i RC5 kao i digitalnih sertifikata SHA-1 i MD5. SSL

ima mehanizme za identifikaciju servera, klijenta kao i kriptovanu razmenu podataka.

SSL se sastoji od 2 ključna protokola i to su:

SSL Handshake protocol i

SSL Record protocol

Handshake se koristi za uspostavljanje sesije, i pritom vrši proveru identiteta klijenta i

identiteta servera , usaglašava algoritme za kriptovanje i vrši razmenu ključeva.

SSL Record protokol sprema podatke za slanje tj. prvo prihvata podatke od strane

aplikativnog sloja, deli ih u blokove. Vrši potpisivanje (signature) poruke. Record preuzima

podatke od TCP sloja, verifikuje MAC adrese i šalje ih aplikativnom sloju.

Slika 1. TLS/SSL slojevi protokola1

1 https://technet.microsoft.com/en-us/library/cc783349(v=ws.10).aspx

Page 5: Analiza SSL protokola na amazonu

2. Wireshark hvatanje paketa i komunikacija između lokalnog računara

i servera

Slika 2. Sortiranje paketa

Na slici 2. Prikazano je sortiranje paketa, kao i “razgovor” između lokalnog računara i servera

( u mom slučaju amazona). Tačnije, kada je moj računar poslao “hello” poruku serveru

amazona, kada je on odgovorio, zatim poslao poruku o sertifikatu, statusu sertifikata, kao i

razmenu ključeva između lokalnog računara i servera. Svaki SSL počinje sa tri ista polja:

Content Type, Version, Length.

IP adresa lokalnog racunara je 192.168.0.101 a amazon servera je 54.230.8.51.

Page 6: Analiza SSL protokola na amazonu

Slika 3. Vremenski dijagram komunikacije između klijenta i servera (Handshake procedura)2

Sa slike broj 3. Možemo videti kako se zapravo odvija komunikacija između klijenta i servera.

Na samom početku klijent( lokalni računar) šalje “hello” poruku serveru amazon, nakon toga

server odgovara istom povratnom porukom, uspostavlja sertifikat i ključeve za razmenu i

zavrsava svoju poruku.

Nakon toga klijent razmenjuje tj. upoređuje šifre i koja je šifra odgovarajuća sa serverom koji

je on postavio ona se šalje serveru sa enkriptovanom handshake porukom. Zatim, server

razmenjuje šifre sa klijentom, enkriptovanu handshake poruku i nakon toga klijent pristupa

informacijama o aplikaciji ( gde se na pojedinim sajtovima koji nisu obezbedjeni SSL-om

moze videti username i password korisnika).

3. Hello poruke

2 http://kryptophone.kryptotel.net/faq/ssl/index.html

Page 7: Analiza SSL protokola na amazonu

Kada SSL klijent i server počinju da komuniciraju, oni se dogovore o verziji protokola, izaberu

kriptografske algoritme, uzajamno proveravaju autentičnost jedan drugog, i koriste tehnike

enkripcije javnog ključa da bi “proizveli” zajedničke tajne. Ovi procesi se odvijaju u protokolu

“handshake”. Ukratko, klijent šalje Hello poruku serveru, koji mora odgovoriti sa Server

Hello Message ili da da fatalnu grešku i konekcija ne uspeva. Client Hello i Server Hello

koriste se da uspostave unapređenje bezbednosti i mogućnosti između klijenta i servera.

3.1 Client Hello

Slika 4. Client Hello poruka

Client Hello poruka je prvi zapis koji je poslat serveru i u njoj se može videti da je TLS verzija

1.2 kao i da je SSL verija 3.1.

Ukoliko otvorimo random paket videcemo da on sadrzi Random Bytes koji će biti korišćeni

za kreiranje master key-a ( master ključa) za dalju komunikaciju.

Nakon toga vidimo da je dužina cipher suites-a 28 bytea kao i da moj browser sadrži 14

različitih cipher suites-a, kao i da će server koristit samo 1 od njih da komunicira sa lokalnim

računarom.

Page 8: Analiza SSL protokola na amazonu

Zatim u polju extension: signature_algoritms, mozemo videti da imamo 10 razlicitih

algoritma, koje ukazuje na to koji ce par ovih potpisa server koristiti u digitalnim potpisima.

3.2 Server Hello

Slika 5. Server Hello poruka

Na oznacenom polju vidimo da je server izabrao 1 od cipher suite-a iz prethodne liste, kao

da je i algoritam javnog kljuca RSA, simetricni kljuc algoritma je AES a HASH algoritam

SHA256.

Metod sifrovanja je: TLS_ECDME_RSA_WITH_AES_128_OCM_SHA256 (0x02f)

4. Sertifikati i razmena šifrovanih poruka

Page 9: Analiza SSL protokola na amazonu

Na narednoj slici upoznaćemo se sa tim kako to zaista izgleda kreiranje sertifikata i njegova

distribucija.

Slika 8. Server SSL autentikacija, kreiranje sertifikata i distribucija3

3 http://www.ibm.com/developerworks/websphere/techjournal/1210_lansche/1210_lansche.html

Page 10: Analiza SSL protokola na amazonu

Slika 6. Sertifikati

Na priloženoj slici mozemo videti koij je sertifikat, koji je reprezentovan od strane servera

kao i serijski broj, dužinu, količinu podataka (2687 bajta), potpis koji koristi RSA enkripciju,

kao i polje ISSUER u kome mozemo videti naziv države u kojoj se nalazi server, naziv

organizacije, naziv jedinice kao i uslove koriscenja.

Nakon toga, možemo videti validnost ovog sertifikata koji pocinje 15.10.2007 i traje do

16.10.2025, kao i informacije o javnom ključu, ciji algoritam koristi RSA enkripciju kao i

njegov ID koji je 1.2.840.113549.1.1.1, kao i da su iste ove infromacije zastupljene i u ostala

2 sertifikata koji se nalaze ispod priloženog.

Posle sertifikata, browser želi da potvrdi te sertifikate.

Page 11: Analiza SSL protokola na amazonu

Slika 7. Status sertifikata

Iz paketa certificate status uz pomoć koga nas browser želi da potvrdi predhodne sertifikate

uocavamo da je handshake type (22), kao i to da je nas sertifikat verifikovan kao uspesan.

Zatim dolazimo do razmene kljuceva kod servera, gde server salje javni kljuc do lokalnog

racunara koji je naravno kodiran, kao sto se može videti. Nakon ovoga, dolazimo do poruke

“Server Hello Done” sto nas dovodi do toga da je server rekao da mozemo da krenemo dalje

i da sada mozemo da uspostavimo komunikaciju.

Page 12: Analiza SSL protokola na amazonu

5. Razmena ključeva

Slika 9. Razmena kljuceva klijenta

Od strane klijenta, tj. moje strane, lokalni računar s’ obzirom da je server razmenio ključeve

mora i lokalni računar da razmeni svoje ključeve, pa nam samim tim i obezbeđuje naš javni

ključ, tako da možemo videti naravno javni ključ klijenta, u polju change cipher spec.

Svrha change cipher spec je da se zapis koristi da ukaze da će sadržaj narednih SSL zapisa

biti enkriptovan. Klijent i server oboje koriste change cipher spec poruku odmah, pre nego

što promene slanje enkriptovanog sadržaja. Poruka je zapravo indikacija tj. naznaka drugoj

strani.

Page 13: Analiza SSL protokola na amazonu

Slika 10. Karta nove sesije

Nakon razmene ključeva, server nam mora omogućiti “new session ticket”, koji ima svoj

nagoveštaj, svoju dužinu. Session Ticket možemo videti kao kod, kao sto je obeleženo na

slici, kao i promenu šifre i enkriptovanu handshake poruku. Kada ključ sesije napokon dospe

onda se zapravo dešava enkripcija.

Page 14: Analiza SSL protokola na amazonu

6. Diffie Hellman razmena ključeva

Diffie Hellman razmena ključeva predstavlja kriptografsku šemu javnih ključeva. Za

komunikaciju između 2 korisnike koriste se javni (public)ključ i tajni (secret) ključ.

Komunikacija se odvija tako što pošiljaoc koji želi da komunicira šalje primaocu tj. šifruje

svoju poruku svojim tajnim ključem i javnim ključem primaoca. Primalac može da dešifruje

poruku tako što upotrebljava svoj tajni ključ i javni ključ pošiljaoca. Ovakva šema se zasniva

na logaritamskim funkcijama za eksponente koji su prosti brojevi, to se drugačije i naziva

diskretni logaritam.

Slika 11. Princip Diffie Hellman razmene ključeva4

7. Informacije u podacima

4 https://upload.wikimedia.org/wikipedia/commons/a/a9/Diffie-Hellman_Key_Exchange.png

Page 15: Analiza SSL protokola na amazonu

Slika 12. Informacije o podacima

Ukoliko otvorimo Application data zatim SSL, pokazace nam enkriptovane informacije o

podacima. To su zapravo korisnicko ime i sifra mog naloga na amazonu, ali je prikazano

naravno u enkriptovanoj formi i ni jedan drugi racunar ne moze da ukrade informacije o

korisnickom imenu i šifri.

8. Zaključak

Page 16: Analiza SSL protokola na amazonu

U ovom radu mogli smo da vidimo i naučimo kako zapravo server i lokalni računar

komuniciraju, tačnije ući u suštinu komunikacije između njih kao i koje pakete koriste za

komunikaciju, šifrovanje, razmenu ključeva između njih kako bi server uspeo da odobri

komunikaciju sa lokalnim računarom.

Upoznali smo se sa algoritamom javnog kljuca RSA, algoritmom simetričnog ključa AES kao i

sa HASH algoritmom. Naravno, uz pomoć ovoga uspeli smo da otkrijemo koji metod

šifrovanja je korišćen, kao i koja je uloga Random Bytes-a, kako se kreira master key, koja je

uloga cipher suite-a i šta je on zapravo i kako ga zapravo uzima server da bi uspostavio

komunikaciju sa lokalnim računarom, kao i u kom paketu se nalaze podaci o nalogu na

amazonu.

Ovaj zadatak mi je omogućio da se bolje upoznam sa komunikacijom između servera i

lokalnog računara, kao i da zapravo naučim koja je svrha SSL protokola i kako zapravo on

funkcioniše.

Page 17: Analiza SSL protokola na amazonu

9. Dodatak

Na sledećim graficima možemo videti konverzaciju između servera i lokalnog računara,

količinu paketa koje su razmenili kao i krajnje tačke.

Slika 13. Konverzacija između lokalnog računara i servera

Ova slika pokazuje koju količinu paketa su razmenili server amazona i lokalnog računara kao

i količinu bajtova.

Slika 14. Endpoints

Page 18: Analiza SSL protokola na amazonu

Literatura

[1] Miroslava Raspopović – Materijali za predavanja i vežbe iz predmeta IT331

Računarkse mreže i komunikacije 2016. – Univerzitet Metropolitan

http://lams.metropolitan.edu.rs/

[2] Transport Layer Security – Secure Sockets Layer – TLS/SSL

https://technet.microsoft.com/en-us/library/cc783349(v=ws.10).aspx

http://kryptophone.kryptotel.net/faq/ssl/index.html

http://www.ibm.com/developerworks/websphere/techjournal/1210_lansche/

1210_lansche.html

http://www.cisco.com/c/en/us/tech/security-vpn/secure-socket-layer-ssl/index.html

http://resources.infosecinstitute.com/cryptography-101-with-ssl/

http://scisweb.ulster.ac.uk/~kevin/com320/labs/wireshark/lab-ssl.pdf

https://uniteng.com/wiki/lib/exe/fetch.php?

media=classlog:computernetwork:lab7_report.pdf

https://en.wikipedia.org/wiki/Transport_Layer_Security

[3] Youtube – How SSL works?

https://www.youtube.com/watch?v=u4ht-E-Kihk

https://www.youtube.com/watch?v=heFjjFgUzbc

https://www.youtube.com/watch?v=zcYokokvtYw

[4] Diffie Hellman protocol

https://upload.wikimedia.org/wikipedia/commons/a/a9/Diffie-Hellman_Key_Exchange.png

https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

Page 19: Analiza SSL protokola na amazonu