91
RM2p4 (05./19.) 4. Sigurnost i zaštita u mrežama Sigurnost i zaštita računalne mreže i mrežne komunikacije imaju više dimenzija i mogu se ostvarivati na raznim razinama mrežnog sustava. U ovom poglavlju opisujemo središnje elemente sigurnosti i zaštite u računalnim mrežama. Iznosimo prikaz metoda šifriranja (enkripcije) sadržaja, čime se štiti povjerljivosti (tajnost) sadržaja koji se prenose mrežom. Primjena hash funkcija i raznih metoda enkripcije ujedno čine osnovu sustava za provjeravanje integriteta poruka, kao i sustava za provjeravanje autentičnosti komunikatora. Dan je prikaz sustava digitalnog potpisa i načina njegova funkcioniranja. Sustavi sigurnosti mogu se definirati i realizirati na raznim razinama računalne mreže, ali se većinom realiziraju na višim razinama. Sigurnosni sustavi raznih aplikacija koriste iste ili slične metode i protokole, ali se proces zaštite sigurnost često izvodi na razini pojedinačnih aplikacija; ovdje iznosimo prikaz sustava sigurnosti i zaštite kod računalne pošte. Sigurnosni sustavi koji se definiraju (i ostvaruju) uz protokole transportne razine, štite sve aplikacije koje koriste usluge tih protokola. Ovdje iznosimo prikaz sustava SSL kojeg se smatra nadgradnjom protokola TCP i sigurnosnim sustavom transportne razine. U zadnjem odjeljku iznosimo prikaz više vrsta vatrozidova i sustava za otkrivanje napadačkih sadržaja u paketima koji se prenose računalnom mrežom. 1

PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

RM2p4 (05./19.)

4. Sigurnost i zaštita u mrežama

Sigurnost i zaštita računalne mreže i mrežne komunikacije imaju više dimenzija i mogu se ostvarivati na raznim razinama mrežnog sustava. U ovom poglavlju opisujemo središnje elemente sigurnosti i zaštite u računalnim mrežama. Iznosimo prikaz metoda šifriranja (enkripcije) sadržaja, čime se štiti povjerljivosti (tajnost) sadržaja koji se prenose mrežom. Primjena hash funkcija i raznih metoda enkripcije ujedno čine osnovu sustava za provjeravanje integriteta poruka, kao i sustava za provjeravanje autentičnosti komunikatora. Dan je prikaz sustava digitalnog potpisa i načina njegova funkcioniranja.

Sustavi sigurnosti mogu se definirati i realizirati na raznim razinama računalne mreže, ali se većinom realiziraju na višim razinama. Sigurnosni sustavi raznih aplikacija koriste iste ili slične metode i protokole, ali se proces zaštite sigurnost često izvodi na razini pojedinačnih aplikacija; ovdje iznosimo prikaz sustava sigurnosti i zaštite kod računalne pošte. Sigurnosni sustavi koji se definiraju (i ostvaruju) uz protokole transportne razine, štite sve aplikacije koje koriste usluge tih protokola. Ovdje iznosimo prikaz sustava SSL kojeg se smatra nadgradnjom protokola TCP i sigurnosnim sustavom transportne razine.

U zadnjem odjeljku iznosimo prikaz više vrsta vatrozidova i sustava za otkrivanje napadačkih sadržaja u paketima koji se prenose računalnom mrežom.

1

Page 2: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

4.1 O sigurnosti i zaštiti

Tema sigurnosti i zaštite je vrlo opsežna, ali sadrži nekoliko dobro definiranih središnjih problema, metoda, sredstava i ciljeva. Kod računalnih mreža treba štititi mrežu kao tehnološki sustav, i treba štititi komunikaciju koja se odvija pomoću tog sustava. U govoru o mrežnoj komunikaciji ističu se tri osnovna elementa zaštite i sigurnosti: (1) zaštita povjerljivosti (tajnosti) sadržaja koji se prenose mrežom, (2) zaštita integriteta (izvornosti) sadržaja od njegovog zlonamjernog iskrivljenja u prijenosu, i (3) utvrđivanje autentičnosti komunikatora - to jest, zaštita od onih komunikatora koji se lažno predstavljaju.

Komunikatori mogu biti vrlo različiti. To mogu biti osobe, koje razmjenjuju osobne poruke. To mogu biti usmjerivači, koji međusobno razmjenjuju pakete podataka o stanju putova i veza; na temelju takve razmjene podataka, usmjerivači stalno oblikuju svoje tablice usmjeravanja i tablice prosljeđivanja. Namjerno iskrivljenje sadržaja paketa u kojima usmjerivači međusobno razmjenjuju takve podatke, ili slanje lažnih (izmišljenih) paketa sa takvim podacima, može bitno poremetiti rad računalne mreže. Komunikatori mogu biti klijent i server, koji nastoje uspostaviti pouzdanu i sigurnu TCP vezu.

Podsjetimo da se pojam pouzdanosti odnosi na ispravnost prijenosa sadržaja u računalnoj mreži, o čemu smo govorili u prvom poglavlju. Prijenosni sustav je pouzdan ako otkriva i ispravlja nehotične (tehničke) greške koje nastaju u prijenosu, sve dok ne izvrši ispravan prijenos sadržaja. S druge strane, pojam sigurnosti odnosi se na zaštitu prijenosnog sustava i komunikacije od namjernih ometanja i iskrivljenja; takva ometanja mogu poduzimati razni subjekti iz raznih razloga.

Onog koji napada komunikacijski sustav i komunikaciju, u engleskoj literaturi obično se označava pojmom "intruder"; to doslovno znači nametljivac ili uljez. Ovdje ćemo takve ometače komunikacije zvati napadačima. Dakle, napadači su oni zbog kojih se valja baviti pitanjem sigurnosti računalnih mreža i oni od kojih se nastoji zaštititi mrežnu komunikaciju.

Problematika sigurnosti i zaštite računalne mreže i mrežne komunikacije obuhvaća više područja; među njima, središnje mjesto zauzimaju pitanja povjerljivosti i integriteta poruka, te autentičnosti komunikatora; bitna je i problematika zaštite računalne mreže od napada koji ometaju njen rad; u nastavku iznosimo kratke opise tih tema.

Povjerljivost (confidentiality) - Tim pojmom označava se problematiku zaštite tajnosti (privatnosti) sadržaja u računalnoj mreži. Pitanje povjerljivosti komunikacije je temeljno pitanje sigurnosti i zaštite računalne komunikacije. Računalna mreža treba omogućiti zaštitu povjerljivosti osobne komunikacije, zaštitu povjerljivosti poslovne komunikacije i financijskih transakcija, zaštitu povjerljivosti komunikacija koje se odnose na sigurnost zajednica i institucija, kao i zaštitu povjerljivosti svih drugih vrsta komunikacija i sadržaja koji se prenose mrežom.

Povjerljivost ovdje znači da sadržaji koji se prenose mrežom trebaju biti razumljivi (čitljivi) samo pošiljatelju tih sadržaja i onom primatelju kojem je pošiljatelj uputio te sadržaje. Napadač može naći načina da prisluškuje neku mrežnu komunikaciju i da kopira njene sadržaje. Sustav zaštite povjerljivosti sadržaja treba omogućiti da se sadržaje koje se prenosi mrežom zapiše na takav način da ako napadač uspije kopirati te sadržaje (na putu), onda napadač ne može čitati (razumjeti) zapise tih sadržaja.

Zapisivanje sadržaja na način kojeg mogu učiniti čitljivim samo oni kojima je taj sadržaj namijenjen, naziva se šifriranjem, ili enkripcijom (encription). Dakle, prva dimenzija sigurne komunikacije odnosi se na povjerljivost, odnosno na zaštitu privatnosti sadržaja koji se prenose računalnom mrežom. Povjerljivost se postiže na taj način da pošiljatelj šifrira sadržaje prije njihovog prijenosa, na način kojeg može dešifrirati samo primatelj kojem šalje te sadržaje.

2

Page 3: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Integritet sadržaja ili poruke (message integrity) - Računalna mreža treba omogućiti zaštitu sadržaja od njihovog namjernog iskrivljavanja u prijenosu; takva iskrivljavanja izazivaju razni napadači, iz raznih razloga. U stvari, sustav zaštite integriteta poruka ne sprječava iskrivljenja poruka (namjerna ni nenamjerna), ali omogućava primatelju poruka da otkriva takva iskrivljenja, ako se takva iskrivljenja dogode. Na taj način primatelj može izbjeći štetne posljedice koje bi ta iskrivljenja izazvala. Naprimjer, ako napadač uspije izmijeniti sadržaj neke financijske transakcije (poruke) na način da umjesto zadanog broja računa na kojeg treba prebaciti novac, upiše broj svog računa, onda je bitno da mrežna usluga prijenosa otkrije da je integritet dane poruke narušen u prijenosu. Tada banka neće izvršiti ono što se tom porukom traži.

Kontrolni zapisi omogućuju otkrivanje nehotičnih iskrivljenja okvira u prijenosu (na razini veze podataka) i segmenata (na transportnoj razini); takva iskrivljenja ispravljaju se ponavljanjem slanja iskrivljenih jedinica podataka. Na sličan način, pomoću kontrolnih zapisa raznih vrsta, računalna mreža omogućava otkrivanje namjernih iskrivljenja sadržaja u prijenosu.

Utvrđivanje autentičnosti komunikatora (authentication) - Komunikacijski sustav treba pružati mogućnost da svaka strana u komunikaciji može utvrditi sa sigurnošću da li je druga strana zaista onaj subjekt koja tvrdi da jest. To je važno kod osobne komunikacije preko računalne mreže, a još je važnije u području poslovne komunikacije i financijskih transakcija. Lažno predstavljanje bi praktički onemogućilo poslovnu komunikaciju; zato računalna mreža treba sadržavati sredstva i metode koje omogućuju pouzdano utvrđivanje pravog identiteta komunikatora.

Operacionalna (ili operativna) sigurnost sustava (operational security) - Računalna mreža treba sadržavati elemente pomoću kojih štiti sebe od raznih vrsta napada koji pokušavaju ugroziti njen rad. Rad (funkcioniranje) računalne mreže može se ugroziti na mnogo načina. To se može učiniti unošenjem u mrežu raznih virusa, crva i drugih vrsta programa, koji imaju destruktivne učinke na rad mreže i na njene sadržaje. Napadi mogu bitu usmjereni na pojedina web sjedišta, sa ciljem da unište, iskrive, ili ukradu njihove sadržaje, ili da ometu normalan rad tih web sjedišta.

Poznate su razne vrste napada na web sjedišta. Jedna vrsta napada izgleda ovako. Napadač instalira preko mreže na velik broj tuđih računala procese-nametnike koji (u neko zadano vrijeme) istodobno šalju zahtjeve za uspostavu veze istom web sjedištu. Time web server na kojem se nalazi to web sjedište biva doveden u poziciju da pokušava istodobno odgovoriti na veći broj zahtjeva (uspostaviti veći broj TCP veza) nego što to može učiniti, što onda blokira njegov rad. Ako i ne dođe do potpune blokade servera, onda ogroman broj zahtjeva koje tom web sjedištu istodobno šalju napadačevi procesi (sa mnogih računala), onemogućava serveru da uspostavlja veze sa stvarnim klijentima i da izvršava njihove zahtjeve. Ta vrsta napada naziva se odbijanjem (pružanja) usluge ili uskraćivanjem usluge (Denial of Service - DoS), zbog toga što sa gledišta stvarnih korisnika, server im odbija pružiti (ili uskraćuje) tražene usluge.

Napad DoS je obično ujedno i napad preplavljivanjem frekventnog pojasa (bandwidth-flooding attack). Jer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne mogućnosti servera, nego i prijenosne kapacitete veza koje vode do tog servera, tako da je to još jedan razlog što stvarni klijenti toga servera ne uspijevaju uspostaviti vezu s njim, a onda ni dobiti od njega uslugu koju traže.

Dakle, namjerno zatrpavanje nekog web sjedišta lažnim zahtjevima, uzrokuje da to sjedište ne može primati i izvršavati normalne zahtjeve korisnika. U DoS napadu se od servera istodobno traži da uspostavi mnogo TCP veza; pritom, klijenti namjerno ne dovršavaju postupke uspostave tih veza: kad server prihvati klijentov zahtjev za uspostavu TCP veze, onda klijent ne nastavlja taj proces (rukovanja u tri koraka). Tako server ima istodobno otvoren velik broj započetih procesa rukovanja koji se ne završavaju, tako da ne može prihvaćati nove zahtjeve za uspostavu veze.

Postoje razni načini da se organizira DoS napad, ali se ovdje ne možemo baviti tom temom

3

Page 4: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

jer ima mnogo drugih stvari koje treba iznijeti u ovom poglavlju. Napad DoS obično ima za cilj učiniti određeni server nedostupan njegovim klijentima i time nanijeti štetu vlasniku servera i njegovom poslovanju. Recimo ovdje da pored zanimljivih metoda napada, postoje i zanimljive metode obrane od njih.

Onog tko namjerno ometa rad računalne mreže, proces komunikacije i integritet sadržaja u računalnoj mreži, nazvali smo napadačem. Napadač može prisluškivati tuđu komunikaciju i time ometati povjerljivost mrežne komunikacije. Prisluškivanje obično znači kopiranje podatkovnih i upravljačkih sadržaja (paketa) koji se prenose mrežom; takvo kopiranje može se izvoditi naprimjer na usmjerivačima kroz koje ti sadržaji prolaze.

Napadač može preuzimati (zaustavljati, skretati s puta) poruke koje se prenose mrežom, mijenjati njihove sadržaje i prosljeđivati te (izmijenjene) poruke na adresu primatelja kojem su izvorno upućene. Napadač može brisati poruke koje presreće na putu. Takva mijenjanja poruka na putu mogu se izvoditi iz raznih razloga.

Napadač se može lažno predstavljati (kao da je netko drugi) i tako primati sadržaje koji nisu upućeni njemu; napadač može slati poruke pod lažnim (tuđim ili izmišljenim) imenom. Lažno se predstavljajući, napadač može praviti razne vrste šteta u računalnoj mreži pod tuđim imenom.

Napadač može ometati ispravan rad računalne mreže (kao sustava) na razne načine i iz raznih razloga. Može to činiti sa ciljem da stekne neku korist; naprimjer, da skrene neku financijsku transakciju (na svoj račun), da omete rad konkurentske tvrtke, ili da ukrade neke podatke koje želi imati ili prodati. Ali napadač može izvoditi razne oblike napada i bez da ima materijalne koristi od toga; neki ljudi vole se "nadmetati sa sustavom"; neki ljudi i zajednice vole uništavati druge, jer moć uništavanja je jedan oblik moći koji je nekima vrlo privlačan.

Posao i cilj sustava sigurnosti i zaštite računalne mreže i mrežne komunikacije je da spriječi nastanak problema koje smo ukratko opisali iznad, u onoj mjeri u kojoj se to može učiniti. One vrste napada koje taj sustav ne može spriječiti, taj sustav treba otkrivati. Sustav sigurnosti i zaštite treba upozoravati na pojavu onih stanja koja ukazuju na postojanje napada, tako da komunikatori mogu onemogućiti daljnje odvijanje tih napada, i spriječiti širenje štetnih posljedica koje ti napadi pokušavaju izazvati.

U ovom poglavlju iznosimo opise dominantnih oblika napada na rad računalne mreže i na komunikacije koje se odvijaju u mreži i pomoću nje. Pritom iznosimo prikaze sredstava i metoda rada (algoritama, protokola) pomoću kojih se štiti mrežu i mrežnu komunikaciju od takvih napada i od štetnih učinaka koje takvi napadi izazivaju.

4.2 Povjerljivost sadržaja: kriptografija

Kriptografija je zapisivanje sadržaja na način koji čini da ti sadržaji budu razumljivi (čitljivi) samo onima kojima su namijenjeni. Drukčije rečeno, kriptografski zapis sadržaja ima za cilj učiniti sadržaje nedostupnima (nečitljivima) za sve one kojima nisu namijenjeni. Takav način zapisivanja sadržaja naziva se i šifriranjem sadržaja.

Kriptografija postoji i koristi se još od antičkih vremena, ali suvremene metode kriptografije razvijene su u sadašnje doba, zajedno sa razvojem informacijske i komunikacijske tehnologije, posebno računalnih mreža. Informacijska tehnologija omogućila je vrlo intenzivnu proizvodnju informacijskih sadržaja, kao i intenzivan prijenos tih sadržaja na globalnoj razini. Ti sadržaji prolaze kroz mnoge čvorove komunikacijskih sustava, tako da mogu biti relativno lako kopirani, mijenjani, ili uništeni.

Dakle, informacijska tehnologija i komunikacija koja se izvodi pomoću te tehnologije

4

Page 5: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

bitno je povećala potrebu po razvoju metoda i sredstava zaštite povjerljivosti informacijskih sadržaja, kao i zaštite tih sadržaja od drugih vrsta napada koje smo opisali iznad. Istodobno, informacijska tehnologija je omogućila razvoj vrlo složenih metoda šifriranja sadržaja, kao i drugih oblika zaštite računalne mreže i sadržaja koji se prenose u mrežnoj komunikaciji. Slika 4.1 pokazuje osnovnu strukturu sustava za prijenos sadržaja uz primjenu šifriranja; na toj slici su ujedno uvedeni neki od središnjih pojmova i elemenata iz prostora kriptografije (šifriranja).

Slika 4.1 Struktura sustava sa šifriranjem

Pošiljatelj A proizveo je neki sadržaj (tekst) u čitljivom obliku; taj polazni sadržaj nazivamo čitljivim zapisom ili čistim tekstom (plaintext, cleartext). Sadržaj ne mora biti tekst; to može biti digitalni zapis zvuka ili video sadržaja, ali obično se govori o tekstu, valjda zato što su tekstovi šifrirani prije slika, i zato što se tekstualni i brojčani (alfanumerički) sadržaji šifriraju češće nego zvučni i video sadržaji.

Pošiljatelj A želi poslati svoj sadržaj primatelju B preko računalne mreže. Pritom A želi da taj sadržaj bude povjerljiv; dakle, ako napadač N uspije presresti (kopirati) taj sadržaj na putu kroz mrežu, onda A želi da N ne može saznati (pročitati) taj sadržaj. Da bi svoj sadržaj zapisao na način koji je nerazumljiv za potencijalnog napadača N, A izvodi šifriranje (encryption) čitljivog zapisa toga sadržaja i time proizvodi šifrirani zapis (ciphertext) svog sadržaja.

Proces šifriranja izvodi se pomoću nekog algoritma (procesa) za šifriranje (encription algorithm); takvi algoritmi mogu biti realizirani softverski ili hardverski. Dominantni algoritmi za šifriranje su javno poznati, standardizirani su i opisani su u pripadnim RFCima. Algoritam izvodi šifriranje uz upotrebu ključa (key) čija je struktura i veličina definirana zajedno sa algoritmom. Ključ je niz znakova (bitova) zadane dužine, koji određuje na koji način će dani algoritam šifrirati neki dani čitljivi sadržaj.

Dakle, šifriranje se izvodi uz pomoć algoritma i ključa. Pritom je algoritam obično javan (poznat), dok ključevi za šifriranje i za dešifriranje mogu biti tajni (privatni) ili javni (poznati), zavisno od konkretnih sustava i operacija (postupaka), o kojima govorimo u ovom poglavlju. Šifriranje i dešifriranje može se izvoditi sa istim ključem, ili sa različitim ključevima; o tome govorimo u nastavku. U svakom slučaju, barem jedan od ključeva u procesu šifriranja i dešifriranja mora biti tajan, jer u suprotnom bi svatko mogao šifrirati i dešifrirati poruke.

Kako to pokazuje slika 4.1, pošiljatelj A zadaje algoritmu za šifriranje čitljiv tekst m

5

Page 6: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

(sadržaj, poruku = message) i svoj ključ za šifriranje KA; algoritam prihvaća te ulaze i na temelju njih proizvodi šifrirani zapis sadržaja m, koji je proizveden uz primjenu ključa KA. Takav zapis označava se sa KA(m).

Na prijemnoj strani, primatelj B zadaje primljeni šifrirani zapis sadržaja KA(m) algoritmu za dešifriranje (decription algorithm) zajedno sa svojim ključem za dešifriranje KB. Na temelju tih ulaza, algoritam za dešifriranje proizvodi čitljiv zapis polaznog sadržaja m.

Dakle, primatelj prima sadržaj m koji je šifriran ključem KA - to jest, prima šifrirani zapis KA(m). Algoritam za dešifriranje uzima (kao ulaze) taj šifrirani zapis i ključ primatelja KB, i iz tih ulaza proizvodi čitljiv zapis polaznog sadržaja m. Taj proces dešifriranja zapisuje se u obliku KB(KA(m)); pritom vrijedi KB(KA(m)) = m.

Ovdje govorimo o algoritmu za šifriranje i o algoritmu za dešifriranje, ali takav par tvori jednu cjelinu, odnosno jedan sustav. Algoritam za dešifriranje izvodi "obrnut proces" od algoritma sa kojim je neki sadržaj šifriran, i na taj način proizvodi čitljiv zapis toga sadržaja.

Algoritama za šifriranje ima više; način zapisivanja postupka šifriranja i dešifriranja, kojeg smo uveli iznad, uključuje sadržaj (m) i ključeve pošiljatelja i primatelja (KA, KB), ali ne navodi oznaku (naziv) algoritma sa kojim se izvodi šifriranje i dešifriranje. Za prikaz strukture prijenosnog sustava koji uključuje postupke šifriranja i dešifriranja, nije potrebno navoditi naziv algoritma s kojim se izvodi šifriranje i dešifriranje. Kod govora o konkretnom sustavu za šifriranje vidi se iz konteksta koji se algoritam koristi. Konačno, notaciju se može proširiti dodavanjem oznake algoritma, ali to nije potrebno činiti. Naprimjer, umjesto KA(m) može se pisati (Z/KA(m)); to bi onda značilo: sadržaj poruke m šifriran je pomoću algoritma Z, uz primjenu ključa KA (od pošiljatelja A).

Danim opisom i primjerom pokazali smo na koji način se šifriranjem štiti povjerljivost sadržaja. Zaštita od ostalih oblika napada koje smo iznijeli ranije - dakle, zaštita od iskrivljenja poruka, od lažnog predstavljanja, i od ugrožavanja rada mreže - zasniva se na upotrebi nekih oblika šifriranja nekih sadržaja. Dakle, šifriranje čini osnovu svih metoda i sustava koji nastoje ostvariti sigurnu komunikaciju pomoću računalne mreže.

Da bi opisani proces šifriranja i dešifriranja uspješno funkcionirao, algoritam za šifriranje i algoritam za dešifriranje trebaju biti dva dijela (podprocesa) jedne cjeline: drugi dio treba izvoditi "obrnuti proces" od prvog dijela, i tako iz šifriranog zapisa proizvoditi izvorni čitljiv tekst. Drugi proces ne mora biti doslovno "obrnut" od prvog, ali u svakom slučaju, proces šifriranja i dešifriranja trebaju biti međusobno povezani, da bi sustav šifriranja i dešifriranja postizao učinke koje smo opisali iznad.

Ključ prema kojem se izvodi šifriranje (KA) i ključ prema kojem se izvodi dešifriranje (KB) mogu biti jednaki (to jest, isti ključ), ili različiti ključevi. Sustave kod kojih se koristi isti ključ za šifriranje i za dešifriranje nazivaju se sustavima sa simetričnim ključem (symetric key systems). Nije spomenuto zašto se ovdje govori o simetričnom, a ne o istom ključu. U svakom slučaju, kod ovakvih sustava, komunikatori koriste isti ključ za šifriranje i za dešifriranje sadržaja; komunikatori treba da unaprijed dogovore taj ključ, i taj ključ treba biti poznat samo njima; dakle, treba biti tajan za sve druge.

Kod druge vrste sustava koriste se različiti ključevi za šifriranje i za dešifriranje. Pritom ključ za šifriranje KA

+ pripada jednom vlasniku A, ali je javno poznat (objavljen je na Internetu). Sadržaje koji su šifrirani sa javnim ključem KA

+ dešifrira se sa privatnim (tajnim) ključem KA-

koji pripada istom vlasniku A i koji je poznat samo njemu.Pošiljatelji koji šalju sadržaje primatelju A, mogu šifrirati te sadržaje pomoću zadanog

algoritma (sustava) za šifriranje, uz upotrebu javnog ključa za šifriranje KA+ primatelja A. Primatelj

tih šifriranih zapisa A dešifrira te zapise sa istim algoritmom, uz pomoć svog privatnog (tajnog) ključa KA

-. Sustav koji koristi javni ključ za šifriranje i privatni ključ za dešifriranje, naziva se sustavom sa javnim ključem (public key system). Kasnije ćemo vidjeti da metoda rada sa dva ključa, od kojih je jedan javan a drugi privatan (tajan), nalazi važnu primjenu u sustavu digitalnog

6

Page 7: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

potpisa.

Šifriranje sa simetričnim ključem

Šifriranjem se zamjenjuje izvorni (čitljivi) zapis sadržaja sa nekim drukčijim zapisom toga sadržaja. Onaj kome se šalje šifrirani zapis sadržaja treba znati sa kojim algoritmom je taj šifrirani zapis proizveden i sa kojim ključem se može dešifrirati, tako da može iz šifriranog zapisa sadržaja proizvesti izvorni, čitljiv zapis toga sadržaja.

Pogledajmo jedan vrlo jednostavan primjer šifriranja. Neka algoritam šifriranja izvodi zamjenu slova iz izvornog zapisa sa slovima koja se nalaze onoliko niže u abecedi koliko je to zadano sa vrijednošću ključa. U našoj abecedi, neka slova (lj, nj, dž) pišu se sa dva znaka; da pojednostavimo stvar, ovdje radimo sa standardnom abecedom od 26 slova, koja glasi: a b c d e f g h i j k l m n o p q r s t u v w x y z. Pritom se kod algoritama sa pomakom slova uzima da abeceda tvori kružnicu, na način da iza zadnjeg slova (z), slijedi prvo slovo (a).

Neka tekst (poruka m) kojeg treba šifrirati glasi "Danas je subota" i neka vrijednost ključa bude 4. Proces šifriranja prema danom algoritmu i za dani ključ proizvodi slijedeći šifrirani zapis polaznog sadržaja: "Herew ni wyfxe". Taj šifrirani zapis izgleda vrlo različito od izvornog zapisa sadržaja, ali napadač koji se domogne tog šifriranog zapisa može relativno lako otkriti njegov stvarni sadržaj. Naime, ovdje se svako slovo Si uvijek zamjenjuje sa istim slovom Sj, što bitno olakšava otkrivanje veličine pomaka u abecedi, a time i reprodukciju izvornog zapisa sadržaja.

Prema istoj metodi "pomicanja (zamjenjivanja) slova" prema ključu, mogu se napraviti složeniji i kvalitetniji algoritmi za šifriranje. Pogledajmo primjer šifriranja s abecednim pomakom, koje se izvodi prema ključu koji se sastoji od četiri brojke; pritom prve dvije brojke kazuju veličinu pomaka u abecedi za neparna slova, a druge dvije brojke kazuju veličinu pomaka za parna slova iz izvornog zapisa. Ako uzmemo da ključ glasi 1103, onda šifrirani zapis izvornog teksta "Danas je subota" glasi "Odydd ...".

