1. UVODPripremajući se za rat sa Francuskom krajem 17. stoljeća, engleski kralj William III. je zaključio da nema dovoljno novca. Za uspješno okončanje rata morao je pronaći dodatna financijska sredstva. Taj manjak novca osigurali su William Patterson i njegovi bogati prijatelji, postavljajući kralju tri uvjeta: W. Patterson i njegovi suradnici mogu osnovati privatnu banku koja će se zvati “The Bank of England”; banka može izdati vlastite novčanice koje će postati službeno sredstvo plaćanja u Engleskoj; svim zlatarima Londona se zabranjuje izdavanje priznanica za skladištenje dragocjenih metala. Time su trgovci primorani čuvati svoje zlato u novoosnovanoj banci. Tako je nastala jedna od prvih banaka u Europi. Krajem 20. stoljeća, banke se suočavaju s jakom konkurencijom raznih trgovačkih kuća i profesionalnih izdavača kreditnih kartica. Zato svoje usluge moraju približiti korisniku što postižu uvođenjem raznih načina za automatizaciju usluga. Slika 1‑1. Postotak pojedinih bankarskih transakcija 1994. i 1997. god. Stalno se povećava broj transakcija putem raznih vrsta bankomata, te pristup uslugama od kuće, telefonom ili osobnim računalom. Smanjuje se važnost poslovnica i šaltera, a povećava se promet putem informatičkih mreža (slika 1-1.). Ovakvi trendovi zadovoljavaju oba postavljena cilja: povećava se zadovoljstvo korisnika, a cijena transakcije znatno se smanjuje. Zanimljiv je podatak da su troškovi transakcije putem Interneta i do 50 puta niži od troškova te iste transakcije na šalteru [1]. Slika 1‑2. Troškovi pojedinih vrsta transakcija Ovaj način poslovanja ima i mali nedostatak: gubi se izravan kontakt s korisnikom te mogućnost da mu se ponude nove usluge i prošire poslovi. Taj se problem rješava u uspostavljanju kvalitetnog i punovrijednog kontakta s korisnikom i pružanjem potpunog skupa usluga na mjestu i u vrijeme kada to korisniku najviše odgovara. Pružanje takve udaljene usluge omogućava i razne zloupotrebe koje se izgradnjom sigurnog i pouzdanog sustava mogu spriječiti. Ovaj rad se bavi problemima koje svaki sigurnosni sustav mora riješiti da bi ispravno funkcionirao, odnosno omogućio sigurno poslovanje. Moderni sustavi su izgrađeni od mnoštva sigurnosnih elemenata koji međusobno djeluju i kao cjelina postižu rezultate koji se od sustava očekuju. Spomenute elemente opisuje 4. poglavlje diplomskoga rada. Važno je naglasiti da pouzdanost sustava uvelike ovisi o najslabijem elementu obrane sustava. Jer, bez obzira koliko jaki bili svi ostali elementi, ukoliko je samo jedan slab, sustav neće biti pouzdan. Probleme izgradnje sigurnosnog sustava obrađuje 5. poglavlje. Banke moraju svoje računalne sustave prilagoditi i omogućiti korisnicima pristup svojim podacima i sredstvima ‘u svako vrijeme i na svakom mjestu’. Veliku ulogu u tome imaju bankarske mreže koje povezuju razne sustave koji djeluju u mnoštvu banaka. Umrežavanjem i razmjenom podataka, banke udovoljavaju korisnicima, ali i djelomično otvaraju sustave mnogim opasnostima koje tamo vrebaju. Opis ovih problema se nalazi u 2. i 3. poglavlju ovoga rada. U praktičnom dijelu rada nalazi se izvedba protokola jednosmjerne i dvosmjerne autentifikacije korisnika pomoću algoritma javnog ključa, tako da se u 6. poglavlju nalazi opis rješenja zadatka. 2. BANKARSKE MREŽEKorisnici bankarskih mreža mogu biti veliki korisnici, privatne osobe[MA1] ili osoblje banke. Veliki korisnici koriste elektroničke usluge tipično za poslove kao što su upravljanje gotovinom, prijenos sredstava, izvještaji o stanju velikog broja računa kompanija. Privatne osobe koriste mrežu za usluge kao što su kućno bankarstvo, internet bankarstvo, telefonsko bankarstvo. Osoblje banke se uglavnom koristi internom mrežom, svakodnevno rješavajući zadatke na poslu kao što su otvaranje računa ili zahtijevanje kredita. Usluge koje banke nude korisnicima neprestano se proširuju, jer banke moraju udovoljiti tržišnim zahtjevima i stalno privlačiti nove korisnike. Na taj način one proširuju svoje djelovanje i povećavaju broj računa kojima upravljaju. Zbog svih tih noviteta koji se nude, i informacijski sustavi banaka nužno moraju doživjeti promjene. U sustav se dodaju nove aplikacije. Pri tome se teži približavanju sučelja aplikacija korisniku i povećanju sigurnosti sustava. Komunikacijske mreže imaju ključnu ulogu u ponudi novih elektroničkih proizvoda na tržište, bez obzira koristili mi usluge od kuće, iz ureda, lokalne podružnice ili čak samo povezali dvije susjedne sobe iste zgrade. Banke, također, instaliraju i privatne mreže, koje same održavaju i kontroliraju, iskorištavajući ih za posluživanje niza zahtjeva vanjskih korisnika, kao i za vlastite, unutarnje potrebe. Sigurnost poslovanja preko mreže mora biti glavna odrednica svake banke, odnosno svake usluge koju banka pruža. Provaljivanjem u informacijski sustav banke, napadač može doći do financijskih sredstava na nezakonit način, kao i do osjetljivih podataka koji se tamo nalaze. Razvojem informacijske tehnologije i sigurnosnih računalnih sustava otvara se mogućnost povezivanja banaka na globalnom planu, što omogućuje ubrzanje financijskih transakcija i olakšanje poslovanja među udaljenim lokacijama. Upravo zato je i osnovana Svjetska udruga za međubankarske financijske telekomunikacije (Society for World-wide Interbank Financial Telecommunication - SWIFT), globalna bankarska mreža. Za obavljanje transakcija unutar država osnivaju se posebne, regionalne mreže za prijenos novca u domaćoj valuti, koje osiguravaju ubrzano obavljanje transakcija. Najpoznatije takve mreže u Americi su: CHIPS, BANKWIRE i FEDWIRE, u Francuskoj SAGITTAIRE, a u Britaniji CHAPS [2]. Tok novca preko ovih mreža je uglavnom ostvaren preko centralnih banaka pojedinih zemalja gdje banke imaju svoje račune. Mreže su obično privatne i ograničene na banke članove. Zbog sadržaja koji prenose, mreže su veoma sigurne. U posljednje je vrijeme uočen trend porasta prebacivanja bankarskih usluga na Internet, mrežu svih mreža. Za razliku od npr. SWIFT-a ili CHAPS-a, Internet je nastao kao univerzalni komunikacijski put, bez posebnih planova za poslovno korištenje, te kao takav on ne sadrži nikakvu zaštitu prometa koji po njemu teče. Zato svaka poslovna primjena mora najprije riješiti probleme sigurnosti svojih transakcija kako bi mogla iskoristiti sve njegove blagodati. 2.1. Svjetska udruga za međubankarske financijske telekomunikacijePovećanjem broja međunarodnih financijskih transakcija, pojavila se potreba za uspostavljanjem visoko raspoložive usluge koja će omogućiti sigurno, brzo i točno obavljanje raznih financijskih poslova. Mrežu, koja će udovoljiti tim zahtjevima, uspostavlja 1973. godine više od 200 svjetskih banaka. Mreža dobiva naziv Svjetska udruga za međubankarske financijske telekomunikacije (Society for World-wide Interbank Financial Telecommunication - SWIFT) i djeluje kao udruga čiji su vlasnici banke članovi. Sigurnosni mehanizmi SWIFT mreže čine veliki korak naprijed u sigurnosti i pouzdanosti prijenosa financijskog prometa. SWIFT je u to doba imao mnoge novosti što se sigurnosti tiče, pa su se mnogi sudionici financijskog tržišta radije odlučivali za SWIFT nego za tradicionalnu Telex uslugu. Pouzdanost u mrežnoj sigurnosti je omogućila SWIFT-u da postane globalna mreža, koja danas povezuje i služi više od 3000 odredišta u preko 70 zemalja svijeta [2]. Slika 2‑1.Spajanje na SWIFT mrežu Jedna od dobrih strana SWIFT mreže je mogućnost direktne veze na računalne sustave banaka čime se automatizira obavljanje transakcija, odnosno povećava brzina primanja i slanja poruka. Banka se na mrežu spaja uz pomoć posebnih SWIFT terminala (slika 2-1.), koje lako dobijemo nadogradnjom postojećeg računala posebnom opremom. Oprema, koja služi za nadogradnju, se sastoji od skupa mikroprocesorskih [MA2]kartica, čitača kartica i programske podrške koji omogućavaju pristup mreži i obavljanje transakcija. Prilikom spajanja na mrežu moraju se izvršiti samo minimalne promjene na sklopovlju, kao što su proširenje memorije ili dodatni dijelovi za spajanje čitača kartica, što ne predstavlja veliki problem [6]. Način prijenosa, pomoću sigurnih tipova poruka, pokriva različite elektroničke transakcije, kao što su dokumentirani krediti, devizne potvrde, prijenos novca korisnika ili banaka, izvještaji o stanju računa, itd. Mreža, kao što je SWIFT, mora osigurati visoku razinu povjerenja korisnika i mora, na najmanju mjeru smanjiti izloženost aktivnom ili pasivnom prisluškivanju. Zaštita od ove vrste izloženosti je bio temeljni poslovni zahtjev, pogotovo što korisnici pretpostavljaju pouzdanost transakcija od točke na kojoj su oni spojeni na mrežu. Sigurnost prijenosne razine je veoma važan detalj u dizajnu sustava. SWIFT ove sigurnosne zahtjeve ostvaruje korištenjem prikladnih algoritama kriptiranja i autentifikacije koji osiguravaju integritet poruka, kao i pouzdanost prometa. Zahtjev za visokom raspoloživosti sustava je uspješno ostvaren tako da SWIFT 24 sata, sedam dana u tjednu, pruža usluge zadovoljavajući potrebe svojih članova. Mreža osigurava brzi prijenos u samo nekoliko sekundi, nakon provedene autorizacije i potvrde poruke. Dobar mrežni dizajn, upravljanje i kontrola su ključne značajke za veliku mrežu. Stoga su oni pažljivo konstruirani omogućavajući time stabilnost mreže i brzi oporavak. SWIFT ima odgovore i na neke nepredviđene situacije, u vidu rezervnih mrežnih resursa i zalihosti opreme. Važnost ovih mjera se ne smije podcijeniti kod ovako važnog sustava koji barata s tolikom količinom financijskog prometa. U svakoj zemlji u kojoj se SWIFT koristi, nalazi se po jedan Regionalni procesni centar (Regional Processing Centre – RPC). Korisnici se na njega spajaju pomoću unajmljenih linija. RPC-ovi su spojeni na jedan od tri Operacijska centra (Operating Centre – OPC), koji su smješteni u Americi, Nizozemskoj i Belgiji. OPC-ovi su, jedan za drugim, u mogućnosti poruke potvrditi, sigurno ih spremiti, i konačno dostaviti ih na njihova konačna odredišta. U svakom trenutku, mrežom upravljaju barem dva centra kontrole sustava (System Control Centre) koji nadziru i kontroliraju sveukupne performanse mreže. S vremenom, kako je promet mrežom rastao, SWIFT je evoluirao u SWIFT II, mrežu sa novorazvijenim sigurnosnim elementima koja lakše reagira na povećani promet podataka. 2.2. Sustav automatskog plaćanja zavoda za obračunavanjeAutomatski sustav plaćanja zavoda za obračunavanje (Clearing Houses Automated Payments System – CHAPS) je mreža koja povezuje britanske banke preko posebne mreže britanske telekomunikacijske kompanije British Telecom. Usluga je uspostavljena 1984., a koristi se za prijenos novca iz jedne banke u drugu, unutar države. Rast financijskog prometa između britanskih banaka i potreba zamjene dosadnih ručnih metoda poslovanja su najviše uvjetovali razvoj jedne takve automatizirane mreže kao što je CHAPS. Brzina, točnost, sigurnost i pouzdanost su temeljni zahtjevi za poslovanje pa je stoga i cjelokupni dizajn temeljen na tim zahtjevima. Slična ovakva mreža bi se mogla razviti i u Hrvatskoj gdje postoji relativno veliki broj banaka. Promet poruka može biti veoma osjetljiv, stoga mora biti dobro zaštićen od napada. Plaćanja preko CHAPS mreže su neograničena, garantirana i prispijevaju istog radnog dana. Određen je i minimalni iznos transakcije (trenutno on iznosi 5000 £ [2]) koji se s vremena na vrijeme revidira. On ograničava korištenja mreže malim korisnicima banaka. Stoga je ova usluga uglavnom namijenjena krupnijim korisnicima i bankama za međusobni promet. CHAPS je dizajniran tako da se omogući integracija internih bankarskih mreža i specifičnih rješenja programske podrške na mrežu, tako da sustav koji je funkcionirao u banci prije povezivanja na CHAPS može uz manje promjene i dalje opstati, a da se ne ide u neke generalne promjene. Visoka razina dostupnosti sustava je neophodna za ovu uslugu. Srž komunikacijske mreže čini mreža kompanije British Telecom, koja osigurava visoku razinu operativne efikasnosti, otpornosti i sigurnosti. Od posebne važnosti bio je zahtjev za uspostavljanje zaštite u posebnim okolnostima, u svim točkama sustava. Ispad mreže uzrokuje uspostavljanje stand-by stanja koji na magnetske trake zapisuje sve podatke bitne za uspostavljanje normalnog režima rada mreže. Trake se šalju svim bankama članovima nakon čega se rekonstruira staro stanje. Slijedeća osobina koju CHAPS naglašava je integritet. Ona osigurava veliku količinu i vrijednost prometa koji prolazi mrežom. Svaka transakcija je jedinstvena, a označena je kombinacijom vremenske oznake i rednog broja i svojstvena je samo za nju. Usluga koristi autentifikaciju poruka i kriptografske algoritme u svrhu ograničenja svakog neautoriziranog miješanja u promet koji se odvija između banaka. Česta izmjena autentifikacijskih ključeva, također pridonosi integritetu sustava. Pouzdanost sustava se ostvaruje kriptiranjem veze pomoću tajnog ključa. 2.3. InternetInternet je globalna, univerzalna mreža koja nije isključivo bankarska mreža. Ustvari, Internet u početku nije niti trebao služiti bilo kakvoj poslovnoj primjeni. Tek se u zadnje vrijeme, njegovim razvojem, on počinje koristiti u komercijalne svrhe. Internet danas broji stotine milijuna korisnika u svijetu. Taj se broj i nadalje povećava, te je pristup moguć gotovo iz svakog područja civiliziranog svijeta. Budući da cijena ljudskog rada i poslovnog prostora u svijetu, pokazuju trendove porasta, a troškovi komuniciranja preko Interneta padaju, banke se sve češće odlučuju za Internet. Uz to što smanjuju cijenu transakcija, banke na taj način ostvaruju i bolji kontakt s korisnicima te uz prikladno multimedijsko i interaktivno komuniciranje privlače korisnike i prezentiraju im najnovije usluge. Posebno poglavlje poslovanja preko Interneta je sigurnost. Financijske transakcije su posebno osjetljive na mnoge opasnosti i prijetnje koje se mogu pojaviti na javnim i neosiguranim prometnicama kao što je Internet. Stoga je intenzivan razvoj bankarstva na Internetu morao čekati na učinkovita rješenja iz područja sigurnosti i zaštite podataka. Ljudi su svjesni ovoga problema te mu, u posljednje vrijeme, posvećuju sve više vremena. Za potpuno rješenje zaštite, kakvo je u ovakvim sustavima potrebno, potrebna je strategija koja obuhvaća zaštitu transakcija, zaštitu Internet poslužitelja te svih aplikacijskih poslužitelja u internoj mreži. Opasnosti dolaze izvana, ali i iznutra, te ukupna zaštita mora dati odgovore na sve te različite prijetnje koje su opisane u sljedećem poglavlju. 3. PRIJETNJE SIGURNOSTI SUSTAVAPrvi korak u izgradnji odgovarajućeg sigurnosnog sustava je identifikacija opasnosti koje mu prijete. Pojmom uljez (intruder) ili napadač (attacker) definiramo osobu ili program koji nastoje dobiti neovlašten pristup podacima ili resursima računalnog sustava. Postoji mnogo načina ugrožavanja sustava, ali općenito govoreći, oni se mogu svrstati u dvije skupine – aktivni napadi i pasivni napadi. 3.1. Aktivni napadiCilj aktivnih napada je uplitanje u normalan rad sustava i izvršenje radnji koje za sustav mogu biti pogubne. Najčešći takvi postupci su uništavanje podataka, izmišljanje grešaka na sklopovlju, usporavanje sustava, ispunjavanje memorije ili diska beskorisnim podacima i sl. Najpoznatije vrste ovih napada su virusi, crvi i logičke bombe. 3.1.1. VirusiRačunalni virus je komadić kôda, pridodan normalnom programu, koji izvršavanjem inficira druge programe. Osim što se tako širi, on čini i dodatne štete u vidu brisanja datoteka ili ispisivanja nesuvislih poruka. Oporavak od virusne infekcije je težak zadatak jer obično zahtijeva djelomičan ili potpuni prekid rada za dulji period vremena dok se ne izbrišu memorija i diskovi. Ponekad možemo koristiti i pomoćne antivirusne programe, međutim oni se mogu koristiti samo za poznate vrste virusa. Najbolje je ipak poduzeti određene mjere opreza i potrošiti malo više vremena za osiguranje sustava, nego poslije, nakon napada, sustav oživljavati i plakati za izgubljenim podacima. 3.1.2. CrviCrvi su programi koji se šire mrežom od jednog računala ka drugom. Oni koriste prednosti u načinu na koji su mrežni resursi dijeljeni, a ponekad i iskorištavajući pukotine u standardnoj programskoj podršci instaliranoj na mrežnom sustavu. Ako i nisu direktno destruktivni, oni mogu mrežu onesposobiti i dovesti je do zagušenja, monopolizirajući resurse i koristeći operacije na mreži u vlastite svrhe. Za rješenje problema crva, često je potrebno ugasiti cijeli sustav, odnosno sva računala koja se nalaze u mreži. 3.1.3. Logičke bombeLogička bomba je program koji leži neaktivan sve dok se ne ispuni neki uvjet koji bombu aktivira, čime počinje uništavanje podataka i kvarenje programske podrške sustava. Uvjet mogu biti razni događaji: pristup određenom podatku, pokretanje nekog programa određeni broj puta, istek određenog vremena ili neki specifični datum (petak trinaesti, černobilska katastrofa). Veoma je česta pojava prenošenja bombi pomoću virusa. 3.2. Pasivni napadiZa razliku od aktivnih napada, pasivni ne čine vidljivu štetu sustavu kojega napadaju, pa ih je veoma teško detektirati. Njihova osnovna zadaća je ukrasti informacije iz sustava, ne miješajući se pri tome u njegov rad. Jedina zaštita od ove vrste napada je prevencija. Opis pasivnih napada se nalazi u daljnjem tekstu. 3.2.1. Pregledavanje (Browsing)Uljezi pokušavaju čitati pohranjene podatke, memoriju drugih procesa pakete poruka koje putuju mrežom, ili slično, bez bilo kakve promjene. Zaštita od ove vrste napada se sastoji od mehanizama kontrole pristupa (podaci i memorija), odnosno kriptiranja poruka (prisluškivanje mrežnog prometa). 3.2.2. Curenje (Leaking)U ovoj metodi, uljez mora imati suučesnika (korisnika sustava koji ima pristup željenim informacijama), koji mu dobavlja podatke. Prevencija ove vrste napada je veoma složen problem i zahtjeva prevenciju svih vrsta komunikacije između uljeza i suučesnika. Problem osiguranja nemogućnosti pružanja informacija suučesnika uljezu naziva se problem ograničenja (confinement problem). Generalno gledano, on je nerješiv, jer curenje informacija među procesima, koji u teoriji ne mogu komunicirati, je relativno jednostavno. Na primjer, u UNIX-u, proces A može naznačiti 1 kreirajući datoteku, a 0 brišući datoteku. Bez obzira ima li proces B dozvolu korištenja, on može vidjeti da li ta datoteka postoji ili ne. 3.2.3. Zaključivanje (Inferencing)Na osnovu promatranja i analiziranja aktivnosti sustava i njegovih podataka, uljez pokušava donijeti neke zaključke koji bi mu pomogli pri ulazu u sustav. Na primjer, ako su informacije kriptirane, uljez može pokušati izvesti ključ analizirajući nekoliko kriptiranih datoteka. Budući da ključ može poslužiti za upad u sustav, on je vrijedan i može se prodati i drugim uljezima. Još jedan primjer je osluškivanje mrežnog prometa i analiziranje frekvencije izmjene poruka među korisnicima koje daje vrijeme i obim komunikacije, npr. između dvije kompanije. 3.2.4. Maskiranje (Masquerading)Uljez se, također, korisniku može predstaviti kao pouzdani poslužitelj. Taj se oblik maskiranja zove podvala (spoofing), a izbjegava se korištenjem postupka autentifikacije (opisanog u poglavlju 4.3.). 4. ELEMENTI SIGURNOSNIH SUSTAVARačunalni sustavi čuvaju velike količine informacija od kojih su neke izuzetno osjetljive i vrijedne njegovim korisnicima. Korisnik može vjerovati sustavu i osloniti se na njega, samo ukoliko su različiti dijelovi i informacije sustava zaštićeni od zlonamjernih pogleda i neovlaštenog pristupa. Da bi sustav takav i postao, mi ga moramo zaštititi. Kao što prethodno poglavlje pokazuje, uljez za ostvarenje svoga cilja može koristiti mnoštvo postupaka. Rješenje treba tražiti u pravilnoj izgradnji i održavanju sustava te korištenju modernih sigurnosnih metoda. Time u sustav uvodimo mehanizme koji poništavaju pokušaje uljeza da se dokopa informacija. Uljez će i dalje moći osluškivati mrežni promet samo što sada ništa od dobivenog neće razumjeti. Vidjet će samo gomilu nerazumljivih znakova, tipa “ewq4%sg2w@c3)Ra_b”. Zahtjevi za sigurnost sustava ovise o okolini u kojoj će sustav djelovati. Normalno je da će se vojni, bankarski ili neki sličan sustav razlikovati od sustava koji se brine za poslove samoposluge i nije povezan s vanjskim svijetom. Zahtjevi će biti proporcionalni vrijednosti informacija, koju sustav štiti. Pojam računalne sigurnosti općenito možemo podijeliti na vanjsku i unutrašnju sigurnost. Vanjska sigurnost se bavi osiguranjem sustava od vanjskih faktora, kao što su požari, poplave, potresi, krađe i itd. Opće metode obrane su: držanje zaštitnih kopija na udaljenim lokacijama, dozvola pristupa osjetljivim podacima samo povjerljivim korisnicima, unajmljivanje čuvara i slično. Unutarnja sigurnost se bavi sljedećim aspektima: ·
autentifikacija korisnika (user authentication) –
dozvolivši mu fizički pristup sredstvu, sustav mora provjeriti identitet
korisnika prije nego ga on počne koristiti. ·
kontrola pristupa (access control) – računalni
sustav sadrži mnoge resurse i nekoliko tipova informacija. Očito je da oni nisu
namijenjeni svim korisnicima. Stoga, kada korisnik prođe fazu autentifikacije
potrebno je, nekako mu zabraniti pristup resursima i informacijama koji mu nisu
namijenjeni. ·
komunikacijska sigurnost (communication security) – u
raspodijeljenim sustavima, komunikacijski kanali koji se koriste za povezivanje
računala su izloženi napadačima koji promatranjem, izmjenom ili prekidom
prometa pokušavaju prodrijeti u sustav. Komunikacijska sigurnost štiti od
neovlaštenog mijenjanja informacija dok se one nalaze između računala unutar
komunikacijskog puta. Provođenje sigurnosti, bilo vanjske ili unutarnje, teže je u raspodijeljenim, nego u centraliziranim sustavima, zbog nedostatka jedinstvene kontrolne točke i korištenja nepouzdane komunikacijske mreže. Međutim, bez obzira kakav sustav bio, opći ciljevi u ostvarenju njegove sigurnosti su: · povjerljivost (privacy, confidentiality) – sadržaj podataka, postojanje određenih podataka, sadržaj komunikacije i identitet korisnika u komunikaciji moraju ostati tajni. · vjerodostojnost (authenticity) – korisnici u komunikaciji moraju dokazati svoj identitet, tj. podaci dolaze od (šalju se) točno određenog korisnika, i nikoga više. · cjelovitost (integrity) – informacija unutar sustava, kao i poruke koje se izmjenjuju moraju se štititi od neovlaštenih promjena. · priznavanje (nonrepudiation) – niti jedna strana ne može osporiti da je sudjelovala u razmjeni poruka. · tajnost (secrecy) – informacija unutar sustava mora biti dostupna samo ovlaštenom korisniku. U tablici 4-1. nabrojane su metode za ostvarenje gore navedenih ciljeva. cilj metoda povjerljivost kriptiranje poruke vjerodostojnost autentifikacija cjelovitost sažetak poruke priznavanje digitalni potpis tajnost autorizacija Tablica 4‑1. Ciljevi i metode za ostvarenje sigurnog računalnog sustava Nabrojane metode bit će podrobno opisane u poglavljima 4.1. – 4.5. 4.1. KriptografijaKrajem 20. stoljeća informacija postaje roba, i to vrlo tražena. Samim time raste značaj njezinog čuvanja i transporta. Paralelno se razvija i kriptografija, znanstvena disciplina koja se bavi informacijom i očuvanjem njene tajnosti. Upravo ona postaje glavno sredstvo ostvarenja privatnosti, povjerenja, kontrole pristupa, elektroničkog plaćanja… U kriptografskoj terminologiji, poruka se naziva jasni ili čisti tekst (plaintext, cleartext). Kodiranje poruke u svrhu skrivanja njenog sadržaja od uljeza, naziva se kriptiranje (encryption). Kriptirana poruka se naziva šifrirani tekst (ciphertext). Obrnuti postupak dešifriranja naziva se dekriptiranje (decryption). Svi moderni kriptografski algoritmi, za kontrolu kodiranja, koriste ključ (key) te se oslanjaju na njegovoj tajnosti, a ne na tajnosti samog algoritma. Algoritmi se objavljuju kako bi ga ljudi mogli proučavati, uočiti njegove slabosti te ga poboljšati ili izbaciti iz upotrebe. Bitna je i dužina ključa, jer njenim povećanjem raste broj kombinacija koje uljez mora isprobati da bi zaštitu razbio. Mnogi algoritmi kodiraju podatke po blokovima. To znači da oni uzimaju blok po blok podataka i transformiraju ga u blok iste dužine koristeći funkciju ovisnu o ključu kriptiranja. Tipična dužina bloka je 64 bita. Postoje dvije vrste algoritama koje se oslanjaju na tajnost ključa, simetrični (secret-key) i asimetrični (public-key) algoritmi. Razlika je u tome da simetrični algoritmi koriste isti ključ za procese kriptiranja i dekriptiranja, dok asimetrični imaju dva ključa, gdje jedan ključ ne možemo izvesti iz drugoga. Kriptografski produkti će biti otporni na napade ukoliko se algoritmi pažljivo implementiraju. Loše implementacije će biti ranjive za neke vrste napada (opisani u 5. poglavlju).
Tablica 4‑2. Odnos dužine ključa i sigurnosti algoritma 4.1.1. Simetrični algoritmiDvije ili više osoba dijele jedan te isti ključ kojim šifriraju i dešifriraju poruke. Time se ostvaruje tzv. siguran komunikacijski kanal između grupe ljudi. Glavna prednost ovih sustava je jednostavnost i brzina, no postoji i nekoliko mana: · kod uspostavljanja sigurnog kanala treba dogovoriti koji će se ključ koristiti, te ga fizički ili na neki drugi siguran način (u tom trenutku siguran komunikacijski kanal još ne postoji) prenijeti svim korisnicima kanala, što može biti veliki problem ako je fizička udaljenost korisnika velika. · ukoliko ključ služi za sigurnu komunikaciju između samo dvaju osoba (tj. može se relativno sigurno odrediti koja je osoba poruku poslala), da bi se takav sustav realizirao za grupu od n osoba potrebno je n*(n-1)/2 ključeva [3]. Problem velikog broja ključeva se rješava uvođenjem centara za distribuciju ključeva (key distribution centre – KDC), kojemu svi korisnici sustava vjeruju. Svaki korisnik sada dijeli tajni ključ samo s KDC-om, koji čuva tajne ključeve ostalih korisnika. Pri tome korisnik ne mora znati ključeve drugih korisnika, nego samo njihove identifikatore po kojima će ih KDC razlikovati od ostalih korisnika [5]. Princip rada simetričnog algoritma prikazan je na slici 4-1. Osoba A šifrira poruku ključem K, koji se mora unaprijed dogovoriti, i šifriranu poruku šalje osobi B. Osoba B poruku prima i dešifrira ju istim ključem. Ukoliko ključ padne u ruke osobi C, nastaju veliki problemi. Osoba C je tada u mogućnosti čitati ne samo sve buduće poruke, već i one stare, ukoliko su kriptirane istim ključem. Slika 4‑1. Shema djelovanja simetričnog algoritma kriptiranja U praksi se trenutno koristi više simetričnih algoritama, a razvijaju se i novi budući da je cilj ostvariti što brži i sigurniji algoritam. Brzina izvođenja algoritama poboljšava se korištenjem novih metoda kriptiranja, dok se sigurnost povećava uz korištenje većih ključeva. Valja napomenuti da se brzina izvođenja algoritma može znatno ubrzati sklopovskom izvedbom. Najpoznatiji simetrični algoritmi su: ·
DES (Data Encryption Standard) – algoritam je razvijen 70-ih godina. U Americi je proglašen
standardom, a korišten je širom svijeta. Široku primjenu je našao financijskoj
industriji. DES je algoritam koji kriptira blokove podataka. Veličina bloka je
64 bita. Ključ je veličine 56 bita, što algoritam čini prilično nesigurnim.
Naime, vlade, kriminalne organizacije ili velike kompanije imaju dovoljno
sredstava da osiguraju moderna računala, odnosno sklopovlje posebne namjene i tako
relativno lako otkriju ključ. Zbog toga ovaj algoritam ne bi trebalo koristiti
za razvoj novih sustava. · Blowfish – algoritam je razvio Bruce Schneier. Algoritam kriptira blokove podataka dužine 64 bita. Dužina ključa je varijabilna i kreće se od 64 do 448 bita. Primjenu je našao u mnogim aplikacijama. Još nije poznato da je netko uspješno razbio ovaj algoritam. ·
IDEA (International Data Encryption
Algorithm) – razvijen u Švicarskoj, algoritam koristi
ključ dužine 128 bita. Smatra se veoma sigurnim. U nekoliko godina korištenja,
nije objavljen niti jedan uspješan napad, iako je bilo mnogo pokušaja. ·
RC4 – algoritam je razvila RSA Data Security kompanija s namjerom da ostane
tajan. Tako je i bilo sve dok mu netko nije objavio izvorni kod [4] . Algoritam je vrlo brz. Pouzdanost mu
još nije utvrđena, ali razbijanje se ne čini trivijalnim. Ključevi mogu biti
proizvoljne dužine. 4.1.2. Asimetrični algoritmiAsimetrični algoritmi koriste različite ključeve u postupcima kriptiranja i dekriptiranja. Vrlo su važni jer se mogu koristiti za prijenos podataka čak i kada sudionici komunikacije nemaju mogućnost dogovaranja tajnog ključa. Sve poznate metode su prilično spore, te se stoga nastoje iznaći nova praktičnija rješenja. Zbog svoje sporosti, asimetrični se algoritmi uglavnom koriste za prijenos ključa sjednice (session key), koji tada koristimo za brzo kriptiranje podataka simetričnim postupcima. Svaki korisnik koji se služi asimetričnim algoritmima mora imati dva ključa: javni i tajni. Javni ključ je javno objavljen i može biti poznat svima onima koji to žele. Tajni ključ zna samo ona osoba koja ga posjeduje. Da bi asimetrični algoritmi bili djelotvorni, taj ključ nitko drugi ne smije saznati. Princip rada algoritama je sljedeći: osoba A šalje poruku osobi B, tako da poruku kriptira javnim ključem osobe B. Kriptiranu poruku može vidjeti bilo tko, ali od toga neće imati koristi budući da samo osoba B pozna tajni ključ kojim će kriptiranu poruku moći dekriptirati, a samim time i čitati. Problem distribucije ključeva se javlja i kod asimetričnih algoritama. Problem nije u čuvanju tajnosti ključa, jer se ovdje distribuiraju samo javni ključevi, nego korisnik koji primi nečiji javni ključ mora biti siguran da je taj ključ, javni ključ baš toga korisnika, a ne nekog drugog. Naime, uljez može generirati javni i tajni ključ, objaviti tajni ključ u nečije ime i primati i čitati poruke koje nisu njemu namijenjene. Rješenje problema je slično rješenju simetričnih algoritama uz korištenje Menadžera javnih ključeva (public-key manager – PKM) koji održava bazu javnih ključeva svih korisnika. Najpoznatiji asimetrični algoritmi su: ·
RSA (Rivest-Shamir-Adelman) – najrašireniji je asimetrični algoritam, a koristi se za kriptiranje i
za potpisivanje. Sigurnost mu leži u dužini ključa (tablica 4-2. pokazuje tu
ovisnost) i težini faktorizacije velikih cijelih brojeva. Uz pažljivu upotrebu
algoritma, sigurnost je zajamčena. Ranjiv može postati jedino uz veliki
napredak postupaka faktorizacije velikih cijelih brojeva. ·
Diffie-Hellman – obično se koristi za izmjenu ključeva. Generalno se smatra sigurnim
uz korištenje prikladnih generatora slučajnih brojeva i dovoljno dugih
ključeva. Sigurnost algoritma leži u problemu diskretnosti logaritma (ekvivalentno
faktorizaciji velikih cijelih brojeva). 4.2. Jednosmjerne hash funkcijeKao što i samo ime govori, jednosmjerne funkcije su funkcije kod kojih je relativno jednostavno izračunati
ali je vrlo teško (praktički nemoguće u nekom razumnom vremenu) izračunati
Razbijanje tanjura čini dobru analogiju s jednosmjernom funkcijom: tanjur je jednostavno razbiti, ali je malo teže ponovno ga sastaviti. Za hash funkcije upotrebljava se više naziva: funkcija kompresije, funkcija kontrakcije, sažetak poruke, otisak, kriptografski podatak, kontrola integriteta poruke,… Hash funkcija je funkcija koja kao ulaz prima niz varijabilne dužine, a kao izlaz daje niz fiksne dužine. Jednostavna hash funkcija je XOR funkcija: obavljanje XOR operacije nad svim članovima niza daje broj fiksne dužine. Primjena hash funkcija je u provjeri identičnosti dviju poruka uspoređivanjem njihovih sažetaka. Većina hash funkcija je tipa “više prema jedan”, tj. može se naći više različitih ulaznih nizova za koje hash funkcija daje identičnu izlaznu vrijednost. Jednosmjerne hash funkcije imaju svojstva obiju prethodno spomenutih tipova funkcija. Pomoću jednosmjernih hash funkcija jednostavno je izračunati sažetak poruke, ali je gotovo nemoguće rekonstruirati poruku iz njena sažetka. Dobre jednosmjerne hash funkcije nemaju dva ili više ulaznih nizova za koje daju isti izlaz. Najraširenije hash funkcije su: ·
MD2, MD4 – stare verzije algoritama iz RSA. Budući da posjeduje određene
nedostatke, njihova se primjena ne preporučuje. ·
MD5 (Message Digest Algorithm 5) – ovaj
sigurni hash algoritam je razvijen u
RSA Data Security. Nizove proizvoljne dužine sažima u podatak dužine 128 bita.
U širokoj je upotrebi. ·
SHA (Secure Hash Algorithm) – ovaj algoritam je prilično nedavno objavila vlada SAD-a. Nizove
proizvoljne dužine, algoritam sažima u podatak dužine 160 bita. Smatra se
prilično dobrim algoritmom. ·
RIPEMD-160 – prilično novi
algoritam, dizajniran da zamijeni MD5. Nizove proizvoljne dužine sažima u
podatak dužine 20 bajta. Brzina rada mu je oko 40 Mb/s na 90 MHz pentiumu. 4.3. AutentifikacijaAutentifikacija je postupak utvrđivanja identiteta korisnika (osobe ili programa), a izvodi se prije nego se korisniku dopusti pristup resursima. Na taj se način onemogućava neovlaštenim korisnicima korištenje sustava (ili dijelova sustava). Postupak autentifikacije se sastoji od dva dijela: identifikacije i potvrde. Identifikacija je proces gdje korisnik daje svoj identitet, dok je potvrda proces potvrđivanja danog identiteta. Stoga ispravnost postupka autentifikacije najviše ovisi o upotrijebljenoj proceduri potvrde. 4.3.1. Tipovi i pristupiGlavni tipovi autentifikacije, korišteni u raspodijeljenim sustavima, su: · prijava korisnika (user login authentication) – bavi se potvrdom korisnika od sustava, u vrijeme prijave. · jednosmjerna autentifikacija (one-way authentication) – bavi se potvrdom identiteta jednog korisnika, od drugog korisnika. · dvosmjerna autentifikacija (two-way authentication) – bavi se obostranom autentifikacijom, gdje korisnici koji komuniciraju, potvrđuju jedan drugom svoj identitet. Tri su osnovna autentifikacijska pristupa: · dokaz znanjem (proof by knowledge) – u ovom pristupu, autentifikacija sadržava potvrdu nečega što zna samo autorizirani korisnik. Primjer je autentifikacija lozinkom (password). Ovaj pristup sadrži dva tipa autentifikacije: direktnu metodu (direct demonstration method) i metodu izazov-odgovor (challenge–response method). U direktnoj metodi korisnik potvrđuje svoj identitet dajući određenu informaciju (lozinku) koju sustav uspoređuje s ranije pohranjenom. Druga metoda funkcionira na način, da korisnik točno odgovara na pitanje (challenge) koje postavlja sustav. · dokaz posjedovanjem (proof by possession) – svoj identitet korisnik dokazuje predočenjem predmeta koji može posjedovati samo autorizirani korisnik. Primjer takvog predmeta je plastična kartica s magnetskom trakom na kojoj su upisani bitni podaci u električnom obliku. · dokaz osobinom (proof by property) – identitet se dokazuje mjerenjem nekih fizičkih osobina korisnika koje nije lako krivotvoriti. Mjerena osobina mora biti jedinstvena za svakog korisnika. Neke od ovih osobina su: otisak prsta, glas, potpis, mrežnica oka… Od ova tri predočena pristupa autentifikaciji, dokaz znanjem i dokaz posjedovanjem, mogu se upotrijebiti za sve tipove autentifikacije u sigurnim raspodijeljenim sustavima, dok je dokaz osobinom generalno ograničen na autentifikaciju ljudi, u sustavima opremljenim posebnim instrumentima. U praksi, sustavi mogu koristiti kombinaciju dvije ili više autentifikacijske metode. Npr. da bi uzeli novac iz bankomata, prvo moramo umetnuti identifikacijsku karticu, a zatim upisati odgovarajuću lozinku. 4.3.1.1. Prijava korisnikaU raspodijeljenim sustavima, kao i u centraliziranim, korisnik ostvaruje pristup sustavu preko glavnog računala (host computer). Identitet korisnika se potvrđuje u vrijeme prijave te se sve sljedeće aktivnosti korisnika pripisuju njegovu identitetu. Ispravna identifikacija korisnika u vrijeme prijave je presudna za funkcioniranje sigurnog sustava, jer se sve odluke kontrole pristupa baziraju na tom identitetu. Iako se za prijavu korisnika može koristiti bilo koji od tri osnovna autentifikacijska pristupa, dokaz znanjem je najšire korištena metoda, i to direktna metoda bazirana na lozinki korisnika. U ovoj metodi, sustav održava tablicu login imena korisnika i njihovih pripadajućih lozinki. Prilikom prijave, korisnik mora unijeti i ime i lozinku. Ako se lozinka koju je korisnik unio i lozinka koja je pohranjena u sustavu podudaraju pretpostavlja se da je korisnik legitiman te se zahtjev korisnika za korištenje sustava prihvaća. Inače se korisnik odbija. Za poboljšanje sigurnosti sustava, odnosno za osiguranje njegove praktične korisnosti, sustav mora sadržavati sljedeće mehanizme: · očuvanje tajnosti lozinke – korisnik je odgovoran za čuvanje njegove lozinke u vanjskom svijetu i to nije briga sustava (osim u vrijeme upisa lozinke kada se ona ne bi smjela pojaviti na ekranu terminala). Stoga je glavna briga sustava spriječiti uljeza da se dokopa nečije lozinke, imajući pristup tablici lozinki. Tablica je zaštićena i pristupiti joj može samo autentifikacijski program. Da se ne dogodi da se tablica slučajno izloži vanjskom svijetu ili da administrator sustava ima pristup podacima, podaci u tablici se ne čuvaju u jasnom obliku, nego se kriptiraju. Tako se prilikom prijave korisnika podaci prvo kriptiraju, a zatim uspoređuju sa isto tako kriptiranim podacima koji se nalaze u tablici. Pri tome nije potrebno znati ključ kriptiranja, jer nam dekriptiranje nije potrebno, nego se kriptiranje koristi na način C=E(P,P), gdje je P informacija koju kriptiramo, ali i ključ kojim kriptiramo. C je rezultat kriptiranja. · stvaranje lozinki teškim za pogađanje – korištenje mehanizma za očuvanje lozinki tajnim ne garantira da sigurnost sustava neće biti narušena. Uljez uvijek može pokušati metodom pokušaja i promašaja. Ova metoda često zna biti uspješna jer ljudi najčešće izabiru kratke i jednostavne lozinke koje mogu lako upamtiti. Ipak postoje neke tehnike koje se koriste za smanjenje vjerojatnosti pogađanja: ¨ duže lozinke – korištenje dužih lozinki može biti nametnuto od sustava na način da program za unos lozinke zatraži dužu lozinku svaki puta kada korisnik unese lozinku koja je prekratka. ¨ modificiranje tablice lozinki – sustav može generirati slučajan broj koji dodaje lozinki prilikom njenog prvog unosa u sustav. Takva obogaćena lozinka se kriptira i unosi u tablicu. Slučajni broj se također mora čuvati u tablici jer se i on koristi prilikom prijave korisnika. Ovako uljez mora za svaki pokušaj pogađanja lozinke načiniti dodatne pokušaje sa svim brojevima koji su mogli biti generirani. ¨ pomoć sustava u odabiru lozinki – lozinku može generirati sustav ili je može odabrati korisnik. Korisnik obično odabire lozinke koje je lako pogoditi. Zato se sustav dizajnira da pomogne korisniku pri odabiru. Sustav može koristiti listu lozinki za koje se smatra da se mogu lako pogoditi (razni opći pojmovi i imena) pa ako korisnik unese lozinku koja se nalazi u toj listi, sustav odbija prihvatiti takvu lozinku i traži novi unos. Moguće je i da sustav sam generira i nudi korisniku besmislene lozinke koje se lako pamte. Korisnik tada izabire jednu od ponuđenih lozinki miješajući velika i mala slova te riječi (RejV&tEhno). · identifikacija i obeshrabrivanje neautoriziranih prijava korisnika – postoji nekoliko upravljačkih tehnika za unapređenje sigurnosti sustava kod neautorizirane prijave korisnika. Neke od tih tehnika su: ¨ nadgledanje prijetnje (threat
monitoring) – ova tehnika otkriva narušavanje
sigurnosti sustava prateći sumnjive aktivnosti korisnika. Npr. sustav može
brojati broj neuspjelih pokušaja prijave korisnika, te nakon, recimo, tri takva
pokušaja definitivno odbiti korisnika ili alarmirati sigurnosno osoblje. ¨ praćenje rada korisnika (audit logs) – ova
tehnika prati rad svih korisnika na način da bilježi podatke o vremenu i
trajanju pristupa sustavu, objektima kojima je korisnik pristupio i tipu
pristupa pojedinim objektima. Kada korisnik pristupi sustavu, sustav mu
predočava informacije o posljednjem pristupu što može biti korisno u otkrivanju
mogućih upada. Ukoliko je upad otkriven, zapisi s gore navedenim podacima se
mogu koristiti za otklanjanje štete koju je učinio uljez. ¨ korištenje mamaca (baited
traps) – sustav može postaviti određene mamce u obliku
posebnih login imena sa jednostavnim lozinkama (npr. login ime: user; lozinka: user). Ukoliko bi netko pristupio sustavu koristeći ova imena,
sustav trenutno upozorava sigurnosno osoblje. · jednostruka prijava – u raspodijeljenom klijent-poslužitelj okruženju, korisnik na svome računalu može pokrenuti više klijent programa koji pristupaju različitim poslužiteljima na udaljenim računalima. U takvom okruženju poslužitelji moraju provjeriti da klijenti rade u ime legitimnog korisnika. Ne bi bilo zgodno da korisnik, svaki puta kada želi koristiti novu uslugu, mora unositi svoju lozinku. Jedan od načina da se to izbjegne je spremanje lozinke u privremenu memoriju i njeno korištenje svaki put kada je to potrebno. Međutim, ovaj se način baš i ne preporučuje jer je opasno držati lozinke u memoriji s gledišta očuvanja tajnosti lozinke. Kerberos autentifikacijski protokol (poglavlje 4.3.2.) nudi zanimljivo rješenje ovog problema. · ograničavanje štete učinjene kompromitiranim lozinkama – korisnik bi trebao često mijenjati lozinke tako da uljez koji uspješno pogodi trenutnu lozinku mora ponovo pogađati novu. Na ovaj način se šteta koju čini uljez može smanjiti. Ekstremni pristup ovom problemu je korištenje jednokratnih lozinki (one-time password). Postoje tri metode za provedbu ideje jednokratne lozinke: ¨ korisnik dobiva popis lozinki i za svaku prijavu mora koristiti sljedeću lozinku u listi. Očito je da korisnik mora čuvati popis na sigurnom mjestu, što predstavlja veliki nedostatak metode. ¨ svaki put kad se odjavljuje, sustav zatraži od korisnika da odabere novu lozinku koja zamjenjuje staru. Korisnik mora novu lozinku zapamtiti ili negdje napisati kako bi mogao sljedeći put ponovo koristiti sustav. ¨ autentifikacija se oslanja na specijalnu opremu kao što su pametne kartice ili sinkronizirani generatori lozinki. Npr. sinkronizirani generator lozinki generira pseudoslučajnu alfanumeričku riječ, ili broj koji se mijenja svake minute i vremenski je sinkroniziran s bazom podataka smještenom u računalu. Da bi se uspješno prijavio, korisnik mora unijeti riječ koja se nalazi na kartici u vrijeme prijave. To rezultira jednokratnom lozinkom koja je dobra samo u određenoj točki vremena i samo za jednu prijavu. Iako je ova metoda vrlo pogodna (automatsko održavanje liste lozinki) nije se puno raširila. Razlozi za to se nalaze u nekonvencionalnosti i cijeni dodatne opreme koju zahtijeva. Ipak, u budućnosti se očekuje veliki rast u njenu korištenju. 4.3.1.2. Jednosmjerna autentifikacijaKad korisnik A želi komunicirati s korisnikom B, B može poželjeti provjeru identiteta korisnika A, prije nego mu dopusti zahtjevanu komunikaciju. Npr. poslužitelj može biti dizajniran tako da prvo potvrdi identitet svakog klijenta koji želi s njim komunicirati. Budući da se autentifikacijski protokoli direktno oslanjaju na kriptografske algoritme, njihovi osnovni principi dizajna slijede tip kriptosustava koji koriste. Zato protokole možemo podijeliti u dvije skupine: one temeljene na simetričnim i one temeljene na asimetričnim kriptosustavima. Autentifikacijski protokoli obje ove skupine temelje se na principu dokaza znanjem. Protokoli temeljeni na simetričnim kriptosustavimaU simetričnim kriptosustavima, poznavanje tajnog ključa omogućava korisnicima kriptiranje i dekriptiranje proizvoljnih poruka. Bez tog znanja, korisnik ne može kriptirati poruku, niti kriptiranu poruku dekriptirati. Stoga, u protokolima temeljenim na simetričnim kriptosustavima, korisnik potvrđuje identitet drugog korisnika provjeravajući da li taj korisnik može ispravno kriptirati poruku ključem za koji se pretpostavlja da ga zna samo taj korisnik. Pretpostavimo da korisnik A želi komunicirati sa korisnikom B i B želi provjeriti identitet korisnika A prije stvarnog početka komuniciranja. Protokol se sastoji od sljedećih koraka (pri tome je K tajni ključ koji poznaju samo korisnici A i B): · korisnik A kriptira svoj identifikator (IDA) ključem K čime dobiva kriptiranu poruku C1=E(IDA,K). Nakon toga šalje poruku m1 korisniku B koja sadrži IDA i C1. · primivši m1, korisnik B dekriptira C1 koristeći ključ K i uspoređuje dobiveni rezultat s IDA poruke. Ako se identifikatori podudaraju, korisnik A se prihvaća, inače se odbija. Glavni nedostatak ovoga protokola predstavlja njegova ranjivost na napad ponovnog slanja. Naime, uljez može snimiti poruku koju šalje korisnik A i poslije je ponovno poslati skrivajući se iza njegova identiteta. Ovakvi napadi se mogu onemogućiti korištenjem vremenskih oznaka ili slučajnih brojeva (nonce values). Sljedeće rješenje, prikazano na slici 4-2., predstavlja izazov-odgovor tip protokola uz korištenje slučajnog broja: · korisnik A šalje svoj identifikator (IDA) korisniku B kao jasni tekst u obliku poruke m1. · primivši m1, korisnik B generira slučajan broj Nr i šalje ga korisniku A kao jasni tekst u obliku poruke m2. · primivši m2, korisnik A kriptira Nr koristeći ključ K čime dobiva C1=E(Nr,K). Tako kriptiranu poruku šalje korisniku B kao m3. · primivši m3, korisnik B dekriptira C1 koristeći ključ K i uspoređuje dobivenu vrijednost s originalnom vrijednosti broja Nr. Ako se vrijednosti podudaraju, korisnik A se prihvaća, inače se odbija. Slika 4‑2. Jednosmjerna autentifikacija temeljena na simetričnom algoritmu kriptiranja U ovom protokolu svježina broja Nr garantira da se uljez ne može maskirati kao korisnik A ponovnim slanjem neke od starih poruka. Pri tome se mora osigurati da broj Nr bude različit za svaku novu komunikaciju. Iako ovaj protokol funkcionira korektno, nije praktičan za širu upotrebu. Razlozi leže u sljedećim činjenicama: · protokol zahtijeva da svaki korisnik čuva tajne ključeve za svakog drugog korisnika s kojim bi mogao nekada komunicirati (ili nikada). Rješenje je nepraktično za velike sustave s velikim brojem korisnika, jednako kao i kod sustava s čestom i stalnom promjenom broja korisnika. · ugrožavanje jednog korisnika može ugroziti cijeli sustav. Ovi nedostaci se uklanjaju korištenjem centraliziranog autentifikacijskog poslužitelja, AP (authentication server). Svaki korisnik sustava ima zajednički ključ s AP-om te mu na taj način svi oni vjeruju. Protokol je prikazan na slici 4-3. i funkcionira na sljedeći način (pri tome su KA i KB tajni ključevi korisnika A i B koje posjeduje i AP): · korisnik A šalje svoj identifikator (IDA) korisniku B kao jasni tekst u obliku poruke m1. · primivši m1, korisnik B generira slučajan broj Nr i šalje ga korisniku A kao jasni tekst u obliku poruke m2. · primivši m2, korisnik A kriptira Nr koristeći ključ KA tako dobivši C1=E(Nr,KA). Tako kriptiranu poruku šalje korisniku B kao m3. · primivši m3, korisnik B kriptira par (IDA,C1) tajnim ključem KB generirajući C2=E((IDA,C1),KB). Tako kriptiranu poruku šalje AP-u kao m4. · primivši m4, AP dekriptira C2 ključem KB i dobiva par (IDA,C1). Poruku C1 AP dekriptira ključem KA koji se nalazi pridružen identifikatoru IDA u bazi ključeva čime dobiva Nr. Zatim taj broj ponovo kriptira, ovaj put ključem KB dobivši C3=E(Nr,KB) koju šalje korisniku B kao m5. · primivši m5, korisnik B dekriptira C3 ključem KB čime dobiva Nr. Ako se dobivena vrijednost podudara s originalnom korisnik A se prihvaća, inače se odbija. Slika 4‑3. Jednosmjerna autentifikacija temeljena na simetričnom algoritmu kriptiranja uz upotrebu Autentifikacijskog poslužitelja (AP) Ovaj protokol ublažava probleme distribucije i čuvanja ključeva jer sad korisnik mora čuvati samo jedan ključ. Sigurnost se unapređuje i činjenicom da se rizik čuvanja ključeva prenosi na AP čime se mogućnost ugrožavanja čitavog sustava smanjuje. Protokoli temeljeni na asimetričnim kriptosustavimaU asimetričnom kriptosustavu, javni ključ svakog korisnika je objavljen dok tajni ključ zna samo korisnik i nitko drugi. Stoga, u protokolima temeljenim na asimetričnim kriptosustavima, korisnik potvrđuje identitet drugog korisnika provjeravajući da li taj korisnik može ispravno kriptirati poruku svojim tajnim ključem za koji se pretpostavlja da ga zna samo taj korisnik. Ako korisnik A želi komunicirati sa korisnikom B, uz uvjet da B želi provjeriti identitet korisnika A prije same komunikacije, korisnici će koristiti protokol sa slike 4-4. (pri tome su PA i PB javni ključevi, a SA i SB tajni ključevi korisnika): · korisnik A šalje svoj identifikator (IDA) korisniku B kao jasni tekst u obliku poruke m1. · primivši m1, korisnik B generira slučajan broj Nr i šalje ga korisniku A kao jasni tekst u obliku poruke m2. · primivši m2 korisnik A kriptira Nr svojim tajnim ključem te dobiva C1=E(Nr,SA). Tako kriptiranu poruku šalje korisniku B kao m3. · primivši m3, korisnik B dekriptira C1 javnim ključem korisnika A čime dobiva broj Nr. Ako se dobivena vrijednost podudara s originalnom, korisnik A se prihvaća, inače se odbija. Slika 4‑4. Jednosmjerna autentifikacija temeljena na asimetričnom algoritmu kriptiranja Da bi se ublažio problem distribucije i čuvanja ključeva i ovdje se, kao i kod algoritama temeljenim na simetričnim kriptosustavima, može koristiti centralizirani AP. U ovom slučaju AP održava tablicu sa javnim ključevima svih korisnika, dok korisnici moraju imati samo jedan ključ, i to javni ključ AP-a. Protokol uz korištenje AP-a, sa slike 4-5., sadrži sljedeće korake(PP i SP su javni i tajni ključ poslužitelja): Slika 4‑5. Jednosmjerna autentifikacija temeljena na asimetričnom algoritmu kriptiranja uz upotrebu Autentifikacijskog poslužitelja (AP) · korisnik A šalje svoj identifikator (IDA) korisniku B kao jasni tekst u obliku poruke m1. · primivši m1, korisnik B generira slučajan broj Nr i šalje ga korisniku A kao jasni tekst u obliku poruke m2. · primivši m2 korisnik A kriptira Nr svojim tajnim ključem te dobiva C1=E(Nr,SA). Tako kriptiranu poruku šalje korisniku B kao m3. · primivši m3, korisnik B šalje par (RB, IDA) AP-u kao jasni tekst u obliku poruke m4. Pri tome RB predstavlja zahtjev za javni ključ korisnika čiji identifikator je naveden kao drugi član poruke (IDA). · primivši m4, AP pronalazi iz tablice ključeva PA, javni ključ korisnika čije identifikator je IDA, te kriptira par (IDA, PA) svojim tajnim ključem dobivši C2=E((IDA, PA),SP). Tako kriptiranu poruku AP šalje korisniku B kao m5. · primivši m5, korisnik B dekriptira C2 javnim ključem AP-a i dobiva par (IDA,PA). Sada uzima ključ PA i dekriptira C1 čime dobiva Nr. Ako se dobivena vrijednost podudara s originalnom korisnik A se prihvaća, inače se odbija. 4.3.1.3. Dvosmjerna autentifikacijaZadaci u raspodijeljenim sustavima su obično raspodijeljeni na više računala radi većeg protoka podataka i ravnomjernijeg korištenja resursa. Ispravnost tako raspodijeljenog zadatka ovisi da li se ti procesi mogu ispravno međusobno identificirati. Dvosmjerna autentifikacija omogućava obostranu potvrdu identiteta korisnika, prije nego oni među sobom uspostave sigurni logički komunikacijski kanal. Očito je da se dvosmjerna autentifikacija može obaviti i korištenjem protokola jednosmjerne autentifikacije dva puta. To znači da, ako korisnici A i B žele međusobno provjeriti identitete prije nego uspostave vezu, prvo može korisnik A identificirati korisnika B, a zatim korisnik B identificirati korisnika A. Koristeći takav protokol opisan u prethodnom poglavlju, obostranu autentifikaciju korisnici mogu obaviti s 10 poruka. Taj broj se može smanjiti. Jedan protokol koji se oslanja na asimetrične kriptosustave i koristi autentifikacijski poslužitelj, obostranu autentifikaciju korisnika obavlja sa 7 poruka. Protokol je prikazan na slici 4-6. i sastoji se od sljedećih poruka: Slika 4‑6. Dvosmjerna autentifikacija temeljena na asimetričnom algoritmu kriptiranja uz upotrebu Autentifikacijskog poslužitelja (AP) · korisnik A šalje AP-u poruku zahtjeva (m1) ukazujući da želi uspostaviti sigurni komunikacijski kanal s korisnikom B. Poruka se sastoji od kôda zahtjeva (RA), identifikatora korisnika A (IDA) i identifikatora korisnika B (IDB). Ova poruka se šalje u jasnom obliku. · primivši m1, AP u tablici ključeva, na osnovu identifikatora IDB pronalazi javni ključ PB. Nakon toga koristeći svoj tajni ključ, AP kriptira par (IDB,PB) te dobiva C1=E((IDB,PB),SP). Tako kriptiranu poruku šalje korisniku A kao m2. · primivši m2, korisnik A dekriptira C1 javnim ključem AP-a. Nakon toga generira broj NA, kriptira par (IDA,NA) javnim ključem korisnika B te dobiva C2=E((IDA,NA),PB). Tako kriptiranu poruku šalje korisniku B kao m3. · primivši m3, korisnik B dekriptira C2 svojim tajnim ključem. Nakon toga šalje poruku AP-u kojom traži javni ključ korisnika A i ključ sjednice (session key) simetričnog algoritma kriptiranja kojim će se uspostaviti sigurni logički komunikacijski kanal među korisnicima A i B. Ta poruka se sastoji od kôda zahtjeva (RB), IDA, IDB i NA. Prije slanja poruka se kriptira javnim ključem AP-a i glasi m4=C3=E((RB,IDA,IDB,NA),PP). · primivši m4, AP dekriptira C3 svojim tajnim ključem. Nakon toga generira tajni ključ sjednice za korisnike A i B, kao i tri kriptirane poruke: C4=E((IDA,PA),SP), C5=E((IDB,K,NA),SP) i C6=E(C5,PB). Na kraju šalje C4 i C6 korisniku B kao m5. · primivši m5, korisnik B dekriptira C4 i C6 ključevima PP i SB. Nakon toga generira slučajni broj NB i kreira kriptiranu poruku C7=E((C5,NB),PA). Na kraju šalje C7 kao poruku m6. · primivši m6, korisnik A dekriptira C7 svojim tajnim ključem, a zatim dekriptira i C5 javnim ključem AP-a. Sada oba korisnika posjeduju ključ sjednice (K). Nakon toga korisnik A generira C8=E(NB,K) i tako kriptiranu poruku šalje korisniku B kao m7. · primivši m7, korisnik B dekriptira C8 ključem sjednice i uspoređuje vrijednost dobivenog broja s originalnom vrijednošću NB. Ako se vrijednosti podudaraju možemo zaključiti da je uspostavljen sigurni logički komunikacijski kanal između ova dva korisnika. Kao ključ sjednice se koristi ključ K, a oba korisnika mogu biti sigurna u identitet onog drugog korisnika. 4.3.2. Primjer autentifikacijskog protokola – KerberosArhitektura Kerberos sustava je prikazana na slici 4-7. i sastoji se od sljedećih elemenata: Kerberos poslužitelj (Kerberos server) – ključni element Kerberos sustava je Kerberos poslužitelj koji djeluje kao centar za distribuciju ključeva. Svaki Kerberos poslužitelj posjeduje autentifikacijsku bazu podataka, autentifikacijski poslužitelj i poslužitelj za dodjelu ulaznica (ticket-granting server). U autentifikacijskoj bazi podataka se nalaze oznake (user ID) i lozinke (password) svih korisnika sustava. Povrh toga, Kerberos poslužitelj dijeli jedinstveni tajni ključ sa svakim poslužiteljem sustava zbog čega se u autentifikacijskoj bazi podataka nalaze također i podaci o oznakama poslužitelja (server ID) i njihove pripadne lozinke. Lozinke i tajni ključevi se raspodjeljuju fizički ili na neki drugi siguran način kao dio Kerberos instalacije. Za generiranje ključeva i kriptiranje poruka, Kerberos koristi DES algoritam, koji je implementiran kao zasebni modul tako da se može lako zamijeniti drugim prikladnijim algoritmom. Zadatak autentifikacijskog poslužitelja je potvrda identiteta korisnika u vrijeme prijave bez potrebe putovanja lozinke preko mreže. Kerberos posjeduje mogućnost jednostruke prijave, tako da korisnik, bez obzira kolikom broju različitih resursa treba pristupiti, svoju lozinku treba unijeti samo jednom. Poslužitelj za dodjelu ulaznica snabdijeva klijente ulaznicama, te im tako omogućava pristup drugim poslužiteljima unutar sustava. Ove ulaznice se koriste za uspostavu sigurnih logičkih komunikacijskih kanala između klijenata i poslužitelja uz korištenje obostrane autentifikacije. Budući da Kerberos poslužitelj, u svojoj autentifikacijskoj bazi podataka sadrži vrlo važne informacije, veoma je važno da se instalira na zaštićenom i fizički sigurnom stroju. Preporuka je da se Kerberos poslužitelj, uz ograničenje pristupa, instalira na posebni stroj. Slika 4‑7. Arhitektura Kerberos sustava Klijent – sljedeća komponenta Kerberos sustava se sastoji od procesa klijenata koji se obično obavljaju na stanicama raspoloživim velikom broju različitih korisnika. Stoga se, u punoj mjeri, ne mogu smatrati sigurnim. Korisnici prvo moraju potvrditi svoj identitet pomoću Kerberos poslužitelja, a tek nakon toga, mogu pristupiti ostalim poslužiteljima u sustavu. Jednom kada neki korisnik bude potvrđen, svaki njegov proces koji želi pristupiti nekom resursu, mora pribaviti ulaznicu od poslužitelja za dodjelu ulaznica. Poslužitelj aplikacije (application server) – treća komponenta Kerberos sustava je poslužitelj aplikacije ili jednostavnije poslužitelj. Poslužitelj pruža specifični tip usluge klijentu, na zahtjev klijenta, samo nakon potvrde autentičnosti. Poslužitelji obično rade u umjereno sigurnim prostorijama, tako da Kerberos osigurava da ugrožavanje jednog poslužitelja ne ugrožava ostale. Slika 4-7. prikazuje razmjenu poruka koju koristi Kerberos sustav u autentifikaciji. Sljedeći tekst detaljnije opisuje što se tu zapravo događa: · kad se korisnik prijavi za rad na svoj stanici, program za prijavu šalje poruku m1, koja predstavlja zahtjev autentifikacijskom poslužitelju za ulaznicu. Poruka se sastoji od oznake korisnika (IDC) i slučajnog broja (N) koji služi za otkrivanje ponovnog slanja iste poruke. Ova poruka se šalje u jasnom obliku. · primivši m1, autentifikacijski poslužitelj pronalazi lozinku korisnika u autentifikacijskoj bazi podataka te generira slučajni broj koji se koristi kao sjednički ključ (K1). Nakon toga generira ulaznicu za dodjelu ulaznica koja sadrži oznaku korisnika (IDC), oznaku poslužitelja za dodjelu ulaznica (IDG), vrijeme početka valjanosti ulaznice (TS1), vrijeme prestanka valjanosti ulaznice (TE1) te kopiju ključa sjednice (K1). Vremenske oznake služe za onemogućavanje uljeza od naknadnog korištenja poruke. Sada se ova ulaznica kriptira tajnim ključem poslužitelja za dodjelu ulaznica (KG), čime se dobiva C1=E((IDC,IDG,TS1,TE1,K1),KG). Nakon toga, autentifikacijski poslužitelj uzima tajni ključ klijenta (KC) kojim generira C2=E((N1,K1,C1),KC) te šalje m2=C2 programu za prijavu korisnika. · primivši m2, program za prijavu od korisnika zahtijeva lozinku. Unesena lozinka se propušta kroz jednosmjernu funkciju koja iz lozinke generira tajni ključ korisnika. Nakon toga se lozinka briše iz memorije, te program za prijavu korisnika pokušava dekriptirati C2 koristeći dobiveni KC. Ako je korisnik unio valjanu lozinku program za prijavu može koristiti sadržaj poruke C2, odnosno provjeriti slučajni broj N, spremiti ključ K1 i kriptiranu ulaznicu za kasniju upotrebu. Budući da za autentifikaciju korisnika sada služi ulaznica, tajni ključ klijenta se može izbrisati iz memorije. Kad je sve ovo obavljeno, na korisnikovoj stanici počinje izvođenje sjednice za prijavu. · sad kad se proces klijenta izvodi na stanici klijenta u ime autentificiranog korisnika koji želi pristup aplikacijskom poslužitelju, proces klijenta zahtijeva ulaznicu za dodjelu usluga od poslužitelja za dodjelu ulaznica koju će iskoristiti za komunikaciju s aplikacijskim poslužiteljem. Da bi to ostvario, klijent kreira autentifikator koji se sastoji od oznake korisnika (IDC) i vremenske oznake (T1) kriptiranog ključem K1, tj. C3=E((IDC,T1),K1). Za razliku od ulaznice za dodjelu ulaznica, koja se može ponovno koristiti, ovaj autentifikator je namijenjen samo za jedno korištenje i ima vrlo kratko vrijeme trajanja. Klijent sada šalje poruku m3 koja se sastoji od sljedećih elemenata: m3=(IDS, N2, C1, C3), gdje su N2 slučajna vrijednost i IDS oznaka aplikacijskog poslužitelja. · primivši m3 poslužitelj za dodjelu ulaznica dekriptira C1 svojim tajnim ključem (KG), provjerava da možda nije istekao usporedbom TE1 s trenutnim vremenom, te dekriptira C3, ključem K1, odakle dobiva IDC i T1. Dobiveni IDC se uspoređuje s IDC iz ulaznice za dodjelu ulaznica da bi se provjerio izvor zahtjeva. S druge strane, T1 se koristi za provjeru svježine zahtjeva. Ako sve provjere prođu uspješno, poslužitelj za dodjelu ulaznica može biti siguran da je pošiljalac ulaznice njen stvarni vlasnik. Nakon svega ovoga, poslužitelj za dodjelu ulaznica generira novi ključ sjednice (K2) i kreira ulaznicu za dodjelu usluga, koja se može ponovno koristiti, i koja služi za pristup zahtjevanom poslužitelju. Ova ulaznica sadrži oznaku klijenta (IDC), oznaku aplikacijskog poslužitelja (IDs), oznaku početka valjanosti ulaznice (TS2), oznaku prestanka valjanosti ulaznice (TE2) i kopiju novog ključa sjednice (K2). Sve to se kriptira tajnim ključem aplikacijskog poslužitelja (KS), čime se dobiva C4=E((IDC,IDS,TS2,TE2,K2),KS). Na kraju se kreira poruka C5=E((N2,K2,C4),K1) koja se vraća klijentu u obliku m4. · primivši m4, klijent dekriptira C5, odakle pribavlja slučajnu vrijednost N2, novi ključ sjednice i kriptiranu ulaznicu za dodjelu usluga. Zatim provjerava slučajnu vrijednost i sprema novi ključ sjednice i kriptiranu ulaznicu za nove moguće komunikacije s aplikacijskim poslužiteljem. Klijent je sada spreman za objavu poruke zahtjeva aplikacijskom poslužitelju. Ako se zahtijeva obostrana autentifikacija, prije zahtjeva za uslugu, klijent kreira autentifikator C6=E((IDc,T2),K2) koji, zajedno sa C4 šalje aplikacijskom poslužitelju u obliku m5=(C4,C6). · primivši m5, aplikacijski poslužitelj dekriptira C4, čime dobiva K2, kojim dekriptira C6. Odatle dobiva IDC i T2. Nakon toga računa T3=T2+1. Poruku m6=C7=E(T3,K2) aplikacijski poslužitelj vraća klijentu. · primivši m6, klijent dekriptira C7 čime dobiva T3. Provjerava da li vrijedi T3=T2+1. Ako je to istina klijent može biti siguran da je poslužitelj autentičan. Ova obostrana autentifikacija onemogućuje uljezu bilo kakvu mogućnost da se predstavlja u ime poslužitelja i tako dobije pristupne podatke od klijenta. Nakon svega navedenog, možemo zaključiti da su poslužitelj i klijent, između sebe ostvarili sigurni komunikacijski kanal. Pri tome posjeduju zajednički ključ sjednice (K2) koji mogu koristiti za kriptiranje budućih poruka ako zadatak, koji obavljaju, to zahtijeva. 4.4. Digitalni potpisiNakon međusobnog utvrđivanja identiteta, partneri u komunikaciji počinju razmjenjivati razne poruke. Međutim, nije garantirano da sve poruke dolaze baš od onoga korisnika koji tvrdi da poruke šalje. Netko se, naime, može krivo predstaviti te na taj način doći do podataka koji mu ne pripadaju. Rješenje se nalazi u autentifikaciji pojedinih poruka korištenjem digitalnog potpisa. Digitalni potpis je u osnovi jedan veliki broj koji ovisi o poruci koja se potpisuje. Slijedeća su njegova svojstva: · primatelj može potvrditi identitet za koji se izdaje pošiljatelj, · pošiljatelj ne može kasnije negirati sadržaj potpisane poruke, · primatelj ne može nikako sam mijenjati potpisanu poruku. Prvo svojstvo je npr. potrebno u financijskim sustavima. Kada računalo mušterije naruči od računala banke kupnju tone zlata, računalo banke mora biti sigurno da računalo koje naručuje kupnju zaista pripada kompaniji čiji se račun u transakciji tereti. Drugo svojstvo se koristi za zaštitu banke od prevare. Ukoliko bi banka kupila tonu zlata, a odmah nakon toga cijena zlatu naglo padne, neka bi mušterija mogla tužiti banku da nikada nije naručila tu kupovinu. Kad banka priloži potpisanu poruku, mušterija mora povući tužbu. Treće svojstvo služi za zaštitu mušterije u slučaju naglog porasta cijene zlata kad bi banka pokušala reći da je mušterija naručila jednu šipku umjesto tone zlata. Poruka se može potpisati na više načina, u ovisnosti o sljedećim pristupima digitalnom potpisu: · potpisi tajnim ključem, · potpisi javnim ključem, · potpisi uz sažetak poruke. 4.4.1. Potpisi tajnim ključemJedan pristup digitalnim potpisima je postojanje Centralnog poslužitelja – CP , koji zna sve i kojemu svi vjeruju. Svi korisnici izabiru tajni ključ koji prenose osobno u ured CP-a. Pri tome samo korisnik i CP znaju korisnikov tajni ključ. Ako Ana želi poslati potpisanu poruku Branki, slika 4-8., ona generira poruku E((B,RA,t,P),KA) koju šalje CP-u. CP vidi da poruka dolazi od Ane, dekriptira je i šalje novu poruku E((A,RA,t,P,KBB(A,t,P)),KB) Branki, gdje je KBB(A,t,P) potpisana poruka. Slika 4‑8.Digitalni potpisi tajnim ključem uz korištenje Centralnog poslužitelja (CP) Zašto Ana ne može poricati slanje poruke? Kao prvo, CP će primiti Aninu poruku samo ako je kriptirana njenim tajnim ključem, i koji nitko drugi ne zna. Kao drugo, kada CP dekriptira potpis poruke koji se nalazi kod Branke dobit će se podatak tko je i kada poslao poruku. CP mora biti nepogrešiv jer ako učini i jednu pogrešku više mu nitko neće vjerovati. Ukoliko se netko dokopa njegove baze tajnih ključeva potpisi postaju bezvrijedni. 4.4.2. Potpisi javnim ključemTemeljni problem korištenja algoritama tajnog ključa za digitalne potpise je što se svi moraju složiti da vjeruju CP-u. Nadalje, CP može čitati sve poruke koje prima. Najčešće CP-om upravljaju organizacije kao što su vlade ili banke. Međutim, neki građani nemaju povjerenja u ove organizacije. Stoga bi bilo dobro da potpisivanje dokumenata ne traži centraliziranu ustanovu. Asimetrični algoritmi rješavaju taj problem. Slika 4-9. pokazuje kako Ana potpisuje poruku koju šalje Branki. Ana poruku prvo dekriptira svojim tajnim, a zatim kriptira Brankinim javnim ključem. Time dobiva da samo Branka može čitati poslanu poruku. Kada Branka primi poruku i dekriptira je svojim tajnim ključem dobiva poruku koju, ako želi imati u jasnom obliku, mora kriptirati Aninim javnim ključem (i ničijim drugim), što dokazuje da je baš Ana poslala tu poruku (samo ona zna svoj tajni ključ). Slika 4‑9. Digitalni potpisi javnim ključem Iako ovo rješenje izgleda elegantno, ipak postoje određeni problemi, i to više u okruženju u kojem se izvodi nego u samom algoritmu potpisivanja. Branka može dokazati da je poruku poslala Ana sve dok je Anin ključ tajan. Ako Ana objavi svoj tajni ključ (ili ga netko ukrade) potpis više nije valjan, jer svatko tko zna taj ključ može potpisati poruku. Problem može nastati kada Ana želi promijeniti svoj tajni ključ. Tada ne bi mogli provjeriti sve one poruke koje je Ana potpisala svojim starim ključem. Zato bi ustanove (certificate authorities[MA3]) koje izdaju ključeve trebale bilježiti sve promjene ključeva kao i pripadne datume. U principu, bilo koji asimetrični algoritam se može koristiti za digitalne potpise. Trenutno se najviše koristi RSA koji predstavlja de facto standard. Prije nekoliko godina je NIST (američki nacionalni institut za standarde i tehnologiju) za standard pokušao nametnuti Digital Signature Standard (DSS), ali bezuspješno kao i mnogo puta dosad kad je vlada pokušala nametnuti neki kriptografski standard. 4.4.3. Potpisi uz sažetak porukeProtokol opisan u prethodnom poglavlju je teoretski ispravan, ali budući da su asimetrični algoritmi veoma zahtjevni u pogledu vremena izvođenja, njegova je velika mana brzina izvođenja. Zato će on služiti kao podloga na osnovu kojeg se izgrađuju drugi protokoli, kao npr. digitalno potpisivanje uz korištenje sažetka poruke. Sažetak poruke dobivamo korištenjem brze hash funkcije na poruku čiji sažetak želimo (pri tome je računanje sažetka poruke mnogo brže nego kriptiranje iste te poruke nekim asimetričnim algoritmom). Nakon toga sažetak kriptiramo vlastitim tajnim ključem čime dobivamo digitalni potpis. Slika 4‑10. Digitalni potpisi uz korištenje sažetka poruke (poruka se šalje u jasnom obliku) U praksi postoje različiti zahtjevi u pogledu sigurnosti prijenosa poruka. Ukoliko nije potrebno osigurati tajnost poruke, ona se šalje u jasnom obliku. Npr. kad Ana šalje poruku Branki (slika 4-10.), ona sažetak poruke dobiva hash funkcijom, zatim sažetak kriptira vlastitim privatnim ključem i Branki šalje (P,E(hash(P),SA)). Branka dobivši poruku od Ane ima poruku u jasnom obliku i kriptirani sažetak poruke. Sada Branka izračunava sažetak poruke i uspoređuje ga sa sažetkom koji je dobila dekriptiranjem Aninim javnim ključem kriptiranog sažetka poruke. Ako se dva sažetka slažu Branka može biti sigurna da je poruka stigla baš od Ane i od nikoga drugoga. Slika 4‑11. Digitalni potpisi uz korištenje sažetka poruke (poruka se kriptira) Druga verzija istog ovog protokola, slika 4-11., je slanje poruke, ne u jasnom, nego u kriptiranom obliku. Pri tome jasni tekst kriptiramo tajnim ključem (K) nekim simetričnim algoritmom. Nakon toga tajni ključ kriptiramo javnim ključem asimetričnog algoritma osobe kojoj poruku šaljemo. Poruka koju Ana šalje Branki je (E(P,K),E(K,PB),E(hash(P),SA)). Jedina novost koju Branka mora primijeniti prilikom provjere autentičnosti poruke je ta što mora dekriptirati ključ K svojim tajnim ključem, a zatim i poruku tajnim ključem K simetričnog algoritma. Algoritam je malo sporiji, ali je efikasan ako se zahtjeva tajnost prenošenih poruka. 4.5. AutorizacijaNakon uspješne autentifikacije korisnika ili procesa, sustav mora pronaći način kako ograničiti pristup onim resursima za koje nemaju pristup. Taj zadatak sustav rješava korištenjem mehanizama kontrole pristupa. U osnovi su ti mehanizmi jednaki i za distribuirane i centralizirane sustave. Glavna razlika je u tome da su resursi u centraliziranom sustavu lokalno smješteni, pa se kontrolu pristupa tim resursima može obavljati centralno, dok je u raspodijeljenoj klijent-poslužitelj okolini, svaki poslužitelj odgovoran za kontrolu pristupa vlastitim resursima. Kad se govori o kontroli pristupa u računalnim sustavima obično se koriste sljedeći pojmovi: ·
objekti – objekt je entitet kojemu se pristup mora kontrolirati. Može biti
apstraktan entitet (proces, datoteka, semafor) ili fizički entitet (procesor,
memorijski segment, pisač). Svaki objekt ima jedinstveno ime kojim se
diferencira od svih drugih objekata u sustavu. Svakom objektu se pridjeljuje i
tip koji određuje skup operacija koje se mogu obaviti na tome objektu. ·
subjekti – subjekt je aktivan entitet čiji se pristup objektima mora
kontrolirati. Drugim riječima, to je entitet koji želi pristupiti objektima i na
njima izvršiti operacije. Primjeri subjekata su procesi i korisnici. Treba
primijetiti da su subjekti istovremeno i objekti jer i oni također moraju biti
zaštićeni. Radi toga i oni, kao i objekti, imaju jedinstveno ime. ·
pravila zaštite – pravila zaštite definiraju moguće načine međusobnog djelovanja
subjekata i objekata. To znači da ta pravila upravljaju pristupom subjekata
objektima. Svakom se paru (subjekt, objekt) pridružuje pravo pristupa koji
predstavlja podskup skupa svih prava pristupa koje subjekt može izvršiti na
objektu. Točan način korištenja pravila zaštite za kontrolu pristupa subjekata objektima ovisi o modelu kontrole pristupa koji sustav koristi. Najpoznatiji modeli kontrole pristupa su: · model pristupne matrice (the access matrix model), · model kontrole toka informacije (the information flow control model), · model sigurnosne jezgre (the security kernel model). Najpopularniji i najrašireniji model, koji se koristi i u centraliziranim i raspodijeljenim sustavima, je model pristupne matrice. Budući da su druga dva modela u uglavnom od teoretske vrijednosti, u ovom radu je prikazan opis samo jednog modela, modela pristupne matrice. U distribuiranim sustavima vrijedi princip najmanjeg prava (the principle of least privilege) koji kaže da bi u svakom trenutku, subjekt trebao pristupati samo onim objektima koji su mu trenutno potrebni za završetak zadatka. Stoga bi, s vremena na vrijeme, subjekti trebali mijenjati skup prava pristupa koji imaju na određene objekte, ovisno o zadatku koji moraju obaviti u tom trenutku. Za ostvarenje takve fleksibilne kontrole pristupa u sigurnosnim sustavima, koristi se koncept domena. Domena je apstraktna definicija skupa prava pristupa. Definira se kao skup parova (objekt, prava). Svaki takav par određuje objekt i jednu ili više operacija koje se mogu izvršiti na objektu. Pri tome se sve dozvoljene operacije nazivaju prava. Sigurnosni sustav temeljen na konceptu domena, definira skup domena gdje svaka domena posjeduje vlastiti skup parova (objekt, prava). U svakom trenutku, svaki se proces izvodi u jednoj zaštitnoj domeni sustava. Stoga su, u određenom trenutku, prava pristupa procesa jednaka pravima pristupa definiranim u onoj domeni u kojoj se proces nalazi u tome trenutku, s tim da za vrijeme izvođenja, proces može mijenjati domene. Model pristupne matrice· pristupne kontrolne liste (access control lists – ACLs), · sposobnosti djelovanja (capabilities), · hibridni pristup (hybrid approach). 4.5.1. Pristupne kontrolne listeU ovoj metodi, pristupna se matrica rastavlja po stupcima te se svaki stupac matrice izvodi kao pristupna lista objekta toga stupca. Prazni zapisi matrice se ne unose u listu. Iz toga proizlazi da lista za svaki objekt sadrži parove (domena, prava) definirajući sve domene, nepraznim skupom pristupnih prava za taj objekt. Sigurnosni sustav temeljen na pristupnim listama ima sljedeća svojstva: ·
potvrda pristupa (access
validation) – svaki put kad subjekt u domeni D izvršava operaciju r na objektu O, mora se prvo pretražiti pristupna lista toga objekta. U njoj se
traži element čija vrijednost polja domene je D i vrijednost polja prava sadrži vrijednost r. Ako se takav element nalazi u listi, operacija se može
nastaviti, inače dolazi do povrede zaštite. U ovoj metodi, pristupna se lista
provjerava za svaki pristup što može uzrokovati znatne usporenja, pogotovo kod
dugačkih pristupnih listi. Nedostatak se može izbjeći korištenjem priručne
memorije za zapise pristupne liste samo aktivnih domena. ·
dodjela prava (granting
rights) – pravo pristupa r objekta O, dodjeljuje
se domeni D na sljedeći način: ¨ prvo se pretražuje pristupna lista objekta O. Traži se element liste čija vrijednost polja domene je D. ¨ ako je element pronađen, pravo r
se dodaje u polje prava toga elementa. Inače se dodaje novi element u pristupnu
listu objekta O, a polje domene i
polje prava poprimaju vrijednosti D i
r. ·
prijenos prava (passing
rights) – pravo pristupa r objekta O prenosi se iz
domene D1 u domenu D2 na sljedeći način: ¨ prvo se pretražuje pristupna lista objekta O radi provjere domene D1,
u smislu posjedovanja vlasničkog prava nad objektom O ili prava preslikavanja za pristupno pravo r. ¨ ako domena D1
posjeduje jedno od ta dva prava, pravo pristupa r objekta O prenosi se u
domenu D2. Inače dolazi do
povrede zaštite. ·
ukidanje prava (rights
revocation) – pravo pristupa r objekta O u domeni D, ukida se jednostavnim brisanjem r iz skupa prava domene D u pristupnoj listi objekta O. Glavna prednost metode pristupne liste je, da se za dani objekt može efikasno odrediti skup domena iz kojih se objektu može pristupiti, dok je glavni nedostatak u nemogućnosti efikasnog određivanja skupa prava pristupa za danu domenu. 4.5.2. Sposobnosti djelovanjaKoristeći ovu metodu, pristupna matrica se rastavlja po recima te je svakom retku pridružena njegova domena. Naravno, prazni se zapisi izostavljaju. Iz toga proizlazi da se za svaku domenu održava lista uređenih parova (objekt, prava) koja definira sve objekte za koje domena posjeduje neka prava pristupa. Svaki par (objekt, prava) naziva se sposobnost, a lista pridružena domeni, lista sposobnosti. Sposobnost se koristi za: · jedinstvenu identifikaciju objekta, · omogućavanje pristupa vlasniku, objektu koji je identificiran sa jednom ili više vrsta dozvola. Stoga se sposobnost sastoji od dva osnovna dijela – identifikatora objekta i podatka o pravima. Identifikator objekta obično sadrži pokazivač na objekt i djeluje kao globalno, jedinstveno ime za objekt kojim upravlja sustav. S druge je strane, podatak o pravima, obično skup bitova koji određuje koje se operacije mogu izvoditi na objektu s tom sposobnošću. Sigurnosni sustav temeljen na sposobnostima ima sljedeća svojstva: · potvrda pristupa – sposobnost je kartica koja se ne može krivotvoriti i koja omogućava, onome tko je posjeduje, pristup objektu na jedan ili više načina pristupa. Obično postoji nekoliko sposobnosti za svaki pojedini objekt i svaka ona daje različita prava pristupa svome vlasniku. Ista sposobnost, koju posjeduju različiti vlasnici, osiguravaju isti skup pristupnih prava svim tim vlasnicima. Budući da posjedovanje sposobnosti znači da je pristup objektu dozvoljen načinom određenim sposobnošću, izvršenje operacije r na objektu O izvodi se tako da proces izvršava operaciju r navođenjem sposobnosti objekta O kao parametra. Kad nadglednik objekta O primi zahtjev za pristup (zajedno sa sposobnošću), on mora samo potvrditi da dio sposobnosti koji sadrži podatak o pravima, sadrži dozvolu za operaciju r. · dodjela i prijenos prava – u sustavima koji se temelje na sposobnostima, obično postoji više nadglednika objekta za svaki tip objekta. Zahtjev za kreiranje objekta ili za izvođenje neke operacije na objektu šalje se jednom od nadglednika za taj tip objekta. Kod kreiranja novog objekta, nadglednik objekta koji kreira objekt, generira (kao dio procesa kreiranja objekta) sposobnost sa svim pravima pristupa za taj objekt. Generirana sposobnost se vraća vlasniku na korištenje. Sad vlasnik može dati sposobnost drugim korisnicima s kojima dijeli objekt. Međutim, vlasnik može i ograničiti pristup na različite načine za različite korisnike koji dijele objekt. Stoga, prije nego vlasnik preda sposobnost drugima, sposobnost se može ograničiti uklanjanjem nekih prava. To obično radi funkcija za ograničavanje sposobnosti koja se nalazi u nadgledniku objekta. Kada se pozove, ona generira novu sposobnost za objekt sa samo željenim dozvolama pristupa. Ta se sposobnost onda daje onim korisnicima za koje je i kreirana. · zaštita sposobnosti od neautoriziranog pristupa – za osiguranje objekata od neautoriziranog pristupa, u sigurnosnim sustavima temeljenim na sposobnostima, potrebno je osigurati sljedeće zahtjeve: ¨ sposobnost mora jedinstveno identificirati objekt u čitavom sustavu. Čak i kad se objekt, kojemu je pridružena neka sposobnost obriše, važno je da se sposobnost ne koristi ponovo jer neki korisnici mogu zadržati sposobnosti koje više nisu u upotrebi. Korištenje takvih sposobnosti bi trebalo uzrokovati pogrešku. ¨ sposobnost mora biti zaštićena od prijevara korisnika. Zato je sposobnosti potrebno tretirati kao zaštićene objekte kojim upravlja operacijski sustav, dok im korisnici mogu samo indirektno pristupiti. ¨ pogađanje pravovaljane sposobnosti mora biti nemoguće ili barem vrlo teško. Ovo se zahtjeva zato što je stupanj zaštite sustava temeljenog na sposobnostima proporcionalan težini pogađanja pravovaljane sposobnosti. · ukidanje prava – u sigurnosnim sustavima temeljenim na pristupnim listama, ukidanje prava je jednostavno, jer je moguće lako i efikasno odrediti koji subjekti imaju koja prava za dani objekt. Dotle, u sigurnosnim sustavima temeljnim na sposobnostima, ukidanje prava predstavlja malo veći problem jer je ovdje teže odrediti koji subjekti imaju koja prava za dani objekt. To je zato jer se sposobnosti za određeni objekt mogu nalaziti u nekoliko lista sposobnosti koje su raspodijeljene diljem sustava pa da bi ih ukinuli, prvo ih moramo pronaći. 4.5.3. Hibridni pristupAko usporedimo dvije prethodne sheme, vidjet ćemo da je shema koja se temelji na pristupnim listama prikladnija za implementaciju sigurnosnog sustava jer se ta shema direktno podudara s potrebama korisnika. Kad korisnici kreiraju objekte, oni određuju koje domene mogu objektima pristupiti i koje operacije mogu na objektima izvršiti. Međutim, takvi sustavi su manje efikasni od sustava koji za svoj rad koriste sposobnosti, budući da moraju pretraživati pristupnu listu prilikom svakog pristupa. Da bi nadvladali nedostatke te dvije sheme, a u isto vrijeme iskoristili njihove prednosti, većina sustava u radu koristi hibridni pristup. U hibridnom pristupu koriste se obje sheme preko koncepta sjednice (session). Sjednica je logički koncept vremenskog perioda za vrijeme kojeg proces pristupa objektu. Kad proces prvo pokuša pokrenuti sjednicu za pristup objektu, on navodi načine pristupa (vrste operacija) koje može izvesti na objektu za vrijeme sjednice. Pretražuje se pristupna lista objekta za željene vrste operacija. Ako pristup nije dozvoljen dolazi do povrede zaštite. Inače sustav kreira novu sposobnost za objekt te je dodaje procesu. Nakon ovoga, svi pristupi ovoga procesa objektu, koji se događaju za vrijeme sjednice, ostvaruju se korištenjem sposobnosti čime se omogućava efikasna kontrola pristupa. Sposobnost se uništava završetkom sjednice. 5. BANKARSKI SUSTAVIPolje računalne sigurnosti se koncentrira na dizajniranje takvih sustava koji će i u prisustvu zlonamjernog kôda djelovati po određenim pravilima. Takav sustav nije lako dizajnirati jer napadi mogu djelovati na način da se uopće ne očituju prema van. Drugim riječima, sustav može samo prividno raditi normalno. Stoga se sustavi moraju izvesti na način da budu sigurni u svim dijelovima koncepcije, dizajna i izvedbe. Razvoj i dizajn složenih sustava u koje možemo imati povjerenja i koji će u potpunosti zadovoljavati sigurnosne zahtjeve predstavlja veliki izazov, ali i odgovornost. Teorija računalne sigurnosti, koja se razvijala usporedo s porastom značaja sigurnosnih računalnih sustava, svojim formalnim metodama izvedbe, olakšava nam izgradnju takvih sustava. Teorija navodi sljedeće sigurnosne koncepte: · politika rukovođenja (policy) – razumijevanje onih prijetnji od kojih podatke treba čuvati, osiguravajući tako povjerljivost, cjelovitost i dostupnost. · povlastica (privilege) – kreiranje mehanizama, kontrole mogućnosti aktivnog entiteta sustava za pristup i štetno djelovanje na resurse sustava. · identifikacija i autorizacija – povezivanje aktivnosti računala s pojedinim korisnicima koji se smatraju odgovornim za aktivnosti koje poduzimaju. · točnost (correctness) – osiguranje sklopovlja, programske podrške i sigurnosnih sustava rukovođenja od podložnosti prijevarama. · praćenje (audit) – kreiranje tragova i mogućnost njihova tumačenja. Svaki ozbiljniji sigurnosni sustav, pa tako i bankarski mora koristiti navedene koncepte. Osnovna djelatnost banaka je rad s novcem te je zato i velik broj onih koji ciljaju na njihove sustave kako bi na lak način došli do novčanih sredstava. Sustav mora biti koncipiran tako da napadaču onemogući upade, uvid i promjene stanja računa korisnika. Za sigurnosne sustave velikih kompanija možemo reći da su ključni za njihov ukupni financijski uspjeh. Za banke to vrijedi još i više. Upadom u sustav, napadač može doći do određenih sredstava, većih ili manjih. Pretpostavlja se da taj financijski manjak ipak neće uzdrmati banku. Veći problem predstavlja iznošenje informacije o provali u javnost, što kod korisnika usluga uzrokuje pojavu straha i nepovjerenja, a samim time i povlačenje sredstava i prelazak u drugu, sigurniju banku. Prije samog razvoja sustava moraju se identificirati potencijalni napadači. To može biti neki 14-godišnji dječak, željan zabave i slave, koji vjerojatno neće moći (znati) učiniti neku veću štetu. Ali napadač može biti i dobro organizirana skupina s točno utvrđenim gospodarskim ciljevima. Važna je i činjenica da li je sustav koji se napada usamljena meta, ili se nalazi u nekoj specifičnoj skupini ciljeva. Ako je cilj usamljen, obrana od napada će biti nešto teža, budući da se najčešće, takvi napadi ne mogu jednostavno obeshrabriti. Ako se cilj nalazi u nekoj specifičnoj skupini, sustav obično treba sadržavati onoliku razinu sigurnosti koja će potaknuti napadača da ipak prijeđe na drugi cilj u toj skupini. Svaki računalni sigurnosni sustav upravlja određenim podacima. Tako sustavi velikih kompanija čuvaju razne tehničke i marketinške podatke, a sustavi vlada i njezinih organizacija čuvaju povjerljive političke i vojne informacije. Neprilagođenost takvih sustava uvjetima koji vladaju u današnjem svijetu, može dovesti do propasti kompanija, odnosno do krize ili čak promjene vlasti. Osiguranje apsolutne sigurnosti nije moguće. Moguće je jedino povećati razinu napora koju napadač mora uložiti. U svaki je sustav potrebno ugraditi onu razinu sigurnosti koja će odgovarati vrijednosti informacija koje sustav čuva. Stoga je osnovni cilj dizajna svakog sustava, uložiti onoliko sredstava i vremena, koliko vrijede podaci kojima sustav upravlja. 5.1. Opće slabosti sigurnosnih sustavaKriptografski sustav može biti jak koliko su jaki algoritmi kriptiranja, algoritmi digitalnih potpisa, hash funkcije i protokoli autentifikacije na koje se sustav oslanja. Drugim riječima, snaga kriptografskog sustava je obično jednaka snazi njegove najslabije točke. Ovo uvijek treba imati na umu, jer jednako kao što je moguće napraviti slabu strukturu koristeći jake materijale, moguće je izgraditi i loši kriptografski sustav koristeći dobre algoritme i protokole. Za primjer možemo uzeti usporedbu kriptografskog algoritma s bravom na ulaznim kućnim vratima. Da bi ušao u kuću, lopov na bravi može isprobati puno ključeva. Mi mu taj posao možemo otežati ugrađivanjem modernije brave (analogija – algoritam koji koristi duži ključ). Ali lopov neće iskušavati sve moguće ključeve, nego će naći neki drugi način za ulazak: razbit će prozor ili provaliti vrata. Bolje brave ne rješavaju takve probleme. Tako je i s algoritmima. Povoljno je koristiti njihove nove i snažnije verzije, ali ako ih ne koristimo smišljeno i u suradnji s drugim sigurnosnim elementima, sustav koji izgrađujemo neće biti snažniji nego što je bio prije. 5.1.1. Napad na dizajnUslijed nepravilnog korištenja kriptografije, dosta sustava zapravo poništava garanciju koju kriptografske metode pružaju. Algoritmi kriptiranja, sami po sebi, ne pružaju cjelovitost podataka, niti protokoli razmjene ključeva, sami po sebi, osiguravaju da obje strane dobivaju isti ključ. Ukoliko se sustav pogrešno dizajnira, svaki malo ozbiljniji napad na sustav može biti uspješan. Da bi postigli pravu sigurnost, u sustav nije dovoljno samo ugraditi neki algoritam. Potrebno je učiniti mnogo više. Čak i dobri inženjeri, poznate kompanije i mnoštvo uloženog truda ne garantiraju dobru izvedbu. Jedan od važnih kotačića u radu sustava predstavlja generator slučajnih brojeva (random-number generator). Budući da mu se ponekad ne pridaje značaj koji zaslužuje, on predstavlja mjesto na kojem kriptografski sustavi često padaju. Sigurnost generatora slučajnih brojeva gotovo uvijek ovisi o posebnostima sklopovlja i programske podrške na kojima djeluje, pa je veoma teško dizajnirati generator koji će generirati stvarno slučajne brojeve. Zato te generatore često nazivamo generatorima pseudo-slučajnih brojeva. Generatori slučajnih brojeva obično generiraju brojeve koji se koriste kao ključevi te samim time dobivaju poseban značaj. Uobičajeni generatori koji se nalaze u većini programskih jezika, nisu preporučljivi za korištenje u kriptografskim aplikacijama, jer su dizajnirani da daju statističku slučajnost, čime postaju lak plijen kriptoanalitičara. Najbolji se oni generatorai koji u sebi imaju ugrađen neki fizički izvor slučajnosti koji se ne može predvidjeti. Jedan od primjera bi bio interval između dva prekida koji generira neka komponenta računala ili korisnik pritiskom na tipkovnicu. 5.1.2. Napad na izvedbuMnogi sustavi nisu dobri zbog grešaka u izvedbi. Neki od njih ne osiguravaju uništenje jasnog teksta nakon kriptiranja. Drugi koriste privremene datoteke za zaštitu od gubitka podataka za vrijeme pada sustava. Sve ove pojave mogu nehotično ostaviti jasni tekst slobodnim negdje na hard disku. Greške u izvedbi rade čak i velike softverske kompanije. Tako npr. Jedan sigurnosni sustav, za unos lozinke koristi posebni prozor. Kada unesemo lozinku prozor se zatvori. Ali lozinka ostaje u memoriji prozora i nakon što se on zatvori. U ovom slučaju nije bitno koliko jake algoritme kriptografije sustav koristi, kada ga se može probiti kroz korisničko sučelje [7]. Sustavi koji dopuštaju obnovu starih ključeva u nuždi – sustavi u kojima se ključevi nalaze kod nekoga na čuvanju (key escrow systems) – otvaraju nove mogućnosti napada. Dobri kriptografski sustavi su dizajnirani tako da ključevi postoje što je kraće moguće; obnova ključeva uvjetuje postojanje ključeva duže vremena nego što su korisni, čime se negiraju dobre osobine sustava. Nadalje, baze za obnovu ključeva, same po sebi, postaju izvor prijetnji sustavu te se stoga moraju pažljivo i sigurno dizajnirati i izvesti. 5.1.3. Napad na sklopovljeMnogi sustavi svoju sigurnost grade na sklopovlju kao što su pametne kartice (smart cards) ili elektronički novčanici (electronic wallets). Sigurnost sustavima jamče na osnovu njihove otpornosti na prijevaru. Stoga su dizajnirani na način da u sebi sadrže tajne informacije kojima neautorizirane osobe ne mogu manipulirati. Korisnici ovih naprava moraju biti posebno oprezni, jer one naprave čija sigurnost leži samo na pretpostavkama o otpornosti, mogu lako postati ulaz u sustav nepozvanim osobama. Kod dizajna sustava koji koristiti razne vrste kartica (čip, magnetske, mikroprocesorske[MA5]) potrebno je izgraditi dopunske sigurnosne mehanizme, budući da tehnike razbijanja zaštite svakim danom postaju sve bolje. Ovdje vrijedi, kao i kod drugih vrsta sustava, da vrijednost podataka koji se čuvaju, u svakom slučaju mora biti veća, od procjene troškova za ostvarenje samog sustava. 5.1.4. Napad na korisnikeČak i kad je sustav siguran kad se pravilno koristi, njegovi korisnici ga mogu potkopati slučajno – pogotovo kod sustava koji nisu dizajnirani ispravno. Klasični primjer je kad korisnik “posudi” svoju lozinku kolegi na poslu da bi on mogao riješiti probleme koji nastanu dok njega nema u uredu. Takozvani “društveni napadi” (social-engineering attacks) često mogu polučiti bolje rezultate nego mjeseci kriptoanalize. Korisnici često ne prijavljuju gubitak pametne kartice po nekoliko dana, misleći da su je samo zagubili. Isto tako koriste lozinke sigurnih sustava na sustavima koji nisu sigurni, ili ih zapisuju na vidljivim mjestima. Dobro dizajnirani sustavi ove društvene probleme ne mogu ukloniti, ali sigurno mogu pomoći u njihovu izbjegavanju. 5.1.5. Napad na kriptografijuČesto se zna dogoditi da sustavi kriptografiju koriste na pogrešan način. Neki se tako oslanjaju na nedovoljno istražene algoritme, ili algoritme koje su napisali, uvjetno rečeno, laici. Takvi algoritmi su uglavnom loši i treba ih se kloniti. Mnogi ljudi pokušavaju izmisliti svoj kriptografski algoritam. Takvi algoritmi uglavnom rade svoj posao, tj. jasni tekst nekako šifriraju i čine ga nejasnim većini ljudi, ali ne i iskusnim kriptoanalitičarima koji ih lakoćom mogu probiti. Korištenje tajnih algoritama (koji nisu javno objavljeni), također ne garantira neku veću sigurnost te bi takve algoritme trebalo izbjegavati. Razlog njihove tajnosti može biti baš u nekoj zamci koju je autor smislio da lakše dođe do podataka koji se kriptiraju, a da to korisnici ne znaju. Kriptografski algoritmi koji se nalaze u širokoj upotrebi, uglavnom se smatraju sigurnim. Da bi dobili taj pridjev sigurnosti morali su proći mnoge provjere. Međutim, i najjači takav algoritam, uz neprikladnu izvedbu, može se probiti. 5.2. Osnovni principi dizajnaVećina kriptografskih sustava se ograničava na prevenciju kao jedino sredstvo obrane. Takvi sustavi se ne smatraju jakim. Dobri kriptografski sustavi nastoje detektirati zloupotrebu, uz poznavanje aktivnosti bilo kojeg napada. Jedno od temeljnih principa dizajna sigurnosnih sustava je svojstvo da će, prije ili kasnije, svaki sustav biti uspješno napadnut, i to vjerojatno na posve neočekivani način s potpuno neočekivanim posljedicama. Vrlo je bitno takve napade detektirati i sustav ponovno osposobiti uz primjenu unaprijed definiranih postupaka, sve da bi učinjena šteta na sustavu bila minimalna. Ako se napad dogodi, sustav mora pokušati zaštititi podatke od mijenjanja ili uništavanja, a jednako tako i prikupiti što više informacija za prikupljanje dokaza koje bi koristili za policijsko ili sudsko gonjenje napadača. Ljudi koji se bave sigurnosnim sustavima, nalaze se u nepovoljnijem položaju od napadača. Naime, dobar sigurnosni proizvod mora biti otporan na sve vrste napada, pa čak i na one koji do sada još nisu izmišljeni. Napadači, s druge strane, moraju naći samo jednu pukotinu u sustavu, čime poništavaju sve ostale ugrađene sigurnosne mjere. Može se reći da je jednostavno, kriptografski sustav učiniti lošim, a vrlo teško, učiniti ga dobrim. Na nesreću, puno ljudi ne primjećuje razliku. Svaki sustav ima svoje pozitivna i negativna svojstva, gdje se negativna svojstva nastoje izbaciti. Malo je nezgodno da se traženje tih svojstava uglavnom mora obavljati on-line, kad sustav već radi, što napadači znaju vrlo dobro iskoristiti. Zbog toga su mnogi istraživači i dizajneri sustava rezultate svojih istraživanja javno iznosili i time omogućili edukaciju svih onih koji su zainteresirani za ovu problematiku. Rezultati mnogih takvih istraživanja nalaze se u nastavku teksta u obliku smjernica koje bi dizajneri sustava morali koristiti prilikom dizajna i izgradnje sigurnosnih računalnih sustava. ·
najmanje pravo (least privilege) – načelo najmanjeg prava kaže da bilo koji proces, u bilo koje vrijeme,
treba dobiti samo ona prava pristupa koja mu omogućuju pristup samo onim
resursima koji su mu potrebni za obavljanje postavljenog zadatka. To znači da
sigurnosni sustav mora biti dovoljno fleksibilan da omogući porast i smanjenje
pristupnih prava procesa u onoj mjeri u kojoj to proces zahtjeva. Ovaj princip
služi za ograničenje štete koja može nastati ukoliko dođe do sloma sigurnosti
sustava. ·
početne vrijednosti dozvola (fail-safe defaults) – pristupna se prava moraju steći eksplicitnom dozvolom, uz
predefiniranu vrijednost onemogućenosti pristupa. Drugim riječima, ovo načelo
kaže da se odluke o kontroli pristupa donose na osnovu pitanja: zašto bi neki
proces mogao pristupiti objektu, a ne, zašto ne bi mogao pristupiti. ·
otvoreni dizajn (open design) – načelo otvorenog dizajna kaže da dizajn sigurnosnih mehanizama ne bi
trebalo držati tajnim, budući da tajnost mehanizma neće spriječiti napadača da
sazna način na koji sigurnosni sustav radi. ·
ugrađenost u sustav (built in to the system) – ovo načelo zahtijeva da se sigurnost dizajnira pri početku razvoja
sustava i to pri najnižim razinama sustava. To znači da se prema sigurnosti ne
smije odnositi kao prema dodatnom obilježju, jer se sigurnosni problemi ne mogu
efikasno ukloniti krpanjem otvora koji se pronalaze u postojećem sustavu. ·
provjera trenutne dozvole (check for current authority) – ovo načelo zahtjeva da se svaki pristup svakom objektu mora
provjeriti koristeći bazu podataka za kontrolu pristupa. Ovo je potrebno za
omogućavanje efekta trenutnog opoziva prethodno danog prava pristupa. U nekim
sustavima, na primjer, provjera dozvole pristupa se radi samo prilikom
otvaranja datoteke, dok su sljedeći pristupi datoteci dozvoljeni bez ikakve
provjere. Tako neki korisnik može držati datoteku otvorenu nekoliko dana i
stalno imati pravo pristupa, čak i ako vlasnik datoteke promjeni dozvole
pristupa i povuče pravo pristupa tome korisniku. ·
laka dodjela i opoziv
pristupnih prava (easy granting and revocation of access rights) – radi veće fleksibilnosti, sustav mora omogućiti dinamičku dodjelu i
opoziv pristupnih prava za objekte. Također, sustav bi trebao ograničiti neka
prava i dodijeliti korisniku samo ona prava koja mu trebaju da bi dovršio
zadatak. S druge strane, dobar sigurnosni sustav bi trebao dozvoliti trenutni
opoziv uz određenu fleksibilnost selektivnog i djelomičnog opoziva. Kod
selektivnog opoziva se misli na povlačenje prava pristupa nekom objektu samo od
određene grupe korisnika, a ne svih korisnika, dok se kod djelomičnog opoziva
misli na povlačenje samo nekih prava pristupa objektu, umjesto svih prava
pristupa. ·
nikad ne vjeruj drugoj strani (never trust other parties) – da bi sustav bio dobar, njegove komponente moraju biti dizajnirane
uz pretpostavku da druga strana u komunikaciji (ljudi ili programi) nije
pouzdan, sve dok svoju pouzdanost ne dokaže. ·
uvijek provjeri svježinu
poruka
(always ensure freshness of messages) – za
izbjegavanje povrede sigurnosti kroz ponovno slanje poruka, sigurnost
raspodijeljenih sustava mora biti dizajnirana da uvijek provjerava svježinu
poruka razmijenjenih između entiteta koji komuniciraju. ·
koristi Firewall uređaje (built firewalls) – da bi smanjili štetu koja može nastati u slučaju ugrožavanja,
sustavi moraju koristiti firewall uređaje. ·
korisnost (efficiency) – korišteni sigurnosni mehanizam mora se izvršavati efikasno, a
njegova izvedba mora biti jednostavna. ·
praktičnost za upotrebu (convenient to use) – da bi bio psihološki prihvaćen, sigurnosni mehanizam mora biti
praktičan za upotrebu. Ako to ne ispuni, vjerojatnost da će ga korisnik zaobići
ili koristiti na nepravilan način postaje velika. · niska cijena izvođenja (cost effective) – čest je slučaj da se sigurnost sustava zaobilazi zbog poboljšanja performansi ili jednostavnijeg korištenja sustava. Zbog toga je dizajniranju sustava veoma važno pristupiti s pravim skupom ustupaka koje korisnik može dati, a koji u obzir uzimaju vjerojatnost ugrožavanja sustava i cijenu koju su spremni platiti kod nekih ustupaka. 5.3. Popularni sigurnosni uređajiNakon oblikovanja sigurnosnog plana, dizajner sustava se mora odlučiti za opremu kojom će planiranu sigurnost i ostvariti. Sigurnost se ostvaruje korištenjem kombinacija više vrsta uređaja. Koji će to uređaji biti, ovisi u prvom redu o vrijednosti podataka koje čuvamo i procjeni rizika od napada na sustav. Firewall uređaj i Detektor mrežnih upada (Network intrusion detection device) su široko rasprostranjeni uređaji koje koristi veliki broj sustava. Stoga su u poglavljima 5.3.1. i 5.3.2. dane neke njihove osnovne karakteristike. 5.3.1. Firewall uređaji[AP6]Firewall uređaji ostvaruju upravljanje pristupom čineći, između dvije mreže, prolaz kroz koji svi podaci moraju proći. Postoje dvije osnovne vrste uređaja. Prva vrsta firewall uređaja djeluje kao filter na način da provjerava adrese svakog pristiglog paketa. Tako će se propustiti oni paleti koji dolaze od znanog izvora, dok ostali neće imati pristup. Proxy firewall uređaji djeluju kao posrednik između dva uređaja koji pokušavaju komunicirati kroz firewall. Oni prekidaju protok na jednoj strani, osiguravaju razne proxy[AP7] usluge te ponovno kreiraju protok na drugoj strani firewall uređaja. 5.3.2. Detektori mrežnih upadaDetektori mrežnih upada (Network intrusion detection devices) pokušavaju otkriti upade ili upozoriti na sumnjivo ponašanje mreže. Jedna vrsta uređaja (Anomaly detection devices) koristi statističke metode za otkrivanje aktivnosti koje odstupaju od normalnog ponašanja. Kad detektiraju sumnjivu aktivnost, alarmiraju administratore sustava te počinju generirati dnevnik aktivnosti. Druga vrsta uređaja (Misuse detection devices) proučava mrežni promet i pri tome koristi uzorke pokušavajući usporediti uzorak s sumnjivim aktivnostima za koje se zna da su opasne. Ovi se uređaji koriste samo protiv napada s poznatim uzorcima aktivnosti. Zbog toga takve uređaje moramo često nadograđivati s podacima o novim vrstama napada koji se vremenom pojavljuju. Budući da rade na sličan način, ove uređaje možemo usporediti s poznatim anti-virusnim programima. 6. AlkaAutent SUSTAVAlkaAutent sustav je simulacija koja prikazuje autentifikaciju korisnika. Sastoji se od dva protokola, temeljena na asimetričnim kriptografskim algoritmima, a koji se oslanjaju na protokole jednosmjerne i dvosmjerne autentifikacije opisanih u poglavljima 4.3.1.2. i 4.3.1.3. Sustav se sastoji od sedam izvršnih
datoteka, čiji popis se nalazi u tablici
Tablica 6-1. Popis izvršnih datoteka sustava AlkaAutent 6.1. Razvojni alatSustav AlkaAutent je izgrađen u Microsoft, Visual C++, razvojnom okruženju. Osim standardnih biblioteka funkcija, sustav koristi još i dvije dodatne: winsock.h i wincrypt.h. Biblioteka winsock.h i njene funkcije služe za povezivanje programa AlkaAutent sustava, ili općenitije gledano, za povezivanje udaljenih korisnika, dok se funkcijama biblioteke wincrypt.h postižu svojstva priznavanja, cjelovitosti, vjerodostojnosti i povjerljivosti podataka. Svaka od funkcija koje se nalaze u tim bibliotekama imaju neke svoje posebnosti. Zato u nastavku taksta navodim one karakteristike koje su imale direktnog utjecaja na razvoj sustava. 6.1.1. PriključnicePriključnica (Windows Socket) se može definirati kao krajnja točka komunikacije, odnosno objekt, preko kojega aplikacije, šalju i primaju pakete podataka s mreže. Svaka priključnica ima tip i pridružena je procesu koji se trenutno izvršava, a može imati i ime. Postoje dvije vrste priključnica: ·
priključnice toka (stream sockets) – omogućavaju protok podataka bez strukturnih granica, tj. protok
čistih okteta. Priključnice garantiraju dostavu, redoslijed i neponavljanje
toka. ·
datagramske priključnice (datagram sockets) – podržavaju protok podataka u određenim strukturnim granicama. Ova
vrsta priključnica ne garantira dostavu, redoslijed i neponavljanje paketa. Priključnice su veoma korisne u barem tri komunikacijska konteksta: · model klijent-poslužitelj (client-server model) – klijent zahtjeva neku uslugu koju obavlja poslužitelj. · scenario jednakosti (peer-to-peer scenario) – komunikacija dva ravnopravna entiteta, npr. chat programi. · poziv udaljenih procedura (Remote Procedure Calls) – aplikacije koje primaju poruke, svaku poruku shvaćaju kao poziv procedure. AlkaAutent sustav koristi priključnice toka u klijent-poslužitelj modelu, gdje pojedini programi koji su povezani s više drugih programa, koriste veći broj priključnica. 6.1.2. Sučelje CryptoAPIArhitektura sučelja CryptoAPI podijeljena je u 5 osnovnih dijelova: · funkcije za kodiranje i dekodiranje certifikata · funkcije za spremanje certifikata · osnovne kriptografske funkcije · sistemske funkcije za poruke · pojednostavljene funkcije za poruke Aplikacija može komunicirati sa bilo kojim od ovih dijelova kroz funkcije iz sučelja CryptoAPI. Osnovne kriptografske funkcije se oslanjaju na kriptografske davatelje usluga (Cryptographic Service Provider - CSP) u kojem se nalaze svi kriptografski algoritmi i sve varijable potrebne za sigurnu komunikaciju (ključevi, certifikati i slično). Komunikacija
sa kriptografskim davateljem usluga se mora obavljati preko osnovnih
kriptografskih funkcija opisanih u sučelju CryptoAPI jer je količina pristupa,
koji programi imaju do kriptografskih internih podataka, ograničena. To
omogućava siguran razvoj programa. Pri tome se poštuju sljedeća tri pravila: · program ne može direktno pristupiti ključevima, budući da se svi ključevi kreiraju unutar CSP-a i koriste se u programu preko varijabli koje samo pokazuju na vrijednosti ključeva. · program ne može odrediti detalje same kriptografske operacije. Sučelje CryptoAPI dozvoljava određivanje općih parametara, dok sama implementacija tog algoritama ostaje unutar CSP-a. Ovo ograničava mogućnosti sučelja, ali omogućava jednostavniji pristup prilagođen većini aplikacija. 6.2. Opis programaPokretanjem datoteke Authentication.exe pokreće se simulacija. Korisnik dobiva mogućnost izbora jednog od dva protokola autentifikacije. Izgled prozora programa za slučaj odabira jednosmjerne autentifikacije prikazan je na slici 6-1. Slika 6-1. Izgled prozora glavnog programa prije starta simulacije jednosmjerne autentifikacija Za slučaj odabira dvosmjerne autentifikacije, prozor glavnog programa izgleda kao na slici 6-2. Slika 6-2. Izgled prozora glavnog programa prije starta simulacije dvosmjerne autentifikacije Pokretanjem simulacije jednosmjerne autentifikacije poziva se program Authentserver.exe koji simulira rad autentifikacijskog poslužitelja (slika 6-3.), čija je osnovna funkcija držanje ključeva i njihova pravilna raspodjela na zahtjev korisnika sustava. Slika 6-3. Autentifikacijski poslužitelj čeka na zahtjev Uključivanjem autentifikacijskog poslužitelja, pokreće se program BankServer.exe (slika 6-4.) koji predstavlja korisnika B u protokolu opisanom u poglavlju 4.3.1.2., i ima ulogu poslužitelja neke banke na koju se pokušavaju spojiti razni klijenti (Client.exe, slika 6-5.). Slika 6-4. Banka je uspostavila vezu s autentifikacijskim poslužiteljem Slika 6-5. Klijent treba unijeti svoj identifikator Kao što sam već napomenuo, protokol jednosmjerne autentifikacije je opisan već ranije. Ovdje ću opisati samo razlike između toga protokola i ovoga koji se nalazi u AlkaAutent sustavu. Nakon postupka pokretanja nabrojanih programa, i njihovog međusobnog spajanja (Windows Sockets), protokol započinje slanjem identifikatora klijenta, u jasnom obliku, banci. Banka prima identifikator, uviđa tko joj želi pristupiti te istom tome korisniku šalje slučajni broj, također u jasnom obliku. Sljedeći korak predstavlja prvu razliku između izvornog protokola i onoga koji koristi AlkaAutent sustav. U izvornom protokolu, naime, klijent kriptira slučajni broj svojim tajnim ključem, dok to ovdje nije slučaj. Zbog izvedbe kriptografskih funkcija wincrypt.h biblioteke, koje nemaju mogućnost kriptiranja “običnih podataka” asimetričnim ključevima, klijent uzima slučajni broj i pravi njegov sažetak. Zatim sažetak kriptira svojim tajnim ključem i tek tada ga šalje nazad banci. Ovo je klasičan primjer digitalnih potpisa (poglavlje 4.4.3.). Banka dobiva potpis slučajnog broja koji mora provjeriti. To će učiniti tako da izračuna sažetak istog onog slučajnog broja koji je poslala klijentu i usporedi ga sa dekriptiranim primljenim sažetkom od klijenta. Za to dekriptiranje je potreban javni ključ klijenta koje se nalazi u autentifikacijskom poslužitelju. Zato banka šalje zahtjev autentifikacijskom poslužitelju za dodjelu toga ključa (poruka broj 4). Slika 6-6. Simulacija jednosmjerne autentifikacije je uspješno izvršena Autentifikacijski poslužitelj šalje javni ključ klijenta potpisan svojim tajnim ključem da bi banka bila uvjerena da je ključ stigao od njega, a ne od nekoga koji je možda presreo put podataka. Banka provjerava javni ključ te ako je autentičan, koristi ga za provjeru slučajnog broja. Ako se sažeci slučajnih brojeva podudaraju, klijent je autentičan i banka mu može dopustiti uspostavljanje veze. Slika 6-6. prikazuje izgled konačnog stanja simulacije, kad banka prihvaća zahtjev klijenta za ostvarenje veze.Protokol dvosmjerne autentifikacije u AlkaAutent sustavu je izveden na sličan način. Glavni program Authentication.exe poziva program AuthentServer.exe, koji poziva Client0.exe, a ovaj pak Client1.exe. Postupak kriptiranja podataka asimetričnim ključevima se izvodi uz računanje sažetaka poruka i njihovog potpisivanja, ukoliko podaci ne moraju biti tajni. Druga je metoda, ako podaci koji se razmjenjuju moraju ostati tajni. Tada jedan od programa generira simetrični ključ kojim kriptira podatke. Simetrični ključ se razmjeni uz upotrebu asimetričnih te se tako omogućava drugom korisniku komunikacije da može dekriptirati kriptirane podatke. Slika 6-7. Korisnik A treba poslati poruku broj 1 7. ZAKLJUČAKRazvoj računala i računalne tehnologije omogućavaju njihovu primjenu u većini područja ljudskog djelovanja. Pri tome računala čuvaju mnoge podatke koji su ključni za rad vlada, kompanija, banaka… Baš zbog toga podaci postaju interesantni i onima koji do njih ne bi smjeli doći. U ovom radu dan je prikaz elemenata od kojih se izgrađuju sigurnosni sustavi (s posebnim naglaskom na autentifikaciju i digitalne potpise), kao i svojstva samih (bankarskih) sigurnosnih sustava. Nabrojani elementi, uz ispravno korištenje, omogućavaju izgradnju sustava koji će biti pouzdani. U praktičnom djelu rada nalazi se simulacija jednosmjerne i dvosmjerne autentifikacije korisnika, izvedene prema algoritmima opisanim u poglavljima 4.3.1.2. i 4.3.1.3. Jednosmjerna autentifikacija može poslužiti npr. kad banka želi provjeriti da li je klijent koji želi neku uslugu, baš taj za koga se predstavlja, dok dvosmjerna autentifikacija služi za međusobnu provjeru identiteta dva korisnika. Simulacija je ostvarena uz pomoć Microsoft Visual C++ 5.0. programskog alata. 8. LITERATURA1. M. Gaćeša, “Bankarstvo na Internetu – sigurno rješenje”, članak dostupan na Internet adresi http://www.trend.hr/trend/w/itr/it57/bankw.htm 2. K.M. Jackson, J. Hruska, D.B. Parker, “Computer security reference
book”, Butterworth-Heinemann, Oxford, 1992. 3. “Funkcije i protokoli unutar sigurnih transakcija”, dokument o
elektroničkom plaćanju, dostupan na Internet adresi: http://www.rasip.fer.hr/ research/ecash/broshura/ch4.htm 4. “Introduction to Cryptography”, uvod u kriptografiju dostupan na
Internet adresi: http://www.ssh.fi/tech/crypto 5. Pradeep K. Sinha, “Distributed Operating Systems – Concepts and Design”, IEEE Press, New York, 1997. 6. “SLS-BKE”, self-study manual, SWIFT Education, 1993. 7. Bruce Schneier, “Cryptographic Design Vulnerabilities”, Computer, 8. Nathan Gurewich, Ori Gurewich, “Teach yourself Visual C++ 5 in 21 days”, Sams Publishing, Indianapolis, 1997. 9. Andrew S. Tanenbaum, “Computer Networks”, Prentice-Hall International, New Jersey, 1996. 10. “History of Banking in Europe”, članak dostupan na Internet adresi: http://www.guam.net/les/txt2/attach22.html 11. Cyntia E. Irvine, Shiu-Kai Chin, Deborah Frincke, “Integrating Security into the Curriculum”, Computer, pp 25-30. December 1998. 12. Tomislav Šakić, “Korisničko sučelje CryptoAPI – kriptografska podrška za operacijske sustave MS Windows”, Seminarski rad, Fakultet elektrotehnike i računarstva, Zagreb, 1999. SADRŽAJ1. UVOD............................................................................................................................................................................. 1 2. BANKARSKE MREŽE................................................................................................................................................ 3 2.1. Svjetska udruga za međubankarske financijske
telekomunikacije..................... 4 2.2. Sustav automatskog plaćanja zavoda za
obračunavanje....................................... 6 2.3. Internet............................................................................................................................................................ 7 3. PRIJETNJE SIGURNOSTI SUSTAVA.................................................................................................................... 8 3.1. Aktivni napadi............................................................................................................................................. 8 3.1.1. Virusi........................................................................................................................................................... 8 3.1.2. Crvi.............................................................................................................................................................. 8 3.1.3. Logičke bombe........................................................................................................................................... 9 3.2. Pasivni napadi.............................................................................................................................................. 9 3.2.1. Pregledavanje (Browsing)...................................................................................................................... 9 3.2.2. Curenje (Leaking)..................................................................................................................................... 9 3.2.3. Zaključivanje (Inferencing)..................................................................................................................... 9 3.2.4. Maskiranje (Masquerading)................................................................................................................ 10 4. ELEMENTI SIGURNOSNIH SUSTAVA................................................................................................................ 11 4.1. Kriptografija.............................................................................................................................................. 13 4.1.1. Simetrični algoritmi............................................................................................................................... 14 4.1.2. Asimetrični algoritmi............................................................................................................................. 16 4.2. Jednosmjerne hash funkcije.............................................................................................................. 17 4.3. Autentifikacija......................................................................................................................................... 18 4.3.1. Tipovi i pristupi....................................................................................................................................... 18 4.3.1.1. Prijava korisnika................................................................................................................................... 19 4.3.1.2. Jednosmjerna autentifikacija................................................................................................................. 23 4.3.1.3. Dvosmjerna autentifikacija................................................................................................................... 27 4.3.2. Primjer autentifikacijskog protokola – Kerberos............................................................................ 29 4.4. Digitalni potpisi......................................................................................................................................... 33 4.4.1. Potpisi tajnim ključem............................................................................................................................ 34 4.4.2. Potpisi javnim ključem........................................................................................................................... 35 4.4.3. Potpisi uz sažetak poruke..................................................................................................................... 36 4.5. Autorizacija............................................................................................................................................... 37 Model
pristupne matrice.............................................................................................................................. 39 4.5.1. Pristupne kontrolne liste....................................................................................................................... 40 4.5.2. Sposobnosti djelovanja.......................................................................................................................... 42 4.5.3. Hibridni pristup...................................................................................................................................... 44 5. BANKARSKI SUSTAVI........................................................................................................................................... 45 5.1. Opće slabosti sigurnosnih sustava............................................................................................. 46 5.1.1. Napad na dizajn...................................................................................................................................... 47 5.1.2. Napad na izvedbu................................................................................................................................... 47 5.1.3. Napad na sklopovlje.............................................................................................................................. 48 5.1.4. Napad na korisnike................................................................................................................................ 48 5.1.5. Napad na kriptografiju.......................................................................................................................... 49 5.2. Osnovni principi dizajna...................................................................................................................... 49 5.3. Popularni sigurnosni uređaji........................................................................................................... 52 5.3.1. Firewall uređaji...................................................................................................................................... 52 5.3.2. Detektori mrežnih upada....................................................................................................................... 52 6. AlkaAutent SUSTAV........................................................................................................................................ 54 6.1. Razvojni alat............................................................................................................................................. 54 6.1.1. Priključnice.............................................................................................................................................. 54 6.1.2. Sučelje CryptoAPI................................................................................................................................... 55 6.2. Opis programa............................................................................................................................................ 56 7. ZAKLJUČAK.............................................................................................................................................................. 61 8. LITERATURA............................................................................................................................................................. 62 |