Professional Documents
Culture Documents
SEMINARSKIRAD
Zatitapodataka primenomkriptografskihmetoda
Sadraj
1 Uvod ........................................................................................................................................................ 3 1.1 Vrste napada i zatita podataka na mrei .......................................................................................... 4 1.2 Sigurnosni servisi .............................................................................................................................. 5 2 Kriptografija........................................................................................................................................... 7 2.1 Osnovni pojmovi i terminologija u kriptografiji ............................................................................... 7 2.2 Kratak istorijski pregled, opti pojmovi i podela u kriptografiji ...................................................... 7 2.3 Bit stringovi, stream ifrovanje i blok ifrovanje.............................................................................. 8 2.4 Blok ifrovanje ................................................................................................................................ 10 2.5 Simetrina kriptografija .................................................................................................................. 10 2.5.1 DES algoritam .......................................................................................................................... 11 2.5.2 Trostruki DES (3-DES) algoritam ........................................................................................... 15 2.5.3 DES-CBC algoritam sa inicijalizacionim vektorom ................................................................ 16 2.5.4 IDEA algoritam ........................................................................................................................ 17 2.5.5 RC5 algoritam .......................................................................................................................... 19 2.5.6 RC6 algoritam .......................................................................................................................... 22 2.5.7 AES (Rijndael) algoritam......................................................................................................... 25 2.5.8 Blowfish ................................................................................................................................... 29 2.6 Prednosti i nedostatci simetrinog kriptovanja ............................................................................... 30 2.7 Asimetrini kriptosistemi ................................................................................................................ 30 2.7.1 RSA .......................................................................................................................................... 31 2.7.2 Diffie-Hellman-ova eksponencijalna razmena kljueva .......................................................... 33 2.7.3 ELGamal algoritam .................................................................................................................. 34 2.8 Prednosti i nedostatci asimetrinih algoritama ............................................................................... 35 2.9 Hibridni kriptosistemi ..................................................................................................................... 35 3 Tehnika digitalnog potpisa .................................................................................................................. 37 3.1 Potpisivanje cele poruke ................................................................................................................. 37 3.2 Potpisivanje saetka poruke ............................................................................................................ 38 3.3 He funkcije .................................................................................................................................... 40 3.3.1 MD5 ......................................................................................................................................... 40 3.3.2 SHA-1 algoritam ...................................................................................................................... 41 4 Autentifikacija entiteta ........................................................................................................................ 43 4.1 Autentifikacija entiteta pomou simetrinog kriptovanja ............................................................... 43 4.1.1 Prvi vid autentifikacije entiteta ................................................................................................ 43 4.1.2 Drugi vid autentifikacije entiteta.............................................................................................. 43 4.1.3 Bidirekciona autentifikacija ..................................................................................................... 44 4.2 Autentifikacija entiteta korienjem asimetrinog kriptovanja ...................................................... 45 5 Upravljanje kljuevima ....................................................................................................................... 47 5.1 Kreiranje kljua ............................................................................................................................... 47 5.2 Distribucija kljueva ....................................................................................................................... 48 5.2.1 Distribucija kljueva u simetrinim kriptografskim sistemima ............................................... 48 5.2.1.1 Centar za distribuciju kljueva (KDC).............................................................................. 48 5.2.1.2 Needham-Schroeder protokol ........................................................................................... 49 5.2.1.3 Otway-Rees protokol ......................................................................................................... 51 5.2.2 Distribucija kljueva u asimetrinim kriptografskim sistemima ............................................. 52 5.2.2.1 Potvrda identiteta .............................................................................................................. 52 5.2.2.2 X.509 protokol .................................................................................................................. 53 5.2.2.3 Infrastruktura javnog kljua (Public Key Infrastrukture, PKI) ......................................... 54 5.2.2.4 Kerberos ............................................................................................................................ 54 i
Sadraj
5.3 Zamena kljua.................................................................................................................................. 57 5.4 Unitenje kljua ............................................................................................................................... 57 6 Sigurnosni servisi u TCP/IP modelu ................................................................................................... 59 6.1 IPSec ................................................................................................................................................ 59 6.2 SSL/TLS .......................................................................................................................................... 61 7 Zakljuak............................................................................................................................................... 65 Literatura ............................................................................................................................................. 66
ii
1 Uvod
Uporedno sa razvojem informacionih tehnologija i telekomunikacionih sistema raste i mogunost zloupotreba podataka koji se tim putem prenose. Brzi razvoj hardvera i softvera, koji se koriste za prenos podataka, uslovljava este promene i usavravanja istih. U toj trci proizvoai esto nemaju vremena za detaljno testiranje opreme. Usled nedovoljnog testiranja, esto se javljaju propusti koji ine osnovu za rad potencijalnih napadaa. Napadai razvijaju sopstvene alate i tehnike pomou kojih zaobilaze sigurnosne mere i na taj nain dolaze do vanih podataka. U cilju eliminisanja ovih nedostataka namee se novi pravac istrazivanja u sferi sigurnosti informacionih sistema, koji se odnosi na zatitu podataka od neovlaenog pristupa, modifikacija ili razliitih zloupotreba. Na vanost zatite podataka ukazuje injenica da je ona postala jedan od najvanijih komponenata nacionalnih bezbednosti zemalja, dravnih administracija, banaka i sl. Isto tako, veliki broj kompanija sve vie poklanja panju merama sigurnosti sopstvenih informacionih sistema i podataka. Kao najzastupljeniji medijum za prenos podataka se koriste raunarske mree. Kao takve logino predstavljaju usko grlo po pitanju sigurnosti informacija koje se tim putem prenose. Iz tog razloga, posebna panja posveena je zatiti podataka koji se prenose putem raunarske mree. U ovom radu je dat pregled osnovnih principa zatite podataka u raunarskim mreama sa naglaskom na metode zatite bazirane na Kriptografiji. Razlog za to se nalazi u injenici da kriptografski protokoli ine osnovicu svih protokola za zatitu podataka koji se implementiraju na viim nivoima. Analizirani su simetrini i asimetrini kriptosistemi, a kasnije je dat princip rada tehnike digitalnog potpisa, i izloeni su problemi upravljanja kljuevima kao i upotreba sigurnosnih servisa u okviru TCP/IP modela. Na poetku, u prvom poglavlju, je dat pregled vrsta napada na podatke koji se prenose putem raunarskih mrea. Pored toga, navedeni su i mehanizmi koji se mogu koristiti za zatitu navedenih podataka. U okviru drugog poglavlja se preko osnovnih termina koji se javljaju u kriptografiji i kratkog istorijskog pregleda, spoznaju osnove koje su neophodne radi lakeg razumevanja kriptografskih protokola i algoritama koji su dati u nastavku istog poglavlja. Algoritmi su podeljeni na simetrine i asimetrine. Nakon opisa algoritama, iskoriena je prilika za razmatranje meusobnih prednosti i nedostataka. Na kraju poglavlja na primeru PGP algoritma, ukratko je pojanjen hibridni nain kriptovanja. Tree poglavlje sadri prikaz metoda za verifikaciju dokumenata ili poruka koje se alju putem mree, odnosno tehnikama digitalnog potpisa. Razmatrane su metode potpisivanja cele poruke i metode potpisivanja saetka poruke i date su dve najee koriene tehnike za formiranje saetka poruke. Verifikacija dokumenata u savremenim komunikacionim sistemima esto ne predstavlja siguran vid razmene poruka. Daleko bolje reenje predstavljaju sistemi koji podravaju meusobnu autentifikaciju obe strane u komunikaciji. Upravo ove metode za autentifikaciju entiteta su prikazane u okviru etvrtog poglavlja. Uokviru petog poglavlja se razmatra jedan od najveih problema sistema za prenos podataka putem raunarske mree, a to je problem upravljanja kljuevima. Upravljanje kljuevima se ne odnosi samo na distribuciju kljueva, ve i na njegovo kreiranje, pamenje, zamenu i na kraju unitenju. Poglavlje pod naslovom Sigurnosni servisi u TCP/IP modelu sadri kratak pregled protokola koji se implementiraju u TCP/IP model u cilju unapreenja modela po pitanju bezbednosti paketa podataka koji se prenose putem Interneta. U nastavku su dati opisi dva protokola koji se koriste na najniim slojevima pomenutog modela.
Kada se govori o zatiti podataka na mrei, uglavnom se misli na zatitu poverljivih i tajnih podataka koji se prenose putem raunarske mree. Sve masovnija upotreba raunarskih mrea iziskuje korienje mehanizama i mera za zatitu podataka koji se tim putem prenose. Mere za zatitu podataka uopte, se zasnivaju na tri principa [5]: Prevencija odnosi se na preduzimanje preventivnih aktivnosti za zatitu podataka i raunarskih sistema od moguih napada Detekcija otkrivanje kako je naruena zatita, kada je naruena i ko je naruio Reakcija preduzimanje aktivnosti koje dovode do restauracije podataka ili do restauracije raunarskog sistema
Zatita podataka koji se prenose putem raunarske mree zasniva se na sva tri principa, ali je ovaj rad fokusiran na zatitu u vidu prevencije. Najvea pretnja podacima koji se prenose putem raunarske mree javlja se usled slabosti komunikacione opreme pomou koje se vri prenos podataka. Ugroavanje podataka u raunarskim mreama se odnosi na prislukivanje, analizu, menjanje, uklanjanje informacija kao i lano predstavljanje [2]. Na Slici 1.1 prikazane su neke od mogunosti napada na raunarske mree. Treba napomenuti da do ovih napada moe doi na bilo kom mestu prenosa informacija od izvora do odredita. Svi napadi na podatke koji se prenose mreom se mogu podeliti u dve grupe: Pasivni napadi i Aktivni napadi
Pasivni napadi se odnose na sva prislukivanja i nadgledanja informacija tokom prenosa, bez ikakvih izmena. Ovom vrstom napada napada na relativno jednostavan nain dolazi do informacija. Pasivni napadi se teko otkrivaju. Kao najee korieni mehanizam zatite od pasivnih napada primenjuje se kriptovanje podataka koji se prenose putem komunikacionih linija. Kriptovanje podataka se odnosi na modifikaciju istih na nain da postanu nerazumljivi ili besmisleni za sve one korisnike 2
1.Uvod
kojima nisu namenjeni. Kao takvo, kriptovanje predstavlja najvaniji element zatite podataka u raunarskim mreama.
Slika 1.1
Vrste napada na mrei Aktivni napadi su svi napadi koji vre promenu sadraja ili toka informacija. Ova vrsta napada je daleko komplikovanija i tea za otkrivanje nego pasivni napadi. U aktivne napade se ubrajaju modifikacije paketa informacija koji se kreu putem mree, slanje lanih paketa, prekidi toka informacija kao i razne vrste preusmeravanja paketa na mrei. Zbog raznovrsnosti ove vrste napada, mehanizmi zatite moraju biti daleko komplikovaniji i napredniji nego kod pasivnih napada [2].
Autentifikacija se odnosi na potvrdu originalnosti poruka, odnosno na identifikaciju izvora poruke ili dokazivanje identiteta korisnika. Pojam autentifikacije se odnosi na linosti, terminale, kreditne kartice, smart kartice, biometrijske itae i slino. Umesto termina autentifikacija u literaturi se esto koristi i termin identifikacija. Poverljivost ili tajnost podataka obezbeuje zatitu podataka od neovlaenih lica. Podatke kroz mreu treba slati u kriptovanom obliku, osim toga, podaci se, takoe, trebaju i uvati u kriptovanom obliku. Poverljivost se najee ostvaruje kriptovanjem podataka ili fizikom zatitom komunikacione linije. 3
Servis neporicljivosti prua prevenciju od lanog poricanja slanja date poruke/dokumenta. Isto tako, spreava pojave da primalac poruke sam izmeni sadraj iste i da tvrdi da je takvu primio. Najee korieni mehanizam koji obezbeuje zloupotrebe ove vrste je digitalni potpis. Integritet poruka obezbeuje konzistentnost i tanost poruke, odnosno onemoguava bilo kakvu izmenu, unitenje ili lano generisanje poruke od strane neovlaene osobe. Ovaj servis obezbeuju he (eng. hash) funkcije, kontrolne sume, logovanja i razni kodovi. Autorizacija je servis koji vri proveru da li je identifikovanom korisniku dozvoljen pristup odreenim podacima, a servis kontrole pristupa utvruje prava pristupa korisnika. Za realizaciju ovog servisa potrebno je omoguiti postavljanje privilegija objektima koji im pripadaju i spreiti korisnike sistema da pristupaju korienjem prava pristupa drugih korisnika. Raspoloivost resursa se odnosi na reakciju u cilju odravanja funkcionalnosti resursa u sluaju detekcije otkaza ili napada. Ovaj servis se obezbeuje uvoenjem redundansa i primenom tehnika za toleranciju otkaza ili primenom redundanse [2], [3].
2 Kriptografija
2.1 Osnovni pojmovi i terminologija u kriptografiji
Termini Plaintext ili Cleartext odnose se na izvornu poruku ili izvorni tekst koji je mogue proitati i razumeti bez primene bilo kakvih posebnih metoda. Ukoliko se takav tekst treba preneti sa mesta A do mesta B, on se naziva poruka. Poruka se moe slati putem raunarske mree kao izvorni tekst (svima razumljiva) ili kao nerazumljiv sadraj koji se naziva ifrovan ili kriptovan tekst (eng. ciphertext ili chipher). Postupak pomou koga se izvorni tekst transformie u ifrovan tekst se naziva kriptovanje (eng. encryption). Kriptovanje se koristi da bi se obezbedilo da nijedan korisnik, osim korisnika kome je poruka namenjena, ne moe da sazna sadraj poruke [4]. Ako neovlaeni korisnici dou u posed kriptovanog teksta i vide njegov sadraj ne mogu proitati izvorni tekst. Kriptovanje izvornog teksta se obavlja pomou odreenog pravila za kriptovanje odnosno kriptografskog algoritma. Svaki kriptografski algoritam kao ulazne podatke ima izvorni tekst i klju a kao izlaz daje kriptovani tekst. Postupak koji omoguava da se od kriptovanog teksta dobije originalni izvorni tekst naziva se dekriptovanje (eng. decryption). Dekriptovanje odnosno deifrovanje predstavlja inverzni postupak od kriptovanja. Kriptovani tekst za koji nije poznat klju zove se kriptogram. Nauka koja prouava kriptovanja i dekriptovanja podataka se naziva Kriptografija. Kriptografija se oslanja na matematiku i omoguava uvanje vanih podataka kao i njihov prenos preko raunarske ili telekomunikacione mree a da pri tome niko ne moe da ih proita osim korisnika kome su namenjeni. Dok se Kriptografija bavi zatitom podataka, Kriptoanaliza je nauka o otkrivanju odnosno "razbijanju" kriptovanih poruka. Objedinjene Kriptografija i Kriptoanaliza se nazivaju Kriptologija. Protokol predstavlja skup pravila i konvencija koji definie komunikacioni okvir izmeu dva ili vie uesnika u komunikaciji. Tu spadaju: uspostavljanje veze, odravanje veze, raskid veze i obnavljanje veze u sluaju prekida. Kriptografski protokoli se upotrebljavaju za uspostavljanje sigurne komunikacije preko nepouzdanih globalnih mrea i distribuiranih sistema. Oslanjaju se na kriptografske metode zatite kako bi korisnicima obezbedili osnovne sigurnosne usluge poverljivosti, integriteta i neporicljivosti. Treba napomenuti razlike izmeu termina kodiranje i ifrovanje. Pojam kodiranje se odnosi na transformaciju izvornog teksta koje se vri na osnovu obimne knjige kodova, u kojoj se rei i fraze zamenjuju sluajnim nizom znakova. Na primer, "UWRT" moe biti kod za "Ja se zovem Petar". Nasuprot tome, ifra radi na niem nivou: na nivou pojedinanih slova, malih grupa slova, ili u modernim emama nad pojedinanim bitovima. Uz to se umesto knjige kodova koriste algoritmi koji su utemeljeni nekom matematikom formulom.
takozvanog ifarskog kruga i nekih drugih reenja dvostrukog prikrivanja teksta koja su u XIX veku prihvatili i kasnije usavravali nemci, englezi i francuzi. Pola veka nakon toga pojavljuje se prva knjiga iz oblasti kriptografije. U toku drugog svetskog rata na Nemakoj strani pojavila se maina koja je ifrovala poruke na do tada jo nevien nain. Nemci su mainu nazvali Enigma. Meutim ma koliko je ona u to vreme bila revoluciona saveznici su uspeli da razbiju poruke ifrovane Enigmom. Pojavom prvih raunara kriptografija se naglo razvija. Kako je vreme odmicalo raunari su bili sve bri i bri, radei i po nekoliko stotina, a kasnije i miliona operacija u sekundi. Novom brzinom rada je omogueno probijanje ifara za sve manje vremena. Uporedo s tim, radilo se i na razvoju novih, sigurnijih i komplikovanijih ema za ifrovanje [6]. Pojavom raunarskih mrea kriptografija naglo dobija na znaaju. Naroito je bitno obezbediti zatitu vanih podataka (na primer finansijskih) koji se prenose mreom. Naime, podaci se razmenjuju raunarskom mreom u formi paketa podataka i oni dospevaju do veeg broja raunara na putu od polaznog do odredinog raunara. Na svakom usputnom raunaru mogue je te pakete podataka "uhvatiti" i proitati njihov sadraj, korienjem analizatora protokola ili nekog programa (sniffera). Kriptovanje podataka podrazumeva korienje raznih kriptografskih algoritama tj. skupova pravila po kojima se vri kriptovanje. Algoritmi za kriptovanje se mogu podeliti u dve grupe: Tajni algoritmi: bezbednost se zasniva na tajnosti algoritma (istorijski interesantni). Algoritmi zasnovani na kljuu: bezbednost se zasniva na kljuevima, a ne na detaljima algoritma koji se moe publikovati i analizirati. Ovde je algoritam javno poznat, a klju se uva u tajnosti, da nije tako korisnici bi morali da razumeju i klju i algoritam. Klju je niz podataka koji se koristi za kriptovanje drugih podataka i koji, prema tome, mora da se koristi i za dekriptovanje podataka.
Danas se najvie koriste algoritami za kriptovanje zasnovani na kljuu, a mogu se klasifikovati u tri grupe: Simetrini, kod kojih se koristi jedan klju, Asimetrini, kod kojih postoje dva kljua i Hibridni, kombinacija predhodna dva. Cena probijanja algoritma mora da bude vea od cene ifrovanih podataka; Vreme potrebno za probijanje algoritma mora da bude due od vremena u kome podaci moraju da ostanu tajni; Broj podataka kriptovanih pomou jednog kljua mora da bude manji od broja potrebnih podataka da se dati algoritam probije [1].
U cilju postizanja to bolje zatite podataka algoritam za kriptovanje mora zadovoljiti sledee zahteve:
Isto tako, prilikom formiranja algoritama za kriptovanje/dekriptovanje, tei se da postupci kriptovanja odnosno dekriptovanja budu identini tj. inverzni. Na taj nain se postie neophodna kompatibilnost izmeu postupaka kriptovanja i dekriptovanja u smislu korienja istih operacija ali obrnutim redosledom i korienje istog kljua u oba postupka. Veoma je vano i da proces kriptovanja/dekriptovanja ima to je mogue krae vreme izvravanja. Postizanje to boljih performansi se ostvaruje ukoliko se ovi procesi realizuju hardverski. Kako bi algoritmi za kriptovanje bili to jednostavniji za hardversku realizaciju potrebno je da se izraunavanja u okviru njih baziraju na skupu jednostavnih operacija, kao to su aritmetiko sabiranje, XOR, operacije rotiranja i druge.
2.Kriptografija
American Standard Code for Information Interchange). Ova metoda kodira izvorni tekst u odgovarajue bit stringove. Algoritam za kodiranje na osnovu izvornog teksta i odreenog pravila formira bit stringove. Otuda se namee podela na ifarske redove, gde se izvorni podaci kodiraju metodom bit po bit, i ifarske blokove, gde se izvorni podatak deli na blokove odreene veliine. Ilustracije radi ASCII metoda koristi osam bitova radi reprenzetacije jednog karaktera, odnosno za ifarski blok koji se sastoji od 8 karaktera, primenom ASCII algoritma se dobija blok veliine 64 bita [8]. Jedan bit string moe biti zapisan na vie naina, to zavisi od veliine blokova na koje se string deli. Na primer, sekvencu 100111010110 moemo podeliti u blokove veliine tri bita: 100 111 010 110. Takoe, budui da bit string duine tri bita predstavlja jednu BCD cifru iz opsega od 0 do 7, naa sekvenca se moe zapisati i u obliku 4 7 2 6. Ukoliko istu sekvencu podelimo u blokove veliine 4 bita: 1001 1101 0110, i etiri bita predstavljaju brojeve od 0 do 15 imamo sekvencu 9 13 6. Ako je veliina bloka unapred zadata, za male brojeve, neophodno je dodavati nule poev od MSB bita. Na primer, binarna reprezentacija broja 5 je 101, a koristi se blok veliine 6 bita, potrebno je 5 predstaviti kao 000101, ili ako je veliina bloka 8 bitova broj 5 bi bio 00000101. Dosta koriena metoda je i predstavljanje bit stringova korienjem HEX notacije (Hexadecimal) od po 4 bita. Tokom izraunavanja ifarski algoritam esto koristi operacije nad bit stringovima kao to je XOR ili Exclusive OR. Ova jednostavna operacija se obavlja nad dva operanda iste duine. Mnogi autori esto spominju termin stream ifrovanja, mislei pri tom na metode koje se zasnivaju na ifrovanju pojedinanih rei ili karaktera iz teksta proizvoljne duine. Znai izvorni tekst se ifruje re po re ili karakter po karakter, gde je pravilo kodiranja svake rei ili karaktera odreeno pozicijom u okviru izvornog teksta. Meutim moderniji nain korienja engleskog termina stream ifrovanja se odnosi na ifrovanje izvornog teksta bit po bit. Sve to se moe desiti svakom pojedinanom bitu je da promeni vrednost ili da ostane nepromenjen. Zadatak onoga ko eli deifrovati ovako kodirani tekst, bio bi da se identifikuju sve pozicije na kojima su bitovi promenjeni, i promenjene vrednosti treba vratiti na originalne vrednosti. Da bi izvorni tekst mogao da se deifruje na jednostavan nain, neophodno je poznavati emu koja identifikuje ili na neki nain predvia promene bitova. Jedna ovakva ema se moe predstaviti u obliku kljua 1000110 i izvornog teksta 1100101. Ustanovimo pravilo da ukoliko je jedinica u okviru kljua to znai da treba promeniti bit u okviru izvornog teksta koji je na istoj poziciji. Pratei ovo pravilo dobija se ifrovani niz 0100011. Ukoliko se isti klju primeni dva puta ponovo se dobija izvorni tekst [8]. Ovo znai da je postupak deifrovanja identian procesu ifrovanja. Poto operacija zamene bitova odgovara XOR funkciji moe se koristiti formula koja prati postupak kodiranja: Ci = Pi XOR Ki, gde su Ci kodiran tekst, Pi izvorni tekst i Ki klju koji se formira kao sluajno definisana vrednost, koja je poznata samo poiljaocu i primaocu poruke. Stream ifrovanje zahteva dugake nizove kljua, za ije formiranje se koriste generatori koji proizvode dugake alfabetske nizove nadovezivanjem kratkih kljueva. Ovaj nain nije najbolje reenje zato to postoji velika verovatnoa da e se jedan isti kratak klju ponoviti vei broj puta u dugakom nizu kljueva, to olakava otkrivanje celog kljua. Zato generatori kljueva koji se praktino koriste prilikom stream ifrovanja koriste sofisticiranije metode. Projektovanje kvalitetnog generatora kljua je esto veoma teak prblem, koji zahteva korienje veliki broj matematikih formula. Dobra strana stream ovakvog naina ifrovanja je ta da ukoliko do odredita stigne pogrena informacija, nakon deifrovanja doi e do gubitka samo onih bitova izvornog teksta koji su izmenjeni u prenosu. To znai da ovaj nain ifrovanja nije podloan grekama u prenosu podataka usled poveanog nivoa uma. Ova osobina ini stream ifrovanje jako povoljno za korienje u okviru GSM mobilnih mrea. Ostale prednosti se ogledaju u veoma velikoj brzini ifrovanja/deifrovanja i lakoi implementacije. 7
Blok ifrovanje je primenjeno u sledeim algoritmima: LUCIFER, DES, FEAL, IDEA, RC5, SKIPJACK, BLOWFISH, TWOFISH, AES (RIJNDAEL), itd.
Slika 2.1
Blokovski prikaz simetrinog kriptosistema Postupak dekriptovanja se obavlja inverznim postupkom od kriptovanja u bloku za dekriptovanje D. Dekriptovanje poruke C se vri pomou istog kljua K koji je korien prilikom kriptovanja. Nakon dekriptovanja se dobija izvorna poruka M. 8
2.Kriptografija
Ukoliko na kanalu za prenos postoji osoba N (napada) moe da presretne kriptovanu poruku i ukoliko doe u posed kljua moe proitati ili zloupotrebiti izvornu poruku. Da bi se izbegle manipulacije, obe strane moraju drati klju u tajnosti, odnosno klju se ne sme prenositi nezatienim komunikacionim kanalom. Za razliku od kljua, kriptovana poruka moe da se alje i po nezatienom kanalu s obzirom na to da sadraj izvorne poruke moe da protumai samo onaj korisnik koji ima klju. Primer slanja kljua razliitim komunikacionim kanalom je kada se PIN (eng. Personal Identification Number) kod za pristup zatienim Internet sajtovima (npr. Banke za uvid stanja na raunu) dostavljaju korisnicima potom, a ne Internetom. Najpoznatiji algoritmi simetrinih kriptosistema koji se danas koriste su: DES, 3DES, DES-CBC, IDEA, RC5, RC6, AES i drugi.
Slika 2.2
Izgled DES algoritma za kriptovanje Prilikom kriptovanja/dekriptovanja u svakoj iteraciji se koriste razliiti kljuevi K1, ..., K16 veliine 48-bita. Za generisanje ovih kljueva se koristi poseban algoritam. Na Slici 2.3 ilustrovan je postupak dobijanja kljueva koji se koriste prilikom DES kriptovanja/dekriptovanja.
10
2.Kriptografija
Slika 2.3
Formiranje kljueva u okviru DES algoritma Postupak generisanja esnaest 48-bitnih delova kljueva (K1, K2, ,K16) od zadatog tajnog kljua sprovodi se u nekoliko koraka. Prvo se iz 64-bitnog kljua odstrane bitovi parnosti tj. 8-, 16-, 24-, 32-, 40-, 48-, 56- i 64-bit, zatim se pomou zadate tabele permutacije PC-1 (Tabela 1) iz kljua generiu dva bloka po 28 bita (Ci i Di). Blokovi se formiraju tako to svaki bit sa pozicije i ide na poziciju koja se ita iz i-te stavke ove tabele. Nakon toga, sledi 16 koraka u okviru kojih se svaki blok rotira ulevo za odreeni broj bita (Ls(i) zavisi o kom koraku se radi). Nastali blokovi se spajaju (operacija ||), a onda se pomou permutacije koja je definisana tabelom PC-2 (Tabela 2) genere odgovarajui deo kljua Ki, gde je i redni broj koraka [11]. 11
Tabela 1
Tabela permutacije PC-1
Tabela 2
Tabela permutacije PC-2
Sutinski, a ujedno i najkritiniji deo algoritma predstavlja funkcija kriptovanja f tj. Feistel funkcija. Zbog njene kompleksnosti pretpostavlja se da ne postoji nain razotkrivanja DES-a. Funkcija f se formira u nekoliko koraka, to je prikazano na Slici 2.4.
Slika 2.4
Formiranje pomone DES funkcije f 12
2.Kriptografija
Od ulaznih 32-bitnih Ri se proirenjem, na osnovu tabele E, dobija podatak duine 48 bita. Dobijena vrednost se bit po bit sabira sa kljuem Ki (operator predstavlja XOR logiku operaciju). Rezultat je 48-bitna vrednost koja se deli na osam delova od po est bita. Tako dobijene vrednosti se vode u osam blokova za substituciju tkz. S-box (S1,S2, ,S8). Svaki S-box ulaznih 6 bita zamenjuje sa 4 bita na izlazu. Kao primer, u okviru Tabele 3, je prikazana tabela substitucije S5. Prvi i zadnji bit svakog 6-bitnog dela informacije na ulazu u S-box predstavljaju adresu reda, a srednja etiri adresu kolone u tabeli substitucije. Slino se formiraju i ostali S-box-ovi [11], [12].
Tabela 3
Primer tabele za substituciju S5
S5
0yyyy0 0yyyy1 1yyyy0 1yyyy1
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x10100x
x1101x
x1110x
x1111x
Istim postupkom nad svakom estorkom od ulaznih 48 bita substitucijom se dobija ukupno 32 bita. Tako formiranih 32 bita dodatno se permutuje zadatom tabelom P(Xi) te se dobija konana vrednost funkcije f. Budui da je algoritam za kriptovanje identian algoritmu za dekriptovanje, postupak dekriptovanja se moe sprovesti tako to se operacije koriene u postupku kriptovanja obavljaju obrnutim redosedom. Zbog simetrinosti algoritma to se postie tako to se kriptovani blok pusti kroz isti algoritam s tom razlikom da se umesto kljua Ki u i-tom koraku upotrijebi klju K16 i + 1. Zanimljivo je da se napomene jedna slabost vezana za DES algoritam. Naime, zbog samog naina kreiranja delova kljueva, postoje etiri kljua za koje je dekripcija jednaka enkripciji. To znai, ako se kriptuje neka poruka dva puta i to sa ba jednim od ta 4 kljua, kao rezultat se dobija originalna poruka. Kako je verovatnoa da se od svih moguih kljueva odabere ba neki od tih mala, to ne utie na sigurnost algoritma. DES algoritam koristi 56-bitni klju za kriptovanje to znai ukupno 72.057.594.037.927.936 mogunosti za osobu koja hoe da probije tkz. brutalnim napadom tekst kriptovan sa DES-om. 1999. god. objedinjene grupe EFF i Distributed.net kao DES Cracker uz pomo 100.000 PC raunara na Internetu, probili su DES za vreme 22 sata i 15 minuta. Pritom je brzina pretraivanja bila 245 biliona kljueva/sekundi [13].
13
Slika 2.5
Postupci 3-DES: a) Kriptovanja; b) Dekriptovanja Prvi klju K1 se koristi za kriptovanje bloka podataka izvorne poruke P pomou standardnog DES algoritma. Tako kriptovana poruka se dekriptuje drugim kljuem K2. Dekriptovanjem poruke sa ovim kljuem se dobija nova ifrovana poruka. Na kraju se razultat dekriptovanja opet kriptuje, ovaj put ili treim kljuem K3 ili opet prvim K1. Tako je konano formirana kriptovana poruka C. Naizmeninim korienjem razliitih kljueva poveava se efektivna duina kljua na ukupno 168 bita, a tako i broj kombinacija koje bi eventualni napada morao probati da bi doao do izvorne poruke. Broj kombinacija za dva razliita kljua je 2112, dok za 3 razliita kljua ima ak 2168 kombinacija. 3-DES algoritam, kako ga jo nazivaju, reava problem duine kljua obinog DES-a, a sa druge strane nedostatak mu je to to je mnogo sporiji od standardnog DES-a [11]. Dekriptovanje poruke koja je kriptovana pomou 3-DES algoritma se, kao i kod klasinog DES-a, obavlja inverznim funkcijama u odnosu na kodiranje. Prvo se obavlja dekriptovanje pomou treeg kljua, sledi kriptovanje pomou kljua K2 i na kraju se izvorna poruka P dobija postupkom dekriptovanja pomou kljua K1.
14
2.Kriptografija
Slika 2.6
Unutranji i spoljanji CBC algoritmi Na poetku se blok izvornog teksta P podeli u delove P1,P2,..,Pn i ti delovi se saberu sa IV pomou XOR logike operacije, bez obzira o kom se nainu kriptovanja radi [11]. Slede tri koraka: kriptovanje pomou DES algoritma i kljua K1, zatim dekriptovanje pomou DES algoritma i kljua K2 i ponovo kriptovanje pomou DES algoritma i kljua K3. Matematiki modeli koji opisuju spoljani CBC algoritam za kriptovanje su:
C1 = E K 3 ( DK 2 ( E K 1 ( P1 IV ))) C 2 = E K 3 ( DK 2 ( E K 1 ( P2 C1 ))) C3 = E K 3 ( DK 2 ( E K 1 ( P3 C 2 ))) Meurezultati koji se koriste prilikom kriptovanja metodom unutranjeg DES-CBC-a su opisani sledeim formulama:
S 0 = E K 1 ( P1 ( IV )1 ) T0 = E K 1 ( P2 S 0 ) R0 = E K 1 ( P3 T0 ) S1 = DK 2 ( S 0 ( IV ) 2 ) T1 = DK 2 (T0 S1 ) R1 = DK 2 ( R0 T1 ) Formule koje opisuju kriptovanje metodom unutranjeg CBC-a su: C1 = E K 3 ( S1 ( IV ) 3 ) C 2 = E K 3 (T1 C1 ) C3 = E K 3 ( R1 C 2 )
15
Slika 2.7
IDEA algoritam za: a) Kriptovanje; b) Dekriptovanje Kriptovani blok podataka C se dobija primenom devet koraka nad izvornim tekstom P i delovima kljua K. 64-bitni ulazni blok podataka P se deli na etiri dela od po 16 bit-a (P1, P2, P3 i P4). Od originalnog 128-bitnog kljua formira se 52 dela kljua (od K1 do K52) od po 16 bita. Prvih osam delova kljua (K1,K2,,K8) se izdvajaju direktno od 128-bitnog kljua, i to poevi od K1 kao najniih 16 bitova, K2 kao sledeih 16 bitova i tako dalje. Svaka sledea grupa od po osam kljueva se formira na isti nain s tim to se prethodno 128-bitni klju rotira ulevo za 25 bita [11]. IDEA algoritam za kriptovanje se bazira na ukupno osam koraka u okviru kojih se obavljaju kombinacije tri razliite operacije i to:
Bit po bit XOR nad 16 bitnim sub-blokovima Sabiranje 16 bitnih celobrojnih vrednosti osnove 216 Mnoenje 16 bitnih celobrojnih vrednosti osnove 216 + 1. Na Slici 2.8 je prikazan redosled operacija u okviru jednog koraka, a nakon obavljenih osam identinih koraka sledi deveti polu-korak koji je takoe prikazan na istoj Slici 2.8 [14].
16
2.Kriptografija
Slika 2.8
Redosled operacija u procesu kriptovanja Postupak dekriptovanja pomou IDEA algoritma je slian postupku kriptovanja, s tom razlikom to se koriste razliite kombinacije delova kljua u okviru devet koraka izvravanja algoritma. Algoritam koji se koristi za dekriptovanje takoe je prikazana na Slici 2.7.
promenjivim brojem koraka izvravanja i promenjivim duinama kljua. Na ovaj nain RC5 obezbeuje veliku fleksibilnost u performansama i nivoima sigurnosti podataka. RC5 algoritam karakteriu sledei parametri RC5-w/r/b. Gde je w broj bitova u rei, r predstavlja broj koraka RC5 algoritma, a b je duina kljua izraena u bajtovima. Razliitim izborom parametara dobijaju se razliiti RC5 algoritmi. Standardnu re ini 32 bita, dok su mogue i vrednosti 16 bita i 64 bita. RC5 kriptovanje koristi blokove od dve rei (2w) izvornog ili kriptovanog teksta. Mogue vrednosti paramera r su 0,1,,255. Broj bajtova koji ine klju, b, kree se od 0 do 255. Tajni klju K se esto pre upotrebe proiri i na taj nain se formira takozvana proirena tabela kljueva S [11], [15]. RC5 algoritam ine tri komponente: algoritam za proirenje kljua, algoritam za kriptovanje i algoritam za dekriptovanje. Sva tri algoritma koriste sledee jednostavne operacije: Aritmetiko sabiranje po modulu 2w , Bit po bit XOR, <<< Rotacija ulevo za odreeni broj bitova. Tokom procesa kriptovanja, algoritam koristi podatke iz proirene tabele kljueva S[0,1,,t-1], od t = 2(r + 1) rei. Proirena tabela kljueva se formira od vrednosti tajnog kljua K. Algoritam za proirenje kljua koristi dve konstante Pw i Qw koje se definiu kao:
18
2.Kriptografija
Slika 2.9
Operacije u okviru RC5 algoritma Sledee procedure opisuju operacije prilikom kriptovanja:
A = A + S [0] ; B = B + S [1]; for i = 1 to r do A = (( A B) <<< B ) + S [2i ] ; B = (( B A) <<< A) + S [2i + 1] ; Algoritam za dekriptovanje je prikazan na Slici 2.10. Primeuje se da algoritmi za kriptovanje i dekriptovanje imaju odreenu slinost koja se ogleda u obrnutom redosledu operacija.
19
Slika 2.10
Operacije u postupku dekriptovanja pomou RC5 algoritma Formule koje opisuju postupak dekriptovanja podataka su: for i = r down to 1 do B = (( B S [2i + 1]) >>> A) A A = ((a s[2i ]) >>> B ) B B = B S [1] A = A S [0]
Zbog jednostavnosti operacija RC5 je lak za implementaciju. Uz to iznos pomaka u operacijama rotiranja nije fiksan, ve zavisi od ulaznog podatka.
2.Kriptografija
a + b Celobrojno sabiranje po modulu 2w a b Celobrojno oduzimanje po modulu 2w a b Bit po bit XOR nad w-bit reima a b Celobrojno mnoenje po modulu 2w a <<< b Rotacija w-bitne rei a ulevo za b bita a >>> b Rotacija w-bitne rei a udesno za b bita
Slika 2.11
Izgled koraka za kriptovanje pomou RC6 algoritma etiri w-bitna radna registra koja sadre izvornu poruku su A, B, C i D. S[0,1,, 2r + 3] predstavljaju w-bitne delove kljua iz proirene tabele kljueva. Dobijeni kriptovani tekst se skladiti u registrima A, B, C i D. Formiranje proirene tabele kljueva se vri isto kao i kod RC5, pomou konstanti Pw i Qw. Procedura koja prati proces kriptovanja je [11]:
B = B + S [0] D = D + S [1] for i = 1 to r do { t = ( B (2 B + 1)) |<<< lg w u = ( D (2 D + 1)) <<< lg w A = (( A t ) <<< u ) + S [2i ]
21
Proces dekriptovanja je slian kriptovanju s tim to se menja redosled operacija. Na Slici 2.12 je prikazan algioritam koji se koristi za dekriptovanje poruka kriptovanih pomou RC6 algoritma.
Slika 2.12
Operacije za dekriptovanje pomou RC6 algoritma Proces dekriptovanja se moe opisati u vidu sledee procedure:
C = C S [2 R + 3] A = A S [2 R + 2] for i = r down to 1 do { ( A, B, C , D) = ( D, A, B, C ) u = ( D (2 D + 1)) <<< lg w t = ( B (2 B + 1)) <<< lg w C = ((C S [2i + 1]) >>> t ) u A = (( A S [2i ]) >>> u ) t
22
2.Kriptografija
} D = D S [1] B = B S [0]
Kriptovanje podataka pomou AES algoritma se obavlja iz vie iteracija. Izvorni podaci se dele u 4 grupe od po 4 bajta na osnovu kojih se formira dvodimenzionalna matrica ulaznih bajtova [18]. Na osnovu matrice ulaznih podataka formira se matrica zvana matrica stanja. Sve operacije koje se obavljaju u toku AES algoritma se izvode nad matricom stanja. Matricu stanja ine etiri reda duine jedan bajt. Broj redova matrice stanja se kree 0 < r < 4 a broj kolona 0 < c < Nb, gde je Nb duina bloka u bitovima podeljena sa 8 x 4 = 32. Za sluaj kada je ulazni blok 128-bitni vai Nb = 4. Matrica ulaznih podataka se sastoji od elemenata in0, in1, , in15 duine od po jedan bajt. Ova matrica se preslikava u matricu stanja pomou sledee eme:
S r ,c = in(r + 4 c )
za 0 r < 4 i 0 c < Nb
Ukoliko se radi o dekriptovanju proces formiranja matrice izlaznih podataka iz matrice stanja koristi se sledea ema:
out(r +4 c ) = S r ,c za 0 r < 4 i 0 c < Nb
Slika 2.13
Postupci preslikavanja matrica
23
U svakoj od 9, 11 ili 13 iteracija izvravaju se operacije nad elementima matrice stanja. Redosled i broj izvravanja ovih operacija je definisan algoritmom za kriptovanje [18], [19]. Mogue su sledee operacije: - SubBytes( ) - ShiftRows( ) - MixColumns( ) - AddRoundKey( )
SubBytes( ) je operacija substitucije koja se obavlja nad svakim bajtom iz matrice stanja tako to se svaki element menja sa elementom iz pomone lookup tabele odnosno S-box-a. Ilustracija operacije substitucije je prikazana na Slici 2.14.
Slika 2.14
Operacija substitucije ShiftRows( ) operacija se odnosi na pomeranje elemenata (bajtova) u okviru kolona za odreeni broj pozicija. Na Slici 2.15 je prikazana ilustracija operacije pomeranja. Prva kolona ostaje nepromenjena, dok se svaka sledea kruno se pomera i to: druga kolona za po jedno mesto ulevo, trea za po dva mesta ulevo itd [19].
Slika 2.15
Operacija pomeranja MixColumns( ) operacija koja koristi odreenu linearnu transformaciju nad svakom kolonom iz matrice stanja. Primer ove operacije je prikazan na Slici 2.16 gde se nad kolonom obavlja operacija mnoenja sa konstantom C (x). Svaka kolona se tretira kao polinom u Galoovom polju GF(28) i mnoi sa nesvodljivim fiksnim polinomom C(x)=3x3+x2+x+2.
24
2.Kriptografija
Slika 2.16
MixColumns( )Operacija AddRoundKey( ) operacija se odnosi na XOR operaciju nad matricom stanja i matricom kljueva. Ilustracija operacije AddRoundKey( ) je prikazana na Slici 2.17.
Slika 2.17
AddRoundKey( ) operacija
25
Klju veliine 128/192/256 bita se predstavlja kao matrica koja ima 4 kolone od po 4/6/8 bajta . Zatim se tako dobijena matrica proiruje u niz rei od po 4 bajta, odnosno ukupno 44/52/60 rei wi od 128/192/256 bita. Proirenje kljua se zapoinje kopiranjem prve etiri rei kljua u re (w0, w1, w2, w3). Zatim se formira petlja koja generie sledee etiri rei wi (vidi Sliku 2.18) na osnovu predhodne rei wi-1 i rei koja je za 4 mesta unazad wi-4. U tri od etiri sluaja se primenjuje samo XOR operacija, a svaki etvrti ima sloeniju funkciju g [19].
Slika 2.18
Postupak proiravanja kljua
Proirenje kljua Inicijalna iteracija: AddRoundKey( ) Iteracije redom: SubBytes ( ), ShiftRows ( ), MixColumns ( ) i AddRoundKey ( ) Konana iteracija: SubBytes ( ), ShiftRows ( ) i AddRoundKey ( )
26
2.Kriptografija
2.5.8 Blowfish
Blowfish pripada grupi simetrinih blok ifarskih algoritama. Ustanovio ga je Bruce Schneider 1993. godine. Ovaj algoritam prua dobre kriptografske karakteristike u softverskim sistemima za kriptovanje i do danas nije pronaen efikasniji algoritam. Blowfish je zamiljen kao algoritam opte namene, namenjen da zameni DES algoritam i da pri tom rei probleme i ogranienja koja se javljaju upotrebom ostalih algoritama. Ovaj algoritam je bio osloboen vlasnikih prava i patenata, odnosno karijeru je zapoeo kao nepatentiran ali su ga kasnije, kao takvog prihvatile sve zemlje. Tako je algoritam ostao u javnosti kao besplatan za bilo kog korisnika. Blowfish algoritam koristi 64-bitne blokove izvornih podataka i klju promenjive veliine od 32 do 448 bita. Algoritam koristi 16 koraka Feistel ifrovanja i veliki broj S-box-ova koji se koriste za dobijanje kljua. Na Slici 2.19 je prikazan dijagram koji opisuje strukturu Blowfish algoritma [20].
Slika 2.19
Blowfish algoritam: a) Kriptovanje; b) Formiranje pomone funkcije F
Izvorni blok podataka se deli u dve linije od po 32 bita. Algoritam prate dve matrice sa pomonim kljuevima: P matrica sa 18 elementata i etiri S-box-a (blokova za substituciju) sa 256 elemenata. Svaki S-box prihvata 8-bitne elemente na ulazu i generie 32-bitne izlaze. Tokom svakog koraka izvrenja 27
algoritma (ukupno 16) koristi se po jedan elemenat P matrice (P1,P2,,P16), a preostala dva elementa (P17 i P18) se koriste na kraju. Nad elementima P matrice i 32-bitnim podacima se primenjuje XOR logika operacija. Na Slici 2.19 (a) se vidi i F funkcija (Feistel) koja se u okviru svakog koraka primenjuje nad podacima sa leve strane. Nad tako dobijenom informacijom i podacima sa desne strane se primenjuje XOR operacija. Neposredno pre izvravanja sledeeg koraka, tako dobijeni podatak i podatak sa leve strane zamene mesta. Blok dijagram koji prikazuje dobijanje F funkcije je prikazan na Slici 2.19 (b). Podatak na ulazu (32-bitni) se deli na etiri 8-bitna podatka koji se koriste kao ulazi u S-box-ove. Izlazi iz S-box-ova S1 i S2 se sabiraju po modulu 232 i nad tako dobijenim podatakom i S3 se primenjuje XOR operacija. Na kraju se u cilju dobijanja konane 32-bitne funkcije F predhodno dobijeni rezultat sabira po modulu 232 sa S4. Formiranje kljueva se zapoinje inicijalizacijom P matrice i S-box-eva sa vrednostima dobijenim na osnovu heksadecimalne vrednosti broja pi. Tajni klju i elementi P matrice se sabiraju pomou XOR operacije. Nakon toga se vri kriptovanje 64-bitnih blokova podataka koji sadri sve nule i kao rezultat se dobijaju elementi P1 i P2. Ovaj postupak se ciklino ponavlja sve dok se ne dobiju svi elementi matrice P i S-box-eva. Da bi se generisali svi elementi potrebno je da algoritam proe 521 put, to ini ukupno 4KB podataka [20]. Proces dekriptovanja identian je postupku kriptovanja s tom razlikom to se elementi matrice P upotrebljavaju obrnutim redosledom.
Blowfish je veoma brz kriptografski metod izuzev u sitacijama kada se vri razmena kljueva. Svaki novi klju zahteva slanje 4 KB teksta.
2.Kriptografija
Razlika izmeu simetrinih i asimetrinih algoritama je u tome to simetrini algoritmi koriste isti klju za kriptovanje i dekriptovanje dok asimetrini algoritmi koriste razliite kljueve za kriptovanje odnosno dekriptovanje. Informacije koje su kriptovane javnim kljuem mogu se dekriptovati samo tajnim kljuem odnosno to moe samo osoba koja je vlasnik tajnog asimetrinog kljua. Oba kljua moraju biti povezana pomou jedinstvene jednosmerne funkcije. Odnosno ne sme se izraunati tajni klju iz javnog kljua ili se barem ne sme izraunati u razumnom vremenu. Algoritmi asimetrinih kriptosistema zasnivaju se na odreenim svojstvima brojeva. Pri kriptovanju se izvorni tekst tretira kao niz prirodnih brojeva koji se odabranom funkcijom kriptovanja i kljuem Ke preraunavaju u kriptovani niz teksta. Funkcija kriptovanja mora biti takva da se iz kriptovanog teksta ne moe odrediti izvorni tekst, ak ako je poznat i klju za kriptovanje. Meutim, ukoliko se zna klju dekriptovanja Kd mogue je lako raunanje izvornog teksta. Asimetrino kriptovanje predstavlja jako sloen vid zatite podataka. Za njegovu realizaciju svaki od sagovornika mora posedovati dva kljua (javni i tajni). Iako su razliiti, kljuevi su meusobno povezani odreenim transformacijama. Na Slici 2.20 je prikazan primer asimetrinog kriptovanja [9].
Slika 2.20
Postupak asimetrinog kriptovanja
Radi jednostavnije analize rada koristiemo simbole A, B i N. A je osoba koja eli da poalje izvorni tekst, B predstavlja osobu koja bi trebala da primi poslati tekst, a N je osoba koja neovlaeno eli da doe do sigurnih podataka koje osoba A alje osobi B. Scenario asimetrinog kriptovanja bi izgledao ovako: Osoba A kodira poruku radi slanja osobi B upotrebom javnog kljua osobe B koji je svima dostupan (ak i osobi N). Osoba A je javni klju je mogla dobiti putem email-a, preuzeti sa Web sajta i sl. Meutim bilo ko ili osoba N i pored toga to poznaje javni klju ne moe otkriti sadraj poruke. Poruku moe deifrovati samo osoba B korienjem svog tajnog kljua. Na ovaj nain poruka je zatiena od treeg lica. Osnovni nedostatak ovog naina kriptovanja je njegova sporost i neprikladnost za kriptovanje velikih koliina podataka. Takoe, ostaje otvoreno pitanje autentinosti poruke, odnosno kako da osoba B bude sigurna da je poruku koju je primila uistinu poslala osoba A. Najee se koriste sledei asimetrini algoritmi: RSA (eng. Rivest-Shamir-Adleman), Diffie-Hellman, ElGamal, Eliptic Curves, Rabin i drugi.
2.7.1 RSA
Najpopularniji asimetrini metod za kriptovanje podataka je RSA algoritam, koji nosi naziv po svojim izumiteljima: Rivest, Shamir i Adleman. 29
Za generisanje javnog i tajnog kljua se koriste prosti brojevi. Tajni klju predstavlja ureeni par brojeva (N,d). Javni klju je takoe ureeni par brojeva (N,e). Treba uoiti da je broj N zajedniki za oba kljua. Osoba koja alje poruku vri kriptovanje pomou sledee jednaine [10]:
C = P e mod N Gde je: P, izvorni tekst koji je prikazan u obliku broja; C, broj koji predstavlja kriptovan tekst; brojevi e i N su komponente javnog kljua. Kada se poruka primi potrebno je dekriptovati pomou sledee jednaine:
P = C d mod N Gde su P i C isto kao i u predhodnoj formuli, a N i d predstavljaju komponente tajnog kljua. Na Slici 2.21 je prikazan primer RSA kriptovanja.
Slika 2.21
Primer RSA kriptovanja
Tajni klju predstavlja ureeni par (119, 77), a javni klju je ureeni par (119,5) i osoba A eli da poalje karakter F osobi B. Ovaj karakter se moe predstaviti kao broj 6 (F je esti karakter u abecedi). Korienjem formule algoritma kriptovanja dobija se C = 65 mod 119 = 41. Ovaj broj se alje kao kriptovan tekst osobi B. Osoba B kada primi broj koristi algoritam za dekriptovanje P = 4177 mod 119 = 6, a nakon toga inverznom transformacijom se broj 6 vrati u karakter F. Postavlja se pitanje koliko je ovaj nain slanja pouzdan. Ukoliko neka osoba C zna formulu za dekriptovanje i N = 119, a nedostaje joj samo d = 77, zato ne bi pokuala da pogodi d. U ovom jednostavnom primeru osoba C bi mogla da pogodi vrednost d, meutim osnovni koncept RSA za d i e predvia korienje veoma velikih brojeva. U praksi korienje jako velikih brojeva za d i e znai veliki broj kombinacija koje se moraju isprobati radi otkrivanja ifre tj. veoma dugo vreme razbijanja koda ak i uz pomo najbrih raunara koji su dostupni danas. Osnovni problem kod RSA algoritma je kako izvriti izbor brojeva N, d i e (veoma velike vrednosti duine od 1024 do 2048), a da ujedno zadovoljavaju formule algoritma. Zapravo RSA koristi teoriju prostih brojeva i sledeu proceduru [21]: Izabrati dva prosta broja p i q Sraunati N = p x q Izabrati e (mora biti manje od N) tako da e i proizvod (p 1)(q 1) budu uzajamno prosti (da nemaju zajednikog delitelja osim 1). Odrediti broj d tako da zadovoljava jednainu (e x d) mod [(p 1)(q 1)] = 1 Kao ilustracija formiranja para kljueva data je sledea procedura: izabrati proste brojeve p = 2357, q = 2551; izraunati N = p x q = 6012707; izraunati (p 1)(q 1) = 6007800; bira se sluajni broj e = 3113390; rauna se d = 3674911. Odreivanje originalne poruke na osnovu kriptovane poruke i javnog kljua ekvivalentno je faktorizaciji proizvoda dva velika prosta broja [22]. Ukoliko bi neka osoba C faktorisala broj N i iz toga pronala proizvod (p 1)(q 1) ne moe doi u posed broja e, zato to on nema zajednikog delitelja sa 30
2.Kriptografija
(p 1)(q 1). Ako se desi da na neki nain sazna broj e, da bi dola do tajnog kljua d mora da faktorie broj N. Poto je broj N veoma veliki i do 309 decimalnih cifara, faktorizacija je skoro nemogua. Veliki prosti brojevi koji se koriste u RSA algoritmu nameu vie problema praktine prirode. Da bi se mnoili ovi brojevi, moraju se koristiti posebni algoritmi za mnoenje, za koje je potrebno vie vremena, samim tim se poveava vreme izvravanja algoritma za kriptovanje. Poreenja radi DES algoritam je u proseku oko 500 puta bri u odnosu na RSA. Sem toga, algoritmi za faktorizaciju su iz dana u dan sve bolji i bolji, te je danas 512-bitni RSA algoritam nedovoljan za bezbedno kriptovanje poruka. Meutim pretpostavlja se da e 1024-bitni RSA biti bezbedan jo petnaestak godina.
Slika 2.22
Postupak D-H kriptovanja
Osoba A u cilju razmene tajnog kljua sa osobom B alje poruku . Metodom izbora sluajnog broja generie celobrojnu vrednost x iz skupa brojeva {1,2,,p - 1}. Vrednost x koristi za kriptovanje pruke pomou formule:
X = x mod p Ovako formiran podatak X se alje do odredita B. Kada primi poruku i sazna X, i p Osoba B takoe na osnovu sluajnog izbora generie broj y i pomou njega rauna vrednost Y po formuli: Y = y mod p Ovako dobijenu funkciju vraa osobi A. Istovremeno na osnovu podataka koje je dobio od A i broja y (koga je sam generisao) rauna vrednost kljua K po formuli: K = X y mod p Kako je i osoba A dobila vrednost Y moe izraunati vrednost kljua K po formuli: K = Y x mod p
31
Kako je Xy = xy mod p = Yx to je zajedniki tajni klju K = xy mod p. Na ovaj nain osobe A i B dolaze do zajednikog tajnog kljua, koga nadalje koriste za kriptovanje odnosno dekriptovanje meusobnih poruka [23]. Ukoliko neka osoba C eli da doe u posed zajednikog tajnog kljua, znajui X, i p, prinuena je da koristi diskretni logaritam y = dlog,p(Y). Sigurnost D-H razmene kljueva lei u injenici da iako je relativno lako nai eksponente po modulu prostog broja, jako je teko nai diskretne logaritme. Ovo je naroito nezamislivo za velike proste brojeve.
Na Slici 2.23 je u vidu blokova prikazan algoritam za slanje izvorne poruke m od strane osobe A ka osobi B.
Slika 2.23
Postupak ElGamal kriptovanja
Prvo se obavlja generisanje i slanje javnog kljua od strane osobe B. Iz skupa prostih brojeva se odabere broj p kao i dva prosta broja g i x. Prilikom izbora brojeva potrebno je da vai g < p i x < p. Broj x predstavlja tajni klju osobe B, a javni klju se rauna po formuli y = gx mod p. Vrednosti y, g i p ine javni klju osobe B, koji se alje osobi A. Kriptovanje podataka m obavlja osoba A. Nakon to je saznala funkciju y (odnosno javni klju osobe B) osoba A generie sluajni broj k iz skupa prostih brojeva koji zadovoljava uslov NZD(k,p 1) = 1. Pomou broja k se formira funkcija r = gk mod p. Uz pomo funkcije y rauna se klju sesije po formuli s = yk (mod p)(m (mod p -1)). Sada se kriptovani tekst moe predstaviti kao ureeni par (r, s). Postupak dekriptovanja obavlja osoba B nakon primanja kriptovane poruke (r, s). Prvo se uz pomo tajnog kljua x rauna vrednost rx po formuli rx = (gk)x mod p. Nakon toga se rauna izvorna poruka pomou jednaine s/rx = ykm/(gk)x = (gx)k m/(gk)x = m (mod p-1). Bezbednost ovog algoritma se moe ugroziti ukoliko napada poseduje par (r, s) na osnovu koga moe rekonstruisati ureeni par (r, 2s) a samim tim i poruku 2m.
32
2.Kriptografija
to se tie efikasnosti kriptovanja, ElGamal algoritam se ne moe pohvaliti zato to je odnos izvornog teksta prema kriptovanom tekstu 2:1. Sa druge strane, izvorni tekst se moe kriptovati u vie oblika kriptovanog teksta to ga ini veoma fleksibilnim [11].
33
Slika 2.24
Postupak kriptovanja pomou PGP algoritma
Osoba A pre slanja poruke M Osobi B prvo izvri kompresiju pomou neke od metoda za kompresiju podataka (npr. ZIP). Komprimovanjem poruke se ubrzava vreme slanja poruke, a istovremeno i dobija na zatiti poruke. Tako kompresovana poruka M se kriptuje pomou nekog od simetrinih algoritama (DES, 3DES, IDEA ili slino) i session kljua. Na taj nain se dobija kriptovana poruka C. Zatim se vri kriptovanje session kljua pomou nekog od asimetrinih algoritama (RSA, ElGamal ili Diffie-Hellman) i javnog kljua osobe B. Tako nastaje kriptovana poruka S koja se alje osobi B zajedno sa porukom C [24]. Proces dekriptovanja se obavlja obrnutim redosledom radnji od procesa kriptovanja. Kada primi kriptovanu poruku osoba B upotrebljava svoj tajni klju i dekriptuje poruku koja sadri session klju. Korienjem session kljua osoba B dekriptuje kriptovanu poruku a kasnije je i dekompresuje u cilju dobijanja izvorne poruke. PGP program nudi nekoliko stepeni zatite: niski, visoki i vojni. Prvi koristi 512-bitni klju, drugi 768-bitni a vojni koristi 1024-bitni klju. Osim generisanja para kljueva, PGP algoritam nudi jo dosta sigurnosnih mera tipa: za generisanje kljueva se ne koristi generator kljueva ve algoritam trai od korisnika da unese neke podatke pomou tastature, a za to vreme meri razmake izmeu vremena udaraca i na osnovu njih generie kljueve. Isto tako PGP nudi potpisivanje poslatih dokumenata u cilju dokazivanja autentinosti.
34
35
Slika 3.1
Tehnika potpisivanja cele poruke Ukoliko neka osoba C eli poslati poruku, a da to izgleda kao da ju je poslala osoba A, onda za kriptovanje mora koristiti tajni klju osobe A. Ako osoba C ne poseduje ovakav klju i poalje poruku, takva poruka se ne moe korektno dekriptovati korienjem javnog kljua osobe A. Ako neka osoba C neovlaeno doe do kriptovanog sadraja poslate poruke (uhvati poruku), pokua da je promeni bilo celu ili neki njen deo, kasnijim dekriptovanjem takve poruke se dobija neitljiv sadraj. Na taj nain se odrava integritet poruke. Ako se poruka koju je poslala osoba A zabelei na nekom pomonom mestu i osoba A kasnije ospori da je poslala poruku, osoba B moe nai poruku na snimljenom mestu i pomou javnog kljua osobe A moe formirati duplikat originalne poruke. Znai tehnika potpisivanja cele poruke zadovoljava karakteristiku neporicljivosti [10].
Slika 3.2
Primena hash funkcije Tehnika potpisivanja sadraja poruke uglavnom koristi neku od dve he funkcije: MD5 (Message Digest 5) sa 128-bitnim sadrajem i SHA-1 (Secure Hash Algorithm 1) sa 160-bitnim sadrajem. Kako 36
bi garantovala siguran prenos poruke he funkcija mora da zadovolji dve stvari: Prvo, funkcija saimanja se obavlja u jednom smeru. Sadraj se jedino moe formirati na osnovu originalne poruke ne i obrnuto. Uz to, formiraje sadraja treba biti veoma brzo i jednostavno; Drugo, he funkcija je jednoznana, tj primena iste he funkcije na istoj poruci daje isti saetak. Nakon kreiranja sadraja poruke, vri se kriptovanje (potpisivanje) istog korienjem tajnog kljua osobe koja alje poruku (osoba A). Obino se za kriptovanje koristi RSA algoritam. Kriptovani sadraj se upakovan zajedno sa originalnom porukom alje osobi B. Na Slici 3.3 je prikazan postupak potpisivanja saetka. Osoba A primenom he funkcije formira saetak koji se potpisuje i upakovan sa porukom alje osobi B [10].
Slika 3.3
Postupak slanja sadraja poruke Osoba B prima originalnu poruku i kriptovani sadraj zajedno sa potpisom, a nakon prijema vri razdvajanje. Na Slici 3.4 je prikazana strana osobe B u procesu primanja poruke. Primenom he funkcije na originalnu poruku osoba B kreira drugi sadraj. Takoe, dekriptuje kriptovani sadraj koji je primila od strane osobe A uz pomo javnog kljua osobe A. Konano, vri poreenje predhodno kreiranih sadraja i ukoliko su isti uspeno je obavljena verifikacija poruke.
Slika 3.4
Postupak prijema potpisanog sadraja poruke 37
Kada se govori o izvornoj poruci sledea zapaanja ukazuju na njenu sigurnost: Ako sadraj dolazi od verifikovanog poiljaoca, isto tako i poruka dolazi u paketu od verifikovanog poiljaoca, ime je zadovoljena autentinost poruke. Zbog karakteristike jednoznanosti sadraja, ukoliko je sadraj preneen nepromenjen, zakljuuje se da je i poruka preneena nepromenjena ime se zadovoljava integritet. Osoba koja alje poruku ne moe se odrei sadraja, a samim tim i poruke koja se alje zajedno sa sadrajem, to ukazuje na neporicljivost [10].
3.3 He funkcije
3.3.1 MD5
MD5 (eng. Message Digest Algorithm 5) je he funkcija koja se primenjuje u aplikacijama za digitalno potpisivanje dokumenata. Duina sadraja koji se formira na osnovu MD5 funkcije je kratka (128 bita) to ga ini pogodnim za brzu proveru identiteta osoba koje alju obimne dokumente. Algoritam MD5 funkcije je razvio Ron Rivest 1991. godine, kao zamenu za MD4 algoritam. Nakon pet godina otkriveni su mali nedostatci u algoritmu te su kriptografi preporuivali upotrebu drugih he funkcija. Nekoliko narednih godina su otkriveni dodatni nedostaci te je upotreba ovog algoritma dovedena u pitanje. Tokom 2005. godine grupa istraivaa je uspela da formira isti sadraj primenjujui MD5 na dva razliita dokumenta. Zbog pronaenih nedostataka, danas se ovaj algoritam sve ree koristi za digitalno potpisivanje, ali je naao primenu u proveri integriteta fajlova, gde se koristi za izraunavanje kontrolnih suma, kod kojih sigurnost nije prioritetna [11]. MD5 algoritam kao ulaznu informaciju koristi w-bitni broj. Izvorni tekst se moe prikazati kao niz brojeva [26]: m0, m1, m2,,mw-2, mw-1 Gde je broj w, vrednost iz proirenog skupa prirodnih brojeva. Na poetku je potrebno izvriti dopunu ulazne informacije do vrednosti koja se dobija od broja koji je celobrojni umnoak od 512 bita umanjenog za 64 bita. Na primer, ukoliko se izvorna poruka sastoji od 128 bitova (w = 127) potrebno je dopuniti do 448 bitova tj. 512 64 = 448. Dopuna se zapoinje sa poetnim bitom 1 a svi ostali bitovi za popunjavanje imaju vrednost 0. Nakon dopune poruke, izvornoj poruci je potrebno dodati 64-bitnu reprezentaciju broja w. Ukoliko je duina poruke vea i ne moe da se predstavi pomou 64 bita, poruci se dodaje samo niih 64 bita. Dodavanjem ovih 64 bita duina cele poruke postaje deljiva sa 512, odnosno deljiva sa 16 rei od 32bita. Sada se poruka moe prikazati kao:
M [1,2,..., N ]
Gde je N broj deljiv sa 16. Ovako pripremljenu poruku algoritam kasnije koristi prilikom formiranja sadraja. Na Slici 3.5 je prikazan izgled jednog od mogua 64 koraka izvrenja MD5 algoritma. Nakon predhodne pripreme poruke, potrebno je inicijalizovati 128-bitni bafer koji se sastoji od etiri 32-bitna registra A, B, C i D. Kao inicijalne vrednosti koje se upisuju u ove registre koriste se proizvoljne 32bitne konstante [27].
38
Slika 3.5
Korak MD5 algoritma Posle zavrene inicijalizacije, pokree se prvi korak MD5 algoritma. Ukupnih 64 koraka se deli u etiri ciklusa od po 16 koraka. Algoritam je formiran za izvrenje 512 bita poruke, to znai da ukoliko je poruka dua od 512 bita izvrenje algoritma se mora ponoviti. Algoritam se sastoji od etiri ciklusa koji imaju isti tok s tim to se prilikom izraunavanja u svakom od ciklusa koristi razliita logika funkcija F, G, H i I. Funkcije se raunaju po formulama:
sadraje. To su SHA-256, SHA-224, SHA-384 i SHA-512 a nazive su dobile po duini sadraja. Zbog dueg sadraja ove varijante su sigurnije reenje u odnosu na SHA-0 i SHA-1. Ovi algoritmi ine grupu nazvanu SHA-2. Iako je ova grupa algoritama po pitanju sigurnosti bolje reenje, danas je zbog jednostavne implementacije i brzine najvie u upotrebi SHA-1. U osnovi SHA-1 je baziran na idejama MD4 i MD5 algoritama. Ulazna poruka se dopuni po potrebi slino kao i kod MD5 a nakon toga smeta u ulazni bafer koji se sastoji od pet 32-bitnih registra. Izraunavanje se vri u okviru 80 koraka i pritom se koriste operacije aritmetikog sabiranja po modulu 232, pomeranja ulevo za odreeni broj pozicija i etiri tipa funkcija. Prvi tip funkcije se koristi u okviru prvih dvadeset koraka a rauna se po formuli [11]:
F ( X , Y , Z ) = ( X Y ) ( X Z )
G( X , Y , Z ) = X Y Z
Od etrdesetog do ezdesetog koraka se koristi funkcija oblika:
H ( X , Y , Z ) = ( X Y ) ( X Z ) (Y Z )
I ( X ,Y , Z ) = X Y Z
Gde su ,, , operacije AND, OR, NOT i XOR respektivno. Konaan rezultat se smeta u poetna pet 32-bitna registra. SHA-1 predstavlja industrijski standard u kriptografiji i naao je primenu u mnogim aplikacijama kao to su TLS, SSL, PGP, SSH, S/MIME i IPSec (o kojima e vie rei biti kasnije).
40
4 Autentifikacija entiteta
Autentifikacija predstavlja proceduru pomou koje se vri uzajamna verifikacija identiteta dva entiteta. Kada se govori o entitetu misli se na neku osobu, proces, klijenta ili server. U nastavku e se, radi jednostavnijeg objanjenja procedura, pojam entiteta odnositi na neku osobu. Autentifikacija entiteta se moe obavljati korienjem simetrinog ili asimetrinog kriptovanja.
Slika 4.1
Prvi vid autentifikacije entiteta Postavlja se pitanje da li je ovaj vid autentifikacije dovoljno bezbedan. injenica je da napada, odnosno osoba C ne moe videti sadraj ili lozinku zato to ne poseduje klju KAB. Meutim, ukoliko osoba C uhvati obe poruke i autentifikacionu i poruku koja nosi podatke, moe da ih snimi negde i kasnije ih poalje ka B. Osoba B ne zna da li je poruka poslata od osobe A ili od osobe C. Znai, tokom ovog vida autentifikacije ne postoji nita to moe garantovati autentinost izvora poruke. Posledice usled zloupotrebe mogu biti znaajne. Na primer, Osoba A poalje poruku osobi B (na primer bankarski menader) da izvri plaanje nekoj osobi C. Osoba C moe da uhvati poruku i da je poalje osobi B. Ne znajui da poruka dolazi od osobe C (a ne od A) osoba B moe po drugi put izvriti isplatu. Na taj nain je osoba C izvrila zloupotrebu koja se naziva ponovljeni napad [10].
Slika 4.2
Drugi vid autentifikacije Autentifikacija entiteta se obavlja u tri koraka: Prvo, osoba A alje osobi B svoju identifikaciju u obliku izvornog teksta. Nakon toga, Osoba B proziva osobu A slanjem one-time broja RB takoe u obliku izvornog teksta. Na ovaj nain osoba B saznaje da osoba A eli razmenu poruka, a slanjem broja RB ona eli da proveri da li je poruka zaista stigla od osobe A. U poslednjem koraku, nakon prepoznavanja prozivke od strane osobe B, osoba A se odaziva vraanjem kriptovanog broja RB nazad ka osobi B. Za kriptovanje broja RB se najee koristi metoda simetrinog kriptovanja pomou tajnog kljua. U okviru ovog koraka osoba A dokazuje da je ona upravo ta koja eli razmenu sa osobom B [10]. Prednost ove metode za autentifikaciju entiteta se ogleda u jednostavnosti implementacije, odnosno sprovoenje uzajamne autentifikacije pomou relativno malog broja koraka. Osnovni nedostatak je taj to je izvrena samo verifikacija osobe A, dok je identitet osobe B nepoznat.
Slika 4.3
Bidirekciona autentifikacija entiteta 42
4.Autentifikacija entiteta
U drugom koraku, osoba B se odaziva na poziv osobe A slanjem kriptovanog broja RA (pomou tajnog kljua KAB) i slanjem sopstvenog broja RB. Time osoba B obavetava osobu A da je primila poziv, a ujedno eli da proveri da li je poruka stvarno poslata od strane osobe A. Nakon poslate poruke osoba B oekuje povratnu poruku koja e joj dokazati da je osoba A proitala predhodno poslatu poruku i pokazati da poseduje tajni klju KAB. Kada je primila poruku od strane osobe B, osoba A je ustanovila da je poruka sigurno dola od osobe B (vraen joj je poslati broj RA), a ujedno i stekla utisak da osoba B poznaje tajni klju KAB. Ukoliko to nije tako, ve je poruku poslala osoba koja se lano prestavlja kao osoba B, osoba A bi dekriptovanjem dobijene poruke dobila neispravnu vrednost broja RA [10]. U treem koraku, osoba A se odaziva osobi B slanjem kriptovanog (KAB) broja RB. Imajui u vidu injenicu da se za svaku sesiju koriste razliiti setovi brojeva za RA i RB i da prilikom jedne sesije se jednovremeno obavlja samo jedna autentifikacija, moe se zakljuiti da je ova metoda veoma jednostavna i bezbedna u smislu ponovljenog napada. Kao takva predstavlja odlino reenje za uzajamnu autentifikaciju entiteta [10].
Slika 4.4
Autentifikacija entiteta korienjem asimetrinog kriptovanja Osoba A pre nego to zapone komunikaciju sa osobom B, obraa se serveru za autentifikaciju i od njega trai javni klju osobe B (KB). Kada server ustanovi identitet osobe A alje joj poruku sa kljuem KB. Poto je primila poruku, osoba A formira pseudo-sluajni broj RA i zajedno sa svojim identitetom ga kriptuje pomou javnog kljua KB. Poruka je kriptovana pomou javnog kljua osobe B to znai da je moe dekriptovati jedino osoba B pomou svog tajnog kljua. Osoba B, kada primi poruku dekriptuje je 43
sa svojim tajnim kljuem, i trai od servera javni klju osobe A, KA. Server, takoe proverava identitet osobe B i ako je sve u redu alje joj traeni klju KA. Koristei javni klju KA, osoba B kriptuje poruku koja sadri primljeni broj RA, njen broj RB i klju sesije KS. Ovako formiranu poruku osoba B alje osobi A, i na taj nain joj dokazuje da je uspeno dola do broja RA i da je ona upravo ta osoba kojoj su poruke namenjene. Istovremeno formira klju sesije KS koji e kasnije sluiti kao zajedniki klju za sigurnu razmenu podataka izmeu ova dva entiteta. Na kraju, osoba A kada primi poruku dekriptuje je sa svojim tajnim kljuem, uzima broj RB i koristei klju sesije KS kriptuje poruku. Tako kriptovanu poruku alje nazad ka osobi B. Na ovaj nain je osoba A dokazala osobi B da je uspeno dekriptovala poruku i da je primila klju za obavljanje razmene podataka KS [10], [28].
44
5 Upravljanje kljuevima
Ukoliko neka osoba poseduje odreeni klju za dekriptovanje lako moe proitati odgovarajuu poruku, a ukoliko se klju ne poseduje itanje poruke je nemogue. Upravo ta injenica ukazuje na to da su kljuevi najbitnije informacije u kriptografiji, a samim tim upravljanje kljuevima je od sutinske vanosti u svim kriptosistemima. Na Slici 5.1 je prikazan ivotni vek kljua. Svaki klju zapoinje svoj ivot kreiranjem, a zavrava sa unitenjem. Pre upotrebe klju mora da proe kroz fazu distribucije do korisnika i uvanje kljua do upotrebe. U dosta sluajeva se deava da je potrebno da se klju, usled nekog nedostatka, zameni odgovarajuim novim kljuem.
Slika 5.1
Zivotni vek kljua Zadatak upravljanja kljuevima je da u svakom trenutku obezbedi tajnost i integritet kljueva. Upravljanje kljuevima se ne odnosi samo na zatitu kljueva tokom upotrebe, nego i na kreiranje sigurnog kljua, njegovu distribuciju do udaljenog korisnika, utvrivanje korektnosti kljua i njegovo unitavanje u sluaju da se dovede u sumnju ili izgubi. Veoma je vaan odabir odgovarajueg kljua za kriptovanje odreene vrste podataka. Ranije je bilo govora o korienju simetrine i asimetrine kriptografije u zatiti poruka i autentifikaciji, meutim nije bilo rei kako se vri distribucija kljueva u okviru simetrine kriptografije ili kako se vri provera kljueva u okviru asimetrine kriptografije. Distribucija i provera kljueva su takoe od kljune vanosti u sigurnosnim sistemima.
duine. Pametan izbor lozinke ukljuuje korienje brojeva i specijalnih karaktera. Treba napomenuti da je prostor predvien za ukucavanje lozinke promenjive veliine i da je poeljno koristiti to vei broj karaktera. Ovo smanjuje mogunost, a i produava vreme koje je potrebno, za otkrivanje kljua. Neki kljuevi se dobijaju uz pomo pseudo-sluajnog broja. Za ovakav nain dobijanja kljua potrebni su generatori sluajnih brojeva. Ukoliko generator generie ba sluajne brojeve malo je verovatno da e napada otkriti klju predviajui cifre koje ga ine. Jedna od najvanijih karakteristika koja se mora imati u vidu je duina kljua. Neki od algoritama koriste kljueve fiksne duine, kao to je DES algoritam sa kljuem od 56 bita, meutim najbolja varijanta je kada korisnik moe da vri izbor duine kljua. Klju duine 1024 bita u okviru RSA algoritma je sigurniji nego klju od 512 bita kod istog algoritma.
5.Upravljanje kljuevima
koristi se neki trei entitet kome veruju obe strane u komunikaciji. Ovaj entitet se naziva centar za distribuciju kljueva ili KDC (eng. Key Distribution Center). Osobe A i B su klijenti KDC-a (Slika 5.2). Izmeu osobe A i KDC-a se koristi jedan simetrini tajni klju do koga osoba A dolazi na siguran nain, na primer linim odlaskom u centar. KA je tajni klju osobe A, dok je KB tajni klju osobe B. Ove tajne kljueve mora posedovati svako ko eli komunicirati pomou KDC-a [10].
Slika 5.2
Proces razmene kljueva pomou KDC-a Klju KAB je zajedniki klju za sesiju izmeu osobe A i B. Postupak razmene kljua se obino obavlja u nekoliko koraka: Korak1. Osoba A alje poruku KDC-u sa zahtevom za komunikacijom sa osobom B, a u cilju kreiranja zajednikog kljua sesije KAB. Poruka sadri podatke o identitetu osobe A i identitetu osobe B. Treba napomenuti da ova poruka nije kriptovana. Korak2. KDC prima poruku i kreira takozvani tiket namenjen osobi B. Poto KDC zna tajni klju osobe B, koristi ga kako bi kriptovao pomenuti tiket. Tiket sadri identitete osoba A i B i zajedniki klju KAB. Ovako formiran tiket se upakuje zajedno sa zajednikim kljuem za jednu sesiju KAB, kriptuje sa kljuem KA i na kraju poalje osobi A, kao poruku. Nakon prijema poruke osoba A je dekriptuje, a zatim otpakuje zajedniki klju, KAB. Poto nema klju KB ne moe da otpakuje tiket namenjen osobi B. Korak3. U okviru ovog koraka osoba A prosleuje tiket namenjen osobi B. Osoba B poto primi tiket, otpakuje ga i pamti klju KAB koji joj je neophodan radi razmene poruka sa osobom A [10].
Nakon treeg koraka, Osobe A i B mogu razmeniti podatke korienjem kljua KAB kao kljua za one-time sesiju. Pored navedenog standardnog naina razmene kljueva sa KDC-om postoji nekoliko drugih varijanti odnosno protokola za razmenu kljueva. 5.2.1.2 Needham-Schroeder protokol Kako bi postigao to sigurniju razmenu kljueva izmeu entiteta ovaj protokol ini vie naizmeninih akcija gde se pod akcijom smatra razmena poruka tipa izazov-odgovor izmeu dva entiteta. Tokom akcija razmene kljueva Needham-Schroeder protokol koristi KDC i predstavlja odlino 47
reenje po pitanju sigurnosti. Vai za fundamentalni protokol na osnovu koga su nastali mnogi drugi protokoli. Prema poslednjoj verziji ovog protokola tokom akcija se koriste etiri sluajna broja: RA, RB, R1 i R2. Ovi brojevi se generiu samo za jednu sesiju. Na Slici 5.3 je prikazana razmena kljua pomou Needham-Schroeder protokola [10].
Slika 5.3
Proces razmene kljua pomou Needham-Schroeder protokola Protokol se sastoji od sedam koraka: Korak 1. Osoba A alje svoj identitet osobi B, i na taj nain joj saoptava da eli komunikaciju. Korak 2. Osoba B pomou svog tajnog kljua KB kriptuje predhodno generisani broj RB koji namenjuje KDC-u, ali ga alje osobi A. Kada primi poruku, osoba A e je proslediti do KDC-a u cilju dokazivanja da je osoba koja komunicira sa osobom B jedina koja e komunicirati sa KDC, odnosno da nije napada. Korak 3. Poruka koju osoba A alje ka KDC sadri sluajan broj RA, identitet osobe A, identitet osobe B i kriptovani broj RB. Treba napomenuti da ova poruka nije kriptovana, i da predstavlja zahtev osobe A namenjen KDC-u u cilju obezbeivanja tajnog kljua sesije KAB za obavljanje sigurne razmene podataka izmeu osoba A i B. Korak 4. KDC vraa osobi A poruku sa sledeim sadrajem: broj RA, identitet osobe B, klju sesije KAB i kriptovani tiket koji je namenjen osobi B. Ovaj tiket je kriptovan tajnim kljuem osobe B, a sadri klju sesije KAB, identitet osobe A i broj koji je predhodno generisala osoba B,
48
5.Upravljanje kljuevima
RB. Na taj nain je osoba A dobila odziv od KDC-a koji sadri sve neophodne podatke za bezbednu komunikaciju sa osobom B. Korak 5. Osoba A prosleuje osobi B tiket dobijen od KDC i novi broj R1 u cilju prozivanja i verifikacije osobe B. Korak 6. Osoba B odgovara na poziv osobe A slanjem kriptovanog broja R1 1 i pozivom osobe A brojem R2. Ako osoba A nakon dekriptovanja primljene poruke dobije oekivani broj R1-1, to znai da je identitet osobe B verifikovan, jer je onaj ko je poslao ovu poruku bio u stanju da primenom KB doe do KAB, a to moe samo osoba B. Korak 7. U okviru poslednjeg koraka osoba A ponovo odgovara na poziv slanjem kriptovanog (pomou kljua KAB) broja R2 1. Ovom porukom osoba A obavetava osobu B da je primila verifikaciju i istovremeno verifikuje sebe osobi B [10].
5.2.1.3 Otway-Rees protokol Otway-Rees protokol je takoe baziran na metodi razmene poruka pomou KDC-a. Protokol ini nekoliko koraka koji su prikazani na Slici 5.4.
Slika 5.4
Razmena poruka pomou Otway-Rees protokola Prednost ovog protokola u odnosu na predhodnu metodu je u manjem broju poruka koje se razmenjuju, odnosno, pet poruka u odnosu na ranijih sedam. Tanije, protokol ini sledeih pet koraka: Korak 1. Na poetku, osoba A alje poruku osobi B, koja sadri sluajni broj R, identitete osoba A i B i kriptovani tiket namenjen KDC-u koji ukljuuje broj RA, kopiju zajednikog broja R i identitete osoba A i B. Korak 2. Osoba B kreira tiket istog tipa namenjen KDC-u, a ine ga broj RB, broj R, identiteti osoba A i B. Ovaj tiket kriptuje pomou kljua KB i zajedno sa tiketom koji je primila od osobe A alje ka KDC-u. Ova poruka se alje u cilju dokazivanja identiteta KDC-u od strane osoba A i B.
49
Korak 3. KDC kreira poruku koja sadri zajedniki broj R, tikete namenjene osobama A i B i tako kreiranu poruku alje osobi B. Tiketi sadre odgovarajue brojeve RA ili RB i zajedniki klju sesije KAB. Korak 4. Osoba B prosleuje tiket namenjen osobi A. Korak 5. Osoba A alje kriptovanu poruku sa kljuem KAB, koji je dobila od osobe B [10].
50
5.Upravljanje kljuevima
Sertifikat namenjen za Web servere, a koriste se za konfigurisanje SSL (eng. Secure Sockets Layer) i/ili TLS (eng. Transport Layer Security) protokola na Web serverima (Microsoft IIS, Apache, Sun-Netscape iPlanet, Red Hat Stronghold, Sun ONE, IBM HTTP Server,...). Namena SSL i TLS protokola je uspostavljanje zatienog komunikacionog kanala izmeu Web servera i Web klijenata. Ovo praktino znai da ako se eli da se na nekoj Web prodavnici kupcima omogui plaanje kreditnim karticama ili pruanje poverljivih informacija, neophodno je da server na kome se nalazi ta Web prezentacija radi kao Secure Web Server. Uslov koji mora da ispuni pomenuti Web server je da poseduje digitalni sertifikat od nekog CA [29]. Za uvanje digitalnih sertifikata se koriste sledei mediji: hard disk raunara, CD, USB flash memorija, PKI smart kartica ili PKI USB smart token. 5.2.2.2 X.509 protokol Iako sertifikaciono telo reava problem zloupotrebe javnog kljua javljaja se jedan nedostatak. Ovaj nedostatak se odnosi na razliitost formata koje sertifikati mogu imati. To znai da jedan sertifikat moe imati javni klju u jednom formatu, a drugi u drugom formatu. Javni klju moe biti u okviru prve linije nekog sertifikata, a kod nekog drugog moe biti i u okviru tree linije. Radi eliminisanja predhodno opisanog nedostatka, ustanovljen je protokol koji se naziva X.509. Nakon nekih izmena ovaj protokol je iroko prihvaen na Internetu. X.509 je postupak pomou koga se opisuje sertifikat na strukturalnom nivou. X.509 sertifikat na strukturalnom nivou sadri [31]: - Verziju, - Serijski broj, - Algoritam za identifikaciju, - Izdavalac, - Validnost, - Naslov, - Informacije o javnom kljuu, - Jedinstveni identifikator izdavaa sertifikata (opciono), - Naslov jedinstvenog identifikatora (opciono), - Ekstenzija (opciono), - Algoritam potpisa sertifikata, - Potpis sertifikata. Na Slici 5.5 je prikazan sadraj jednog X.509 sertifikata.
51
Slika 5.5
Izgled X.509 sertifikata 5.2.2.3 Infrastruktura javnog kljua (Public Key Infrastrukture, PKI) Upotrebom javnih kljueva se javlja problem slian DNS-u (eng. Domain Name System). Problem se sastoji u tome da jedan DNS server ne moe da opslui sve zahteve na internetu. Iz tog razloga se uvodi vie servera koji zajedno opsluuju zahteve, uz to dolo se do reenja da je najbolje da se izmeu servera uspostavi hijerarhijski odnos. To znai da ukoliko neka osoba A ima potrebu za IP adresom osobe B, osoba A alje zahtev lokalnom serveru koji moe a ne mora imati traenu IP adresu. Ukoliko ne poseduje IP adresu osobe B server prosleuje zahtev ka drugom serveru koji se nalazi na viem nivou, i tako nadalje sve dok se ne pronae zahtevana adresa [10]. Slino DNS-u, problem pribavljanja javnih kljueva se reava upotrebom hijerarhijske strukture koja se naziva PKI (eng. Public Key Infrastructure). Primer jedne ovakve strukture je dat na Slici 5.6.
Slika 5.6
Hijerarhijska strruktura PKI-a U okviru prvog nivoa strukture, nalazi se Root CA koji moe da sertifikuje CA-ove u okviru sledeeg nieg nivoa kao to su: Level-1 CA1 i Level-1 CA2. Ovi CA-ovi operiu nad velikim 52
5.Upravljanje kljuevima
geografskim i logikim oblastima. Na nivou Level-2 se nalaze CA-ovi koji operiu nad manjim oblastima. CA-ove u okviru ovog nivoa mogu da sertifikuju CA-ovi koji se nalaze na nivou vie. Ovakvom hijerarhijom upravlja Root CA, tako da svi korisnici imaju poverenje u njega. Za razliku od Root CA ostalim CA-ima mogu, a i ne moraju verovati svi korisnici. Na primer, ako osoba A trai sertifikat osobe B moe ga pribaviti od bilo kog CA, ali mu ne mora verovati. Ukoliko mu ne veruje osoba A moe zatraiti sertifikat od CA koji se nalazi u nekom viem nivou. Traganje za validnim sertifikatom se moe nastaviti u pravcu Root-a. 5.2.2.4 Kerberos Kerberos je istovremeno autentifikacioni protokol i KDC. U poslednje vreme jako popularan, i koristi se u velikom broju aplikacija i operativnih sistema. Kerberos se moe opisati kao siguran protokol za autentifikaciju koji koristi prijavljivanje tipa prijavi se samo jednom (eng. Single Sign On) to omoguava veliku efikasnost u radu. Korisnicima je omogueno da se samo jednom prijave na sistem i da nakon toga, u skladu sa svojim ovlaenjima, imaju pristup resursima u sistemu ili mrei [32]. Postoji vie implementacija Kerberos protokola, koje su razvijane za razliite namene: Osnovnu verziju kerberosa je formirao MIT (Massachusetts Institute of Technology) ranih devedesetih godina. Do danas se pojavilo vie verzija ovog protokola, a najpopularnije su MIT verzija 4 i verzija 5. Heimdal kerberos je vedska kopija MIT Kerberos-a sa kojim je u potpunosti kompatibilan. Aktivni direktorijum je razvio Microsoft i sam po sebi nije Kerberos ali sadri neke njegove elemente u kombinaciji sa drugim servisima, kao to je LDAP (eng. Lightweight Directory Access Protocol). Treba napomenuti da Aktivni direktorijum nije kompatibilan sa MIT i Heimdal Kerberosom. Trust Broker predstavlja komercijalnu implementaciju Kerberos protokola. Ovu implementaciju podrava veina operativnih sistema. Uz to, Trust Broker je potpuno kompatibilna sa svim navedenim implementacijama Kerberos protokola, to je ini jako fleksibilnom. Shishi je GNU implementacija MIT Kerberosa verzije 5.
U cilju razumevanja redosleda operacija i naina rada Kerberos protokola, najpre je potrebno objasniti nekoliko pojmova vezanih za njega. Komunikacije izmeu entiteta u okviru Kerberos protokola se baziraju na razmeni tiketa. Tiket predstavlja vrstu kriptovanih podataka koji se prenose putem mree, i dostavljaju klijentu koji ih uva i kasnije koristi kao propusnicu za uspostavljanje komunikacije sa odgovarajuim serverom. Prilikom kriptovanja poruka/tiketa Kerberos protokol koristi simetrini DES algoritam ili njegove varijante kao to je 3DES a Kerberos verzija 5 koristi iskljuivo AES algoritam za kriptovanje. Okruenje Kerberosa ine tri servera i to: server za autentifikaciju (eng. Authentication server, AS), server za izdavanje tiketa (eng. Ticket-Granting Server) i server za podatke koji se titi opteg tipa. Na Slici 1 je prikazan odnos izmeu pomenutih servera [32],.
53
Slika 5.7
Serveri koji se koriste u okviru Kerberos protokola Server za autentifikaciju (AS) koji se koristi u Kerberos protokolu ima ulogu KDC-a. Svaki entitet, ukoliko eli pristup serveru za podatke koji se titi, mora se registrovati kod AS. AS poseduje bazu podataka u kojoj uva identitete i odgovarajue ifre za pristup serveru koji se titi. Poto dobije zahtev za pristupom od strane nekog entiteta (Osobe A), AS vri utvrivanje identiteta entiteta (osobe A), izdaje klju koji se moe koristiti za jednu sesiju izmeu osobe A i servera za izdavanje tiketa i alje tiket TGT (eng. Ticket GrantingTicket) ka osobi A, kao odgovor. Server za izdavanje tiketa izdaje tiket TGS (eng. Ticket Granting Service) namenjen osobi A i serveru B a obezbeuje klju sesije KAB koji se koristi u komunikaciji izmeu osobe A i servera B. Kerberos razdvaja servise provere identiteta i izdavanja tiketa, to predstavlja pravo reenje u sluaju kada neka osoba eli koristiti usluge vie razliitih servera. Dovoljno je da ta osoba izvri verifikaciju svog identiteta kod AS samo jednom, onda se vie puta obrati serveru za dozvolu tiketa u cilju dobijanja tiketa za pristup razliitim serverima. Svaki zatieni server prua izvesne usluge entitetu, pri emu se razmena podataka izmeu entiteta i servera iskljuivo obavlja pomou klijent-server aplikacija kao to je FTP (eng. File Transfer Protocol). Princip rada procesa pristupa klijenta serveru, pomou Kerberos protokola, je prikazan na Slici 5.8.
54
5.Upravljanje kljuevima
Slika 5.8
Primer Kerberos protokola Postupak pristupa klijenta (Osoba A) serveru B, u cilju bezbednog korienje njegovih usluga, se obavlja u okviru sledeih est koraka: Korak 1. Osoba A alje zahtev ka AS. Zahtev sadri identitet osobe A u nekriptovanom obliku. Korak 2. Kada primi zahtev, AS alje osobi A poruku, u vidu tiketa TGT, kriptovanu pomou KA odnosno simetrinog kljua osobe A. Poslati TGT se sastoji od dva podatka: Klju sesije KS koji e osoba A koristiti za komunikaciju sa serverom za dozvolu tiketa i tiket namenjen serveru za dozvolu tiketa koji je kriptovan sa simetrinim kljuem KTG. Osoba A ne mora da uva svoj klju KA u originalnom obliku, ali ga po potrebi moe formirati. Kada primi poruku od AS, osoba A unosi odgovarajuu ifru koja (ukoliko je korektna) uz pomo odgovarajueg algoritma kreira klju KA. Neposredno nakon uspenog kreiranja kljua, uneta ifra se uklanja sa raunara, radi spreavanja eventualnih zloupotreba. Pomou kljua KA se uspeno dekriptuje poruka dobijena od strane AS-a ime osoba A dobija KS i tiket namenjen serveru za dozvolu tiketa. Korak 3. Osoba A alje ka serveru za dozvolu tiketa tri podatka: tiket primljen od AS-a, ime servera ije usluge eli koristiti (server B) i kriptovani (pomou kljua KS) vremenski zapis T, koji sadri informacije o datumu i vremenu trajanja sesije. Vremenski zapis se koristi kao preventivna mera od eventualnog kasnijeg pristupa neke osobe C. Ovako upakovani podaci, namenjeni serveru za dozvolu tiketa, predstavljaju zahtev za izdavanje TGS tiketa. Korak 4. Poto je primio zahtev, server za dozvolu tiketa alje odgovor u vidu TGS tiketa ka osobi A. TGS tiket sadri dva tiketa i to: jedan tiket namenjen upravo osobi A, a drugi namenjen serveru B. Tiket namenjen osobi A sadri klju sesije KAB i identitet servera B, a kriptovan je pomou kljua KS. Tiket namenjen serveru B, takoe sadri klju sesije KAB, identitet osobe A, a kriptovan je pomou tajnog kljua servera B, KB. Ukoliko neka osoba C doe u posed kljua sesije KAB moe nesmetano obaviti razmenu podataka sa serverom B, meutim poto ne poseduje tajne kljueve KS ili KB nije u mogunosti da dekriptuje neki od tiketa koji sadre klju sesije. Korak 5. Osoba A alje tiket namenjen serveru B i vremenski marker koji je kriptovan kljuem sesije KAB. Korak 6. Na kraju server vraa poruku osobi A, kao potvrdu komunikacije. Poruka se sastoji od primljenog vremenskog zapisa T uveanog za 1 koji je kriptovan pomou kljua sesije KAB [10]. 55
Ukoliko osoba A eli da koristi usluge nekog drugog servera, potrebno je da ponovi operacije samo u okviru poslednja etiri koraka. Prva dva koraka se odnose na proveru identiteta osobe A i nisu neophodna. Osoba A moe zahtevati od servera za dozvolu tiketa da mu izda tikete za pristup razliitim serverima. Kerberos protokol predstavlja pouzdanu metodu za autentifikaciju u okviru javnih mrea kao to je na primer Internet. Na pouzdanost i opravdanost korienja utiu sledee konstatacije: Kerberos se koristi ve due vreme, to ukazuje na injenicu da je opstao i da je dosta testiran. Projektovan je da odgovori na strogo definisane zahteve po pitanju sigurne autentifikacije u otvorenim okruenjima koja koriste nezatiene komunikacione linije. Sastoji se iz seta jednostavnih arhitekturalnih i funkcionalnih pojmova, koji omoguavaju jednostavnu integraciju sa drugim sistemima to ga ini jako fleksibilnim. Veina operativnih sistema i softverskih aplikacija ga ve ima implementiranog u svom kodu, odnosno predstavlja deo IT infrastrukture dananjice [33].
56
Slika 6.1
Sigurnosni protokoli u okviru TCP/IP modela U okviru modela se moe primetiti upotreba razliitih sigurnosnih protokola za zatitu podataka u zavisnosti o kom se TCP/IP sloju radi. Zatita na mrenom sloju obezbeuje se izmeu mrenih vorova pri emu se vri zatita IP paketa. Zatita IP paketa se ostvaruje primenom kriptografskih algoritama (simetrini i asimetrini algoritmi za kriptovanje, he funkcije, digitalni potpis i drugi). Najpoznatiji sigurnosni protokol na ovom nivou je IPSec protokol. Na transportnom sloju se ostvaruje zatita tajnosti podataka primenom simetrinih kriptografskih algoritama i proverama identiteta (digitalni potpis, he funkcije, digitalni sertifikati) strana koje komuniciraju . Najpoznatiji sigurnosni protokoli koji se koriste na ovom sloju su: SSL, SSH, TLS i WTLS. Na aplikacionom sloju primenjuju se tehnologije poput digitalnog potpisa i zatita podataka primenom simetrinih kriptografskih algoritama. Najpoznatiji sigurnosni protokoli koji se primenjuju na ovom sloju su: S/MIME, Kerberos, PGP, i drugi.
6.1 IPSec
IPsec (eng. IP security) predstavlja skup sigurnosnih protokola namenjenih zatiti paketa koji se prenose putem Interneta. Ovi protokoli funkcioniu na transportnom sloju TCP/IP modela i implementirani su u okviru IPv6 sistema, a mogu se opcionalno ukljuiti i unutar IPv4 sistema. Zbog injenice da funkcionie na transportnom sloju, IPsec prua jednostavnu i efikasnu zatitu i za TCP i za UDP protokole komunikacije preko raunarske mree. IPsec moe da radi u dva naina rada: 57
U okviru transportnog naina rada paketi se alju izmeu dva krajnja entiteta u mrei, pri emu entitet koji prima paket izvrava sigurnosne provere pre isporuivanja paketa viim slojevima. U okviru ovog naina rada IPSec heder se umee odmah nakon IP hedera, a pre ostatka paketa kao to je prikazano na Slici 6.2 (a). Kod tunelskog naina rada nekoliko entiteta ili cela jedna lokalna mrea sakriva se iza jednog vora te je kao takva nevidljiva ostatku mree, a samim tim i zatiena od napada. Shodno tome, IPSec heder se dodaje ispred IP hedera poruke pa se ovako formiranoj poruci dodaje novi IP heder, shodno Slici 6.2(b).
(a)
(b)
Slika 6.2
Prikaz paketa prilikom: a) Transportnog naina rada; b) Tunelskog naina rada Kako standardni IP protokol nije pruao nikakve elemente zatite, pred IPSec postavljeni su i sledei zahtevi: kriptovanje podataka koji se prenose provera integriteta podataka autentificiranje entiteta kroz koje paket prolazi AH protokol (eng. Authentication Header) i ESP protokol (eng. Encapsulating Security Payload),
Authentication Header (AH) protokol je projektovan tako da garantuje autentinost i integritet paketa podataka koji se prenose. Protokol korienjem neke od ranije navedenih he funkcija (vidi poglavlje 3.3.) formira saetak koji umee u AH heder. AH heder se kasnije doda na odgovarajuu lokaciju u paketu, zavisno koji se nain rada koristi (transportni ili tunelski). Izgled AH hedera je prikazan na Slici 6.3.
Slika 6.3
Izgled AH hedera 58
6.Sigurnosni protokoli
Znaenje pojedinih polja u okviru AH je: Next Header oznaava protokol koji se koristi za prenos podataka (TCP ili UDP) Payload Length polje koje definie duinu AH Reserved polje koje se jo uvek ne koristi (svi bitovi se postavljaju na nulu) Security Parameters Index (SPI) polje koje sadri kombinacije sigurnosnih parametara Sequence Number redni broj paketa, a koristi se za zatitu od replay napada (radi se o napadima koji se zasnivaju na uzastopnom slanju istih paketa) Authentication Data polje se koristi za umetanje saetka poruke u cilju autentifikacije
AH protokol ne vri autentifikaciju entiteta koji je poslao paket podataka, to predstavlja veliki nedostatak zbog koga je uveden alternativni protokol nazvan Encapsulating Security Payload. Encapsulating Security Payload (ESP) protokol sadri dva polja: ESP heder i ESP trailer. ESP heder se umee odmah nakon IP hedera poruke a ESP trailer (veliine 32 bita) se umee neposredno ispred podataka za autentifikaciju koji se nalaze na kraju poruke. Na Slici 6.4 je prikazana poruka koja sadri pomenuta zaglavlja [34].
Slika 6.4
Prikaz paketa u okviru ESP protokola Znaenje pojedinanih polja je: Security Parameters Index (SPI) - kombinacija sigurnosnih parametara slino kao i kod AH Sequence Number - redni broj paketa, koristi se za zatitu od replay napada Payload Data podaci koji se alju Padding koristi se za popunu podataka do veliine celog bloka (32 bita). Pad Length polje oznaava duinu Padding polja Next Header oznaava protokol koji se koristi za prenos podataka (TCP ili UDP) Authentication Data polje koje sadri podatke potrebne za autentifikaciju entiteta i poruke. Skup pravila koji definie koje e strane u komunikaciji koristiti za zatitu meusobnog saobraaja je SA (eng. Security Association). SA sadri sve sigurnosne parametre potrebne za siguran transport IPSec paketa kroz mreu. SA su uvek jednosmerne, odnosno koriste se za zatitu paketa u jednom smeru. Ukoliko je potrebno zatititi saobraaj u oba smera, potrebno je posedovati dve SA, i to po jedna na svakoj strani. SA se uvaju u okviru SA baze podataka SADB (eng. SA Data Base). Skup pravila se uva u SP (eng. Security Policy). Parametri koji ine SA su: 32-bitni sigurnosni parametar SPI, tip IPSec protokola (AH ili ESP) i izvorna IP adresa [10].
6.2 SSL/TLS
SSL (Secure Socket Layer) protokol koji je razvila firma Netscape, je trenutno najvie metod za obavljanje sigurnih transakcija na Internetu. Podrava ga veina Web servera kao i ukljuujui Microsoft Internet Explorer, Netscape Navigator, Mozilla Firefox i drugi. nezatiena verzija SSL protokola 3.0 je poznata po imenu TLS (Transport Layer Security). korien klijenata Posebna esto se 59
SSL i TLS poistoveuju. WTLS (Wap Transport Layer Security) je specijalna verzija TLS protokola koja je razvijena za upotrebu u Wap aplikacijama [35]. SSL obezbeuje tajnost, integritet podataka i autentinost poiljalaca korienjem kombinacije kriptovanja javnim kljuem (RSA), simetrinog kriptovanja (DES, RC5) i digitalnih sertifikata (SHA-1, MD5). Drugim reima, SSL obezbeuje mehanizme za identifikaciju servera, identifikaciju klijenta i kriptovanu razmenu podataka izmeu njih. SSL je smeten iznad transportnog sloja, a ispod aplikativnog sloja od koga je nezavisan [36]. SSL se sastoji od dva protokola: SSL Handshake protokol SSL Record protokol
SSL Handshake protokol ini najsloeniji deo SSL protokola i omoguava uspostavljanje sesije. Tom prilikom SSL Handshake vri proveru identiteta klijenta i identiteta servera, usaglaavanje algoritma za kriptovanje, izraunavanje saetka i razmenu kljueva. Koristi se u fazi uspostavljanja konekcije pre bilo kakve razmene aplikacionih podataka. Ovaj protokol se sastoji od niza poruka koje se razmenjuju izmeu starana u komunikaciji. Uspostavljanje veze se moe prikazati kroz sledee etiri faze: Postavljanje parametara veze Autentifikacija servera i razmena kljueva Autentifikacija klijenta i razmena kljueva Kraj uspostavljanja sigurne veze
Nakon uspostavljene veze otpoinje se sa razmenom kriptovanih aplikativnih podataka izmeu klijenta i servera. SSL Record protokol koji se koristi na predajnoj strani vri pripremu podataka za slanje (Slika 6.5). Prvo prihvata podatke od strane aplikativnog sloja, vri njihovu podelu u blokove i ako je potrebno vri komprimovanje. Nakon toga, u cilju autentifikacije vri potpisivanje saetka poruke pomou neke od he funkcija i poruci dodaje saetak u vidu autentifikacionog koda (eng. Message Authentation Code MAC). Tako formiranu poruku kriptuje, dodaje zaglavlje i predaje ih TCP sloju u cilju slanja. Na prijemnoj strani SSL Record protokol preuzima podatke od TCP nivoa, dekriptuje ih, vri verifikaciju MAC-a, ukoliko je potrebno vri dekompresiju podataka, spaja blokove kako bi ih u celini poslao aplikativnom sloju [10].
Slika 6.5
SSL Record protokol 60
6.Sigurnosni protokoli
SSL omoguava proveru identiteta pomou sertifikata koji izdaje sertifikaciono telo CA. Ovaj vid SSL transakcije nudi zadovoljavajui nivo sigurnosti, te je relativno brzo postao standard za sigurnu komunikaciju. Upravo zbog ove injenice, SSL protocol se najee koristi u aplikacijama za plaanje kreditnim karticama.
61
7 Zakljuak
Nagli razvoj tehnologije raunarskih sistema i mrea, doveo je do masovne razmene informacija i podataka. U toj razmeni pojavila se potreba za zatitom poverljivih podataka od raznih kraa i zloupotreba, to je uslovilo pojavu novog pravca u oblasti bezbednosti podataka. Dalji razvoj tehnologije doprineo je poboljanju karakteristika metoda koje doprinose bezbednosti podataka. Meutim, isti taj napredak doveo je do breg otkrivanja nedostataka i dodatno omoguio eventualne zloupotrebe. Tako su, tokom vremena, metode za zatitu podataka postajale sve sloenije i naprednije. U osnovi prie o bezbednosti podataka u raunarskim mreama nalazi se Kriptografija. Kriptografija je veoma dinamina nauka koju odlikuje uska povezanost izmeu teorije i prakse. Na ovo ukazuje injenica da se napredak u teoriji brzo implementira u praksi, gde se jo bre testira. Otkrivanjem nedostataka odmah se unapreuje teorijski rad i steena iskustva se upotrebljavaju za izradu nove i bolje metode. Kriptografija je veoma iroka oblast, a u praksi se bazira na upotrebi kriptosistema koji se sastoje od algoritama za kriptovanje, jednog ili vie kljueva, sistema za upravljanje kljuevima, podataka u vidu standardnog i kriptovanog teksta. Na sloenost dodatno ukazuju i injenice da se kriptosistemi mogu realizovati hardverski, softverski ili hardversko-softverski, kao i to da se prilikom realizacije moraju zadovoljiti osnovni sigurnosni servisi. Za realizaciju kriptografskih algoritma, koji su danas u upotrebi, koriste se sloeni matematiki izrazi kao i znanja iz elektronike i programiranja. Uprkos tome, napredak u postojeim kriptografskim algoritmima nastavlja se rastuim tempom, da bi zadovoljio potrebe irenja IT drutva u kome ivimo. Teko je zamisliti ozbiljnu PC aplikaciju koja u sebi nema implementiran neki sigurnosni algoritam, poev od bankarskih aplikacija, internet trgovine, pa sve do operativnih sistema. Takoe, kriptografski algoritmi za zatitu su primenjivi u telekomunikacionim sistemima, televiziji, i drgim oblastima za koje esto nismo ni svesni da ih ine ovi algoritami. Imajui u vidu injenice da je Kriptografija veoma dinamina oblast, da je aktuelna i da je veoma rasprostranjena, ovim radom su obuhvaeni samo njeni osnovni koncepti. Razmatrane su kriptografske metode i algoritmi, bez upotrebe apstraktnih matematikih izraza i teorija o brojevima. Ukazano je na osnovne sigurnosne servise koji se u cilju sigurnosti moraju zadovoljiti primenom kriptografskih metoda. Bilo je govora i o efikasnosti pojedinih algoritama, kao i o isplativosti njihove hardverske realizacije. Obraeni su problemi kojii se javljaju tokom upotrebe i distribucije kljueva koji se koriste prilikom kriptovanja. Na kraju su dati primeri sigurnosnih servisa koji se upotrebljavaju za zatitu podataka u okviru TCP/IP modela, a koji se baziraju na opisanim kriptografskim algoritmima. Cilj ovog rada je da ukae na nunost zatite podataka i prikae osnovne mehanizme za njihovu zatitu, koji se prenose putem raunarske mree. Zbog fizikih i funkcionalnih karakteristika raunarskih mrea, veoma esto se javlja opasnost od ugroavanja podataka prilikom prenosa. Predmet istraivanja rada je upoznavanje sa metodama koje se danas koriste da onemogue zloupotrebu podataka. Pregledom najee korienih algoritama za kriptovanje, tehnika za autentifikaciju, problema prilikom upravljanja sa kljuevima i sigurnosnim servisima u TCP/IP modelu, saznaju se osnove o zatiti podataka. Uporednom analizom karakteristika odreenih metoda za zatitu ukazuje se na prednosti i/ili nedostatke. U cilju to efikasnijeg prikaza sloenih procedura upotrebljen je veliki broj praktinih primera i ilustracija. Sigurno je da e se kriptografija razvijati sve brim i brim koracima. Upotreba kvantnih raunara, raunarskih gridova kao i sve masovnije upotrebe raunarskih mrea samo su jedan od nagovetaja budunosti. U skladu sa tim e se postavljati sve vei sigurnosni zahtevi u smislu ranog otkrivanja i spreavanja zloupotreba. Odgovor na ove zahteve je upravo upotreba savremenijih i sigurnijih kriptografskih algoritama, koji e prevazilaziti granice jednostavne bezbednosti.
63
Literatura
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Dejan Simi, Tehnike zatite u raunarskim mreama, Fakultet Organizacionih Nauka Beograd, PPT Prezentacija, Beograd, Jun 2002. Zatita podataka u raunarskim mreama, MTVU lekcije, (http://www.knowledgebank1.org/poslovna_informatika_fpsvs_1_svi_06/lekcije/lekcija7.pdf), 2009. S. Sinkovski, B. Lui, Informaciona bezbednost i kriptografija, Jugoimport SDPR Beograd, ZITEH 06-R27.pdf, 2006. Dragan Spasi, Kriptozatita podataka u raunarskim mreama primenom simetrinih i asimetrinih kriptosistema, Direkcija za potanski saobraaj, Zoran Bobar, Zatita raunarskih mrea Ministarstva odbrane i vojske srbije primenom virtuelnog honeyneta, Vojnotehniki glasnik 3/09, UDC: 004.7.056.53, Beograd, 2009 http://sr.wikipedia.org/sr-el/, 2009. Henk C.A. van Tilborg, Encyclopedia of Cryptography and Security, University of Technology Eindhoven, ISBN038723473-X, New York, 2005. Fred Piper, Sean Murphy, Cryptography: A very short Introduction, Oxford University press, ISBN:0192803158, 2002. Z. . Avramovi, Draen Petrovi, Kriptografija simetrini i asimetrini algoritmi, Seminarski rad Fakultet poslovne informatike, Banja Luka, maj 2008. Behrouz A. Forouzan, Sophia Chung Fegan, TCP/IP Protocol Suite, Mc Graw Hill book, ISBN 0071115838, 3rd edition, New York, 2006. Man Young Rhee, Internet Security Cryptographic principles, algorithms and protocols, School of Electrical and Computer Engineering Seoul, John Wiley & Sons ISBN 0470852852, Wiltshire, 2003. http://en.wikipedia.org/wiki/Data_Encryption_Standard, 2009. http://www.rsa.com/rsalabs/node.asp?id=2100, 2009. http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm, 2009. Ronald L. Rivest, The RC5 Encryption Algorithm, MIT Laboratory for Computer Science, Mass. 02139, Cambridge, March 1997. http://en.wikipedia.org/wiki/RC5, 2009. http://en.wikipedia.org/wiki/RC6, 2009. arko Stanisavljevi, Simetrini algoritmi zatite AES, Nastavni materijal iz predmeta Zatita podataka, ETF Beograd, 04 AES1.pdf, Beograd, 2004. (http://rti.etf.bg.ac.yu/rti/ir4zp/materijali/index.html) http://en.wikipedia.org/wiki/Advanced_Encryption_Standard, 2009. http://en.wikipedia.org/wiki/Blowfish_(cipher), 2009. Johannes A. Buchmann, Introduction to Cryptography, Technical University Dramstadt, ISBN 0387950346, New York, 2002. http://sr.wikipedia.org/sr-el/RSA, 2009.
65
Literatura
William Stalings, Cryptography and Network Security Principles and Practices", Book Prentice Hall, ISBN 100131873164, 4th edition, London, Nov. 2005, pp. 298 http://www.pgpi.org/doc/pgpintro/#p10, 2009. Behrouz A. Forouzan, Data Communications and Networking, Book Mc Graw Hill, ISBN 9780072967753, 4th edition, 2007. http://www.freesoft.org/CIE/RFC/1321/3.htm, 2009. http://en.wikipedia.org/wiki/MD5, 2009. Brown K., Kaufman C, et al., Web Service Security Guide, Microsoft patern and practies, MS_WSS_Dec_05.pdf, 2007. (http://www.microsoft.com/downloads/details.aspx?FamilyId=3E02A6C8-128A-47C2-9F39-4082582F3FE1&displaylang=en) Spasi Dragan, Elektronsko potpisivanje korienjem digitalnih sertifikata sertifikacionog tela pote, JP PTT saobraaja Srbije, Beograd. http://www3.ptt.rs/help_desk/zastita.php?id=sertifikati, 2009. C. Adams, S. Ferrell, Internet X.509 Public Key Infrastructure, IETF RFC 2510, 1999. (http://tools.ietf.org/html/rfc2510), Jean-Yves Migeon, The MIT Kerberos Administrators How-to Guide, MIT Kerberos Consortium, Ver. 1., July 2008, Thomas Hardjono, Why is Kerberos a credible security solution?, MIT Kerberos Consortium, Dec 2008. (http://www.kerberos.org/software/whitepapers.html) http://bazzz84.wordpress.com/2009/03/06/ipsec-internet-protocol-security/, 2010 http://www.scribd.com/doc/24344342/SSL-PROTOKOL-TRANSPORTNI-SLOJ, 2010 Joseph Migga Kizza, A Guide to computer Network Security, University of TennesseeChattanooga, ISBN 9781848009165, London, 2009.
66