Ovako šifriran sadržaj bilo bi teže otkriti nego u prethodnom primjeru. Uočimo da se drugo slovo "a" i slovo "s" iz "Danas" preslikavaju na isto slovo "d" u šifriranom zapisu. Ista slova se ponekad preslikavaju na različita slova u šifriranom zapisu. Time se napadaču koji uspije kopirati šifrirani zapis sadržaja u prijenosu, znatno otežava da iz tog šifriranog zapisa otkrije izvorni zapis sadržaja. A to je svrha šifriranja: onemogućiti druge da otkriju izvorni sadržaj iz šifriranog zapisa toga sadržaja, kojeg su se nekako domogli.

Iz primljenog šifriranog zapisa, primatelj reproducira izvorni zapis sadržaja na taj način da na šifrirani zapis primijeni obrnut proces, prema istom ključu; ovdje se taj proces svodi na pomak po abecedi u obrnutom smjeru nego kod šifriranja, za veličine koje su zadane ključem. Dešifriranje se može izvršiti i pomakom po abecedi prema dolje, ali uz različite veličine pomaka nego kod šifriranja: dakle, uz drukčiji (komplementaran) ključ.

Metode šifriranja kod kojih se slovo Si zamjenjuje uvijek istim slovom Sj nazivaju se monoalfabetskim metodama šifriranja. Metode kod kojih isto slovo može biti zamijenjeno sa različitim slovima, nazivaju se polialfabetskim metodama šifriranja. Metoda koju smo opisali iznad je polialfabetska jer se isto slovo Si zamjenjuje sa slovom Sj ako se nalazi na neparnom mjestu u izvornom nizu slova (tekstu), a sa slovom Sk ako se nalazi na parnom mjestu u izvornom nizu slova (tekstu) kojeg se šifrira. Postoje mnoge mogućnosti polialfabetskog šifriranja sadržaja.

Primjeri šifriranja koje smo iznijeli služe samo za ilustraciju procesa šifriranja u sustavima sa simetričnim (jednim) ključem. U praksi se koriste daleko složeniji algoritmi za šifriranje, koji izvode "zamješavanje" izvornog sadržaja na razini bitova, a ne na razini slova. Prije nego prijeđemo na prave algoritme i sustave, pogledajmo još jedan algoritam koji radi po načelu zamjenjivanja slova, uz kojeg govorimo o nekim općim pitanjima šifriranja.

Umjesto zamjene slova pomakom po abecedi, ovdje se zamjenu slova (brojki i ostalih

7

Page 8: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

znakova) definira eksplicitno za svako slovo. To se čini pomoću skupa parova; pritom se prvi znak iz para jednoznačno preslikava na drugi znak. Takav skup parova naziva se tablicom preslikavanja i prikazuje se u obliku tablice; primjer dijela takve tablice dan je na slici 4.2.

Slika 4.2 Tablica preslikavanja znakova

Takva tablica može uključivati i brojke (od 0 do 9), znakove interpunkcije (točka, zarez), i druge znakove. Takva tablica ima ulogu ključa. Algoritam šifriranja je vrlo jednostavan: šifrirani tekst proizvodi se na taj način da se svaki znak iz izvornog teksta potraži u gornjem retku tablice, i zatim u šifrirani tekst uvrsti onaj znak koji se nalazi ispod tog znaka u tablici. Dakle, algoritam uzima danu tablicu parova kao ključ, i prema tom ključu izvodi zamjenu znakova, i tako proizvodi šifrirani zapis izvornog sadržaja.

Dobra strana ove metode je u tome što postoji jako mnogo mogućih tablica preslikavanja. Za abecedu od 26 slova postoji 26! ("26 faktorijel") različitih (mogućih) tablica preslikavanja takve vrste; to je broj reda veličine 1026. Sa porastom broja znakova (preko 26), bitno raste broj mogućih tablica preslikavanja, što čini ovakav sustav šifriranja još sigurnijim.

Uz postojanje tako velikog broja mogućih tablica preslikavanja znakova iz čitljivog zapisa na šifrirani zapis, bilo bi vrlo teško otkriti sadržaj šifriranog zapisa primjenom grubog računanja. To znači da ako se napadač domogne kopije šifriranog zapisa takve vrste, a ne poznaje tablicu-ključ prema kojoj je to šifriranje izvršeno, onda nema praktički nikakvih izgleda da otkrije izvorni zapis metodom probavanja s velikim brojem tablica-ključeva. Mogućih tablica-ključeva ima jako mnogo, tako da bez obzira na velike brzine računala, vjerojatnost da se pogodi pravu tablicu-ključ je vrlo mala. To znači da bi (statistički gledano) trebalo puno vremena (godina) da se dešifrira sadržaj metodom pokušavanja sa različitim tablicama-ključevima.

Pored velikih procesnih mogućnosti računala, u pokušajima otkrivanja sadržaja šifriranih zapisa koriste se i druga znanja. Prirodni (ljudski) jezici, njihove rečenice i njihove riječi imaju određena specifična svojstva; poznavanje tih svojstava može pomoći napadaču da otkrije sadržaj šifriranog teksta kojeg se domogao na neki način. Naprimjer, slova e i t su slova koja se najčešće javljaju u običnim engleskim tekstovima i govoru; slovo e čini čak 13% teksta, dok t čini 9 posto. To znači da bez obzira na to što je praktički nemoguće otkriti tablicu preslikavanja metodom pokušavanja, može se prilično lako utvrditi koji znak iz šifriranog zapisa predstavlja znak e iz izvornog zapisa: to je vjerojatno onaj znak koji se najčešće javlja u šifriranom zapisu. Slično vrijedi za znak t.

Nadalje, u svakom jeziku postoje tipične riječi od dva ili tri slova; u engleskom su to riječi "in", "on", "it", "the", i druge; u tom jeziku postoje i tipični završeci riječi, kao što su "ing", "ion" i drugi. Ako napadač zna o kojoj temi govori neka šifrirana poruka, onda mu to olakšava otkrivanje izvornog sadržaja te poruke. U govoru o svakoj temi koriste se riječi koje su karakteristične za tu temu; te riječi se ujedno javljaju relativno često u govoru o toj temi. Na temelju dužine zapisa riječi i frekvencije njena javljanja u šifriranom zapisu, napadač može otkriti koja je to riječ u izvornom zapisu; time je ujedno otkrio znatan broj parova iz tablice preslikavanja.

Navedena znanja o jeziku i metode otkrivanja parova preslikavanja omogućuju napadaču da

8

Page 9: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

postupno otkriva parove iz tablice preslikavanja kakva je dana na slici 4.2, prema kojoj je izvršeno šifriranje, i da tako iz danog šifriranog zapisa otkrije izvorni zapis sadržaja. To onda znači da ova metoda šifriranja (algoritam i ključ) nije dobra za praktičnu primjenu. Ta metoda ima i drugih slabosti; naprimjer, relativno velik ključ (cijelu tablicu parova).

Otkrivanje izvornog sadržaja iz šifriranog zapisa toga sadržaja (bez posjedovanja ključa) naziva se probijanjem ili razbijanjem kode (breaking the code). Kodom ili kodnim zapisom se ovdje naziva šifrirani zapis izvornog sadržaja. Pokušaj probijanja kode od strane nekog napadača može se izvoditi u različitim okolnostima. Pogledajmo tri osnovne (i tipične) situacije.

(1) Napadač posjeduje samo šifrirani zapis sadržaja - Napadač se domogao šifriranog zapisa sadržaja, ali ne zna koje je vrste taj sadržaj ni o čemu govori. Takva situacija naziva se napadom samo sa šifriranim sadržajem (ciphertext-only attack). Ta situacije je prilično nepovoljna za napadača jer ne posjeduje dodatna znanja ne temelju kojih može pokušati probiti šifrirani zapis sadržaja.

(2) Napadač posjeduje izvorne zapise nekih sadržaja i šifrirane zapise istih sadržaja, koji su šifrirani prema nekom algoritmu i ključu. Takav napad naziva se napadom sa poznatim izvornim (čitljivim) sadržajem (known-plaintext attack). U ovom slučaju radi se o napadu na algoritam i ključ šifriranja. Napadač koji posjeduje izvorni zapis sadržaja i šifrirani zapis toga sadržaja pokušava na temelju toga otkriti algoritam i ključ šifriranja. Ako u tome uspije, onda će u buduće lako dešifrirati (i čitati) sve druge poruke koje su šifrirane sa tim algoritmom i ključem, čije šifrirane zapise uspije kopirati u prijenosu. Dobar sustav šifriranja (algoritam i ključ) trebao bi izdržati takvu vrstu napada; dakle, napadač ne bi smio uspjeti otkriti algoritam i ključ u situaciji kakvu smo ovdje opisali.

(3) Napadač može biti u poziciji da dobije šifrirani zapis točno onog sadržaja kojeg je on sam odabrao. To znači da napadač ima mogućnost navesti pošiljatelja da šifrira i pošalje točno onaj sadržaj kojeg želi napadač; napadač pak bira onaj sadržaj za kojeg smatra da će mu najbolje pomoći da otkrije algoritam i ključ sa kojim pošiljatelj šifrira svoje sadržaje. Napadač mora u ovom slučaju biti u poziciji da može kopirati (u prijenosu) šifrirane sadržaje onih poruka za koje je on sam naveo pošiljatelja da ih šifrira i pošalje na neko odredište. Tada napadač posjeduje izvorni zapis i šifrirani zapis onih sadržaja koje je on sam odabrao. Tu vrstu napada naziva se napadom sa odabranim izvornim (čitljivim) sadržajem (chosen-plaintext attack). Na temelju odabranih izvornih sadržaja i njihovih šifriranih zapisa, napadač pokušava utvrditi algoritam i ključ sa kojima pošiljatelj šifrira svoje sadržaje. Ovo je povoljna situacija za napadača, ali i u takvoj situaciji vrlo je teško otkriti sustav (algoritam i ključ) šifriranja, ako je taj sustav dobro napravljen.

Šifriranje po blokovima

Sadržaji koji se prenose računalnom mrežom zapisani su pomoću nizova bitova. IP paket podataka je jedan takav niz. Jedan dio takvog niza (jedan podniz) naziva se blokom. Šifriranje podataka izvodi se po blokovima; blokovi mogu biti različite veličine; ovdje uzimamo da je blok niz od 64 bita.

Šifriranje je općenito proces koji preslikava (kao funkcija) jedan ulazni niz bitova (blok) na jedan izlazni niz bitova (blok) jednake dužine. Preslikavanje ovdje praktički znači zamjenjivanje jednog niza bitova (bloka) sa drugim nizom bitova (blokom); u procesu šifriranja, blok kao jedan podniz od niza bitova sa kojim je zapisan izvorni sadržaj, zamjenjuje se sa drugim blokom, koji je šifrirani zapis polaznog sadržaja.

Šifriranje se izvodi za svaki takav blok zasebno; pritom je šifrirani zapis bloka iste dužine kao i izvorni blok. Šifrirani blokovi slažu se jedan za drugim i tako tvore šifrirani zapis izvornog sadržaja. Središnje pitanje kod šifriranja je kako definirati preslikavanje ulaznih blokova u izlazne (šifrirane) blokove; o tome govorimo u nastavku.

9

Page 10: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Šifriranje blokova dužine 64 bita ne bi valjalo definirati pomoću parova koji kazuju koji se ulazni blok preslikava na koji šifrirani zapis toga bloka. Dakle, ne bi bilo dobro napraviti skup parova oblika < Bulaz, Bizlaz >, gdje je Bulaz 64-bitni niz kojeg se šifrira, a Bizlaz je 64-bitni niz koji ga zamjenjuje i predstavlja u šifriranom zapisu. Naime, niz dužine 64 bita može poprimiti 264 različitih vrijednosti (kombinacija bitova); to bi dalo 264 parova oblika < Bulaz, Bizlaz >. Tolike parove blokova ne bi imalo smisla eksplicitno definirati, jer bi tako ogromna količina parova bila neprikladna za upotrebu (pretraživanje, nalaženje) u procesu šifriranja.

Iz navedenih razloga, umjesto da se eksplicitno definira preslikavanje 64-bitnih blokova u komadu, algoritam šifriranja definiran je kao proces paralelnog preslikavanja 8 dijelova jednog bloka, pri čemu je svaki dio dug 8 bitova. Niz od 8 bitova može poprimiti 28 različitih kombinacija bitovnih vrijednosti "0" ili "1"; dakle, 256 različitih vrijednosti niza. To znači da za definiranje preslikavanja za sve moguće vrijednosti niza od 8 bitova treba 256 parova oblika

< ulazni-8-bitni-niz, izlazni-8-bitni-niz >Za svaki od 8 nizova (dijelova jednog bloka) treba definirati jednu takvu tablicu preslikavanja, što je relativno jednostavno napraviti. Na slici 4.3 dan je grafički prikaz strukture algoritma za šifriranje 64-bitnih blokova, kakvog ovdje opisujemo.

Slika 4.3 Algoritam šifriranja po blokovima

U proces preslikavanja (šifriranja) ulazi blok od 64 bita. Taj blok dijeli se na 8 dijelova od

10

Page 11: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

po 8 bitova. Svaki od tih dijelova preslikava (šifrira) se prema pripadnoj tablici preslikavanja; to jest, prema tablici 8-bitnih parova, koju smo opisali iznad. Prvi elementi parova su svi mogući 8-bitni nizovi koji ulaze u proces šifriranja; drugi elementi parova su 8-bitni nizovi koji zamjenjuju i predstavljaju pripadne ulazne nizove u šifriranom zapisu.

Nakon prolaska kroz proces takvog preslikavanja, osam nizova od po 8 bitova, koji su proizvedeni u tom procesu, tvore jedan 64-bitni niz u kojem su bitovi šifrirani (permutirani, preslikani) unutar svake osmorke bitova; pritom su osmorke ostale u istom redoslijedu u kojem su bile na početku. Slijedi proces permutacije bitova na razini 64-bitnog bloka; dakle, ovdje se permutiraju bitovi na razini cijelog bloka. Rezultat te permutacije je ujedno rezultat tekućeg prolaza kroz ciklički proces (algoritam) šifriranja jednog bloka.

Taj rezultat šalje se na ulaz algoritma, čime se opisani proces šifriranja ("zamješavanja bitova") izvodi ponovno. Takav ciklički proces šifriranja jednog bloka može imati više desetaka iteracija. Po završetku iteriranja, rezultat zadnjeg prolaza kroz opisani proces šifriranja je šifrirani zapis izvornog zapisa 64-bitnog bloka kojeg se šifriralo. Slijedi jednak proces šifriranja slijedećeg 64-bitnog bloka izvornog sadržaja, i tako sve do kraja izvornog sadržaja.

U opisanom algoritmu, izravna definicija preslikavanja 64-bitnih blokova zamijenjena je sa 8 tablica preslikavanja od kojih svaka definira preslikavanje jednog 8-bitnog niza iz polaznog (ulaznog) 64-bitnog bloka. Takvo preslikavanje dade se jednostavno definirati sa osam tablica parova, od kojih svaka sadrži 256 parova. U svakom prolazu kroz iterativni proces šifriranja, svaki 8-bitni niz preslikava se prema jednoj takvoj tablici parova preslikavanja. Permutiranje ukupnog proizvoda od osam preslikavanja 8-bitnih nizova i izvođenje više ciklusa preslikavanja osmorki bitova potrebni su zato da svaka od tablica preslikavanja utječe na čim više bitova (poželjno na sve) iz polaznog 64-bitnog bloka.

Kod prvog prolaza kroz ciklički proces šifriranja, tablica preslikavanja T1 šifrira prvih 8 bitova ulaznog bloka, tablica T2 šifrira drugih 8 bitova ulaznog bloka, i tako redom. Proizvod prvog prolaza kroz proces šifriranja je niz od 8 preslikanih (šifriranih) osmorki bitova. Zatim slijedi permutacija bitova na razini 64-bitnog bloka koji je proizveden u danom prolazu kroz proces šifriranja. Permutacijom bitova mijenja se njihov redoslijed u 64-bitnom bloku; to znači da će u slijedećem cikličkom prolasku bitovi vjerojatno biti preslikavani (šifrirani) sa drugim tablicama preslikavanja nego u prethodnom prolasku. Ako proces (algoritam) šifriranja sadrži velik broj ciklusa (dvadeset ili više) onda postoji velika vjerojatnost da će svaki od bitova biti šifriran sa svakom od tablica Ti u nekom od tih ciklusa (iteracija); dakle, barem jedanput.

Zamješavanje (preslikavanje) bitova unutar 8-bitnih nizova i zamješavanje (permutiranje) bitova na razini 64-bitnog bloka, treba biti precizno definirano i treba izvoditi jednoznačno preslikavanje svakog ulaznog zapisa sadržaja na pripadni šifrirani zapis sadržaja. Jer na sustavu primatelja šifriranog zapisa treba raditi drugi dio istog sustava za šifriranje, koji sva ta zamješavanja i permutiranja treba izvesti u inverznom (obrnutom) smjeru i time za dani šifrirani zapis sadržaja proizvesti izvorni (razumljivi) zapis toga sadržaja.

Kod svakog šifriranja, način na koji algoritam zamješava bitove određen je vrijednošću ključa sa kojim se izvodi to šifriranje. Algoritam je precizno definiran i obično je javno poznat, ali algoritam izvodi svaki proces šifriranja na način koji je određen nizom bitova zadane dužine, koji se naziva ključem, i kojeg se zadaje algoritmu prigodom šifriranja. Za isti polazni zapis sadržaja, isti algoritam za šifriranje proizvodi različite šifrirane zapise za različite vrijednosti ključa.

Nakon n ciklusa procesa kojeg smo opisali iznad, cikličko izvođenje toga procesa prestaje. Izlaz zadnjeg ciklusa je 64-bitni blok koji je šifrirani zapis jednog 64-bitnog bloka izvornog (razumljivog) sadržaja. U opisanom algoritmu, ulogu ključa mogle bi imati tablice preslikavanja (svih osam zajedno) ili funkcija permutiranja bitova u 64-bitnom bloku kojeg proizvodi osam preslikavanja 8-bitnih nizova, ili oboje. Ono što u procesu šifriranja nije fiksno zadano, i što se može zadati kod pokretanja procesa šifriranja (pomoću nekog ulaznog parametra), to može imati

11

Page 12: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

ulogu ključa algoritma za šifriranje.Osam tablica sa po 256 parova elemenata, pri čemu su ti elementi 8-bitni nizovi, tvorilo bi

prilično velik (prevelik) ključ. Zato tablice preslikavanja mogu biti definirane kao dio algoritma za šifriranje, pri čemu jedan dio 64-bitnog ključa definira način tvorbe (ili izbor) tih tablica. Drugi dio ključa može određivati način rada funkcije koja izvodi permutiranje bitova (na 64-bitnom bloku) nakon svakog ciklusa preslikavanja 8-bitnih nizova, kako to ilustrira slika 4.3. Podsjetimo da ovdje ne govorimo o jednom konkretnom algoritmu ili sustavu za šifriranje, nego iznosimo prikaz strukture i načela rada algoritama i sustava za šifriranje koji rade uz upotrebu simetričnog (tajnog) ključa.

Više sustava za šifriranje koji se nalaze u širokoj primjeni, rade prema načelima koje smo opisali iznad. Među najpoznatije sustave takve vrste spadaju DES (Data Encryption Standard), 3DES, i AES (Advanced Encryption Standard). Ti sustavi izvode preslikavanja na razini 8-bitnih nizova bitova, kao u sustavu kojeg smo opisali iznad, ali preslikavanje se ovdje ne izvodi pomoću eksplicitno zadanih tablica parova (kao iznad), nego sa funkcijama. Ali razlika između tablica i funkcija je više operativna nego suštinska. Svaka funkcija je implicitna definicija jedne tablice parova oblika (ulaz, izlaz); svaka tablica parova oblika (ulaz, izlaz) je eksplicitan zapis učinaka jedne funkcije.

Navedeni sustavi (algoritmi) za šifriranje (i za dešifriranje) koriste jedan niz bitova kao ključ. Sustav DES izvodi šifriranje po 64-bitnim blokovima, a koristi 56-bitne ključeve. Sustav AES izvodi šifriranje po 128-bitnim blokovima, a može koristiti ključeve od 128, od 192 i od 256 bitova. Sadržaj ključa (kao niz bitova) određuje neke unutarnje postavke (načine skretanja, tokove procesa) u algoritmu; te postavke utječu na to na koji način taj algoritam šifrira neki zadani sadržaj.

Dakle, vrijednost ključa bitno utječe na to kako izgleda šifrirani zapis sadržaja kojeg neki algoritam proizvodi za dani izvorni zapis toga sadržaja. Kod algoritma za šifriranje čiju smo strukturu opisali iznad, vrijednost ključa može određivati način rada osam funkcija preslikavanja, kao i način rada funkcije koja permutira bitove na razini bloka koji nastaje kao rezultat jednog prolaska kroz osam paralelnih preslikavanja.

Pokušaj probijanja (otkrivanja) sadržaja šifriranog zapisa metodom grube sile (brute force) izvodi se na taj način da se dani šifrirani zapis pokušava dešifrirati pomoću sustava sa kojim je šifriran, uz zadavanje svih mogućih vrijednosti ključeva. Dakle, algoritmu za dešifriranje zadaju se (nekim redom) sve permutacije niza od onoliko bitova koliko je dugačak ključ kod tog algoritma za šifriranje. Vjerojatnost da takav pokušaj dešifriranja uspije je vrlo mala, pogotovo kod onih sustava kod kojih je dužina ključa relativno velika. Broj različitih nizova bitova dužine n iznosi 2n, tako da kod dužine ključa od 56 bitova, broj mogućih ključeva iznosi 256. To je vrlo velik broj ključeva, tako da računalo ne stigne pokušati izvesti (u nekom realnom vremenu) proces dešifriranja sa svakim od tih ključeva, "tražeći pravog" koji će proizvesti čitljiv sadržaj.

Primjena velikog broja paralelnih procesora povećava mogućnost dešifriranja zapisa bez da se poznaje ključ. S druge strane, s povećanjem dužine ključa, vjerojatnost da ovakav pokušaj nasilnog dešifriranja uspije, eksponencijalno opada. Naprimjer, uzmimo da neko računalo može dešifrirati na silu (bez da zna ključ) neki sadržaj koji je šifriran sa 56-bitnim ključem (kao kod sustava DES), u vremenu od jedne sekunde. Izračunato je da bi tom računalu onda trebalo 150 trilijuna godina da na isti način dešifrira (probije) isti sadržaj kad je šifriran uz upotrebu ključa od 128 bitova, kakvog se koristi u sustavu AES.

Gornji opis algoritma za šifriranje pokazuje osnovnu strukturu algoritma za šifriranje sa simetričnim (tajnim) ključem. Realizacije takvih algoritama trebaju sadržavati niz elemenata koje smo ovdje samo spomenuli te niz drugih elemenata.

Jedna od stvari o kojoj algoritam za šifriranje treba voditi računa je da se javljanja iste riječi u izvornom zapisu sadržaja ne preslikavaju na iste šifrirane zapise te riječi. Jer ako napadač (koji je došao u posjed šifriranog zapisa) zna o kojoj temi taj sadržaj govori, onda može u

12

Page 13: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

šifriranom zapisu tražiti nizove bitova koji se često javljaju; takvi nizovi bitova vjerojatno su šifrirani zapisi onih riječi koje se najčešće koriste u govoru o danoj temi. Otkrivanje (i probijanje) šifriranih zapisa dominantnih riječi (u nekom zapisu), može pomoći napadaču da postupno otkrije sav sadržaj toga šifriranog zapisa, ne pomoću grube sile računanja, nego koristeći druge načine prepoznavanja nekih nizova bitova iz šifriranog zapisa i otkrivanja njihovih značenja.

Da bi se umanjilo opasnost otkrivanja izvornog sadržaja iz osobina šifriranog zapisa, algoritam za šifriranje treba biti oblikovan na način da jednaki nizovi bitova iz izvornog zapisa sadržaja ne proizvode jednake nizove bitova šifriranog zapisa toga sadržaja. Dakle, ne smiju sva javljanja iste riječi u izvornom sadržaju proizvoditi jednak niz bitova u šifriranim zapisima te riječi.

Općenito, algoritam za šifriranje treba šifrirati jednake blokove izvornog sadržaja sa različitim blokovima šifriranog zapisa toga sadržaja. Da bi se to postiglo, u osnovni algoritam šifriranja treba uvesti dodatne procese koje ovdje ne možemo opisivati. Naprimjer, svakom bloku izvornog zapisa može se pribrojiti jedan slučajan broj prije njegovog šifriranja. Na taj način jednaki blokovi izvornog zapisa postaju različiti. Nakon šifriranja tako izmijenjenih blokova, primatelju se šalju šifrirani zapisi blokova zajedno sa pripadnim slučajnim brojevima. Na temelju toga, primatelj može izvršiti dešifriranje primljenih zapisa i proizvesti izvorni zapis sadržaja.

Ovakav način razlikovanja jednakih izvornih zapisa iziskuje da se uz svaki blok šifriranog zapisa primatelju šalje i slučajni broj koji je korišten u procesu šifriranja toga zapisa. Takvo slanje slučajnog broja uz svaki blok izbjegava se na taj način da se slučajni broj za blok Bi izračunava iz šifriranog zapisa prethodnog bloka Bi-1. Tada pošiljatelj šalje primatelju slučajni broj samo za prvi blok; slučajni brojevi za ostale blokove izračunavaju se na isti način na strani pošiljatelja (u procesu šifriranja) i na strani primatelja (u procesu dešifriranja). To znači da te brojeve ne treba prenositi od pošiljatelja primatelju.

Šifriranje s javnim ključem

Kod sustava za šifriranje sa simetričnim ključem, kojeg smo opisali iznad, dvije strane koje razmjenjuju sadržaje trebaju imati zajednički (dogovoren) tajni ključ; dakle, ključ koji je poznat samo njima. Takav način šifriranja korišten je od davnina, ali 1970ih godina razvijen je algoritam drukčije vrste, kod kojeg se šifriranje izvodi sa javnim ključem, a dešifriranje sa privatnim (tajnim) ključem.

Zahtjev da dvije strane u komunikaciji trebaju imati zajednički tajni ključ ne mora biti problem, ali može biti velik problem iz raznih razloga. Prije svega, dvije strane trebaju dogovoriti zajednički tajni ključ. Kod globalne mrežne komunikacije to općenito nije lako učiniti na siguran način, jer komunikatori mogu biti međusobno vrlo udaljeni i ne susretati se fizički. S druge strane, dogovarati tajni ključ pomoću običnih poruka računalne pošte je riskantno; komunikatori ne mogu šifrirati svoje poruke računalne pošte prije nego što dogovore tajni ključ.

