Top Banner
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Računalna forenzika seminarski rad Diffie-Hellman protokol za razmjenu ključeva Tomislav Milković Zagreb, siječanj 2019.
12

Diffie Hellman protokol za razmjenu ključeva

Oct 02, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Diffie Hellman protokol za razmjenu ključeva

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

Računalna forenzika – seminarski rad Diffie-Hellman protokol za razmjenu ključeva

Tomislav Milković

Zagreb, siječanj 2019.

Page 2: Diffie Hellman protokol za razmjenu ključeva

Sadržaj

1. Uvod .................................................................................................................................... 1

2. O protokolu ......................................................................................................................... 2

2.1 Nastanak ...................................................................................................................... 2

2.2 Osnovni princip ............................................................................................................ 2

2.3 Matematička pozadina ................................................................................................ 4

3. Primjene .............................................................................................................................. 7

4. Ranjivosti ............................................................................................................................. 8

5. Zaključak .............................................................................................................................. 9

6. Literatura ........................................................................................................................... 10

Page 3: Diffie Hellman protokol za razmjenu ključeva

1. Uvod

Sve veća količina komunikacije između računala dovela je do toga da je danas gotovo nezamislivo komunicirati bez enkripcije ili neke druge zaštite podataka. Kriptografski algoritmi koji se danas najčešće koriste mogu se podijeliti u dvije skupine: asimetrične i simetrične algoritme. Kod asimetričnih algoritama koriste se dva ključa – tajni i javni. Ono što se enkriptira javnim ključem moguće je dekriptirati samo tajnim ključem (i obrnuto). To znači da pošiljatelj uvijek mora znati javni ključ primatelja ako želi s njim komunicirati. Prednost asimetričnih algoritama jest u tome da ih je obično teže razbiti nego simetrične, ali to dolazi s cijenom – asimetrični kriptografski algoritmi u prosjeku su 10 tisuća puta sporiji od simetričnih. Također, obostrana komunikacija zahtijeva generiranje 4 ključa (tajni i javni ključ za oba sudionika), što je nepraktično te se za dulje komunikacije obično koriste brži, simetrični algoritmi. Kod simetričnih kriptografskih algoritama isti se ključ koristi za enkripciju i dekripciju podataka, odnosno oba sudionika u komunikaciji koriste isti ključ. Međutim, taj ključ mora biti tajna koju znaju samo sudionici komunikacije. Dogovor oko zajedničkog simetričnog ključa veoma je bitan za daljnji tijek komunikacije jer se taj dogovor mora izvesti preko nesigurnog kanala. Ukoliko netko prisluškuje kanal, može saznati tajni ključ prilikom razmjene te enkripcija poruka više nema smisla. Najsigurniji je način razmjene ključeva osobni sastanak lice u lice s osobom s kojom se želi komunicirati. Međutim, u današnje vrijeme se komunikacija odvija na računalima koja su na različitim krajevima svijeta, stoga osobni sastanci radi razmjene ključeva ne dolaze u obzir. Kako bi se riješio taj problem, osmišljene su različite metode za sigurnu razmjenu ključeva preko nesigurnog kanala, od kojih je najpoznatiji i najrašireniji upravo Diffie-Hellman protokol.

1

Page 4: Diffie Hellman protokol za razmjenu ključeva

2. O protokolu

2.1 Nastanak

Godine 1976. Whitfield Diffie i Martin Hellman (prikazani na slici 1) u znanstvenom su radu „New directions in cryptography„ objavili metodu za javnu razmjenu tajnih ključeva koja je kasnije postala poznata kao Diffie-Hellman protokol za razmjenu ključeva. To je bila prva metoda razmjene ključeva s ciljem sigurne komunikacije koja nije uključivala slanje ključa nekim tajnim kanalom (npr. osobno). Budući da se protokol zasniva na potenciranju velikih prostih brojeva, popularnost i praktičnost je stekao tek razvojem dovoljno snažnih računala. Diffie-Hellman protokol predstavlja značajno otkriće u povijesti kriptografije jer bez njega ne bi bio moguć kasniji razvoj asimetričnih kriptografskih algoritama, a s time niti razvoj moderne infrastrukture sigurnih komunikacijskih kanala kakvi su danas dostupni svakom korisniku Interneta.