Nadalje, ključ ovdje poznaju dvije osobe, što povećava mogućnost da netko sa strane sazna taj ključ; ako se to dogodi, onda može nastati spor oko toga koja je strana dopustila da ključ sazna netko treći, čime je ugrožena povjerljivost (tajnost) komunikacije. U slučaju da neka treća strana sazna tajni ključ (na bilo koji način), treća strana neće to javiti vlasnicima ključa, nego će koristiti mogućnost da dešifrira njihove šifrirane poruke. Zato tajni ključ treba povremeno mijenjati, iz preventivnih razloga, za slučaj da ga je netko saznao. Tu se onda ponovno javlja problem razmjene tajnog ključa. Novi tajni ključ uvodi se zato što postoji opasnost da je postojeći ključ saznala treća strana. Zato novi tajni ključ ne valja dogovarati porukama koje su šifrirane starim ključem, jer ako je netko saznao stari ključ, onda može saznati i novi ključ kojeg se šalje u poruci koja je šifrirana starim ključem.

Iz navedenih razloga i drugih, 1970tih godina razvijen je algoritam koji izvodi šifriranje i dešifriranje pomoću različitih ključeva. Šifriranje poruka za primatelja A izvodi se uz upotrebu

13

Page 14: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

javnog ključa od A; taj ključ označavamo sa KA+. Primatelj A dešifrira tako šifrirane poruke uz

upotrebu svog privatnog ključa KA-.

Ovdje nema potrebe da komunikatori razmjenjuju zajednički tajni ključ, jer takav ključ ovdje ne postoji. Javni ključ svakog subjekta je javan (na Internetu) i dostupan svima, tako da nema potrebe slati ga bilo kome. Privatni ključ svakog subjekta je tajan i koristi ga samo taj subjekt, tako da nema potrebe da se taj ključ šalje bilo kome.

Ovaj naoko idealan sustav šifriranja ima i jednu bitnu slabost: sustav šifriranja sa javnim ključem troši mnogostruko više vremena za šifriranje, nego sustav sa simetričnim ključem; tom problemu vratiti ćemo se kasnije.

Godine 1976. Diffie i Hellman razvili su jedan algoritam koji omogućava da se šifriranje izvede pomoću jednog ključa, a dešifriranje pomoću drugog ključa. To je bio početak razvoja sustava za šifriranje uz upotrebu javnih ključeva primatelja. Takav sustav šifriranja ima središnju ulogu i u sustavu utvrđivanja identiteta komunikatora i u sustavu digitalnog potpisa, o čemu govorimo kasnije.

Na slici 4.4 prikazana je osnovna struktura sustava za šifriranje uz upotrebu javnog i tajnog (privatnog) ključa primatelja.

Slika 4.4 Šifriranje kod javnog i privatnog ključa

Uzmimo da subjekt A želi poslati subjektu B poruku m u šifriranom obliku. U sustavu šifriranja sa javnim ključem, subjekt B ima svoj javni ključ KB

+ (za šifriranje) i svoj privatni ključ KB

- (za dešifriranje). Pošiljatelj A pokreće sustav za šifriranje sa javnim ključem i zadaje mu javni ključ KB

+ od primatelja B i sadržaj svoje poruke m. Proces šifriranja sadržaja m sa javnim ključem KB

+ proizvodi šifrirani zapis KB+(m) sadržaja m. Pošiljatelj šalje taj šifrirani zapis primatelju B.

Po primitku šifriranog zapisa koji je šifriran njegovim javnim ključem, primatelj B pokreće sustav za šifriranje i dešifriranje (sa javnim i tajnim ključem) i tom sustavu zadaje primljeni šifrirani zapis KB

+(m) i svoj privatni ključ KB-. Na temelju toga sustav izračunava KB

-(KB+(m)). Dakle, uz

upotrebu svog privatnog ključa KB-, primatelj B iz šifriranog zapisa KB

+(m) koji je šifriran sa njegovim javnim ključem KB

+, izračunava izvorni zapis sadržaja m. Jer vrijedi slijedeći odnos: KB

-(KB+(m)) = m

Da bi takav sustav šifriranja i dešifriranja mogao funkcionirati, javni i privatni ključ trebaju

14

Page 15: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

biti međusobno povezani na način koji čini da ono što se šifrira sa jednim od ta dva ključa, može se dešifrirati s drugim ključem.

Sustav šifriranja sa javnim i privatnim ključem ima još neka vrlo korisna svojstva o kojima govorimo u nastavku. Glavno od tih svojstava je slijedeće: kao što se sa privatnim ključem dešifrira ono što je šifrirano sa pripadnim javnim ključem, tako se sa javnim ključem može dešifrirati ono što je šifrirano sa pripadnim privatnim ključem. To znači da vrijedi jednakost:

KB-(KB

+(m)) = KB+(KB

-(m)) = mTo svojstvo čini osnovu sustava digitalnog potpisa, o kojem govorimo kasnije.

Da bi sustav šifriranja sa javnim i tajnim ključem bio dovoljno dobar za široku upotrebu, potrebno je da ispunjava nekoliko osnovnih uvjeta, među koje spadaju:

- Način formiranja parova ključeva (javni, tajni) treba biti takav da napadač ne može utvrditi tajni ključ KA

- primatelja A na temelju uvida u njegov javni ključ KA+.

- Način šifriranja sadržaja treba biti takav da napadač nema praktički nikakvih izgleda da na temelju uvida u šifrirani zapis koji je napravljen prema javnom ključu KA

+, otkrije pripadni privatni ključ KA

-.- Način šifriranja sa javnim ključem treba biti takav da napadač nema praktički nikakvih

izgleda da dešifrira šifrirani zapis koji je napravljen prema nekom javnom ključu - osim sa pripadnim privatnim ključem (koji mu nije dostupan).

Uz nekoliko vrlo dobrih svojstava, sustav šifriranja sa javnim ključem ima i nekoliko bitnih slabosti. Ranije smo spomenuli sporost procesa šifriranja. Druga slabost je ta da primatelj šifrirane poruke ne može biti siguran da li je tu poruku zaista poslao onaj subjekt koji je u poruci naveden kao pošiljatelj. Jer kod šifriranja sa javnim ključem, subjekt C može uzeti javni ključ od subjekta A, šifrirati sa tim ključem poruku za A i poslati je subjektu A, i pritom se u toj poruci predstaviti kao B.

Kod sustava koji rade sa tajnim (simetričnim) ključem, takva lažna predstavljanja kod šifriranih poruka nisu moguća. Naime, u takvom sustavu subjekt A koristi tajni ključ KAB samo u komunikaciji sa subjektom B, i subjekt B koristi taj tajni ključ samo u komunikaciji sa subjektom A; pritom je ključ KAB poznat samo subjektima A i B. Zato kod tog sustava šifriranja, kad A primi šifriranu poruku koja tvrdi da dolazi od subjekta B, onda A pokuša dešifrirati tu poruku sa ključem KAB kojeg dijeli samo sa B. Ako taj pokušaj dešifriranja uspije, onda A može biti siguran da ta poruka dolazi od B, jer nitko drugi ne poznaje ključ KAB sa kojim je ta poruka šifrirana.

Ta dobra osobina sustava šifriranja sa simetričnim ključem kojeg dijele (to jest, koriste u međusobnoj komunikaciji) samo dva komunikatora, vrijedi pod uvjetom da se tog ključa ne domogne netko treći (napadač). Ali ako se ključevi gube ili kradu, onda nijedan sustav šifriranja ne može jamčiti nikakvu sigurnost ni zaštitu komunikacije. U svakom slučaju, u sustavu šifriranja s javnim ključem primatelj ne može biti siguran u identitet pošiljatelja šifrirane poruke na temelju zajedničkog tajnog ključa kojeg dijeli s tim pošiljateljem, jer u sustavu sa javnim ključem nema zajedničkih tajnih ključeva. Problem identiteta u tom sustavu i inače, riješen je razvojem sustava za utvrđivanje autentičnosti komunikatora, o čemu govorimo u slijedećem odjeljku.

Sustav RSA

Algoritam (sustav) RSA je najpoznatiji i najkorišteniji sustav za šifriranje uz upotrebu javnog ključa. Naziv tog sustava čine prva slova prezimena trojice autora koji su razvili taj sustav: Rivest, Shamir, Adleman. Nema potrebe da ovdje iznosimo opise unutarnje strukture tog složenog sustava. Recimo samo da se u tom sustavu izvodi mnogo računanja, i to sa vrlo velikim brojevima, što proces šifriranja čini sporim. Ta računanja zasnivaju se na načelima (teoremima) teorije brojeva; u njima se koristi modularna aritmetika (aritmetika modulo-n).

Računanje je prvo potrebno da se odredi odgovarajući par javnog i tajnog ključa za novog

15

Page 16: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

korisnika usluga šifriranja sustava RSA. Računanje sa vrlo velikim brojevima izvodi se i u procesu šifriranja sadržaja, što šifriranje u ovom sustavu čini mnogo sporijim nego u sustavima koji koriste simetrične ključeve. Sustav sa simetričnim ključem DES izvodi šifriranje barem 100 puta brže nego sustav RSA, kad je DES implementiran softverski, a između 1000 i 10 000 puta brže kad je implementiran hardverski. Zato se sustav RSA obično koristi u paru, zajedno sa nekim sustavom za šifriranje koji koristi simetričan ključ, kakav je sustav DES.

U takvoj kombinaciji, sustav RSA koristi se za dogovaranje simetričnog (tajnog) ključa KAB između subjekata A i B, za šifriranje u sustavu DES. Subjekt A odabire jedan simetričan ključ KAB za šifriranje u sustavu DES onih poruka koje razmjenjuje sa B. Subjekt A šifrira ključ KAB pomoću sustava RSA uz primjenu javnog ključa KB

+ subjekta B, i šalje tako šifrirani ključ KAB subjektu B. Subjekt B dešifrira šifrirani zapis simetričnog ključa KAB uz pomoć svog privatnog ključa KB

- u sustavu RSA.Time su A i B razmijenili (utvrdili) jedan simetrični tajni ključ KAB pomoću sustava RSA, a

za potrebe šifriranja sadržaja njihove međusobne komunikacije pomoću mnogo bržeg sustava DES. A i B sad šifriraju svoje sadržaje sa KAB u sustavu DES, koji je mnogo brži.

Ključevi mogu biti otkriveni od strane napadača; vlasnici koji dijele ključ mogu greškom učiniti da taj ključ postane poznat mnogima. Zato se kod sustava sa simetričnim ključevima obično ne koristi isti ključ KAB dugo vremena. Ključevi su kratki sadržaji, tako da proces odabira i razmjene novog simetričnog ključa pomoću sustava RSA ne iziskuje puno rada. Komunikatori A i B mogu na početku svake komunikacije odrediti novi simetrični ključ KAB kojeg će koristiti samo u toj komunikacije (ili toj komunikacijskoj sesiji). Zato se takav ključ KAB naziva ključem sesije (session key).

Da li je potrebno uvoditi novi simetrični ključ KAB na početku svake komunikacijske sesije, zavisi od više čimbenika. Naprimjer, od toga koliko su povjerljivi (važni) sadržaji koje se prenosi, kao i od toga da li se u jednoj sesiji prenosi mnogo sadržaja ili malo. To su uglavnom praktička pitanja; ovdje iznosimo prvenstveno načela rada. Pored algoritma sa javnim ključem RSA, koristi se i algoritam Diffie-Hellman, koji je iste vrste. Algoritam Diffie-Hellman ne može kodirati sadržaje proizvoljne dužine, ali može se koristiti za kodiranje ključeva sesije, koji se onda koriste za kodiranje u sustavima sa simetričnim ključem, kao što su DES i AES.

4.3 Integritet poruke i autentičnost komunikatora

Pojam integriteta poruke odnosi se na očuvanje izvornog sadržaja poruke u procesu njena prijenosa od pošiljatelja do primatelja. Integritet poruke je sačuvan ako je primatelj dobio poruku koja je jednaka poruci koju mu je uputio pošiljatelj. U suprotnom, integritet poruke je narušen u procesu prijenosa (ili na putu).

Pojam autentičnosti komunikatora odnosi se na pitanje da li je stvarni pošiljatelj nekog sadržaja onaj entitet (osoba ili sustav) za kojeg se u poruci tvrdi da jest. Naprimjer, ako entitet C pošalje entitetu A poruku u kojoj se kaže da je pošiljatelj te poruke entitet B, onda B nije autentični (pravi, stvarni) pošiljatelj te poruke. Tu poruku šalje C, koji se lažno predstavlja kao B. Dakle, autentičnost komunikatora narušena je u situaciji kad se pošiljatelj poruke lažno predstavlja.

Govori se i o autentičnosti poruke; poruka koju je primatelj primio je autentična ako je njen sadržaj jednak onome kojeg mu je poslao (uputio) pošiljatelj, i ako je stvarni pošiljatelj te poruke onaj entitet za kojeg se u poruci tvrdi da jest. Dakle, poruka je autentična ako je sačuvan integritet njenog sadržaja i ako dolazi od autentičnog pošiljatelja.

16

Page 17: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Mogućnost provjere integriteta sadržaja i autentičnosti komunikatora služi korisnicima, ali neophodna je i za dobar rad računalne mreže. Jer komunikatori nisu samo osobe; komunikator je svaki entitet u računalnoj mreži (hardver ili softver) koji šalje ili prima neke poruke; takvih entiteta ima na svim razinama mrežnog sustava. Takvi entiteti su naprimjer mrežne kartice (na razini veze podataka) i usmjerivači (na mrežnoj razini).

Usmjerivači stalno međusobno razmjenjuju pakete s podacima o stanju veza; na temelju tih podataka, svaki usmjerivač održava svoju tablicu usmjeravanja i tablicu prosljeđivanja. Na temelju svojih tablica prosljeđivanja usmjerivači prosljeđuju pakete prema njihovom konačnom odredištu. Ako bi napadač mijenjao u prijenosu (na putu) sadržaje paketa koji prenose podatke o stanju veza, koje usmjerivači šalju jedni drugima, onda bi time bitno poremetio rad računalne mreže. Iskrivljenje sadržaja paketa koji prenose podatke o stanju veza dovelo bi do toga da usmjerivači (na temelju takvih podataka) oblikuju svoje tablice usmjeravanja i tablice prosljeđivanja na krivi način. Krivo oblikovane tablice usmjeravanja i prosljeđivanja ugrozile bi rad računalne mreže.

Napadač se može lažno predstavljati kao da je usmjerivač i slati pakete sa izmišljenim podacima o stanju veza, i time ugroziti rad računalne mreže. Zato su pitanja zaštite integriteta poruka i utvrđivanja autentičnosti komunikatora vrlo važna za uspješan rad računalne mreže. Ta pitanja nisu važna samo u okviru zaštite pojedinačnih komunikacija korisnika, nego su važna i za ispravan rad računalne mreže kao prijenosnog sustava.

Iz razloga koje smo iznijeli, primatelj treba imati mogućnost da provjeri integritet poruke koju prima i autentičnost njenog pošiljatelja. Dakle, prijenosni sustav treba omogućiti primatelju poruke da utvrdi (1) da li je sadržaj te poruke mijenjan u prijenosu, i (2) da li ta poruka zaista dolazi od onog entiteta od kojeg tvrdi da dolazi. Određene mogućnosti takvih provjera trebale bi postojati na svim razinama mreže, ali ostvarenje takvih mogućnosti iziskuje troškove i opterećuje rad sustava. Zato se takve provjere izvode uglavnom na višim razinama mrežnog sustava.

Hash funkcija

Jedan od osnovnih elemenata u sustavima za utvrđivanje integriteta poruka i autentičnosti komunikatora su hash funkcije (hash functions). Hash funkcijom naziva se funkcija koja uzima kao ulaz neki veći sadržaj m proizvoljne dužine i iz njega izračunava jedan niz bitova stalne dužine; taj niz bitova označava se sa H(m) i naziva se "hashom od m". Hash funkcija preslikava digitalni zapis (m) proizvoljne dužine na jedan element iz skupa nizova bitova stalne (zadane) dužine. Naprimjer, hash funkcija MD5 preslikava sadržaj poruke koja ima 472885 bitova na jedan niz od 128 bitova; ta funkcija preslikava i poruku koja ima 55298 bitova na jedan niz od 128 bitova.

Pojam "(to) hash" znači "isjeckati", "sitno narezati", kao i "zamiješati". Hash funkcija čini sve to: slikovito rečeno, sjecka i zamješava sadržaj proizvoljne veličine, i tako proizvodi jedan niz bitova određene (zadane) dužine. Ovdje smo zadržali pojmove "hash funkcija" i "hash poruke"; pritom H(m) označava hash poruke m koji se izračunava primjenom hash funkcije H na sadržaj poruke m.

Najpoznatija hash funkcija je MD5 (Message Digest version 5); ta funkcija proizvodi hash dužine 128 bitova. Druga poznata hash funkcija je SHA-1 (Secure Hash Algorithm); ta funkcija proizvodi hash dužine 160 bitova. Slika 4.5 ilustrira učinak hash funkcije.

17

Page 18: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Slika 4.5 Preslikavanje sa hash funkcijom

Ovakav opis hash funkcije obuhvaća i algoritme koji izračunavaju kontrolne zapise na razini veze podataka (okvira) i na transportnoj razini (segmenata). Takvi algoritmi mogu se smatrati hash funkcijama, jer za dani okvir ili segment izračunavaju njegov kontrolni zapis stalne dužine; dužina takvih zapisa kreće se od 8 do 32 bita, zavisno od sustava. Dakle, algoritmi za izračunavanje kontrolnog zapisa preslikavaju okvire i segmente (kao duge nizove bitova) na njihove kontrolne zapise, kao kraće nizove bitova stalne dužine.

Za hash funkcije (kao i za algoritme koji izračunavaju kontrolne zapise) posebno je važno slijedeće. Treba biti vrlo teško (vrlo malo vjerojatno) da se namjerno promijeni sadržaj m1 u sadržaj m2 na način da H(m2) bude jednako H(m1). To znači da ako napadač izmijeni (na putu) sadržaj m1 u sadržaj m2, onda napadač ne smije imati praktički nikakvih izgleda da uspije izračunati ili namjestiti sadržaj m2 na način da H(m2) bude jednako H(m1).

Hash funkcija preslikava nizove proizvoljne (velike) dužine na nizove jednake (male) dužine; zato moraju postojati mnoge različite poruke m1 i m2 za koje vrijedi da je H(m1) = H(m2). Ali ovdje je bitno da napadač koji namjerno mijenja sadržaj m1 u m2, ne može namjestiti m2 na način da H(m2) bude jednako H(m1). To je najvažnije svojstvo (ili cilj) dobre hash funkcije, jer to svojstvo omogućava da se iz vrijednosti hasha poruke utvrdi da li je mijenjan njen sadržaj na putu. Ako bi bilo relativno lako mijenjati m1 u m2 na način da H(m2) bude jednako H(m1), onda ovakva hash funkcija H ne bi bila dobra osnova za uspostavu sustava koji štiti integritet poruka i provjerava autentičnost komunikatora.

Par (m, H(m)) kojeg tvore poruka m i njen hash, naziva se proširenom porukom od poruke m. Pošiljatelj šalje primatelju svoje proširene poruke; dakle, parove oblika (m, H(m)); na temelju takvih parova i još nekih stvari, primatelj može provjeriti integritet poruke i autentičnost njenog pošiljatelja; o tome govorimo u nastavku.

Hash funkciju MD5 definirao je Ron Rivest, a opisana je u RFC 1321. Proces hashiranja u sustavu MD5 sastoji se od četiri faze; prve tri faze možemo nazvati pripremnima; u četvrtoj fazi ciklički se procesiraju blokovi od 128 bitova ulaznog sadržaja m i na taj način formira se rezultat H(m) hashiranja poruke m, čija dužina iznosi 128 bitova.

Druga poznata funkcija (ili algoritam) hashiranja je SHA-1; ta funkcija proizvodi hash dužine 160 bitova. Općenito vrijedi da duži hash (rezultat hashiranja) omogućava kvalitetniju kontrolu integriteta poruke i autentičnosti komunikatora, ako je proces (algoritam) hashiranja dobro definiran; u suprotnom, sama dužina hasha ne jamči da je taj hash kvalitetan.

Hash funkcija preslikava velike sadržaje na nizove od 128 ili 160 bitova; pritom, ta funkcija mora preslikavati neke različite sadržaje na isti hash naprosto zato što je broj mogućih sadržaja mnogo veći od broja mogućih hasheva. Dakle, za mnoge različite sadržaje m1 i m2 nužno vrijedi H(m1) = H(m2). Ali kod dobre hash funkcije (algoritma) treba biti "praktički nemoguće" izmijeniti sadržaj od m1 (i time proizvesti m2) na način da izmijenjeni sadržaj daje isti hash kao i izvorni sadržaj.

Integritet poruke

Na temelju hash funkcije, definiran je sustav za provjeravanje integriteta poruke. Osnovu tog sustava (ili protokola) čine slijedeći postupci:

(1) Pošiljatelj A hoće poslati sadržaj m primatelju B. Pošiljatelj izračunava H(m), sastavlja proširenu poruku koju tvori par (m, H(m)) i šalje tu proširenu poruku primatelju B.

(2) Primatelj B prima proširenu poruku oblika (m, h) i iz sadržaja m izračunava H(m). Ako je rezultat tog računanja jednak vrijednosti h koju je B primio od A u proširenoj poruci, onda bi se

18

Page 19: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

moglo zaključiti da integritet poruke nije narušen na putu.Ali opisani proces i sredstva nisu dovoljni za takav zaključak. Napadač može presresti na

putu proširenu poruku od pošiljatelja A, zamijeniti njen sadržaj m1 sa sadržajem m2, izračunati H(m2) i zamijeniti njime H(m1) iz polazne poruke. Tako izmijenjenu (novu) proširenu poruku (m2, H(m2)) napadač prosljeđuje primatelju B, pri čemu u novoj poruci navodi subjekt A kao pošiljatelja te (nove) poruke.

Dakle, napadač je zamijenio polazni par (m1, H(m1)) sa parom (m2, H(m2)). Ako primatelj izvodi postupak provjere integriteta poruke, kojeg smo opisali iznad, mogao bi zaključiti da sadržaj kojeg je primio dolazi od pošiljatelja A i da nije mijenjan u prijenosu. Ali takav zaključak bio bi pogrešan.

Opisani problem rješava se na taj način da komunikatori dogovore jedan niz bitova s, koji je poznat samo njima i kojeg se naziva ključem autentikacije (authentication key). Uz upotrebu ključa autentikacije, proces slanja i primanja sadržaja izvodi se na slijedeći način:

(1) Pošiljatelj A dodaje ključ autentikacije s poruci m koju treba poslati primatelju B, i izračunava H(m+s). Takav hash poruke kojoj je dodan ključ autentikacije, naziva se kodom autentikacije poruke (message authentication code - MAC).

(2) Pošiljatelj A šalje primatelju B proširenu poruku (m, H(m+s)).(3) Primatelj B prima proširenu poruku oblika (m, h). B uzima sadržaj m iz primljene poruke

i posjeduje ključ s; iz tih vrijednosti, B izračunava H(m+s). Ako je rezultat tog računanja jednak hashu h kojeg je B dobio u poruci od A, onda B može biti siguran da je integritet te poruke sačuvan u procesu prijenosa.

Dakle, u opisanoj situaciji primatelj B može biti siguran da je sadržaj kojeg je primio od A jednak sadržaju kojeg mu je A poslao. Nadalje, primatelj B može biti siguran da ta poruka dolazi od pošiljatelja A (jer je taj ključ s dogovorio samo sa Aom); dakle, B može utvrditi autentičnost pošiljatelja dane poruke. Grafički prikaz opisanog procesa dan je na slici 4.6

19

Page 20: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Slika 4.6 Autentičnost pošiljatelja i integritet poruke

Provjera integriteta poruke, kao i provjera autentičnosti pošiljatelja poruke, zasniva se na primjeni tajnog ključa autentikacije. Napadač može presresti poruku m1 i promijeniti njen sadržaj u m2, ali napadač ne može izračunati hash H(m2+s) jer ne poznaje ključ autentikacije s. Na temelju toga primatelj može lako utvrditi da li je poruka koju prima autentična. Ako hash kojeg primatelj izračuna (na način kako je opisano iznad) nije jednak primljenoj vrijednosti hasha, onda primatelj zna da je poruka mijenjana, ili da ta poruka ne dolazi od autentičnog pošiljatelja (koji se u njoj navodi). Tada primatelj odbacuje takvu poruku, jer njen sadržaj može biti mijenjan ili poslan od strane napadača, i vjerojatno je štetan.

Dakle, ključ autentikacije ne može spriječiti napad na integritet poruke (to jest, mijenjanje njena sadržaja na putu), ali taj ključ omogućava primatelju poruke da otkrije takav napad i da se zaštiti od posljedica (učinaka) iskrivljenih poruka, na taj način da takve poruke odbacuje. Jednako vrijedi za lažno predstavljanje. Napadač N može slati poruke primatelju A u kojima se lažno predstavlja kao da je B; ali N nema ključ autentikacije s kojeg A koristi u komunikaciji sa Bom. Na temelju toga A može lako utvrditi da te poruke ne dolaze od B (kao što tvrde) i zato ih odbacuje.

20

Page 21: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Digitalni potpis

Sustav digitalnog potpisa je jedan kriptografski sustav koji omogućava da pošiljatelj potpisuje sadržaje koji su zapisani u digitalnom obliku i koji se prenose računalnom mrežom (zajedno sa potpisom). Digitalni potpis treba biti jedinstven na globalnoj razini; usto treba biti takav da se ne može falsificirati, i da se može provjeriti njegovu autentičnost.

U sustavu šifriranja koji koristi javni i privatni ključ, jedan par javnog i pripadnog privatnog ključa pripada jednom korisniku. Zato svaki takav par ključeva može imati ulogu jednoznačnog identifikatora jednog subjekta u prostoru digitalne (mrežne) komunikacije. U sustavu za šifriranje s javnim ključem KA

+ i privatnim ključem KA- vrijedi slijedeći odnos:

KA-(KA

+(m)) = KA+(KA

-(m)) = mPrvi element gornjeg stavka kaže slijedeće. Šifrirani zapis poruke m, koja je šifrirana s

javnim ključem KA+ subjekta A, dešifrira se sa pripadnim privatnim ključem KA

- od A; na taj način dobiva se izvorni (čitljivi) zapis sadržaja poruke m.

Drugi element gornjeg stavka kaže slijedeće. Šifrirani zapis poruke m, koja je šifrirana s privatnim ključem KA

- subjekta A, dešifrira se sa pripadnim javnim ključem KA+ od A; na taj

način dobiva se izvorni (čitljivi) zapis sadržaja poruke m.

Dakle, ono što je šifrirano sa javnim ključem, dešifrira se sa pripadnim privatnim ključem. Ali ovdje nas zanima drugo svojstvo danog sustava šifriranja: ono što je šifrirano sa privatnim ključem, može se dešifrirati sa pripadnim javnim ključem. To znači da vlasnik para ključeva (javni, privatni) može koristiti šifriranje svojih poruka sa svojim privatnim ključem kao svoj digitalni potpis.

Pošiljatelj A šifrira sadržaj m sa svojim privatnim ključem KA- i šalje šifrirani zapis KA

-(m) primatelju B. Primatelj B dešifrira taj zapis pomoću javnog ključa KA

+ od A i dobiva izvorni zapis sadržaja m. Ovdje nas ne zanima zaštita povjerljivosti sadržaja, koju se štiti šifriranjem. Ovdje je bitno to, da uspješno dešifriranje nekog zapisa pomoću javnog ključa KA

+ pokazuje da je taj zapis proizveden šifriranjem sa privatnim ključem KA

-, koji pripada subjektu A. To dalje znači da je taj sadržaj šifrirao subjekt A. Na taj način dešifriranje pokazuje na onoga tko je šifrirao i time određuje vlasnika ("potpisnika") danog sadržaja.

Dakle, šifriranjem sadržaja sa svojim privatnim ključem KA-, pošiljatelj A ujedno digitalno

potpisuje te sadržaje. Tako šifrirane sadržaje od A može dešifrirati bilo tko, jer je javni ključ KA+

od A javno poznat. Ali činjenica da se ti sadržaji mogu dešifrirati sa javnim ključem KA+ pokazuje

da su ti sadržaji šifrirani sa privatnim ključem KA- od A. Jer jedino ono što je šifrirano sa privatnim

ključem KA- od A može se dešifrirati sa njegovim javnim ključem KA

+, i ne može se dešifrirati ni sa kojim drugim ključem.

Na taj način, šifrirana poruka KA-(m) pošiljatelja A, pored podatkovnog sadržaja, nosi i

jedinstvenu oznaku pošiljatelja A: to jest, jedinstven učinak njegovog privatnog ključa. Zato se uzima da je tako šifrirana poruka potpisana od strane vlasnika privatnog ključa KA

- sa kojim je dana poruka šifrirana. Uzgred, očekuje se da potpisnik sadržaja bude i njegov pošiljatelj, ali to ne mora biti tako. Napadač N može presresti šifriranu poruku koju A šalje Bu, i poslati tu poruku Cu. Tako C dobiva šifriranu poruku čiji je autor A, od napadača N, a ne od A. Ali C može dešifrirati sadržaj te poruke jedino pomoću javnog ključa od A; tom problemu vratiti ćemo se kasnije.

Pokazali smo na koji način kriptografski sustav sa javnim ključem, kao što je RSA, omogućava da pošiljatelj potpisuje svoje poruke. Taj sustav ujedno pruža još neke mogućnosti koje su zanimljive za pošiljatelja i za primatelja; pogledajmo neke od njih.

Ako primatelj B izmijeni poruku m1 koju je primio od A, onda će time proizvesti poruku m2. Ali pošiljatelj A koji potpisuje m1, ne potpisuje m2. Pošiljatelj A je poslao primatelju B

21

Page 22: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

šifrirani zapis KA-(m1); primjenom javnog ključa KA

+, iz tog šifriranog zapisa može se proizvesti samo m1, jer KA

+(KA-(m1)) = m1. Ako primatelj B namjerno mijenja m1 i tvrdi da mu je pošiljatelj

A poslao m2, ali pritom B ne posjeduje KA-(m2), onda je njegova tvrdnja očito neosnovana. Tako

se pošiljatelj štiti od namjernih iskrivljenja poruka od strane primatelja.S druge strane, pošiljatelj A ne može poricati da je autor poruke m1, ako primatelj B

posjeduje šifrirani zapis te poruke KA-(m1) koji je proizveden uz pomoć privatnog ključa od A. Na

taj način se primatelja zaštićuje od opasnosti da pošiljatelj poriče autorstvo poruka koje je napisao i poslao.

Kriptografski sustav sa privatnim i javnim ključem je procesno vrlo zahtjevan jer sadrži ogromnu količinu računanja sa ogromnim brojevima; zato je takav sustav šifriranja spor, posebno kod slanja većih sadržaja. Ranije smo spomenuli da sustav sa javnim ključem RSA šifrira sadržaje od sto do deset tisuća puta sporije nego što to čini sustav sa jednim (simetričnim, tajnim) ključem, kakav je sustav DES.

Taj problem riješen je ovdje na slijedeći način. Za digitalni potpis nekog sadržaja (poruke) nije neophodno šifrirati sav taj sadržaj sa privatnim ključem pošiljatelja. Umjesto toga, dovoljno je da pošiljatelj napravi hash svog sadržaja (poruke) i da onda taj hash šifrira sa svojim privatnim ključem. Tada hash poruke m šifriran sa privatnim ključem pošiljatelja A, ima ulogu digitalnog potpisa poruke m, sa kojim A potpisuje njen sadržaj.

U sustavu digitalnog potpisa, hash svake poruke dugačak je 128 bitova; to je redovito daleko manje bitova nego što ih ima poruka, koja može sadržavati tisuće ili milijune bitova, ili još više od toga. Zato šifriranje hasha H(m) od poruke m (pomoću sustava RSA) obično troši mnogo manje vremena nego što troši šifriranje cijele poruke m.

Na slici 4.7 dan je grafički prikaz procesa izrade digitalnog potpisa poruke.

Slika 4.7 Digitalni potpis

22

Page 23: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Potpisnik A potpisuje sadržaj (poruku) m na slijedeći način:(1) Uzima sadržaj m kojeg želi potpisati, i izračunava hash H(m) tog sadržaja.(2) Šifrira hash sadržaja sa svojim privatnim ključem; dakle, proizvodi KA

-(H(m)).(3) Šalje primatelju sadržaj m i šifrirani hash toga sadržaja; dakle, šalje par (m, KA

-(H(m))).Hash poruke m, šifriran sa privatnim ključem od A - dakle, zapis KA

-(H(m)) - naziva se digitalnim potpisom (digital signature) poruke m od strane subjekta A.

Dakle, ulogu digitalnog potpisa pošiljatelja A može imati šifrirani zapis cijele poruke m, pri čemu je taj šifrirani zapis proizveden uz upotrebu privatnog ključa od A. Ali digitalnim potpisom pošiljatelja A poruke m naziva se šifrirani zapis hasha poruke m, koji je proizveden uz upotrebu privatnog ključa pošiljatelja A; dakle, zapis oblika KA

-(H(m)).

Primatelj B prima sadržaj poruke m zajedno sa šifriranim zapisom hasha te poruke, koji je šifriran sa privatnim ključem pošiljatelja A; dakle, prima par (m, KA

-(H(m))). Primatelj B na to izvodi slijedeći proces:

(1) Pokreće sustav za dešifriranje (RSA) i zadaje mu primljeni šifrirani sadržaj hasha poruke (dakle, KA

-(H(m))) i javni ključ KA+ od pošiljatelja A. Sustav iz toga proizvodi hash H(m) poruke

m.(2) Primatelj B uzima čitljivu poruku m koju je primio od pošiljatelja A i sam izračunava

njen hash H(m).(3) Ako je rezultat koji je dobiven u koraku (1) jednak rezultatu koji je dobiven u koraku

(2), onda primatelj B može biti siguran u integritet primljene poruke (nije iskrivljena u prijenosu), kao i da je autentični pošiljatelj te poruke A. Ako rezultati koji su dobiveni u (1) i u (2) nisu jednaki, onda je sadržaj izvorne poruke mijenjan, ili se pošiljatelj poruke lažno predstavlja, ili oboje.

Na slici 4.8 dan je grafički prikaz opisanog procesa provjere integriteta poruke i autentičnosti njenog potpisnika.

Slika 4.8 Utvrđivanje autentičnosti potpisa i integriteta poruke

CA certifikat

Sustav digitalnog potpisa kojeg smo opisali iznad, izgleda dobro, ali ipak nije pouzdan. Problem je tome što taj sustav ne sprječava i ne otkriva lažna predstavljanja pošiljatelja. Pošiljatelj C može poslati poruku s digitalnim potpisom primatelju B, u kojoj se C predstavlja kao

23

Page 24: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

da je A. C šalje Bu poruku m zajedno sa svojim digitalnim potpisom KC-(H(m)), ali u poruci

govori kao da je on A.Primatelj B prima sadržaj poruke i digitalni potpis od C; dakle, prima par (m, KC

-(H(m))); pošiljatelj C može navesti u poruci i svoj javni ključ KC

+, tako da B ne mora tražiti njegov javni ključ na webu (za dešifriranje potpisa), gdje se taj ključ isto može nalaziti pod lažnim imenom.

B izvodi postupak kojeg smo opisali iznad, i zaključuje da je to autentična poruka od autentičnog pošiljatelja. Taj zaključak je točan, jer to je autentična (neiskrivljena) poruka od pošiljatelja C. Problem je u tome što C govori u poruci kao da je on A, a primatelj B ne vidi iz poruke i digitalnog potpisa te poruke da li pošiljatelj govori istinu ili se lažno predstavlja.

Dakle, sam digitalni potpis nekog sadržaja nije dovoljan; potrebno je uspostaviti sustav koji jednoznačno povezuje simboličke sadržaje (kao što su ključevi), sa fizičkim entitetima kojima ti sadržaji pripadaju. Konkretno, osobe, serveri i usmjerivači trebaju imati mogućnost utvrđivanja da li poruka i digitalni potpis koji tvrde da dolaze od entiteta E, zaista dolaze od entiteta E.

Ovdje se govori o uparivanju fizičkih entiteta (osoba i naprava) i njihovih simboličkih oznaka (imena i ključeva), ali i softverski entiteti (koji nisu fizički) imaju nazive i ključeve. U svakom slučaju, zvanično uparivanje osoba (fizičkih i pravnih) i njihovih svojstava (posebno javnih ključeva) izvodi institucija koju možemo probno nazvati ovjerovnom službom (certification authority - CA).

Ovjerovna služba (CA) izdaje potvrde (certifikate) sa kojima potvrđuje da je dani subjekt (osoba, tvrtka) zaista onaj koji taj subjekt tvrdi da jest. Ili pokušajmo to reći ovako: ovjerovna služba daje potvrde na kojima piše tko je (u stvarnosti) vlasnik te potvrde. Procedura utvrđivanja stvarnog identiteta nekog subjekta nije precizno pretpisana; preostaje nadati se da ovjerovna služba radi svoj posao savjesno i uspješno. Ovjerovna služba može spadati u sastav državnih službi (državne administracije), ili bi njen rad trebao podlijegati nadzoru državnih službi.

Nakon što se uvjeri u identitet nekog subjekta, ovjerovna služba izdaje tom subjektu potvrdu (certificate) sa kojom potvrđuje da je taj subjekt vlasnik određenog javnog ključa. Takva potvrda sadrži i niz drugih podataka, od kojih ćemo neke spomenuti kasnije, ali njena glavna uloga je da upari jedan javni ključ i jedan subjekt kojem taj ključ pripada.

Identifikacija subjekta treba biti jednoznačna na globalnoj razini; ta identifikacija može uključivati ime i prezime osobe, OIB, i niz drugih podataka. Identitet mrežnih elemenata (naprava i sustava) može se odrediti adresom mrežne kartice i drugim oznakama, ali to ne spada u poslove ovjerovne službe nego onih koji upravljaju radom računalne mreže.

Potvrda koju izdaje ovjerovna služba zapisana je u digitalnom obliku i digitalno je potpisana sa privatnim ključem ovjerovne službe (ureda). Dakle, sadržaj te potvrde šifriran je sa privatnim ključem KCA

- ovjerovne službe CA; sadržaj takve potvrde može se vidjeti na taj način da se tu potvrdu dešifrira sa javnim ključem KCA

+ ovjerovne služne CA.Potvrde o identitetu i pripadnom javnom ključu, koje izdaje ovjerovna služba (CA) možemo

zvati CA certifikatima, tako da budemo kompatibilni sa dominantnom terminologijom. Dakle, CA certifikati bi trebali onemogućiti lažno predstavljanje u prostoru mrežne komunikacije. Pogledajmo na koji način se to može postići.

Ako A želi stupiti u komunikaciju sa Bom, onda A šalje Bu svoj CA certifikat. B uzima javni ključ KCA

+ od ovjerovne službe i dešifrira CA certifikat kojeg mu je poslao A. Tako B može saznati sve relevantne podatke o Au, koji su zapisani u njegovom CA certifikatu.

Ako je B voljan stupiti u komunikaciju koju je A zatražio (slanjem svog CA certifikata), onda B šalje Au svoj CA certifikat, iz kojeg A može saznati sve relevantne podatke o Bu.

Dakle, CA certifikati omogućuju da se komunikatori međusobno upoznaju prije nego počnu razmjenjivati podatkovne sadržaje. Komunikatori se međusobno upoznaju na temelju sadržaja koji su zapisani u njihovim CA certifikatima. Središnje mjesto među tim sadržajima ima

24

Page 25: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

javni ključ koji pripada određenom subjektu, koji posjeduje pripadni privatni ključ.CA certifikati su toliko dobri i pouzdani koliko je dobra i pouzdana služba koja ih izdaje.

Kaže se da korisnici trebaju imati povjerenja u ovjerovnu službu (CA); u stvari, korisnici nemaju drugog izbora nego imati povjerenja u tu službu i u njene CA certifikate, jer nemaju neke druge (bolje) mogućnosti.

Ovdje još nije rečeno na koji način CA certifikati onemogućuju lažno predstavljanje. Naprimjer, kad A pošalje svoj certifikat Cu (radi uspostave komunikacije s njim), onda C može poslati taj certifikat (od A) Bu i time se predstaviti kao da je on A. B će uzeti javni ključ ovjerovne službe KCA

+ i dešifrirati certifikat kojeg mu je poslao C. Time će B dobiti sve podatke o Au, čiji je to certifikat. Ali ne vidi se na temelju čega može B zaključiti da mu je taj certifikat poslao C (tvrdeći da je on A), a ne stvarni A, koji je stvarni vlasnik tog certifikata.

Taj problem može se riješiti na slijedeći način. Kad B dešifrira primljeni certifikat, koji pripada Au, ali kojeg je B primio od Ca, B u tom certifikatu nalazi niz podataka o Au, prije svega njegov javni ključ KA

+. Ako B sad pošalje kratki upit Cu (koji se predstavlja kao da je A) šifriran sa javnim ključem iz certifikata (to jest, sa KA

+), onda C neće moći dešifrirati taj upit (jer ne posjeduje privatni ključ KA

-), tako da neće moći odgovoriti na taj upit. Na osnovu toga B može zaključiti da C nije A (kako se predstavio) i zato B neće prihvatiti ovaj Cov zahtjev za uspostavu komunikacije.

Pokušaj lažnog predstavljanja od strane Ca, kojeg smo spomenuli prije uvođenja CA certifikata, izgledao je drukčije. Tamo je C slao svoje podatke, uključujući svoj javni ključ, ali se predstavljao kao da je on A. CA certifikat onemogućava takav način lažnog predstavljanja, jer su u certifikatu zapisani svi relevantni podaci o nekom subjektu, posebno njegov javni ključ. Ali postoji mogućnost da napadač šalje tuđi certifikat (kojeg je ranije primio od nekog drugog) i da tvrdi da je to njegov certifikat, kako je to opisano iznad. Međutim, dodatni korak u procesu upoznavanja, kojeg smo opisali iznad, omogućava da se otkrije takav pokušaj lažnog predstavljanja i da pozvana strana onda odbije stupiti u traženu komunikaciju.

ITU (International Telecommunication Union) i IETF (Internet Engineering Task Force) definirali su svoje sustave (standarde) ovjerovnih službi (CA), način njihovog rada, te sadržaje i oblike CA certifikata. Pored podataka koji jednoznačno definiraju subjekte, takvi CA certifikati sadrže i niz drugih podataka među koje spadaju:

- Verzija CA certifikata.- Serijski broj - svaki CA certifikat ima jedinstvenu oznaku (broj).- Potpis - algoritam (sustav) sa kojim je ovjerovna služba digitalno potpisala ovaj CA

certifikat.- Izdavač - jedinstvena oznaka ovjerovne službe (ureda) koja je izdala ovaj CA certifikat;

način označavanja ovjerovnih službi (ureda) je precizno definiran.- Vrijeme - početak valjanosti i završetak valjanosti ovog CA certifikata.- Ime subjekta - jedinstvena oznaka subjekta (osobe, tvrtke) za kojeg se ovim certifikatom

potvrđuje da je vlasnik javnog ključa (koji slijedi ispod); način imenovanja (označavanja) entiteta je precizno definiran.

- Javni ključ subjekta - javni ključ subjekta (čije je ime dano iznad), naziv algoritma za šifriranje za kojeg je to javni ključ, te parametri koji se koriste u radu sa tim algoritmom.

Napad ponavljanjem poruka

Usprkos brojnim metodama i sustavima sa kojima se nastoji uspostaviti sigurnu mrežnu komunikaciju, čini se da uvijek ostaje prostora za nove oblike napada. Ovaj odjeljak zaključiti ćemo opisom jedne vrste napada koju smo nazvali napadom ponavljanjem poruka (playback attack).

Ranije smo pokazali na koji način se uvođenjem ključa autentikacije (s) ostvaruje sustav

25

Page 26: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

koji omogućava primatelju poruke da utvrdi da li je ta poruka mijenjana na putu i da li ta poruka zaista dolazi od onog (autentičnog) pošiljatelja od kojeg kaže da dolazi. Podsjetimo, taj sustav radi na slijedeći način:

(1) Pošiljatelj A dodaje ključ autentikacije s poruci m koju treba poslati primatelju B, i izračunava H(m+s); taj hash naziva se kodom autentikacije poruke (message authentication code - MAC).

(2) Pošiljatelj A šalje primatelju B proširenu poruku (m, H(m+s)).(3) Primatelj B prima proširenu poruku oblika (m, h); B uzima sadržaj m iz primljene

poruke, a posjeduje ključ s; iz tih vrijednosti, B izračunava H(m+s).(4) Ako je rezultat računanja u (3) jednak hashu h kojeg je B primio u poruci od A, onda B

na osnovu toga utvrđuje da je integritet primljene poruke sačuvan u procesu prijenosa. Primatelj B ujedno utvrđuje da ta poruka dolazi od pošiljatelja A, jer B dijeli ključ autentikacije s samo sa A; dakle, B utvrđuje autentičnost pošiljatelja dane poruke.

Primjena MACa omogućava primatelju B da utvrdi da li je sadržaj kojeg je primio od pošiljatelja A jednak onom sadržaju kojeg je A poslao primatelju B, i da utvrdi da li dana proširena poruka zaista potječe od pošiljatelja A. Ali uz ovakav sustav zaštite, koji izgleda sigurnim, ipak postoji mogućnost napada na komunikaciju, koji izgleda ovako. Napadač kopira poruke iz tuđe komunikacije, pa kasnije šalje kopije poruka njihovim stvarnim primateljima. Poruka, pošiljatelj i primatelj su ovdje autentični; napadač ništa ne mijenja, nego samo naknadno šalje kopiju poruke koju je snimio; napadač to može činiti zato da stekne neku korist, ili zato da omete rad računalne mreže.

Ponavljanje poruke može izazvati ponovnu uplatu nekog novca na nečiji račun; naprimjer, na račun od napadača. Ponovljeno slanje iste poruke može biti ponovno slanje obavijesti o prekidu neke veze među usmjerivačima, nakon što je ta veza popravljena; slanje takvih obavijesti (koje više nisu točne) može izazvati bitne poremećaje u radu usmjerivača i dijela računalne mreže. Ponovno slanje istih sadržaja (segmenata, paketa) može izazvati razne vrste šteta, tako da sustav zaštite računalne mreže i komunikacije treba sadržavati elemente koji omogućuju otkrivanje ponovljenih slanja poruka i sprječavanje štetnih posljedica koje takvo slanje izaziva.

Napadač ponavlja slanje autentične poruke od autentičnog pošiljatelja, autentičnom primatelju. Sustav zaštite kojeg smo opisali iznad, ne sprječava takvu vrsta napada; MAC omogućava otkrivanje promjena, ali ovdje napadač ne mijenja ništa: ne narušava integritet poruke, ni autentičnost pošiljatelja, nego samo šalje još jednu kopiju izvorne poruke. MAC kojeg smo opisali iznad, ne omogućava razlikovanje izvorne (prve) poruke i njene kopije koju netko šalje istom primatelju.

Taj problem riješen je na taj način da kod uspostavljanja nove TCP veze, budući primatelj šalje budućem pošiljatelju jedan broj, kojeg će taj protokol (na danom domaćinu) upotrijebiti samo jednom i nikad više. Takav broj za jednokratnu upotrebu naziva se u engleskom nonce (for the nonce = samo za ovaj put). Protokol "troši" po jedan broj za svaku novu TCP vezu, a ne za svaki segment (paket) koji se prenosi tom vezom.

Dakle, prigodom uspostavljanja TCP veze, budući primatelj šalje budućem pošiljatelju jedan broj za jednokratnu upotrebu, kojeg se označava sa R. Pošiljatelj A sad formira MAC na taj način da spoji poruku m, ključ autentikacije s, i broj R, i da izračuna hash H(m+s+R) od tako formiranog niza bitova. Pošiljatelj A zatim šalje primatelju B proširenu poruku oblika (m, h), pri čemu je h = H(m+s+R).

Primatelj B izvodi proceduru kakvu smo opisali ranije. Dakle, B uzima poruku m i dodaje joj s i R (koje posjeduje), te izračunava H(m+s+R); ako je rezultat tog računanja jednak vrijednosti hasha kojeg je primio od pošiljatelja A, onda B zaključuje da sadržaj poruke nije mijenjan putem (njen integritet je sačuvan) i da poruka dolazi od autentičnog pošiljatelja. Primatelj B je sa tim računanjem ujedno utvrdio da je ta poruka poslana nakon što je on (B) poslao broj R pošiljatelju A, jer R je uključen u računanje MACa.

26

Page 27: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Dakle, primjenom broja za jednokratnu upotrebu sprječava se napad s ponavljanjem poruka. Ovdje ne trebamo iznositi podrobnosti procesa (protokola) koji sprječava takvu vrstu napada; spomenimo samo neke pojedinosti. Broj R vrijedi za jednu komunikacijsku sesiju, odnosno dok traje jedna TCP veza. Zato samo R nije dovoljan za to da se otkrije ponavljanje poruka (koje izvodi napadač) unutar jedne komunikacijske sesije. Za svaki segment u jednoj komunikaciji, MAC se računa sa istim s i istim R, tako da se na osnovu tih parametara ne može razlikovati kopiju segmenta od njegovog originala. Taj problem riješen je kombiniranjem broja R i slijednog broja segmenta. Jer svaki segment u TCP vezi ima svoj slijedni broj. Slijedni brojevi segmenata kreću se ciklički, kako smo to opisali ranije, ali omogućavaju da se otkriju pokušaji napada ponavljanjem segmenata.

Ne zalazeći u tehničke pojedinosti, recimo ovako. Jednokratni broj R, kojeg primatelj uvodi kod uspostave TCP veze, omogućava otkrivanje pokušaja napadača da primatelju B šalje kopije poruke od pošiljatelja A iz ranije komunikacije (sesije), koja je završena. Primatelj B može utvrditi da MAC te poruke nije izračunat uz upotrebu novog jednokratnog broja, što znači da je poruka stara (ili je iskrivljena u prijenosu). S druge strane, slijedni brojevi segmenata (zajedno sa trenutnim brojem R) trebaju omogućiti otkrivanje i sprječavanje pokušaja napadača da ponavlja slanje starih segmenata unutar jedne komunikacije. Ovaj kratki opis jedne vrste napada, i načina obrane od takvog napada, pokazuje kako su mogućnosti napada i zaštite praktički neiscrpne.

4.4 Sigurnost na razini aplikacija

U prethodnim odjeljcima opisali smo dominantne protokole i metode pomoću kojih se ostvaruje sigurnost rada računalne mreže i mrežne komunikacije. Te metode i protokoli uključuju: (1) zaštitu povjerljivosti sadržaja šifriranjem pomoću simetričnog ili javnog ključa, (2) utvrđivanje autentičnosti komunikatora, (3) utvrđivanje integriteta poruka, i (4) digitalni potpis. U ovom i u slijedećem odjeljku opisujemo neke konkretne softverske sustave koji koriste navedene metode i protokole, i na taj način ostvaruju navedene oblike sigurnosti i zaštite u računalnoj mreži Internet.

Protokoli i sustavi sigurnosti i zaštite mogu se implementirati na svakoj od razina računalne mreže iznad fizičkog sloja; dakle, na razini veze podataka, na mrežnoj razini, na transportnoj razini, i na razini aplikacija. Ako se sustav sigurnosti ostvaruje (to jest, definira i realizira) na razini aplikacija, onda se ostvaruje za svaku aplikaciju posebno. Sustav sigurnosti i zaštite se tada oblikuje u skladu s potrebama dane aplikacije i može se smatrati dijelom (podsustavom) te aplikacije.

Sustav sigurnosti i zaštite može biti ostvaren na razini transportnog sloja, u okviru pojedinačnih protokola toga sloja; kod Interneta su to prvenstveno protokoli TCP i UDP. Kad se sigurnost ostvaruje u okviru transportnog protokola, onda sve aplikacije koje koriste prijenosne usluge toga protokola, dobivaju time i usluge sigurnosti i zaštite koje pruža taj protokol transportne razine.

Sustav sigurnosti i zaštite može biti uspostavljen i na mrežnoj razini računalne mreže. Tada protokol mrežne razine (ovdje IP) pruža svoje usluge sigurnosti i zaštite svim protokolima transportne razine, a time i svim protokolima i sustavima aplikacijske razine.

Sustav sigurnosti i zaštite može se ostvariti i na razini veze podataka. Tada učinci sustava sigurnosti i zaštite štite i prijenos na mrežnoj razini; time se onda štiti i prijenos na transportnoj razini, a time i rad svih aplikacija.

Navedene mogućnosti otvaraju više pitanja o tome na koji način valja oblikovati podsustav sigurnosti u višeslojnom sustavu kao što je računalna mreža. Prvo, treba li sustav sigurnosti i zaštite

27

Page 28: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

biti postavljen samo na jednu razinu, ili treba postojati na više razina računalne mreže? Drugo, ako se sigurnost i zaštita ostvaruju na jednoj razini, onda na kojoj je razini to najbolje učiniti? Treće, ako se sigurnost i zaštita ostvaruju na više razina, onda na kojoj je razini prikladno ostvarivati koje elemente i oblike sigurnosti i zaštite?

Čini se da bi bilo najbolje uspostaviti sustav sigurnosti na nižim razinama mreže, i time ostvariti sigurnost i za više razine mrežnog sustava, uključujući sve mrežne aplikacije. Ali to nije baš tako, iz više razloga. Specifični sustavi sigurnosti i zaštite mogu se ostvariti na svakoj od razina mreže, od razine veze podataka na više. Ali općenito vrijedi, da oni oblici sigurnosti i zaštite koji se mogu ostvariti na nižim razinama mreže, ne udovoljavaju svim sigurnosnim potrebama viših razina mrežnog sustava, posebno ne specifičnim potrebama pojedinih aplikacija. Naprimjer, onaj sustav sigurnosti koji je definiran (i radi) na razini veze podataka (sa okvirima) ili na mrežnoj razini (sa IP paketima), nije pogodan za utvrđivanje autentičnosti komunikatora i integriteta poruka na razini aplikacija. Ti oblici sigurnosti i zaštite na aplikacijskoj razini su posebno važni za web aplikacije koje izvode poslove trgovanja i financijskih transakcija preko web sjedišta.