Slika 1 Martin Hellman (lijevo) i Whitfield Diffie (desno)

2.2 Osnovni princip

Najjednostavnija i najčešće korištena predodžba u objašnjavanju Diffie-Hellman algoritma je ona s miješanjem boja prikazana na slici 2. Pretpostavimo da u komunikaciji sudjeluju dva sudionika: Alice i Bob. Oni se preko nesigurnog kanala dogovore oko zajedničke osnovne boje (u ovom slučaju žuta). Zatim svatko od njih pomiješa tu boju sa svojom tajnom bojom i

2

Page 5: Diffie Hellman protokol za razmjenu ključeva

pošalje drugome. Pod pretpostavkom da je boje vrlo teško razdvojiti kada se pomiješaju, nitko tko sluša na kanalu ne može saznati Aliceinu ili Bobovu tajnu boju iz mješavine boja. Zatim Bob i Alice u mješavinu koju su primili jedno od drugoga dodaju svoju tajnu boju. Budući da je redoslijed miješanja boja nebitan (svejedno je je li prva umiješala svoju tajnu boju Alice ili Bob), Alice i Bob će dobiti istu konačnu boju za koju znaju samo oni. Ta boja predstavlja njihov novi tajni ključ pomoću kojega mogu nastaviti sigurno komunicirati ili ga iskoristiti za izradu nekog još sigurnijeg ključa.

Slika 2 Predodžba Diffie-Hellman algoritma pomoću miješanja boja

3

Page 6: Diffie Hellman protokol za razmjenu ključeva

2.3 Matematička pozadina

Diffie-Hellman algoritam za razmjenu ključeva vrlo je elegantna metoda koja se bazira na jednostavnom matematičkom principu komutativnosti operacije potenciranja:

(xy)z = (xz)y

Komutativnost potenciranja također vrijedi i kod kongruencija (poznatije kao modulo aritmetika):

(xy mod p)z = (xz mod p)y

odnosno:

(xy)z mod p = (xz)y mod p

Pritom su brojevi p i x javni (znaju ih svi koji prisluškuju komunikacijski kanal). Broj p je što veći mogući prost broj (radi sigurnosti od brute-force napada), a broj x generator (drugi naziv: primitivni korijen) prostog broja p. Generator je broj čija su rješenja uzastopnog provođenja operacije xi mod p za i = 1, 2, 3… svi brojevi od 1 do p-1. Na primjer, za p = 5 možemo utvrditi da je broj x = 3 generator jer su uzastopnim potenciranjem broja 3 i provođenjem operacije modulo 5 dobiveni svi diskretni brojevi u intervalu [1, 4]:

31 mod 5 = 3 mod 5 = 3 32 mod 5 = 9 mod 5 = 4 33 mod 5 = 27 mod 5 = 2 34 mod 5 = 81 mod 5 = 1

Algoritam započinje tako da se osoba A (Alice) i osoba B (Bob) preko nesigurnog kanala dogovore oko parametara p (modul - prost broj) i x (generator od p). Zatim svatko od njih nasumično generira svoj privatni (tajni) ključ: Alice generira broj y, a Bob broj z. Svatko od njih potencira generator x sa svojim tajnim ključem i obavi operaciju modulo p:

Alice: xy mod p = a Bob: xz mod p = b

Zatim dobivene vrijednosti pošalju jedno drugome preko nesigurnog kanala. Nakon primitka Bobove vrijednosti, Alice ju potencira sa svojim tajnim ključem y i obavi operaciju modulo p:

Alice: by = (xz mod p)y = (xz)y mod p = xyz mod p

Po primitku Aliceine vrijednosti, Bob učini isto:

Bob: az = (xy mod p)z = (xy)z mod p = xyz mod p

4

Page 7: Diffie Hellman protokol za razmjenu ključeva