Dakle, specifični sustavi sigurnosti i zaštite mogu se ostvariti (i ostvaruju se) na nižim razinama računalne mreže, ali mogućnosti tih sustava sigurnosti općenito nisu dovoljne za sve potrebe protokola i sustava viših razina. Zato se sustavi sigurnosti i zaštite redovito definiraju i realiziraju na višim razinama računalne mreže, bez obzira na to da li se na nižim razinama provode neki oblici sigurnosti i zaštite, ili se ne provode.

Drugi razlog što se sustavi sigurnosti i zaštite postavljaju na više razine je jednostavnost oblikovanja i realizacije takvih sustava. Općenito, jednostavnije je oblikovati i realizirati sustav sigurnosti i zaštite na višim razinama, koji udovoljava potrebama protokola tih (viših) razina, nego definirati i ostvariti jedan univerzalan sustav sigurnosti i zaštite na nižim razinama, koji je dovoljno složen i opsežan da udovoljava svim potrebama svih protokola i sustava na višim razinama.

Zbog navedenih razloga (i drugih), sustavi sigurnosti i zaštite definiraju se i ostvaruju na razini (i u okviru) pojedinačnih aplikacija, te na razini zajedničkih potreba nekih vrsta aplikacija (usluga), kao što su računalna pošta, web sustav, i druge aplikacije (usluge). U potonjem slučaju kažemo da je sigurnosni sustav definiran i realiziran na razini transporta, ali zapravo radi se o jednom sigurnosnom međusloju koji se nalazi između aplikacijske i transportne razine.

U ovom odjeljku, opisujemo jedan sustav sigurnosti i zaštite koji je ostvaren na aplikacijskoj razini za sustav računalne pošte. Opisom toga sustava sigurnosti i zaštite ujedno iznosimo tipične elemente i strukturu sustava sigurnosti i zaštite na aplikacijskoj razini. U slijedećem odjeljku iznosimo opis protokola SSL (secure sockets layer - sloj sigurnih utičnica); za taj protokol kaže se da ostvaruje sigurnost i zaštitu na razini transporta. Točnije bi bilo reći da je SSL jedan sigurnosni međusloj koji se nalazi između aplikacijskog sloja i transportnog sloja.

Sustav sigurnosti i zaštite na mrežnoj razini je definiran, ali se općenito ne primjenjuje, jer ne udovoljava svim potrebama aplikacija, i zato što je sustav sigurnosti lakše oblikovati i realizirati na višim razinama. Postoje specifične mreže koje sadrže sustav sigurnosti na razini mrežnog sloja. Takve su naprimjer virtualne privatne mreže (virtual private networks - VPNs) koje se ostvaruju koristeći usluge javne mreže kao što je Internet. Zbog ograničenosti prostora i vremena, prikaz problematike sigurnosti i zaštite na mrežnoj razini nije uključen u ovu knjigu. Isto vrijedi i za prikaz problematike sigurnosti i zaštite na razini veze podataka. Sustav sigurnosti na toj razini je posebno zanimljiv (i važan) kod bežičnih računalnih mreža. Jer bežični signali (i okviri koji prenose bitove) šire se na sve strane, tako da ovdje valja uvesti zaštitu povjerljivosti sadržaja na razini veze podataka.

Sigurnost u sustavu računalne pošte

Kod sustava računalne pošte, sigurnost i zaštita komunikacije uključuje zaštitu

28

Page 29: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

povjerljivosti sadržaja poruka, mogućnost utvrđivanja autentičnosti komunikatora (pošiljatelja i primatelja), i mogućnost provjere integriteta poruke.

Šifriranjem sadržaja, zapis toga sadržaja postaje nečitljiv za sve, osim za njegovog primatelja: time je zaštićena povjerljivost sadržaja. Sadržaj poruke općenito nije moguće zaštititi od toga da ga neki napadač iskrivi putem, ako se nalazi u poziciji da to može učiniti. Ali podsustav za zaštitu integriteta poruke omogućava otkrivanje iskrivljenja sadržaja poruke na putu, ako neki napadač izvrši takvo iskrivljenje u procesu prijenosa poruke od pošiljatelja do primatelja. Otkrivanje takvog iskrivljenja sadržaja poruke omogućava primatelju poruke da spriječi nastanak štetnih posljedica koje takvo iskrivljenje može izazvati.

Slično vrijedi za podsustav koji omogućava utvrđivanje autentičnosti pošiljatelja i primatelja poruke računalne pošte. Sustav sigurnosti i zaštite omogućava otkrivanje lažnog predstavljanja, ali ne može spriječiti pokušaj lažnog predstavljanja. Međutim, otkrivanjem pokušaja može se spriječiti štetne posljedice takvih pokušaja.

Zaštita povjerljivosti sadržaja poruke može se ostvariti na više načina. Ako primatelj B ima svoj javni ključ (KB

+), onda pošiljatelj A može šifrirati svoju poruku javnim ključem od primatelja B i poslati tako šifriranu poruku primatelju B. Primatelj onda dešifrira tu poruku svojim privatnim ključem (KB

-) i tako dobiva izvorni (razumljiv) zapis njenog sadržaja. Pošiljatelj A može naći javni ključ primatelja B na posebnom serveru javnih ključeva, ili na web stranici od primatelja B.

Najpoznatiji sustav šifriranja sa javnim ključem je RSA, kojeg smo opisali ranije. Međutim, šifriranje sa javnim ključem je procesno vrlo zahtjevno (traje dugo), tako da se kod računalne pošte obično ne koristi ovakav način zaštite povjerljivosti sadržaja poruka. Umjesto toga koristi se jedan postupak koji kombinira šifriranje pomoću simetričnog ključa i pomoću javnog ključa, na način kojeg opisujemo u nastavku.

Postupak zaštite povjerljivosti sadržaja poruka računalne pošte obično se sastoji od slijedećih koraka:

(1) Pošiljatelj A odabire jedan sustav za šifriranje sa simetričnim ključem i pomoću tog sustava šifrira svoju poruku m. Poznati sustavi takve vrste su DES i AES. Da bi izvršio šifriranje pomoću nekog od tih sustava, pošiljatelj odabire jedan simetrični ključ KS i sa tim ključem izvodi šifriranje (pomoću odabranog sustava). Time je pošiljatelj proizveo šifrirani sadržaj KS(m) svoje poruke m, kojeg treba poslati primatelju B.

(2) Uz šifrirani sadržaj poruke, pošiljatelj A treba dostaviti primatelju B simetrični ključ KS sa kojim je izvršio šifriranje poruke. Da bi to učinio na siguran način, pošiljatelj šifrira simetrični ključ KS sa javnim ključem KB

+ primatelja B; za to šifriranje se obično koristi sustav RSA. Pošiljatelj nalazi javni ključ primatelja na serveru javnih ključeva, ili na web stranici od primatelja.

(3) Šifriranom zapisu poruke iz koraka (1), pošiljatelj dodaje šifrirani zapis simetričnog ključa iz koraka (2). Dodavanje jednog niza bitova drugom nizu bitova naziva se konkateniranjem i označava se simbolom (+); razdvajanje niza bitova koji je proizveden konkateniranjem, na njegove sastavne dijelove, označava se simbolom (-). Dakle, pošiljatelj konkatenira KS(m) i KB

+(KS); tako nastali niz bitova nazvali smo pošiljkom (ili pakiranjem; package). Pošiljatelj A šalje tako nastalu pošiljku primatelju B.

(4) Kad primi pošiljku od A, primatelj B razdvaja šifrirani zapis poruke KS(m) od šifriranog zapisa ključa KS (to jest, od KB

+(KS)) sa kojim je ta poruka šifrirana. Zatim pomoću svog privatnog ključa KB

- dešifrira zapis simetričnog ključa KS; podsjetimo da vrijedi: KB-(KB

+(KS)) = KS. Ključ KS naziva se ključem sesije jer nakon razmjene takvog ključa, pošiljatelj može slati više poruka šifriranih istim ključem KS, bez da ponovno šalje primatelju šifrirani zapis toga ključa.

(5) Primatelj B pokreće sustav sa simetričnim ključem (DES, AES) s kojim je šifriran sadržaj poruke m, zadaje tom sustavu simetrični ključ KS, i tako dobiva razumljiv zapis od KS(m); dakle, dobiva izvorni zapis poruke m koju mu je poslao A.

Opisani proces šifriranja i slanja poruke, te njena dešifriranja prikazan je na slici 4.9.

29

Page 30: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Slika 4.9 Zaštita povjerljivosti sadržaja poruke

Opisali smo elemente i postupke sa kojima se ostvaruje povjerljivost sadržaja poruka računalne pošte. U nastavku iznosimo elemente i postupke sa kojima se ostvaruje mogućnost provjere autentičnosti komunikatora i integriteta poruke. Za ostvarenje tih mogućnosti koriste se hash od sadržaja poruke i digitalni potpis, koje smo opisali ranije. Hash poruke naziva se i sažetkom poruke (message digest); od tuda dolazi naziv najpoznatije hash funkcije (algoritma) MD5, koju smo opisali ranije.

Uz upotrebu hash funkcije i digitalnog potpisa, provjera autentičnosti komunikatora i

30

Page 31: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

integriteta poruke ostvaruju se pomoću slijedećih elemenata i postupaka.(1) Pošiljatelj A pokreće neki sustav za hashiranje (naprimjer, MD5) i tako proizvodi hash

H(m) od svoje poruke m.(2) Pošiljatelj A šifrira hash H(m) sa svojim privatnim ključem KA

- i time proizvodi KA-

(H(m)) - to jest, svoj digitalni potpis poruke m.(3) Pošiljatelj A dodaje poruci m (koja ovdje nije šifrirana, ali je mogla biti) svoj digitalni

potpis te poruke KA-(H(m)) i tako nastalu pošiljku (pakiranje) šalje primatelju B.

(4) Kad primi pošiljku od A, primatelj B razdvaja poruku od njenog digitalnog potpisa. B uzima javni ključ od A i pomoću njega (i pripadnog algoritma) dešifrira digitalni potpis pošiljatelja A; dakle, izvodi KA

+(KA-(H(m)), što daje H(m).

(5) Primatelj B izračunava hash H(m) iz primljene poruke m.(6) Ako je rezultat dešifriranja iz koraka (4) jednak rezultatu računanja iz koraka (5), onda

je vrlo vjerojatno (1) da dana poruka dolazi od stvarnog A, koji je potpisuje, i (2) da sadržaj te poruke nije mijenjan na putu; dakle, da je jednak izvornom sadržaju kojeg je pošiljatelj A digitalno potpisao i poslao primatelju B. Ovdje smo upotrijebili izraz "vrlo vjerojatno", zato što sustavi koji se zasnivaju na hashiranju i šifriranju nisu apsolutno sigurni, ali vjerojatnost da neki napadač uspije probiti te sustave zaštite je vrlo mala, tako da se te sustave smatra praktički sigurnima. Opisani proces prikazan je na slici 4.10.

31

Page 32: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Slika 4.10 Autentičnost pošiljatelja i integritet poruke (digitalni potpis)

Za ostvarenje sustava koji pruža (1) zaštitu povjerljivosti sadržaja, (2) mogućnost provjere integriteta poruke, i (3) mogućnost utvrđivanja autentičnosti komunikatora, potrebno je ujediniti elemente i postupke iz dvaju procesa koje smo opisali iznad, i koji su prikazani na slikama 4.9 i 4.10. To se može učiniti na slijedeći način.

(1) Pošiljatelj A izračunava hash poruke m i šifrira taj hash sa svojim privatnim ključemKA

-; time A proizvodi svoj digitalni potpis poruke m: KA-(H(m)).

(2) Pošiljatelj formira pošiljku koja se sastoji iz poruke m i njenog digitalnog potpisa; dakle, formira pošiljku (m, KA

-(H(m))).(3) Pošiljatelj pokreće sustav za šifriranje sa simetričnim ključem (DES ili AES), odabire

32

Page 33: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

jedan simetrični ključ KS i šifrira pošiljku iz koraka (2) sa tim algoritmom i ključem.(4) Pošiljatelj A šifrira ključ KS sa javnim ključem KB

+ primatelja B.(5) Pošiljatelj A konkatenira proizvod iz koraka (3) i proizvod iz koraka (4) i tako stvara

novu pošiljku, koju šalje primatelju B. Tu pošiljku možemo zapisati na slijedeći način:(KS(m, KA

-(H(m)), KB+(KS))

Prvi element iz završne pošiljke je proizvod šifriranja početne pošiljke koja se sastoji od poruke m i njenog digitalnog potpisa, uz upotrebu simetričnog ključa KS. Drugi element iz završne pošiljke je ključ sesije KS šifriran javnim ključem KB

+ primatelja pošiljke B.(6) Kad primatelj B primi pošiljku od A, razdvaja njen prvi i drugi dio; zatim sa svojim

privatnim ključem KB- dešifrira njen drugi dio i tako dobiva ključ sesije KS.

(7) Pomoću ključa KS (i odgovarajućeg sustava, DES ili AES), primatelj B dešifrira prvi dio pošiljke, i tako dobiva poruku m i njen digitalni potpis KA

-(H(m)). Zatim B uzima javni ključ KA+

od pošiljatelja A te uz pomoć tog ključa (i odgovarajućeg sustava, obično RSA) dešifrira digitalni potpis poruke; dakle, izračunava KA

+(KA-(H(m)); time B saznaje hash H(m) poruke m, kojeg mu

šalje pošiljatelj A.(8) Primatelj B izračunava hash H(m) za primljenu poruku m.(9) Ako je vrijednost H(m) koju je primatelj B dobio od pošiljatelja A dešifriranjem u

koraku (7), jednaka vrijednosti H(m) koju je B izračunao iz primljenog sadržaja poruke m u koraku (8), onda B može biti praktički siguran (1) da poruka m dolazi od pravog pošiljatelja A, i (2) da njen sadržaj nije mijenjan putem. Primatelj može isto tako biti siguran da je u prijenosu zaštićena povjerljivost poruke, jer je njen sadržaj bio šifriran sa simetričnim ključem KS.

Opisani proces slanja i primanja poruke, sa kojim se postiže sigurnost i zaštita povjerljivosti poruke, integriteta sadržaja poruke, i autentičnosti komunikatora, prikazan je na slici 4.11.

33

Page 34: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Slika 4.11 Povjerljivost, autentičnost i integritet

34

Page 35: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

U opisanom procesu koriste se javni ključ primatelja i javni ključ pošiljatelja. Javni ključevi subjekata mogu se naći na serverima javnih ključeva i na web stranicama pojedinih subjekata (osoba, tvrtki). Uzimanje javnog ključa sa web stranice vlasnika toga ključa donosi određeni rizik, jer napadač N može napraviti lažnu web stranicu nekog subjekta (primatelja) B i na toj stranici navesti svoj javni ključ i svoju adresu računalne pošte. Pošiljatelj A, koji uzme podatke o primatelju B sa takve lažne stranice od B, slati će svoje poruke napadaču N, koji će ih lako dešifrirati, jer A izvodi postupak šifriranja koristeći javni ključ od N. Dakle, A misli da šalje šifrirane poruke primatelju B, ali ih zapravo šalje napadaču N. Taj problem može se riješiti na taj način da se komunikatori (pošiljatelji i primatelji) registriraju kod ovjerovne službe i da od te službe dobiju CA certifikat, kako je to opisano ranije. Tada A i B koji žele međusobno razmjenjivati poruke računalne pošte na siguran način, trebaju najprije razmijeniti (poslati jedan drugome) svoje CA certifikate, što onda svakom od njih omogućava da utvrdi autentičnost identiteta druge strane, kako je to opisano u prethodnom odjeljku.

Sustav PGP

Sustav PGP (pretty good privacy - prilično dobra privatnost) je dominantan sustav sigurnosti i zaštite komunikacije u sustavu računalne pošte. Postoji više verzija sustava PGP i više softverskih implementacija toga sustava. U suštini, PGP se sastoji od elemenata koje smo opisali iznad, i radi na način kojeg smo opisali iznad.

Zavisno od verzije, PGP sustav (kao konkretna softverska implementacija) koristi MD5 i SHA funkcije (algoritme) za izračunavanje hasha (sažetaka) H(m) poruke m. Za šifriranje sa simetričnim ključem koristi algoritme 3DES, IDEA i CAST. Za šifriranje sa javnim ključem koristi algoritam RSA.

Kad korisnik instalira sustav PGP, taj sustav napravi za tog korisnika jedan javni ključ i pripadni privatni ključ. Korisnik može postaviti svoj javni ključ na svoju web stranicu, a može ga postaviti i na server javnih ključeva. Privatni ključ korisnika zaštićen je lozinkom; svaki put kad hoće upotrijebiti svoj privatni ključ, korisnik treba upisati u sustav svoju lozinku da bi to mogao učiniti. Upisom lozinke, korisnik "dobiva pristup" svom privatnom ključu i može ga upotrijebiti; to bi trebalo značiti da korisnik ne vidi svoj privatni ključ, nego samo zna lozinku koja mu omogućava da ga upotrijebi. Nije nam znano na kojem mjestu je fizički zapisan privatni ključ; da li na nekom PGP serveru, ili na domaćinu na kojem korisnik ima adresu računalne pošte, ili negdje drugdje. Vjerojatno je zapisan na nekom PGP serveru, ali to ovdje nije naročito važno.

PGP omogućava korisniku (1) da šifrira sadržaj poruke, (2) da digitalno potpiše sadržaj poruke, i (3) da napravi oboje: šifrira i digitalno potpiše poruku.

Šifrirane i/ili digitalno potpisane poruke računalne pošte prenose se u standardnom formatu MIME, u kojem se prenose poruke računalne pošte. Šifrirani i/ili potpisani sadržaj poruke postaje sadržaj u MIME formatu zapisa poruke računalne pošte i smješta se iza MIME zaglavlja te poruke. Takva poruka može sadržavati razumljiv ili nerazumljiv sadržaj (zavisno da li je šifrirana), i nerazumljiv niz znakova, koji je digitalni potpis (ako je poruka digitalno potpisana).

Dakle, onaj zapis poruke računalne pošte kojeg proizvodi PGP sustav, smješta se u MIME format kao sadržaj ili tijelo MIME zapisa poruke računalne pošte, koju sustav računalne pošte prenosi od pošiljatelja do primatelja. Početak toga tijela označen je sa retkom

----- BEGIN PGP MESSAGE -----a završetak tijela označen je sa retkom

----- END PGP MESSAGE -----Oznake početka i završetka mogu varirati u zavisnosti od toga koje su operacije (šifriranje,

potpis) izvedene na izvornoj poruci, kao i od verzije sustava PGP.

35

Page 36: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Sustav PGP ima i svoj sustav ovjeravanja javnih ključeva. Taj sustav razlikuje se od sustava CA kojeg smo opisali ranije (i kojeg se smatra standardnim), ali obavlja jednake funkcije. Pouzdan sustav ovjeravanja javnih ključeva i pouzdan sustav razmjene tih ključeva su izrazito važni za uspostavu sigurnog sustava komunikacije pomoću računalne pošte. Ali oblikovanje sustava računalne pošte na način koji štiti povjerljivost sadržaja te omogućava provjeru integriteta poruka i autentičnosti komunikatora je zaseban problem, koji je različit od problema uspostave pouzdanog sustava ovjeravanja i distribucije javnih ključeva.

Dakle, sustav PGP ima i svoj specifičan sustav ovjeravanja (ekvivalent CA certifikata) i distribucije javnih ključeva, ali rečeno je da korisnici usluga PGP sustava mogu ovjeravati svoje javne ključeve i distribuirati ih na razne načine.

4.5 Sigurnost na razini prijenosa

Pokazali smo na koji način se pomoću raznih kriptografskih metoda ostvaruje sigurnost i zaštitu na aplikacijskoj razini. Na toj razini, sigurnost i zaštita ostvaruju se za svaku aplikaciju zasebno; koriste se iste temeljne metode i sustavi zaštite, ali na načine koji odgovaraju konkretnim potrebama određenih aplikacija. U prethodnom odjeljku opisano je na koji način se ostvaruju zaštita povjerljivosti sadržaja, te provjera autentičnosti komunikatora i integriteta poruka u sustavu računalne pošte, kao jednom od sustava aplikacijske razine računalne mreže. U ovom odjeljku iznosimo prikaz na koji način se pomoću istih temeljnih kriptografskih metoda i sustava ostvaruje sigurnost i zaštitu na transportnoj razini.

Ukratko, sigurnost i zaštitu na transportnoj razini ostvaruje se na taj način da se TCP protokol "dopuni" sa onim elementima (procesima, sustavima) pomoću kojih se ostvaruje sigurnost i zaštitu komunikacije: dakle, sa elementima koji omogućuju zaštitu povjerljivosti, utvrđivanje autentičnost i provjeru integriteta. Time se sigurnost i zaštita ostvaruje za sve aplikacije koje koriste usluge prijenosa od tako dopunjenog TCP protokola.

Tako dopunjena ili "poboljšana" verzija (enhanced version) TCP protokola naziva se slojem sigurnih utičnica (secure sockets layer - SSL). Nešto izmijenjen SSL (verzija 3) nazvan je imenom sigurnost transportnog sloja (transport layer security - TLS) i standardiziran je kao IEEE standard, koji je definiran u RFC 2246. U ovom prikazu opisujemo sustav SSL.

Govoreći o sigurnosti na transportnoj razini, valja reći da taj govor nije pojmovno usklađen. Nije jasno rečeno da li SSL, kao "dopuna" osnovnog TCP protokola, spada na transportnu razinu, ili ta dopuna zapravo spada na aplikacijsku razinu. Podsjetimo, na aplikacijsku razinu može se svrstati sve ono što ne ostvaruje prijenos, nego koristi usluge prijenosa. Sustavi sigurnosti i zaštite ne ostvaruju prijenos; dakle, u načelu mogu se uvijek "izgurati" na aplikacijsku razinu. Često se kaže da je SSL jedan međusloj preko kojeg se aplikacije vezuju na TCP protokol. Takav stav je vjerojatno najbolji; nije poželjno razmnožavati slojeve mrežnog sustava, ali ovdje ima razloga za uvođenje jednog međusloja.

Web preglednici i web serveri obično komuniciraju preko sigurnosnog sustava SSL. To znači da sa svojim utičnicama nisu vezani izravno na TCP protokol, nego su vezani na SSL međusloj. Takve aplikacije i dalje koriste usluge prijenosa od TCP protokola, ali ne izravno, nego preko sigurnosnog međusloja SSL. Poslovna web sjedišta preko kojih se izvodi trgovina, financijske transakcije, prijenos brojeva kreditnih kartica i drugih povjerljivih sadržaja, koriste SSL.

Kad web sjedište koristi SSL, onda to čini i HTTP protokol koji izvodi operacije prijenosa sadržaja za to sjedište. Kaže se da URL adresa takvih sjedišta počinje sa oznakom "https" (umjesto sa "http"); dodatni znak "s" pokazuje da se komunikacija sa tom web (URL) adresom

36

Page 37: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

odvija preko sloja SSL i da je prema tome sigurna i zaštićena. Znak "s" može biti pokazatelj da neka aplikacija (web sjedište) koristi SSL, ali nepostojanje spomenutog znaka "s" u URL adresi ne znači da ta aplikacija ne koristi SSL.

Sigurnost i zaštita su posebno važni za poslovanje preko Interneta. Bez odgovarajućeg sustava sigurnosti i zaštite, napadači bi mogli ometati takvo poslovanje i praviti bitne štete drugima, zato da donesu korist sebi, ili za zabavu.

Ako se u poslovnoj komunikaciji ne bi koristila enkripcija (šifriranje sadržaja), onda bi napadač mogao presretati (kopirati na putu) razne narudžbe i uzimati iz njih podatke o kreditnim karticama naručitelja. Napadač bi onda mogao slati svoje narudžbe (nekom drugom) sa brojevima tuđih kreditnih kartica i tako kupovati na račun drugih.

Ako se u poslovnoj komunikaciji ne bi provjeravalo integritet poruka, onda bi napadač mogao mijenjati sadržaje narudžbi; mogao bi promijeniti količine i vrste proizvoda zbog stjecanja koristi, ili za zabavu.

Ako se u poslovnoj komunikaciji ne bi provjeravalo autentičnost komunikatora, onda bi napadač mogao napraviti web sjedište koje izgleda i predstavlja se kao neko (poznato) web sjedište preko kojeg se izvodi e-trgovina uz plaćanje sa kreditnim karticama. Tada bi napadač preko takve web stranice primao narudžbe sa podacima o kreditnim karticama naručitelja; narudžbe ne bi izvršavao, ali bi uzimao novac sa bankovnog računa naručitelja.

Zadatak međusloja SSL je da nadopuni osnovni TCP protokol sa sustavom koji štiti povjerljivost sadržaja (šifriranjem), vodi računa o autentičnosti komunikatora (klijenta i servera), i štiti integritet poruka koje se prenose u komunikaciji.

Kaže se da SSL formalno spada na aplikacijsku razinu, ali da za one koji pišu aplikacije, SSL izgleda kao protokol transportne razine. Radi se o slijedećem; SSL je "nadgradnja" TCP protokola, tako da se može (ili treba) smatrati protokolom aplikacijske razine. Nadalje, SSL ne ostvaruje prijenos, nego osigurava i štiti prijenos; prijenos podataka odvijao bi se i bez SSL sustava, ali ne bi bio zaštićen od napada. Sve ono što ne ostvaruje prijenos (nego koristi usluge prijenosa) može se smjestiti na aplikacijsku razinu.

S druge strane, gledano sa stanovišta aplikacija koje pružaju konkretne komunikacijske usluge korisnicima, usluga transporta (TCP) i usluga transporta koja uključuje sustav sigurnosti (dakle, SSL + TCP) su naprosto usluge transporta. Zato sa stanovišta aplikacija, SSL izgleda kao dio transportnog sloja (protokola). Na slici 4.12 dan je prikaz odnosa protokola aplikacijske razine bez sustava SSL i sa sustavom SSL.

37

Page 38: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Slika 4.12 Položaj međusloja SSL

Slika 4.12a prikazuje mrežne slojeve domaćina na kojem nema SSL sustava; ovdje se aplikacije vezuju izravno na TCP preko utičnica, kako je to opisano u prethodnim poglavljima. Slika 4.12b prikazuje slojeve (vertikalnu strukturu) domaćina na kojem postoji SSL sustav. Taj sustav je jedan međusloj između protokola aplikacijske razine i protokola TCP sa transportne razine; aplikacije se ovdje vezuju na SSL preko odgovarajućih utičnica. Prijenos se dalje ostvaruje preko utičnica koje povezuju sustav SSL sa transportnim protokolom TCP.

Utičnice koje povezuju aplikacije sa SSL protokolom pišu se uz upotrebu SSL klasa koje su oblikovane za tu svrhu. Međusloj SSL se dalje veže sa svojim utičnicama na TCP protokol koji onda izvodi prijenos podataka u mreži.

Dakle, sa stanovišta aplikacija (i onih koji pišu aplikacije), SSL izgleda kao transportni sustav (protokol) koji izvodi prijenos kao i protokol TCP, s tim da SSL usto pruža usluge sigurnosti i zaštite. Sa stanovišta TCPa, sve što se nalazi iznad razine ostvarenja prijenosa spada na razinu aplikacije. Striktno govoreći, SSL ne spada na transportnu razinu jer ne ostvaruje prijenos, ali SSL ne stoji udobno ni na aplikacijskoj razini jer ne pruža usluge komunikacije, nego štiti razne oblike (sluge) komunikacije. Tako nastaje pojmovni nesklad kojeg je najbolje riješiti na taj način da se SSL nazove sigurnosnim međuslojem koji se nalazi između aplikacijskog sloja i transportnog sloja.

Ali govor o tim stvarima u literaturi općenito nije usklađen. S obzirom da SSL nadopunjava TCP i da pruža usluge u paru sa TCPom, te da pruža usluge raznim aplikacijama, SSL se obično opisuje kao sustav sigurnosti i zaštite transportne razine. Tako činimo i ovdje, ali valja reći da govor o tim stvarima nije usklađen.

Komunikacija uz upotrebu SSLa

Komunikacija preko SSL sustava sastoji se od tri faze: (1) rukovanje među komunikatorima, (2) izvođenje ključeva sesije, i (3) prijenos podataka. U nastavku iznosimo pojednostavljen opis tih triju faza; kasnije ćemo taj opis dopuniti, ali ne mnogo, jer je SSL opsežan i složen sustav, tako da ovdje ne možemo iznijeti sve pojedinosti.

38

Page 39: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Rukovanje - Proces rukovanja obično pokreće klijent koji želi uspostaviti komunikaciju sa određenim serverom. U tom procesu najprije se uspostavlja TCP vezu između klijenta i servera; način uspostavljanja TCP veze opisan je u drugom poglavlju. Na slici 4.13 dan je grafički prikaz procesa rukovanja kod SSL sustava; uspostavljanje TCP veze sastoji se od prva tri koraka na toj slici, koji su označeni sa oznakom (a).

Slika 4.13 Uspostavljanje SSL veze/kanala

Nakon uspostave TCP veze, klijent treba utvrditi da li je server s kojim je uspostavio TCP vezu zaista onaj (autentični) server s kojim klijent želi uspostaviti komunikaciju. Klijent to čini na taj način da pošalje serveru zahtjev za uspostavu SSL komunikacije (veze); server na to odgovara slanjem svog CA certifikata klijentu; taj postupak označen je sa (b) na slici 4.13. Podsjetimo, CA certifikat šifriran je sa privatnim ključem (KCA

-) ovjerovne službe (CA) koja je izdala taj certifikat. Klijent dešifrira CA certifikat servera sa javnim ključem ovjerovne službe (KCA

+) i tako saznaje podatke o serveru (njegov javni ključ, naziv, i ostalo).

39

Page 40: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Nakon utvrđivanja autentičnosti servera, klijent šalje serveru jedan niz znakova kojeg se naziva master secret i označava sa MS. Taj naziv može se prevesti sa "glavna (ili matična) tajna", ali s obzirom na ulogu toga niza znakova, ovdje smo odabrali prijevod izvorna tajna, jer taj niz znakova (ključ) je osnova (izvor) iz koje klijent i server (u drugoj fazi komunikacije) izvode sve simetrične ključeve koje koriste u okviru jedne komunikacije koju upravo uspostavljaju.

Klijent šifrira izvornu tajnu MS (koju je sam odabrao) sa javnim ključem servera; klijent saznaje javni ključ servera iz CA certifikata kojeg mu je server poslao u koraku (b). Šifriranjem izvorne tajne MS sa javnim ključem servera KS

+ klijent proizvodi šifrirani zapis od MS, kojeg se označava sa EMS (encripted MS). Klijent šalje taj šifrirani zapis serveru u koraku koji je označen sa (c) na slici 4.13. Dešifriranjem poruke EMS pomoću svog privatnog ključa KS

- server saznaje izvornu tajnu MS.

Dakle, nakon uspostave TCP veze sa serverom, klijent šalje serveru zahtjev za uspostavu SSL komunikacije; taj zahtjev dospijeva SSL sustavu na serveru preko TCP veze. Server odgovara na taj zahtjev slanjem svog CA certifikata klijentu. Klijent na to odabire jedan niz znakova koji ima ulogu izvorne tajne (MS), šifrira taj niz znakova sa javnim ključem od servera i taj šifrirani zapis šalje serveru. Server dešifrira taj zapis (EMS) i tako dobiva izvornu tajnu MS.

Izvorna tajna MS bira se kod uspostave komunikacije preko SSL sustava i vrijedi samo za tu sesiju. Izvorna tajna MS ne koristi se izravno za šifriranje; iz izvorne tajne MS, klijent i server, svaki za sebe, izračunavaju one ključeve koji se koriste za šifriranje.

Izvođenje ključeva - Izvorna tajna MS mogla bi se koristiti za sva šifriranja u jednoj komunikacijskoj sesiji između klijenta i servera. Ali sa ciljem povećanja sigurnosti komunikacije, ne radi se tako, nego se koriste četiri simetrična ključa, koje klijent i server zasebno izračunavaju (svaki na svojoj strani) iz dane izvorne tajne MS. Ta četiri simetrična ključa su:

EK - ključ za šifriranje (enkripciju) sa kojim klijent K šifrira svoje sadržaje koje šalje serveru S.

MK - ključ autentikacije kojeg klijent K koristi za autentikaciju poruka koje šalje serveru S. Podsjetimo, ključ autentikacije je jedan niz bitova ("s") kojeg se dodaje sadržaju poruke; zatim se za sadržaj poruke kojem je dodan ključ autentikacije izračunava hash; taj hash naziva se kodom autentikacije poruke (message authentication code - MAC). MAC se šalje primatelju zajedno sa porukom, što onda primatelju omogućava da utvrdi da li je sadržaj poruke mijenjan na putu.

ES - ključ za šifriranje (enkripciju) sa kojim server S šifrira svoje sadržaje koje šalje klijentu K.

MS - ključ autentikacije kojeg server S koristi za autentikaciju poruka koje šalje klijentu K. Dakle, ključ autentikacije kojeg koristi server S za tvorbu MACova onih poruka koje šalje klijentu u danoj komunikacijskoj sesiji. MS omogućava klijentu da provjerava integritet poruka koje prima od servera.

Klijent i server trebaju znati sva četiri navedena simetrična ključa. Klijent i server zasebno izračunavaju navedena četiri ključa iz iste izvorne tajne MS, koju klijent šalje serveru na početku uspostavljanja komunikacije preko SSL međusloja. Dva ključa koriste se za šifriranje sadržaja, a druga dva koriste se za tvorbu MACova koji omogućuju utvrđivanje (provjeravanje) integriteta poruka.

Prijenos podataka - Za aplikaciju (i za onog tko je piše), SSL izgleda kao protokol transportne razine, ali SSL je samo sigurnosni međusloj, koji koristi usluge prijenosa od pravog transportnog sloja TCP. SSL preuzima sadržaje (nizove bitova) od aplikacije preko utičnice i dijeli te sadržaje na zapise (ili slogove; records) odgovarajuće dužine. SSL izračunava MAC za svaki zapis i dodaje (konkatenira) ga tom zapisu; tako nastaju pošiljke oblika (zapis + MAC). Pošiljatelj izračunava MAC za dani zapis na taj način da zapisu doda svoj ključ autentikacije (ovdje MK ili MS) i izračuna hash za tako nastali niz bitova; dakle, H(zapis + ključ autentikacije) je MAC za dani zapis.

40

Page 41: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

SSL zatim šifrira tako nastalu pošiljku (zapis + MAC) sa svojim simetričnim ključem za šifriranje sadržaja (ovdje EK ili ES) i tako šifriranu pošiljku šalje primatelju. Operacije koje smo ovdje opisali odvijaju se u međusloju SSL, tako da "poslati primatelju" ovdje znači da SSL upisuje sadržaj pošiljke u svoju utičnicu preko koje je vezan na protokol TCP; TCP zatim izvodi prijenos SSL pošiljki (u svojim segmentima) primatelju na kojeg su te pošiljke adresirane.

Izvorna tajna MS vrijedi samo za jednu komunikacijsku sesiju: toliko traju simetrični ključevi koji su izvedeni iz nje. Za svaku komunikacijsku sesiju tvore se novi ključevi, tako da ako neki napadač uspije otkriti ključeve u jednoj sesiji, onda pomoću tih ključeva neće moći dešifrirati poruke u slijedećoj komunikaciji između istih komunikatora.

Na slici 4.14 dana je struktura SSL zapisa ili sloga; to se naziva i formatom SSL zapisa.

Slika 4.14 Struktura SSL zapisa

Polje Tip pokazuje koje je vrste dani SSL zapis; da li se njime prenose upravljački ili podatkovni sadržaji. Naprimjer, da li je to jedan od zapisa pomoću kojih klijent i server izvode proces rukovanja na SSL razini, ili je to SSL zapis sa kojim se prenose podaci između klijenta i servera.

Polje Verzija pokazuje verziju SSL sustava koji je proizveo taj SSL zapis.Polje Dužina sadrži ukupnu dužinu danog SSL zapisa.Polje Sadržaj sadrži onaj sadržaj kojeg se prenosi sa tim SSL zapisom; taj sadržaj može biti

podatkovne ili upravljačke vrste. Kako smo to ranije rekli, SSL preuzima podatkovne sadržaje od aplikacije i dijeli ih u zapise (slogove); jedan zapis je sadržaj polja Sadržaj u SSL zapisu.

Polje MAC sadrži MAC za dani zapis, kojeg izračunava SSL sustav. MAC je hash od zapisa u polju Sadržaj kojem je dodan ključ autentikacije (MK na strani klijenta, MS na strani servera).

Zapis podataka (polje Sadržaj) i MAC toga zapisa šifriraju se zajedno pomoću simetričnog ključa pošiljatelja; klijent izvodi šifriranje sa svojim ključem EK, a server sa svojim ključem ES.

Sva četiri ključa poznata su klijentu i serveru, što onda omogućava takav način šifriranja.

Dopuna opisa SSLa

Opisali smo sigurnosni međusloj SSL u osnovnim crtama, uz neka pojednostavljenja; u nastavku iznosimo nekoliko dodatnih opisa i potpunijih objašnjenja.

SSL ne određuje koje će konkretne elemente (algoritme i sustave) koristiti komunikatori (klijent i server) u nekoj konkretnoj komunikaciji (komunikacijskoj sesiji). Umjesto toga, SSL daje mogućnost klijentu i serveru da zajednički odrede (odaberu) koje će sigurnosne elemente i sustave koristiti u jednoj komunikaciji. Klijent i server to čine u fazi rukovanja, čiju smo osnovu opisali ranije.

Pored onog što je ranije rečeno, u fazi rukovanja klijent i server šalju jedan drugome niz drugih elemenata (podataka); neke od tih elemenata navodimo ispod.

(1) Klijent šalje serveru listu kriptografskih sustava koje on podržava; usto, šalje mu i svoj broj za jednokratnu uporabu (nonce), koji služi za sprječavanje napada ponavljanjem poruka raznih vrsta.

41

Page 42: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

(2) Sa liste koju je ponudio klijent, server bira jedan algoritam za šifriranje sa simetričnim ključem (naprimjer DES), jedan algoritam za šifriranje sa javnim ključem (obično RSA, uz izbor dužine ključa), i jedan algoritam za izračunavanje hasha (naprimjer, MD5). Algoritam (funkcija) za izračunavanje hasha naziva se i MAC algoritmom, jer se pomoću njega izračunava MAC.

Server javlja klijentu što je odabrao od njegove ponude; dakle, koji će enkripcijski sustavi (algoritmi) biti korišteni u ovoj komunikaciji. Server usto šalje klijentu svoj CA certifikat i svoj broj za jednokratnu uporabu (nonce).

(3) Klijent dešifrira CA certifikat od servera (uz upotrebu javnog ključa ovjerovne službe CA) i tako dobiva javni ključ od servera. Klijent generira jedan niz znakova kojeg smo ranije (zbog pojednostavljenja opisa) nazvali izvornom tajnom (MS), ali koji se zapravo naziva pred-izvornom tajnom (pre-master secret - PMS). Klijent šifrira taj PMS sa javnim ključem od servera i šalje tako šifriran zapis od PMS serveru.

(4) Server dešifrira primljeni zapis i tako dobiva PMS. Koristeći isti algoritam za izvođenje izvorne tajne (MS), koji je definiran SSL standardom, klijent i server (svaki za sebe) izračunavaju izvornu tajnu MS iz danog niza znakova PMS i iz danih brojeva za jednokratnu uporabu. MS se zatim dijeli na četiri dijela i tako nastaju četiri simetrična ključa koje smo opisali iznad. Ti ključevi služe za šifriranje sadržaja zbog zaštite povjerljivosti, i za izračunavanje MACova koji omogućuju provjeravanje autentičnosti poruka.

Dakle, navedena četiri ključa nastaju iz MS (kako je bilo rečeno ranije), ali se MS ne prenosi izravno od klijenta serveru (kako je bilo rečeno ranije); umjesto toga, prenosi se PMS, te brojevi za jednokratnu uporabu; iz tih vrijednosti se onda izračunava MS, prema algoritmu koji je zadan u SSL sustavu.

Nakon što su izračunati simetrični ključevi za danu komunikacijsku sesiju, svi sadržaji koje klijent i server razmjenjuju u toj sesiji, popraćeni su pripadnim MACovima (zbog zaštite integriteta) i šifrirani su odgovarajućim ključem (zbog zaštite povjerljivosti).

(5) Nakon što su klijent i server razmijenili sve potrebne podatke u procesu rukovanja, klijent izračunava MAC od svih poruka (poredanih u jedan niz) koje su klijent i server razmijenili u fazi rukovanja. Klijent šalje taj (jedan) MAC serveru.

(6) Jednako čini server; nakon što su klijent i server razmijenili sve potrebne podatke u procesu rukovanja, server izračunava MAC od svih poruka (poredanih u jedan niz) koje su klijent i server razmijenili u fazi rukovanja. Server šalje taj (jedan) MAC klijentu.

Navedenih šest koraka daje nešto potpuniji opis procesa rukovanja klijenta i servera na SSL razini, odnosno u SSL sustavu. Zadnja dva koraka, (5) i (6), potrebna su zato da klijent i server utvrde (provjere), svaki na svojoj strani, da li je neki napadač mijenjao njihove poruke u procesu rukovanja, prije nego što su utvrdili ključeve sa kojima štite povjerljivost i integritet poruka koje šalju jedan drugome.

Naprimjer, u koraku rukovanja (1), kojeg smo opisali iznad, klijent šalje serveru listu sigurnosnih algoritama i sustava sa kojima klijent može raditi. Server odabire neke algoritme i sustave sa te liste, kako je to opisano iznad. Klijent šalje serveru svoju listu u čitljivom obliku, jer klijent i server nisu još odredili ključeve za ovu komunikaciju (sesiju). Napadač može presresti takvu listu na putu i brisati sa nje one "jače" algoritme za šifriranje i izračunavanje hasha, čije je učinke teško probiti, a ostaviti na listi one "slabije" algoritme, kod kojih napadač ima bolje izglede da probije njihova šifriranja. Napadač prosljeđuje tako izmijenjenu klijentovu listu serveru. Server bira sa te liste od onog što mu je ponuđeno; dakle, od onog što je napadač ostavio na izvornoj listi koju je klijent uputio serveru. Na taj način napadač olakšava sebi posao otkrivanja sadržaja komunikacije između klijenta i servera koja slijedi nakon faze rukovanja.

Da bi se osujetilo takav napad na proces rukovanja - ili točnije, da bi se spriječilo štetne posljedice takvog napada - u koraku (5) klijent izračunava jedan MAC za niz bitova koji je formiran konkatenacijom svih poruka koje je poslao serveru i koje je primio od servera u procesu rukovanja. Klijent šalje taj MAC serveru. Server isto tako izračunava MAC za niz bitova koji je

42

Page 43: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

formiran konkatenacijom svih poruka koje je primio od klijenta i koje je poslao klijentu u procesu rukovanja. Ako MAC kojeg je server izračunao nije jednak MACu kojeg je primio od klijenta, onda je na proces rukovanja izvršen napad, ili je u tom procesu došlo do neke greške. U svakom slučaju, situacija je sumnjiva, tako da server treba prekinuti tu SSL vezu prije nego se preko te SSL veze uopće počnu slati podaci.

Kako je to rečeno u koraku (6) iznad, na isti način server šalje klijentu svoj izračunati MAC za konkatenaciju svih poruka koje su izmijenjene u procesu rukovanja. Usporedbom tog primljenog MACa i svog izračunatog MACa, klijent može isto tako utvrditi da li je u procesu rukovanja došlo do nekog problema: do napada, ili do izmjena nekih poruka iz nekih drugih razloga. Ako su primljeni i izračunati MAC jednaki, onda je proces rukovanja vrlo vjerojatno izveden bez napada ili grešaka sustava. Ako primljeni MAC i izračunati MAC nisu jednaki, onda je vrlo vjerojatno došlo do napada ili do neke greške u procesu rukovanja. U potonjem slučaju, klijent treba prekinuti tu SSL vezu prije nego se tom vezom počne slati ili primati podatke. Prekinutu vezu može se zatim pokušati ponovno uspostaviti.

Broj za jednokratnu upotrebu potreban je ovdje zato da se spriječi napad ponovljenog zahtjeva za uspostavu veze (connection reply attack). Uzmimo da je napadač N uspio kopirati sve poruke iz nekog procesa uspostave komunikacije na SSL razini između klijenta K i servera S. Nakon toga, N može slati serveru S točno one poruke koje je serveru S ranije slao stvarni klijent K. Server S će na te poruke od N odgovarati sa porukama koje su jednake onima sa kojima je ranije odgovarao klijentu K. Na taj način će napadač N uspostaviti komunikaciju sa serverom S, lažno se predstavljajući kao da je klijent K. To može imati vrlo štetne posljedice za K, jer N može tražiti od servera S da izvrši razne operacije (transakcije) koje su štetne za K (a korisne za N), koje su protuzakonite, i slično.

Uz pomoć broja za jednokratnu uporabu takva vrsta napada sa ponavljanjem zahtjeva za uspostavu veze biva osujećena. Napadač može ponavljati ranije poruke klijenta K, uključujući i jednokratni broj kojeg je K ranije poslao serveru. Ali server će na poruku napadača N odgovoriti uz slanje svog jednokratnog broja, koji nije jednak onom kojeg je ranije poslao klijentu K. Jednokratni brojevi i PMS koriste se za izračunavanje izvorne tajne MS, a time i četiriju ključeva sesije koje smo opisali ranije. Zato sadašnji ključevi sesije (koje za sebe izračunava S) neće biti jednaki onima od ranije (sa kojima su šifrirane poruke od N). Napadač N može ponavljati ranije poruke od klijenta K serveru S, ali te poruke su šifrirane sa ranijim ključevima, tako da ih server neće moći dešifrirati, a onda ni izvršiti njihove zahtjeve. Server će zaključiti da je integritet tih poruka narušen putem (jer se ne daju dešifrirati) i zato će ih odbaciti.

Dakle, uz pomoć jednokratnog broja onemogućava se napad ponavljanjem tuđeg zahtjeva za uspostavu SSL veze. Spomenimo ovdje jedan problem. Mnogi elementi (sustavi) od kojih se sastoje računalne mreže su složeni i njihova objašnjenja su opsežna, ali ponekad se svejedno čini da nije rečeno dovoljno. Naprimjer, ovdje nije očito zašto bi napadač N izvodio napad ponavljanjem ranijih poruka od klijenta K. U opisima uspostave SSL veze koji su nam poznati, kao i u opisu kojeg smo iznijeli iznad, server se predstavlja klijentu sa svojim CA certifikatom. Ali u tim opisima ne traži se da klijent ima CA certifikat. To je razumljivo, jer ne bi imalo smisla tražiti od svakog klijenta da mora imati CA certifikat za to da bi mogao nešto kupiti preko neke web stranice. Ali onda nije očito zašto bi napadač N uspostavljao vezu sa serverom S na taj način da ponavlja ranije poruke od K. Napadač N može se lažno predstaviti serveru S kao da je on klijent K i zatražiti uspostavu nove SSL komunikacije sa S. Napad ponavljanjem poruka od K iz ranijeg procesa rukovanja između klijenta K i servera S imao bi smisla samo ako te poruke sadrže proces sa kojim je server S utvrdio identitet od K (na temelju CA certifikata od K). Ali u opisu načina rada SSL sustava, kojeg smo iznijeli iznad, nije tražena identifikacija klijenta. Ovaj problem ostaviti ćemo ovdje otvorenim; odgovor može biti jednostavan, ali nam ne izgleda očitim.

Proces završavanja komunikacijske sesije normalno počinje od vrha, zahtjevom koji

43

Page 44: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

dolazi sa razine aplikacije, od strane servera ili od strane klijenta. Na razini SSL veze, proces završetka komunikacije pokreće se slanjem posebnog SSL zapisa kojim se zahtjeva raskid SSL veze. Takav zahtjev može poslati klijent ili server. Komunikaciju na SSL razini moglo bi se prekinuti slanjem zahtjeva TCP FIN u okviru TCP protokola, sa kojim se pokreće proces prekida TCP veze preko koje se odvija dana SSL komunikacija. Ali to nije regularan način završavanja komunikacije na SSL razini. Proces raskidanja veze kreće od viših razina prema nižima i izvodi se na svakoj razini zasebno. Dakle, SSL veza prekida se prije raskida TCP veze čije usluge prijenosa koristi ta SSL veza.

Sigurnost na mrežnoj razini i niže

Sustav sigurnosti i zaštite može se uspostaviti i na mrežnoj razini računalne mreže. Tom temom se ovdje ne možemo baviti; spomenimo samo neke osnovne stvari. Protokol koji definira sigurnost i zaštitu na mrežnoj razini Interneta, naziva se sigurnosnim protokolom IP razine (IP security protocol), ili kraće IPsec. IPsec je protokol mrežne razine koji omogućava uspostavu sigurnosti i zaštite na razini prijenosa IP paketa. To može biti prijenos IP paketa od domaćina (ili vrata lokalne mreže) na rubni usmjerivač Interneta i obrnuto, te prijenos između usmjerivača koji tvore unutrašnjost (prijenosni sustav) računalne mreže. IPsec definira zaštitu povjerljivosti sadržaja, utvrđivanje autentičnosti komunikatora, i provjeru integriteta sadržaja na razini pojedinačnih IP paketa koji se prenose mrežom, od čvora do čvora, od izvora do konačnog odredišta.

Rekli smo da se sustavi sigurnosti i zaštite uspostavljaju uglavnom na višim razinama mreže, i to iz razloga koje smo tada naveli. Ali postoje mreže i situacije kod kojih postoje uvjeti i razlozi da se sigurnost i zaštita provode na mrežnoj razini; među takve mreže spadaju virtualne privatne mreže (virtual private networks - VPNs). Tako se nazivaju mreže koje koriste usluge prijenosa javne mreže Internet, ali tvore potencijalno zatvorene sustave, koji mogu spriječiti druge (vanjske) subjekte da pristupaju njihovim čvorovima, podmrežama i sadržajima. Virtualne privatne mreže nastaju povezivanjem više međusobno udaljenih mreža pomoću posebnih vrata koja izvode dvostruka pakiranja IP paketa, na način kako je to opisano u prethodnoj knjizi (RM1).

Nazovimo "internim mrežama" one fizičke mreže od kojih se formira jednu virtualnu privatnu mrežu. Jedna VPN formira se na taj način da se interne mreže povežu preko posebnih vrata. Pritom se promet između domaćina Di iz interne mreže Mj i domaćina Dk iz interne mreže Ml kroz javnu mrežu adresira i odvija kao promet između vrata Vj koja vezuju na Internet internu mrežu Mj i vrata Vl koja vezuju na Internet internu mrežu Ml. Privatnost takve mreže ostvaruje se na taj način što vrata koja vezuju neku internu mrežu na Internet mogu sprječavati svaki pokušaj pristupa domaćinima iz te interne mreže, ako taj pokušaj ne dolazi sa nekih drugih vrata koja su dio te virtualne mreže. Privatnost te mreže je virtualna (ne-stvarna) zato što se IP paketi koji se prenose od jedne interne mreže drugoj, prenose javnom mrežom. Ti IP paketi prenose se kao tijela (teret) IP paketa koje vrata jedne interne mreže šalju vratima druge interne mreže. Dakle, IP paketi unutar svake interne mreže kreću se normalno, ali IP paketi koji se prenose između dviju internih mreža jedne VPN, bivaju "dvostruko pakirani". IP paket kojeg šalje domaćin Di iz interne mreže Mj domaćinu Dk iz interne mreže Ml pakira se na vratima Vj od Mj u novi IP paket kojeg vrata Vj šalju vratima Vl.

Virtualne privatne mreže pružaju dobru mogućnost da se sustav sigurnosti i zaštite uspostavi na mrežnoj razini. Vrata izvode dvostruko pakiranje IP paketa zato da razdvoje (učine različitima) pakete iz svoje virtualne mreže od paketa iz vanjske (javne) mreže. Dvostruko pakiranje ne štiti IP pakete od raznih vrsta napada. Ali vrata koja izvode dvostruko pakiranje su pogodno mjesto na kojem se mogu provoditi mjere sigurnosti i zaštite koje smo opisali iznad, i to na razini IP paketa. Dakle, vrata pomoću kojih se ostvaruje jedna virtualna privatna mreža dvostrukim pakiranjem IP paketa, mogu isto tako izvoditi operacije šifriranja i izračunavanja MACova, i na taj način ostvariti zaštitu povjerljivosti sadržaja, autentičnosti pošiljatelja i primatelja, i integriteta poruka na

44

Page 45: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

razini pojedinačnih IP paketa. Prikladnom obradom IP paketa na vratima, uz pomoć enkripcijskih metoda i sustava, može se uspostaviti zaštita povjerljivosti, autentičnosti i integriteta na razini IP paketa, odnosno na mrežnoj razini računalne mreže.

Dakle, sustav sigurnosti i zaštite može se uspostaviti na mrežnoj razini; virtualne privatne mreže naveli smo kao primjer jedne vrste mreža kod kojih postoje pogodni uvjeti da se takav sustav uspostavi. Protokol IPsec koji definira sustav sigurnosti i zaštite na mrežnoj razini, je opsežan i složen. Opis tog protokola dan je u desetak RFCa, od kojih su najvažniji RFC 4301 i RFC 2411. Prikaz protokola IPsec prelazi okvire ove knjige.

Sustav sigurnosti i zaštite može se uspostaviti i na razini veze podataka. Uspostava takvog sustava na razini veze podataka potrebna je kod bežičnih mreža, kod kojih se prijenos okvira (na razini veze podataka) izvodi pomoću radijskih valova koji se općenito šire na sve strane, tako da ih mogu primati i oni kojima nisu namijenjeni sadržaji koje ti valovi prenose.

Najpoznatiji protokol (i sustav) bežične mreže definiran je IEEE standardom 802.11. Uz taj standard definiran je sigurnosni sustav (protokol) koji se naziva Wired Equivalent Privacy (WEP); tim nazivom htjelo se reći da taj sustav (WEP) pruža sigurnost i zaštitu čija je kvaliteta jednaka onoj koju drugi sustavi ostvaruju u računalnim mrežama sa žičanim vezama. Osnovni protokol WEP osigurava (štiti) bežičnu komunikaciju između domaćina i točke pristupa (access point - AP). WEP definira proces šifriranja i utvrđivanja autentičnosti komunikatora uz upotrebu simetričnog ključa.

Standard 802.11 i WEP su u početku imali niz slabosti u području sigurnosti i zaštite. Godine 2004. usvojena je nova verzija standarda 802.11, koja nosi oznaku 802.11i, kod koje je sustav sigurnosti i zaštite bitno poboljšan i proširen. Standard 802.11i uveo je kvalitetan sustav šifriranja i više mogućnosti utvrđivanja autentičnosti komunikatora, te sustav za distribuciju simetričnih ključeva (među komunikatorima).

Sustav sigurnosti i zaštite u bežičnim mrežama ima svoje specifičnosti, ali se uglavnom zasniva na istim načelima kao i sustavi zaštite u mrežama sa žičanim vezama. Sustav sigurnosti i zaštite na razini veze podataka računalne mreže ima svoje specifičnosti, ali su ciljevi toga sustava jednaki ciljevima takvih sustava na drugim razinama mreže: štititi povjerljivost sadržaja, utvrđivati autentičnost komunikatora, i provjeravati integritet poruka. Potpuniji prikaz sigurnosnih protokola i sustava na razini veze podataka, prelazi okvire ove knjige.

4.6 Vatreni zidovi i filtri

U prethodnim odjeljcima opisali smo protokole i sustave sa kojima se ostvaruje sigurnost i zaštitu na osnovu načina zapisivanja sadržaja (šifriranja), pomoću raznih vrsta ključeva, te raznim računanjima sa sadržajima jedinica podataka (hash, MAC). U ovom odjeljku govorimo o drugom načinu uspostavljanja sustava zaštite u računalnoj mreži, koji se zasniva na ograničavanju pristupa pojedinim mrežama i na ograničavanju prijenosa pojedinih vrsta sadržaja u pojedine mreže i iz tih mreža. Za uspostavu ove vrste zaštite koriste se razna sredstva, među koje spadaju vatreni zidovi (firewalls), sustavi za otkrivanje upada (intrusion detection systems - IDSs) i sustavi za sprječavanje upada (intrusion prevention systems - IPSs). U nastavku iznosimo prikaze tih sustava koji štite računalnu mrežu na taj način da sprječavaju ulazak nekih jedinica podataka u danu mrežu i izlazak nekih jedinica podataka iz dane mreže, kao i kretanje sumnjivih sadržaja mrežom koju štite.

Vatreni zidovi

45

Page 46: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Vatreni zid (ili vatrozid) je sustav preko kojeg se odvija prijenos podataka u neku mrežu i iz te mreže. Vatreni zid je softverski sustav koji može biti postavljen na računalo koje ima ulogu vrata koja povezuju računalnu mrežu neke tvrtke ili institucije, sa globalnom mrežom Internet. Vatreni zid ima tada ulogu vratara (na tim vratima) koji dopušta neke prijenose podataka (u mrežu ili iz nje) a druge prijenose sprječava. Tipičnu ulogu i položaj vatrenog zida, koje smo opisali iznad, ilustrira slika 4.15. Ali postoje razne vrste vatrenih zidova, koji se koriste u raznim sustavima i u raznim okruženjima. Ovdje govorimo o tome kako vatreni zid štiti jednu internu mrežu, ali vatreni zid može biti postavljen i na osobno računalo; tada vatreni zid treba selektivno propuštati tokove podataka iz Interneta na to računalo, i sa tog računala u Internet.

Slika 4.15 Položaj i uloga vatrozida

46

Page 47: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Za vatrene zidove se kaže da filtriraju tokove podataka koji hoće ući u štićenu mrežu, kao i tokove podataka koji hoće izaći iz te mreže. Mreža tvrtke ili institucije sadrži jedan usmjerivač kojeg se naziva vratima (gateway) ili vratnim usmjerivačem (gateway router) te mreže. Vrata povezuju mrežu tvrtke sa jednim rubnim usmjerivačem globalne mreže Internet; obično je to usmjerivač davatelja Internet usluga (ISP) na kojeg je vezana mreža dane tvrtke ili institucije. Sav promet koji ulazi u štićenu mrežu ili izlazi iz nje, prolazi preko vrata mreže. Na tim vratima nalazi se vatrozid kao softverski sustav koji izvodi filtriranje prometa koji pokušava ući u mrežu i prometa koji pokušava izaći iz mreže. Filtrirati ovdje znači da vatrozid pušta neke pakete da uđu u štićenu mrežu, a druge ne pušta u mrežu. Isto vrijedi za pakete koje netko pokušava poslati iz štićene mreže u vanjsku mrežu. Vatrozid odlučuje kako postupiti sa kojim paketom na temelju pravila filtriranja koje definira administrator mreže i postavlja ih na vatrozidu. Vatrozid onda postupa prema zadanim pravilima sa svakim od paketa koji stiže na njega, sa vanjske ili sa unutarnje strane. Administrator oblikuje pravila rada vatrozida u skladu sa željama vlasnika mreže koju vatrozid štiti.

Pravila na vatrozidu trebaju biti oblikovana na način da taj vatrozid propušta ili odbacuje određene zahtjeve za uspostavu veze koji dolaze iz vanjske mreže i upućeni su nekim domaćinima iz mreže koju taj vatrozid štiti. Ta pravila trebaju isto tako propuštati ili odbacivati zahtjeve za uspostavu veza koji dolaze sa domaćina iz mreže koju vatrozid štiti, a upućeni su na adrese izvan te mreže. Da bi vatrozid obavljao dobro svoj posao potrebno je dobro postaviti vrijednosti u tablicama (listama) vatrozida, koje zapisuju pravila koja određuju način rada danog vatrozida. Dakle, vatreni zid dopušta ili sprječava uspostavljanje određenih veza i određene tokove podataka na temelju uputa (pravila) koja su zapisana u njegovim tablicama; te upute oblikuje i upisuje u tablicu vatrozida mrežni administrator.

Sustavi za enkripciju, kao što su DES, RSA, MD5 i drugi, "rade sami", onako (i onoliko uspješno) kako su napravljeni da rade; od korisnika tih sustava ne traži se da rade (ili razmišljaju) mnogo. S druge strane, vatreni zid sam po sebi općenito ne zna što treba raditi, nego mu to treba točno zadati, na pretpisani način i za konkretnu mrežu koju treba štititi.

Za rad vatrozidova karakteristične su tri osnovne stvari. (1) Sav promet iz vanjske mreže u štićenu mrežu, i iz štićene mreže u vanjsku mrežu, treba

prolaziti preko vatrozida. Štićene mreže mogu biti različitih veličina; velike mreže mogu biti vezane na vanjsku mrežu preko više vrata (na više mjesta) i koristiti razne vrste vatrozidova. Ali da bi zaštita mreže mogla biti uspješna, potrebno je da sav promet u tu mrežu i iz nje prolazi preko barem jednog od vatrozidova koji je štite.

(2) Administrator mreže treba postaviti na vatrozidu pravila koja određuju adrese, vrste prijenosa i vrste sadržaja onih tokova podataka koji smiju ući u štićenu mrežu, i adrese, vrste prijenosa i vrste sadržaja onih tokova podataka koji smiju izaći iz štićene mreže. Vatrozid treba sprječavati sve druge tokove podataka u štićenu mrežu i iz nje.

(3) Vatrozid treba biti dobro zaštićen od svih vrsta napada. Vatrozid je element mreže, tako da je ispostavljen raznim vrstama mrežnih napada. Da bi mogao uspješno štititi onu mrežu na čijem ulazu se nalazi, vatrozid treba najprije zaštititi sebe od vanjskih napada, koji mogu poremetiti njegov rad i tako ga učiniti beskorisnim, ili čak štetnim.

Načela prema kojima vatrozidovi izvode filtriranje paketa oblikuju se na temelju slijedećih atributa IP paketa:

- IP adresa izvora ili odredišta - Nepoželjna adresa izvora ili odredišta IP paketa je često vrlo pogodan element za oblikovanje pravila prema kojem vatrozid propušta ili odbacuje pakete.

- Sadržaj polja Protokol u zaglavlju IP paketa - Sadržaj tog polja je neki od brojeva koji označavaju protokole kao što su TCP, UDP, ICMP, OSPF, i drugi; filtar može odbacivati pakete

47

Page 48: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

koji prenose segmente nekih protokola, zato što vlasnik mreže ne dopušta komunikacije (ni uspostave veza) u kojima se koriste neki protokoli.

- Ulazni i izlazni port u zaglavlju segmenta kojeg prenosi IP paket - Kod uspostavljanja veze sa nekim serverom, segment koji sadrži zahtjev za uspostavu veze sa tim serverom ima u zaglavlju zapisan dobro poznati port toga servera. Pomoću vatrozida može se spriječiti da neki klijent uspostavi vezu s nekim serverom, ili da pristupi štićenoj mreži ili nekom dijelu te mreže.

- Stanje bitovnih oznaka u zaglavlju TCP segmenta - Te oznake su SYN, ACK, i druge; na temelju stanja tih bitovnih oznaka, vatrozid može spriječiti uspostavu neke TCP veze.

- Tip ICMP poruke - IP protokol ne ispravlja greške koje nastaju u prijenosu IP paketa. Ali uz IP protokol, na mrežnoj razini Interneta radi ICMP protokol (Internet Control Message Protocol) koji evidentira gubitke IP paketa u prijenosu i šalje obavijesti izvorima (domaćinima) čiji su paketi izgubljeni (odbačeni, iskrivljeni) na putu. Bez obzira na takve obavijesti, IP protokol ne ispravlja greške u prijenosu, nego to radi TCP protokol. Ali poruke ICMP protokola mogu se upotrijebiti za neke vrste napada; zato vatrozid može (treba) filtrirati poruke te vrste, na neki zadani način.

Pomoću navedenih i drugih parametara (atributa), administrator mreže oblikuje postavke na vatrozidu; te postavke izražavaju stavove institucije čijom mrežom upravlja; te postavke ujedno tvore pravila na temelju kojih vatrozid propušta IP pakete ili ih odbacuje.

Tvrtka može oblikovati svoj sustav zaštite pomoću vatrozida na temelju raznih načela i prema raznim kriterijima i ciljevima. To mogu biti postizanje visokog stupnja zaštite interne mreže od vanjskih napada, sprječavanje djelatnika tvrtke da gube vrijeme igrajući razne igre na mreži, ili gledajući stranice raznih društvenih mreža, i slične sadržaje. U tablici na slici 4.16 navedeno je nekoliko primjera stavova tvrtke (načela ponašanja) i odgovarajućih postavki na vatrozidu koje izražavaju te stavove i na temelju kojih će vatrozid filtrirati promet u skladu sa danim stavovima tvrtke.

Slika 4.16 Postavke (pravila) na vatrozidu

Navedeni stavovi tvrtke i postavke na vatrozidu izraženi su prilično jasno; dodajmo tome slijedeća objašnjenja. Prvi stav tvrtke zabranjuje da djelatnici iz tvrtke gledaju web stranice izvan tvrtke. Taj stav postavlja se na vatrozid na taj način da se na vatrozidu postavi pravilo prema kojem vatrozid odbacuje IP pakete koji su upućeni izvan štićene mreže, ako nose segment u kojem je vrijednost odredišnog porta 80. Podsjetimo, 80 je port na kojem web serveri prihvaćaju dolazeće zahtjeve web preglednika, koji od servera traže uspostavu veze i zatim traže razne web sadržaje.

48

Page 49: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Drugi stav tvrtke zabranjuje uspostavljanje vanjskih TCP veza sa domaćinima iz mreže od tvrtke, osim sa onim domaćinom na kojem se nalazi javni web server tvrtke. Taj stav postavlja se na vatrozid na taj način da se na vatrozidu postavi pravilo prema kojem vatrozid odbacuje IP paket koji nosi TCP segment u kojem je bit SYN postavljen na "1", osim ako je taj paket upućen na IP adresu 211.127.49.113 i na port 80. Na toj IP adresi nalazi se javni web server tvrtke; web server prima dolazeće zahtjeve preglednika na portu 80.

Segment u kojem je bit SYN postavljen na "1" je prvi segment u komunikaciji, sa kojim klijent traži uspostavu TCP veze; odbacivanjem vanjskih segmenata u kojima je bit SYN postavljen na "1" sprječava se uspostavu TCP veza sa unutarnjim domaćinima na zahtjev vanjskih tražitelja (klijenata). Time se ne sprječava prijenos podataka u štićenu mrežu onom TCP vezom koju je uspostavio neki domaćin iz štićene mreže (sa nekim vanjskim serverom), jer segmenti-odgovori vanjskih servera nemaju bit SYN postavljen na "1".

Treći stav tvrtke zabranjuje slušanje radija preko Interneta, jer se time troše prijenosni kapaciteti mreže tvrtke, koji mogu trebati za druge svrhe. Radio programi se obično prenose pomoću UDP protokola, pomoću kojeg se prenose i neki drugi sadržaji koji nisu vezani uz radne procese. Zato tvrtka može zabraniti slušanje radija na taj način da na vatrozid postavi pravilo prema kojem vatrozid odbacuje sve IP pakete koji prenose UDP segmente. Ali takvo pravilo bilo bi preoštro, jer UDP protokol koriste i aplikacije DNS i SNMP, koje su bitne za rad mreže. Zato pravilo na vatrozidu treba oblikovati na način da odbacuje sve IP pakete koji prenose UDP segmente, osim onih IP paketa koji prenose segmente čiji broj porta pokazuje da ti segmenti prenose sadržaje od protokola DNS ili SNMP.

Spomenimo da je SNMP (Simple Network Management Protocol) središnji protokol u prostoru upravljanja radom Interneta; to je protokol aplikacijske razine, ali zbog ograničenosti prostora nije mogao biti uključen u ovu knjigu. Problematikom upravljanja računalnom mrežom bavimo se u posebnom predmetu.

Postoji ogroman broj stavova (ili načela rada mreže) koje vlasnik mreže može postaviti i koje mrežni administrator treba izraziti pomoću postavki (pravila rada) na vatrozidu, koji onda svojim radom provodi zadane stavove.

Pomoću vatrozida mogu se ograničiti (ili onemogućiti) vanjska ispitivanja unutarnje strukture mreže i stanja pojedinih čvorova te mreže; takva ispitivanja izvode se "pinganjem" i na druge načine. Sprječavanjem ispitivanja strukture štićene mreže i stanja aplikacija na njenim domaćinima od strane vanjskih subjekata, nastoji se otežati učinkovit izvanjski napad na pojedine čvorove i servere štićene mreže.

Filtriranje prometa na vatrozidu često se zasniva na kombinaciji IP adrese i porta. IP adresa određuje domaćina, a port određuje vrstu aktivnosti i aplikaciju.

Bitovne oznake u zaglavlju segmenata (koji se prenose u IP paketima) su isto pogodne za filtriranje. Naprimjer, na temelju vrijednosti bita ACK u zaglavlju segmenta, vatrozid može dopustiti uspostavu TCP veze sa nekim serverom, ili spriječiti uspostavu neke TCP veze. Kod uspostavljanja TCP veze, u prvom segmentu (sa kojim klijent traži uspostavu veze) vrijednost bita ACK je "0"; sa tim segmentom nema se što potvrditi (ACK) jer je to prvi segment, sa kojim započinje proces uspostavljanja veze. U svim ostalim segmentima, vrijednost bita ACK je "1" jer se sa njima ujedno potvrđuje primitak nekog segmenta. Ako se na vatrozidu postavi pravilo da odbacuje IP pakete koji dolaze izvana i nose TCP segment u kojem je ACK jednako "0", onda nijedan vanjski klijent neće moći uspostaviti TCP vezu ni sa jednim serverom u štićenoj mreži. Nadalje, ako se postavkama na vatrozidu dopusti klijentima iz štićene mreže da šalju TCP segmente sa ACK jednako "0" u vanjsku mrežu, onda se time dopušta da unutarnji klijenti šalju zahtjeve za uspostavu TCP veze vanjskim serverima. Uspostavi takve veze slijediti će nesmetana komunikacija; vanjski serveri moći će slati unutarnjim klijentima tražene podatke, jer vatrozid odbacuje samo one vanjske segmente kod kojih je ACK jednako "0", a odgovori servera imaju uvijek ACK vrijednost "1".

49

Page 50: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Pravila filtriranja koje smo ovdje opisali, zadaju se vatrozidu pomoću tablica koje se nazivaju listama upravljanja pristupom (access control lists). Svaki redak takve liste (tablice) sadrži precizan zapis jednog pravila, poput onih o kojima smo govorili iznad. Na slici 4.17 dan je ilustrativni primjer takve tablice. Pritom, CIDR oznaka/adresa 197.98.16/20 označava podmrežu koju se štiti ovim vatrozidom; "izvan" te adrese je ostatak Interneta.

Slika 4.17 Tablica upravljanja pristupom

Lista (tablica) upravljanja pristupom, kakva je dana na slici 4.17, može imati mnogo redaka; svaki redak izražava jedno pravilo na temelju kojeg vatrozid procesira IP pakete; to jest, propušta ih, ili ih odbacuje. Pravila sa liste upravljanja pristupom primjenjuju se na svaki paket koji stigne na vatrozid; pravila se primjenjuju odozgo prema dolje: kad filtar propusti neki paket dalje ili ga odbaci, na temelju nekog pravila, onda se za taj paket ne promatraju preostala pravila na listi.

Podsjetimo da zapis oblika 197.98.16/20 predstavlja mrežne adrese (mrežne dijelove IP adresa) većeg broja mreža klase C, u formatu CIDR. Zapis 197.98.16/20 označava sve mrežne adrese koje počinju sa nizom od 20 bitova koji nastaje kad se svaki od prvih triju brojeva iz tog zapisa (197, 98, 16) zapiše sa po osam bitova; tako nastaje niz od 24 bita; sve mrežne (IP) adrese koje počinju sa prvih 20 bitova (s lijeva) od toga niza, obuhvaćene su gornjim zapisom grupe mrežnih adresa klase C. Da su to adrese klase C vidi se po tome što počinju nizom bitova 110; binarni zapis broja 197 glasi 11000101.

Prva dva pravila omogućuju da korisnici iz štićene mreže gledaju web stranice u cijelom Internetu, a sprječavaju one izvan štićene mreže da uspostavljaju TCP veze sa web serverima unutar štićene mreže. Prvo pravilo omogućava da se iz štićene mreže uspostavi TCP vezu sa portom 80 (web serverom) na bilo kojem domaćinu izvan štićene mreže. Drugo pravilo dopušta da vanjski web server (port izvora 80) šalje TCP segmente klijentu (pregledniku) unutar štićene mreže, s tim da ti TCP segmenti trebaju imati postavljen ACK bit na "1", što znači da nose odgovor na neki zahtjev klijenta iz unutarnje mreže. Ovo pravilo ne dopušta da vanjski klijenti šalju zahtjeve za uspostavu TCP veze serverima u štićenoj mreži; takvi zahtjevi postavljaju se sa TCP segmentom kod kojeg je ACK postavljen na "0" (a SYN na "1"); prema drugom pravilu, vatrozid odbacuje takve zahtjeve.

Ovo pravilo prenosimo iz Kurose i Ross (str. 750) koji većinom govore na jasan način; ali ovdje postoji jedna nejasnoća. Ranije smo rekli da preglednici uvijek pristupaju web serveru na njegovom poznatom portu 80. Ali web server svakom klijentu smjesta dodjeljuje jedan drugi (novi) port veze (Pv) za tu (jednu) sesiju: za svakog klijenta, server kreira jednu utičnicu TCP veze, kako je to rečeno u odjeljku 2.4. Daljnja komunikacija između web preglednika K i web servera S odvija se preko te utičnice-porta Pv. To onda znači da segmenti koje vanjski server S šalje unutarnjem

50

Page 51: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

klijentu K ne nose port izvora 80, nego Pv. To dalje znači da drugo pravilo sa slike 4.17 ne bi funkcioniralo baš onako kako je to rečeno iznad. Taj problem ostaviti ćemo ovdje otvorenim, jer računalne mreže su preopsežna stvar da bismo mogli riješiti sve probleme. Ovdje ćemo uzeti da je drugo pravilo mišljeno kao ilustracija načela rada vatrozida, ali stvari su malo složenije nego što ovo pravilo uspijeva izraziti. Ovo objašnjenje je potrebno zato što se isto pravilo koristi u nekim primjerima koji slijede.

Slijedeća dva retka liste (tablice) upravljanja pristupom dopuštaju da UDP paketi koji prenose podatke sustava DNS (koji radi na portu 53), ulaze u štićenu mrežu i izlaze iz nje.

Za svaki IP paket, vatrozid primjenjuje pravila sa svoje liste odozgo prema dolje. One IP pakete za koje prva četiri pravila ne određuju kako treba postupiti s njima, vatrozid procesira prema petom pravilu; dakle, odbacuje ih. To znači da vatrozid sprječava kretanje tih IP paketa iz vanjske mreže u štićenu mrežu, i iz štićene mreže u vanjsku mrežu, zavisno s koje strane dolaze i kamo su upućeni.

Dakle, vatrozidovi filtriraju tokove podataka (pakete) koji hoće ući u štićenu mrežu, kao i tokove podataka (pakete) koji hoće izaći iz te mreže. To znači da vatrozid pušta neke pakete da uđu u štićenu mrežu, a druge ne pušta u mrežu; isto vrijedi za pakete koje netko pokušava poslati iz štićene mreže u vanjsku mrežu.

Dani ilustrativni primjer liste (tablice) upravljanja pristupom je vrlo jednostavan i vrlo restriktivan. Postoje preporuke kakva pravila je dobro postaviti za pojedine protokole i portove (usluge) da bi se time spriječilo neke poznate vrste (izvanjskih) napada kojima su podložni ti protokoli i usluge.

Vatrozid kojeg smo ovdje opisali, radi na temelju liste upravljanja pristupom i prema pravilima sa te liste. Ali vatrozid može izvoditi filtriranje i na temelju drugih parametara (stanja i vrijednosti). S obzirom na to koje sve parametre uzimaju u obzir kod filtriranja, vatrozidove se dijeli na tri osnovne vrste: (1) tradicionalni filtri paketa, (2) filtri paketa prema stanjima, i (3) vrata aplikacija.

Tradicionalni filtri paketa (traditional packet filters) - Filtri ove vrste promatraju svaki IP paket zasebno. Na temelju pravila sa liste upravljanja pristupom, vatrozid za svaki paket odlučuje da li da ga propusti (prema njegovom odredištu), ili da ga odbaci i time spriječi u daljnjem kretanju prema njegovom odredištu. Vatrozid procesira svaki IP paket zasebno, nezavisno od drugih paketa, i bez uvida u druge pokazatelje stanja komunikacije.

Takav način rada ima neke slabosti. Naprimjer, vatrozid koji radi kao tradicionalni filtar paketa, u našem primjeru propušta u štićenu mrežu sve pakete koji dolaze sa nekog vanjskog web servera (port 80), ako imaju postavljen ACK bit na "1". Vrijednost ACK bita "1" pokazuje da taj IP paket prenosi TCP segment u kojem neki vanjski web server šalje neki sadržaj nekom klijentu u štićenoj mreži. Vanjski server šalje sadržaje preko TCP veze za koju se smatra da ju je uspostavio unutarnji klijent, jer pravila sa dane liste upravljanja pristupom ne dopuštaju vanjskim klijentima da uspostavljaju TCP veze sa unutarnjim serverima.

Takav način rada vatrozida dopušta neke jednostavne oblike napada. Ako napadač pošalje IP paket sa TCP segmentom u kojem je port izvora postavljen na 80 (kao da segment dolazi od web servera) i bit ACK postavljen je na "1", onda će vatrozid koji radi kao tradicionalni filtar paketa propustiti taj IP paket, jer prema danim pravilima (iz tablice na slici 4.17) nema osnove za to da ga odbaci. Dakle, vatrozid koji radi kao tradicionalni filtar paketa je relativno jednostavan, ali nije naročito uspješan u sprječavanju vanjskih napada.

Filtri paketa prema stanjima (stateful packet filters) - Vatrozid ove vrste dodaje jednu dimenziju procesu tradicionalnog filtriranja paketa, kojeg smo opisali iznad. Ova vrsta vatrozida održava i konzultira tablicu TCP veza koje se uspostavljaju i odvijaju preko njega. Nazivom te vrste vatrozida htjelo se istaknuti upravo to, da pored liste upravljanja pristupom (koju smo opisali iznad), vatrozid ovdje promatra i stanje TCP veza. Engleski izraz "stateful" kaže otprilike isto, ali

51

Page 52: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

na kraći i manje jasan način.Ova vrsta vatrozida odlučuje za svaki IP paket pojedinačno što treba učiniti s njim, ali

odluke ne zasniva samo na pravilima sa liste upravljanja pristupom, nego promatra i stanje TCP veza. U primjeru napada kojeg smo opisali iznad, vatrozid koji radi kao filtar IP paketa s uvidom u stanje TCP veza, ne dopušta da u štićenu mrežu uđe IP paket koji nosi TCP segment sa ACK bitom "1", ako IP adresa odredišta toga paketa (u štićenoj mreži) nije ujedno adresa domaćina koji je pokrenuo proces uspostavljanja te TCP veze. Na taj način vatrozid onemogućava da vanjski napadači šalju svoje TCP segmente na proizvoljne IP adrese u štićenoj mreži.

Dakle, filtriranje sa uvidom u stanje veza izvodi se prema listi upravljanja pristupom, kao i tradicionalno filtriranje paketa. Ta lista sadrži niz pravila prema kojima vatrozid odlučuje što treba učiniti sa IP paketom koji je stigao na njega. Ali filtriranje sa uvidom u stanje TCP veza je za jednu razinu kvalitetnije, jer pored liste pravila, vatrozid ovdje vodi evidenciju o TCP vezama (između unutarnje i vanjske mreže) koje prolaze preko njega. Uvid u stanje veza omogućava vatrozidu da spriječi neke napade na štićenu mrežu, koje sama pravila sa liste upravljanja pristupom ne bi uspjela spriječiti.

Vrata aplikacija (application gateways) - Vatrozid koji izvodi filtriranje prema sadržajima iz zaglavlja IP paketa i TCP segmenata tvori osnovnu razinu filtriranja. Vatrozid koji dopunjava takvo filtriranje uvidom u stanje TCP veza, podiže kvalitetu filtriranja (i zaštite mreže) na višu razinu. Vatrozid kojeg se naziva vratima aplikacije, omogućava da se proces filtriranja definira još preciznije, a time i kvalitetnije. Vatrozid te vrste nadzire i ograničava prijenos sadržaja u štićenu mrežu i iz nje na razini pojedinačnih aplikacija i pojedinačnih korisnika. Naprimjer, vatrozid tipa vrata aplikacije može dopuštati korištenje usluge Telnet preko granice štićene mreže samo određenim osobama iz te mreže.

Za svaku aplikaciju može se napraviti vatrozid tipa vrata aplikacije. Sav prijenos iz štićene mreže i u nju, kojeg ostvaruje određena aplikacija, prolazi kroz vrata te aplikacije. Vrata za razne vrste aplikacija mogu raditi na istom računalu, ali svaka vrata aplikacije su zaseban vatrozid za jednu vrstu aplikacije. Vrata aplikacije su obično dodatni vatrozid, pored osnovnog vatrozida koji izvodi filtriranje na temelju sadržaja zaglavlja, i eventualno na temelju uvida u stanje veza, kako smo to opisali iznad. Slika 4.18 pokazuje položaj vatrozida tipa vrata aplikacije, u odnosu na usmjerivač (vrata) i osnovni vatrozid (filtar) preko kojeg su povezane štićena mreža i vanjska (javna, globalna) mreža.

52

Page 53: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Slika 4.18 Mreža sa vratima aplikacija

Vatrozid koji radi kao vrata aplikacije nalikuje proxy serveru. Klijent iz štićene mreže uspostavlja komunikaciju sa nekim serverom izvan te mreže na taj način da uspostavi vezu sa pripadnim vratima aplikacije. Ako vrata dopuštaju tom klijentu da uspostavi komunikaciju sa traženim vanjskim serverom, onda vrata aplikacije uspostavljaju vezu sa traženim vanjskim serverom za tog klijenta. To znači da se komunikacija (prijenos podataka) između unutarnjeg komunikatora Ku i vanjskog komunikatora Kv odvija u dvije etape: između Ku i vrata aplikacije, i između tih vrata i Kv.

53

Page 54: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Kako to pokazuje slika 4.18, računalo (domaćin) na kojem se nalaze vrata (više) aplikacija, nalazi se unutar štićene mreže. To znači, s unutarnje strane usmjerivača-vrata koji povezuje tu štićenu mrežu sa ostatkom Interneta, odnosno sa jednim rubnim usmjerivačem ISPa. Na tom usmjerivaču-vratima ujedno radi osnovni vatrozid za danu mrežu, koji filtrira promet prema načelima koje smo opisali ranije. Pravila na osnovnom vatrozidu trebaju biti oblikovana u skladu sa postavkama pojedinačnih vrata aplikacija. Naprimjer, ako štićena mreža sadrži vrata aplikacije za aplikaciju Telnet, onda svi unutarnji zahtjevi za korištenje te aplikacije preko granica štićene mreže, trebaju proći kroz vrata te aplikacije. Vrata aplikacije Telnet odlučuju koji će zahtjev za Telnet rad odobriti a kojeg će odbiti. Ako vrata aplikacije odobre unutarnjem korisniku Ku komunikaciju sa vanjskim sustavom Sv, onda ta vrata uspostavljaju vezu sa Sv i izvode prijenose sadržaja između tih vrata i Sv za potrebe od Ku, na način kako to rade proxy serveri. To onda znači da osnovni vatrozid treba propuštati iz štićene mreže samo one zahtjeve za uspostavu Telnet komunikacije sa nekim sustavom izvan te mreže, koji dolaze od vrata aplikacije Telnet; sve druge zahtjeve treba odbaciti. Osnovni vatrozid može odbacivati sve zahtjeve za uspostavu Telnet komunikacije koji dolaze izvana, ili može te zahtjeve prosljeđivati vratima aplikacije za Telnet; ta vrata onda odlučuju hoće li neki vanjski zahtjev za Telnet rad prihvatiti ili neće.

Vatrozid tipa vrata aplikacije omogućava preciznu zaštitu mreže na razini pojedinačnih usluga i korisnika, ali čini proces uspostave veze složenijim i proces prijenosa podataka sporijim. Naprimjer, kod aplikacije Telnet, korisnik treba najprije uspostaviti vezu sa vratima Telnet aplikacije. Na tim vratima postoji jedan proces koji prima zahtjeve za uspostavu Telnet veza; kad primi takav zahtjev od korisnika, onda taj proces traži od korisnika ime i lozinku. Na temelju tih podataka, vrata aplikacije Telnet utvrđuju da li taj korisnik iz štićene mreže ima pravo uspostavljati Telnet veze sa čvorovima izvan štićene mreže. Ako nema pravo, onda vrata aplikacije obavještavaju korisnika o tome, i time je njegov pokušaj uspostave Telnet komunikacije završio s neuspjehom.

Ako korisnik jest ovlašten uspostavljati Telnet komunikacije sa čvorovima izvan štićene mreže, onda traženu Telnet vezu za korisnika uspostavljaju vrata aplikacije. Vrata to čine na slijedeći način: (1) traže od korisnika ime (adresu) vanjskog domaćina s kojim taj korisnik hoće uspostaviti Telnet komunikaciju; (2) uspostavljaju Telnet vezu između sebe (vrata aplikacije) i vanjskog domaćina kojeg je tražio unutarnji korisnik, i (3) prenose vanjskom domaćinu sadržaje koje primaju od unutarnjeg korisnika, a unutarnjem korisniku sadržaje koje primaju od vanjskog domaćina.

Dakle, vatrozid koji radi kao vrata aplikacije, provjerava ovlasti komunikatora i sprječava uspostavu onih komunikacija koje nisu u skladu sa stavovima (pravilima) onih koji upravljaju štićenom mrežom. Vrata aplikacije Telnet imaju ulogu Telnet servera za unutarnjeg klijenta, i ulogu klijenta za vanjskog Telnet servera. To znači da imaju ulogu sličnu proxy serveru. Pravi proxy server pokušava ujedno nadomjestiti pravog servera, što vrata aplikacije ne čine.

Štićena mreža može imati mnogo vrata aplikacije, po jedna vrata za svaku aplikaciju. Svaka od tih vrata su jedan vatrozid, ali mogu raditi na istom domaćinu, čiji položaj u štićenoj mreži ilustrira slika 4.18. Vatrozid koji radi kao vrata aplikacije omogućava precizno filtriranje, ali predstavlja opterećenje za mrežu i za mrežnu komunikaciju. Prvo, potrebno je imati vrata za svaku aplikaciju i potrebno je da administrator mreže održava postavke (pravila) na tim vatrozidovima, da bi mogli raditi dobro. Drugo, takav vatrozid usporava proces komunikacije između nekog subjekta iz štićene mreže i nekog subjekta iz vanjske mreže. Jer komunikacija (prijenos podataka) između unutarnjeg i vanjskog subjekta izvodi se preko posrednika (vrata aplikacije). Pritom taj posrednik ne izvodi samo pregledavanje sadržaja iz zaglavlja (kao kod prve vrste vatrozida) i stanja TCP veza (kao kod druge vrste vatrozida), nego prima i šalje sadržaje koji se kreću (preko njega) između izvornog pošiljatelja i konačnog primatelja tih sadržaja.

Zbog navedenih razloga, vrata aplikacije mogu biti postavljena samo za neke aplikacije iz štićene mreže, a ne za sve aplikacije. Isto tako, neki dijelovi štićene mreže mogu biti vezani na osnovni vatrozid na način da njihova komunikacija ne prolazi preko vrata aplikacija. Općenito,

54

Page 55: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

vrata aplikacija omogućuju bolju kontrolu prometa, ali se ta bolja kontrola može koristiti samo za neke aplikacije i samo za neke dijelove štićene mreže. Primjer štićene mreže kod koje komunikacije sa nekim dijelovima mreže ne prolaze preko vrata aplikacija dan je na slici 4.19, gdje govorimo o primjeni IDS i IPS zaštitnih sustava.

Sustavi za otkrivanje upada

Opisali smo tri vrste vatrozida. Prva vrsta ispituje zaglavlja IP paketa i zaglavlja segmenata (TCP, UDP, i drugih) koje ti paketi prenose. Druga vrsta vatrozida izvodi ista ispitivanja zaglavlja, ali povrh toga vodi računa o staju TCP veza koje prolaze preko tog vatrozida. Treća vrsta vatrozida (vrata aplikacije) provjerava ovlasti komunikatora, radi kao posrednik između klijenta i servera, i može promatrati sadržaje u tijelu paketa koji se prenose preko tog vatrozida, ali taj vatrozid izvodi takva promatranja samo sa stanovišta sigurnosti korištenja određene mrežne aplikacije.

Pored tih triju vrsta vatrozida, u mreži treba postojati jedan sustav koji promatra zaglavlja i sadržaje svih IP paketa koji ulaze u tu mrežu i koji se kreću tom mrežom. Kad takav sustav otkrije nešto sumnjivo u zaglavlju ili u tijelu nekog paketa, onda treba spriječiti daljnje kretanje tog paketa, ili upozoriti administratora mreže na postojanje sumnjivog paketa, koji onda izvodi odgovarajuće postupke.

Sustav koji nastoji otkriti pakete koji su dio napadačkog prometa ili nose destruktivni sadržaj (softver), naziva se sustavom za otkrivanje upada (intrusion detection system - IDS). Takav sustav proizvodi upozorenja kad otkrije sumnjive sadržaje i kretanja. Ako sustav takve vrste ujedno sprječava ulazak sumnjivih sadržaja (paketa) u štićenu mrežu, onda se naziva sustavom za sprječavanje upada (intrusion prevention system - IPS). Ovdje govorimo o tome na koji način valja oblikovati zaštitni sustav mreže, tako da bude čim uspješniji u zaštiti mreže i da čim manje ometa rad mreže.

Razlika između spomenutih dviju vrsta sustava (IDS i IPS) nije ovdje naročito važna; od primarne važnosti je otkriti (detektirati) sumnjive sadržaje i kretanja, tako da u nastavku govorimo o zaštitnom sustavu IDS, pod čime podrazumijevamo obje spomenute vrste zaštitnih sustava. Jer otkrivanje sumnjivih paketa i tokova je primaran problem i zadatak, bez obzira na kojem mjestu i bez obzira što će sustav učiniti kad otkrije nešto sumnjivo.

Sustav tipa IDS može otkrivati razne vrste napada. Takvi napadi mogu biti razna vanjska ispitivanja strukture štićene mreže, stanja njenih domaćina i njihovih portova, sa ciljem saznavanja koji portovi i koje aplikacije postoje na kojem domaćinu. Napadač može ispitivati tekuće TCP veze i razne druge stvari. Uvid u strukturu i rad mreže omogućava napadaču da izvodi razne vrste napada na tu mrežu. Napadač može poremetiti rad nekih elemenata mreže; može kopirati razne podatke, može ih mijenjati ili brisati; napadač može unositi u mrežu (na čvorove) razne vrste destruktivnog softvera (virusa, crva).

Sustavi tipa IDS trebaju otkrivati i sprječavati takve izvanjske napade na mrežu koju štite: na njene strukturne elemente, na njene sadržaje i na njene aktivnosti. Mnoge tvrtke i institucije štite svoje mreže pomoću sustava tipa IDS. Mnogi proizvođači softvera proizvode i prodaju takve sustave. Među najpoznatije proizvođače takvih sustava spadaju tvrtke Cisco i Check Point; postoje sustavi tipa IDS koji su javno dostupni na mreži; jedan takav sustav koji se nalazi u širokoj upotrebi, naziva se Snort. Na slici 4.19 pokazan je uobičajen razmještaj sustava IDS u računalnoj mreži koju ti sustavi štite.

55

Page 56: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

Slika 4.19 Sustavi za otkrivanje upada

Štićena mreža često sadrži više sustava IDS; računalna mreža na slici 4.19 sadrži četiri takva sustava. Kada mreža sadrži više sustava IDS, jedan od tih sustava ima ulogu glavnog IDS sustava; ostali IDS sustavi u toj mreži šalju svoje poruke o sumnjivim sadržajima (paketima) i kretanjima koje otkrivaju, glavnom sustavu. Glavni IDS sustav onda odlučuje da li treba poduzeti određene operacije, i šalje o tome obavijesti mrežom administratoru.

Organizacija obično uspostavlja višu razinu sigurnosti u nekim dijelovima svoje mreže i za neke mrežne usluge, dok je razina sigurnosti u drugim dijelovima mreže niža, iz raznih razloga. U skladu s time, organizacija razmješta sigurnosne elemente i sustave u svojoj mreži. Na slici 4.19 aplikacije iz štićene mreže komuniciraju sa vanjskom mrežom preko zajedničkog vatrozida, kao

56

Page 57: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

zajedničkog (općeg) filtra koji uspostavlja osnovnu zaštitu za cijelu mrežu. Povrh toga, odabrane aplikacije su dodatno zaštićene vatrozidovima tipa vrata aplikacije, koji se nalaze na posebnom računalu. Toj dvostrukoj zaštiti dodani su i sustavi IDS, koji pokušavaju otkriti sumnjive pakete i sumnjiva kretanja paketa u štićenoj mreži.

S druge strane, oni serveri iz štićene mreže, čije usluge intenzivno traže korisnici iz vanjske mreže, zaštićeni su samo sa osnovnim (zajedničkim) vatrozidom, ali ne i sa vratima aplikacija. Takvi serveri su obično javni web server, javni FTP server i mjerodavni DNS server za štićenu mrežu. Ti serveri često primaju zahtjeve klijenata koji dolaze izvan štićene mreže, i pružaju tim klijentima tražene usluge. Zato ove servere ne bi bilo dobro prejako zaštititi (naprimjer, sa vratima aplikacija) jer bi takva zaštita usporila prijenos podataka sa tih servera i na njih. To bi vanjskim klijentima otežalo pristup javnim sadržajima vlasnika štićene mreže, što vjerojatno nije u interesu vlasnika mreže, kao ni vanjskih klijenata koji žele pristupati javnim sadržajima njegove mreže. Ali sustavi tipa IDS, koji pokušavaju otkriti sumnjive sadržaje paketa i sumnjiva kretanja paketa, mogu se postavljati u sve dijelove štićene mreže.

Sustavi IDS ispituju sadržaje paketa na taj način da uspoređuju te sadržaje sa sadržajima iz svoje baze sumnjivih uzoraka. Takva baza može sadržavati desetke ili stotine tisuća zapisa, tako da uspoređivanje sadržaja paketa sa svakim od zapisa iz baze, iziskuje ogromnu količinu procesiranja. Ako je promet paketa u mreži velik, onda ispitivanjem IP paketa koji prolaze preko njih, sustavi IDS mogu znatno usporiti tokove (prijenose) podataka u štićenoj mreži. Zato je često potrebno da mreža sadrži više sustava IDS i da ti sustavi budu razmješteni u mreži na takav način da svaki od njih ispituje jedan dio prometa u toj mreži. Na taj način svaki sustav IDS opterećen je sa manje prometa, i manje usporava promet podataka u štićenoj mreži.

Postoje vrlo učinkoviti (brzi) sustavi tipa IDS, ali i propusnost veza je bitno porasla. Zato bez obzira na procesne kapacitete IDSova, takvi sustavi mogu biti preopterećeni brzim dotokom paketa; tada IDSovi izazivaju usporavanje prometa, ili moraju sniziti kvalitetu ispitivanja sadržaja paketa; naprimjer, na taj način da ne ispituju svaki IP paket.

Sustavi tipa IDS dijele se u dvije široke klase. Prvu klasu tvore sustavi koji uspoređuju ispitivane sadržaje (pakete, tokove) sa sadržajima iz svoje baze uzoraka koje smo ovdje nazvali oznakama; te sustave možemo nazvati označnim sustavima, ili duže, sustavima čiji se rad zasniva na oznakama (signature-based systems). "Signature" obično znači potpis, ali ovdje smo taj pojam preveli sa oznaka. Svaka oznaka (signature) je precizan (formalni) opis jedne poznate vrste napada. Takav opis može biti niz svojstava (atributa) jednog IP paketa koji prenosi (u svom tijelu) neki destruktivni sadržaj, ili prenosi dio softvera koji izvodi jedan destruktivni napad. Takav opis može biti uzorak niza bitova: ako tijelo ispitivanog paketa sadrži takav uzorak, onda taj paket prenosi dio nekog destruktivnog softvera. Takav opis može sadržavati neke podatke i neka pravila ponašanja koja opisuju postupke od kojih se sastoji neki napad.

Drugu klasu IDS sustava čine sustavi koji isto tako uspoređuju ispitivane sadržaje (pakete, tokove) sa sadržajima iz svoje baze uzoraka, ali sa ciljem da otkriju neke anomalije u ispitivanim sadržajima; te sustave možemo nazvati anomalijskim sustavima, ili duže, sustavima čiji se rad zasniva na otkrivanju anomalija (anomaly-based systems). Kod anomalijskih sustava ne govori se o oznakama (signatures), nego o profilima (profiles). U svakom slučaju, da bi ti sustavi mogli prepoznavati anomalije, oni trebaju imati neku bazu uzoraka ili pravila, koja određuju što je to normalno; anomalijsko bi onda moglo biti ono što se razlikuje od toga.

Ukratko, osnovna razlika između navedenih dviju vrsta IDS sustava je slijedeća. Kod prve vrste, baza uzoraka sadrži uzorke onog što je "opasno": ono što je slično tome, to je sumnjivo. Kod druge vrste IDS sustava, baza uzoraka sadrži ono što je "bezopasno": ono što je različito od toga, to je sumnjivo.

U praksi prevladavaju IDS sustavi označnog tipa. IDS sustav toga tipa promatra svojstva i sadržaje jednog ili više IP paketa koji prolaze preko njega i uspoređuje ih sa oznakama u svojoj

57

Page 58: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

bazi oznaka; ako utvrdi da ispitivani sadržaji imaju onakva svojstva kakva su opisana nekom oznakom iz njegove baze oznaka, onda te ispitivane sadržaje proglašava sumnjivima. Svojstva IP paketa koja sustav IDS promatra (ispituje) su IP adresa i broj porta izvora i odredišta, protokol čiji segment prenosi dani paket, i vrijednosti drugih polja iz zaglavlja segmenta. Uspoređivanjem sadržaja IP paketa sa oznakama iz svoje baze, sustav IDS posebno pokušava otkriti poznate nizove bitova u tijelu paketa, koji su karakteristični za sadržaj (softver) od kojeg se sastoji neki poznati napad (virus i slično).

Dakle, sustav IDS pokušava otkriti da li u paketu (kojeg ispituje) postoji neki destruktivni sadržaj, na taj način da sadržaj paketa uspoređuje s oznakama iz svoje baze oznaka. Oznake pišu stručnjaci iz područja sigurnosti i zaštite u računalnim mrežama. Oni to čine na temelju proučavanja sadržaja paketa i postupaka (operacija) sa kojima je izveden (i od kojih se sastoji) neki raniji napad. Takvi napadi otkrivaju se, proučavaju i evidentiraju u bazi oznaka tek kad se dogode, što čini glavnu slabost ovakvih označnih zaštitnih sustava.

Sustavi IDS koji rade prema istom temeljnom načelu, mogu se razlikovati u realizaciji. Općenito, kad takav sustav otkrije neki sumnjiv sadržaj ili kretanje, tada proizvodi upozorenje (alert). IDS može poslati to upozorenje sustavu za upravljanje računalnom mrežom (network management system), ili administratoru računalne mreže; IDS može slati upozorenja administratoru u obliku poruka računalne pošte. Sustav IDS može slati takva upozorenja izravno, ili preko glavnog sustava IDS (za štićenu mrežu), ako takav sustav postoji. Sustav IDS može i samo spremiti kopije nekih sumnjivih sadržaja (paketa), za kasniju obradu, ako postoji opasnost da bi ti sadržaji mogli biti dio nekog napada (ili sadržavati destruktivan softver), ali to nije sigurno.

Sustav zaštite, čiji se rad zasniva na oznakama raznih vrsta napada (koje sustav skuplja u svojoj bazi oznaka) ima svoje slabosti. Takve oznake treba izrađivati i distribuirati. Veći problem od toga je što takve oznake omogućuju prepoznavanje (i zaštitu od) onih vrsta napada koji su poznati i za koje je netko napisao oznake. Takvi sustavi općenito ne mogu otkriti nove vrste i oblike napada, za koje još nemaju oznake u svojoj bazi oznaka. Daljnji problem je u tome što broj mogućih vrsta napada izgleda praktički neograničenim, tako da stalno raste broj oznaka u bazi sustava IDS. To čini rad toga sustava procesno sve zahtjevnijim: sve je teže usporediti svaki IP paket sa svakom oznakom iz baze oznaka, koja postaje sve veća. Ako je sustav IDS preopterećen i ne stigne ispitati sadržaj svakog paketa koji prolazi preko njega, nego preskače neke pakete, onda se može dogoditi da sustav propusti otkriti neki napad kojeg je mogao otkriti, s obzirom na oznake iz svoje baze oznaka.

Sustavi tipa IDS čiji rad se zasniva na otkrivanju anomalija, rade na taj način da pokušaju opisati ono što je normalno, i otkrivati ono što odstupa od toga. Ti sustavi promatraju sadržaje koji se prenose mrežom i operacije koje se odvijaju u mreži, i pokušavaju opisati ono što se u mrežnim sadržajima i aktivnostima smatra normalnim. Takvi formalni opisi normalnih pojava nazivaju se profilima. Profili normalnih pojava oblikuju se na temelju svojstava zaglavlja i sadržaja paketa koji se smatraju normalnima, i na temelju statističkih svojstava nizova paketa koji se smatraju normalnima. Tako se formira baza profila.

Sustav toga tipa štiti mrežu na taj način da pokušava otkriti pojave (pakete i tokove) koje odstupaju od svih profila normalnog koje sustav ima u svojoj bazi profila. Dakle, kod IDS sustava anomalijskog tipa (sa bazom profila), sustav uspoređuje pakete i tokove sa profilima (uzorcima) iz svoje baze: ako promatrani paket ili niz nije sličan nijednom od profila iz baze, onda je taj paket ili niz sumnjiv. IDS sustavi označnog tipa pokušavaju otkriti ono što je slično nečemu što je "sumnjivo"; IDS sustavi anomalijskog tipa pokušava otkriti ono što se razlikuje od onog što je "normalno". U praksi prevladava primjena prve metode rada (sa oznakama napada), ali neki IDS sustavi sadrže i elemente druge metode (sa profilima i otkrivanjem anomalija).

Dobra strana sustava koji rade prema načelu otkrivanja anomalija je u tome što takvi sustavi mogu otkriti novu vrstu napada prije nego što se taj napad raširi mrežom. Sustav ovdje ne treba

58

Page 59: PRAZNA (nova na HP)mradovan/rm2docs/RM2p4.docx · Web viewJer velik broj fiktivnih (lažnih) zahtjeva koje napadač šalje serveru sa mnogih računala, iscrpljuje ne samo procesne

čekati da netko napiše oznaku za novu vrstu napada i da tu oznaku distribuira na globalnoj razini. Sustav ovdje smjesta reagira na pojavu koja odstupa od profila normalnog stanja i kretanja, koje sustav ima u svojoj bazi profila. Ali problem je u tome što je teško definirati što je to normalan sadržaj i što su to normalni tokovi, a što nije takvo. Dakle, teško je definirati i formalno opisati profile normalnog na način da odstupanje od tih profila zaista znači da je to neki oblik napada.

Većina sustava IDS radi prema načelu prepoznavanja napada, na osnovu uspoređivanja paketa i tokova sa zapisima iz svoje baze oznaka napada. Neki takvi sustavi sadrže i komponente koje rade prema načelu otkrivanja anomalija. Neki javno dostupni sustavi tipa IDS, kao što je Snort, rade na različitim platformama (Windows, Linux, Unix) i procesiraju 100 Mbps ili više. U mrežama sa većim intenzitetima prometa može se instalirati više takvih sustava, na način da se promet dijeli između više sustava.

Kad se pojavi nova vrsta napada (virusa ili sličnog), kojeg sustav IDS na temelju svoje baze oznaka napada nije uspio prepoznati i spriječiti, onda oni koji otkriju napad obavještavaju o tome nadležne za pitanja sigurnosti. Nadležni mogu biti administrator mreže, lokalni ISP, regionalni centar za upravljanje računalnom mrežom, i proizvođači IDS softvera. Novi oblik napada treba čim prije opisati i taj opis treba čim brže distribuirati širom svijeta. U sustavu IDS definiran je način opisivanja napada, odnosno način oblikovanja oznaka napada. Za svaki novi napad, nadležna organizacija proizvodi oznaku za taj napad i tu oznaku uvrštava u bazu takvih oznaka, koja je dostupna preko Interneta. To može biti baza nekog proizvođača zaštitnog (antivirusnog) softvera, kojoj mogu pristupiti samo korisnici koji su kupili taj softver, ili javno dostupna baza.

Korisnici zaštitnih sustava kao što je IDS stalno preuzimaju nove oznake napada iz neke baze oznaka koja je dostupna preko Interneta, na svoje IDS sustave. Na taj način, nekoliko sati nakon pojave nove vrste napada, oznaka toga napada je već distribuirana širom svijeta i nalazi se u bazama IDS sustava korisnika i mreža do kojih još nije stigao novi oblik napada. Tako njihovi sustavi mogu prepoznati novi oblik napada i zaštititi njihove mreže od tog napada, kad taj napad stigne do njih. Dakle, brzom distribucijom oznaka (opisa) novih oblika napada (virusa i drugog) ostvaruje se preventivnu zaštitu za većinu mreža i korisnika u globalnoj mreži Internet. Ali "brzo" je relativan pojam; neki napadi (virusi) šire se vrlo brzo, tako da za nekoliko sati mogu izazvati velike štete širom svijeta.

Sustavi sigurnosti i zaštite nisu savršeni; ti sustavi ovdje teže ostvarenju potpune sigurnosti i zaštite računalnih mreža i mrežnih komunikacija, ali taj ideal nije dosežan. Sustave sigurnosti i zaštite treba uspoređivati jednog s drugim, i to prema većem broju kriterija. One sustave koji se u takvom uspoređivanju pokažu najboljima, valja smatrati dobrima, bez obzira na to što nisu savršeni.

Nadmetanje između onih koji smišljaju nove vrste napada na računalnu mrežu i na mrežnu komunikaciju i onih koji smišljaju obrane od tih napada, je trajan proces. O tom nadmetanju postoje razna mišljenja koja ovdje ne trebamo razmatrati. U svakom slučaju, oni koji napadaju računalnu mrežu i oni koji je štite, ne bi imali što raditi jedni bez drugih. Prvi bez drugih bi odmah uništili mrežnu komunikaciju, tako da više ne bi imali što napadati. Drugi bez prvih ne bi imali od čega štititi mrežu i postali bi nepotrebni.

+

59