Na kraju algoritma zbog komutativnosti potenciranja i Alice i Bob dobiju istu vrijednost - njihov zajednički tajni ključ. Taj se ključ može koristiti kao simetrični ključ u daljnjoj komunikaciji kriptiranoj nekim simetričnim kriptografskim algoritmom ili kao početna vrijednost za generiranje nekog jačeg simetričnog ključa.

Kako bi napadač saznao zajednički tajni ključ (xyz mod p), mora doznati broj y ili broj z, odnosno riješiti problem diskretnog logaritma za koji ne postoji učinkovit algoritam, pogotovo ako je prost broj p dovoljno velik te broj p-1 nije umnožak dva mala prosta broja (te dvije pretpostavke osiguravaju težinu rješivosti problema diskretnog logaritma). Pritom je prisluškujući komunikacijski kanal saznao brojeve x (generator) i p (prost broj) te vrijednosti xy mod p = a (Aliceina poruka) i xz mod p = b (Bobova poruka) koje su razmijenjene preko nesigurnog komunikacijskog kanala.

Drugim riječima, napadač iz jednadžbi xy mod p = a i xz mod p = b mora izvući broj y ili broj z pomoću diskretnog logaritma (on se u matematičkoj teoriji brojeva označava s ind):

y = indx a (mod p) ili

z = indx b (mod p)

što je računalno vrlo zahtjevan posao. Na primjer, ako uspije izračunati Alicein privatni ključ y, tada samo mora Bobovu poslanu vrijednost potencirati na y i obaviti modulo p:

by = (xz mod p)y = xyz mod p

Time je napadač saznao zajednički tajni ključ.

Primjer provođenja Diffie-Hellman algoritma za razmjenu ključeva uz dogovor p = 13 i x = 6 (mali brojevi radi jednostavnosti) prikazan je na slici 3.

5

Page 8: Diffie Hellman protokol za razmjenu ključeva

Slika 3 Primjer provođenja Diffie-Hellman algoritma

6

Page 9: Diffie Hellman protokol za razmjenu ključeva

3. Primjene

Diffie-Hellman protokol za razmjenu ključeva temelj je modernih asimetričnih kriptografskih sustava te se kao takav koristi u mnogim mrežnim protokolima koji omogućuju zaštićenu komunikaciju. Najčešće se koristi za autentikaciju u mrežama računala, za stvaranje i verifikaciju digitalnih potpisa i certifikata te u protokolima IPsec, IKE, SSH, SSL,TLS i drugima.

IPsec (Internet protocol security) je skup protokola koji obuhvaća mehanizme za zaštitu mrežnog prometa na razini trećeg sloja OSI modela (mrežni sloj) kriptiranjem i autentikacijom IP paketa. Prije uspostave sjednice, koristi se IKE (Internet key exchange) protokol za razmjenu simetričnog sjedničkog ključa. IKE protokol zapravo ispod haube koristi Diffie-Hellman algoritam za razmjenu ključeva.

SSH (Secure shell) protokol koristi se za sigurnu prijavu na ljusku udaljenog računala, odnosno za udaljeni pristup konzoli. Osmišljen je kao zamjena za nezaštićeni protokol Telnet koji je imao istu svrhu. Sve naredbe i odgovori koji se prenose između ljuske i klijenta kriptirane su simetričnim ključem koji se dobiva upravo Diffie-Hellman algoritmom.

TLS (Transport layer security) i njegov prethodnik SSL (Secure sockets layer) danas su vjerojatno najčešće korišteni protokoli koji omogućuju sigurnu komunikaciju jer se koriste na Webu (HTTP protokol), za E-mali, Internet fax, instant messaging itd. TLS omogućava aplikacijskom sloju autentičnost i privatnost komunikacije pomoću enkripcije dogovorenim simetričnim ključem. Kao i u prethodno navedenim protokolima, i TLS koristi Diffie-Hellman algoritam za razmjenu tajnog ključa koji se kasnije koristi za generiranje jačeg simetričnog ključa kojim će se kriptirati sva komunikacija između klijenta i poslužitelja.

7

Page 10: Diffie Hellman protokol za razmjenu ključeva

4. Ranjivosti

Diffie-Hellman algoritam svoju sigurnost temelji na tome da je vrlo teško u razumnom vremenu riješiti problem računanja diskretnog logaritma za veliki prosti modul p. Međutim, ako je broj p-1 umnožak dva dovoljno mala prosta broja, onda se problem diskretnog logaritma može učinkovito riješiti pomoću Pohlig-Hellmanovog algoritma. Kako bi Diffie-Hellman protokol bio što sigurniji, prosti modul p trebao bi biti veličine barem 1024 bita.

Bez obzira na veličinu modula p, Diffie-Hellman protokol ima ranjivost koja ne ovisi o parametrima. Budući da protokol ne provodi autentikaciju između strana koje razmjenjuju ključeve, protokol je ranjiv na man-in-the-middle napade. Jedan takav napad prikazan je na slici 4.

Slika 4 Prikaz man-in-the-middle napada

Ovdje je Eve (eavesdropper) presrela Aliceinu i Bobovu poruku te svakome od njih proslijedila generator x potenciran vlastitim privatnim ključem q (xq mod p). Alice sada misli da je zajednički tajni ključ xyq mod p, dok Bob misli da je zajednički tajni ključ xzq mod p. Budući da je Eve presrela njihove poruke i zna vrijednosti A i B (prikazane na slici 3), još samo treba izračunati zajednički tajni ključ za komunikaciju s Alice te zajednički tajni ključ za komunikaciju s Bobom:

S Alice: Aq = xyq mod p

S Bobom: Bq = xzq mod p

Eve je sada posrednik u komunikaciji između Alice i Boba te može prosljeđivati njihove poruke ili ih modificirati po volji, i to bez da itko zna da je ona posrednik.

8

Page 11: Diffie Hellman protokol za razmjenu ključeva

5. Zaključak

Objava Diffie-Hellman protokola za razmjenu ključeva postavila je temelje za razvoj asimetričnih kriptografskih sustava. Sigurnost DH protokola temelji se na eksponencijalnoj složenosti izračunavanja diskretnog logaritma za velike brojeve. Protokol ima veoma široku uporabu – koristi se u mnogim protokolima OSI mrežnog modela za uspostavu sigurne komunikacije i razmjenu ključeva te kao takav čini temelj zaštite komunikacije putem otvorenih komunikacijskih kanala kao što je Internet. Zbog težine računanja diskretnog logaritma, DH protokol je uz određene parametre otporan na brute force napade. Međutim, ranjiv je na man-in-the-middle napade jer ne pruža mogućnost autentikacije, već se ona mora obaviti po nekom drugom principu.

Diffie-Hellman protokol ušao je u povijest kao jedan od najznačajnijih kriptografskih protokola te kao prvi koji je riješio problem razmjene tajnog simetričnog ključa star preko dvije tisuće godina. Unatoč tomu što se i dalje provode istraživanja u području razmjene ključeva, Diffie-Hellman protokol izdržao je test vremena te se još uvijek ne uviđa potreba za njegovom zamjenom u skorijoj budućnosti.

9

Page 12: Diffie Hellman protokol za razmjenu ključeva

6. Literatura

[1] Diffie-Hellman protokol, NCERT, 2009., https://www.cis.hr/www.edicija/LinkedDocuments/NCERT-PUBDOC-2009-12-284.pdf

[2] Whitfield Diffie, Martin Hellman, New directions in cryptography, 1976., https://ee.stanford.edu/~hellman/publications/24.pdf

[3] Kriptosustavi zasnovani na problemu diskretnog logaritma u konačnoj grupi, https://web.math.pmf.unizg.hr/~duje/ecc/dlp.html

[4] Andrej Dujella, Diskretna matematika (Matematičke osnove kriptografije javnog ključa), skripta, PMF, https://web.math.pmf.unizg.hr/~duje/diskretna/diskretna.pdf

10