Beruflich Dokumente
Kultur Dokumente
RAČUNARSKE MREŽE
SKRIPTA ZA IV RAZRED TEHNIČARA RAČUNARSTVA
Sadržaj
1 Mrežni operativni sistemi ..................................................................................... 2
2 Sloj aplikacije ..................................................................................................... 7
Uvod ................................................................................................................. 7
2.1 Web servis ................................................................................................... 9
2.1.1 Adresovanje, protokoli i kodovanje podataka .............................................10
2.2 Servis elektronske pošte ...............................................................................22
2.2.1 Arhitektura ............................................................................................22
2.2.2 SMTP ....................................................................................................23
2.2.3 POP3 .....................................................................................................24
2.3 Servisi za prenos fajlova FTP .........................................................................24
2.3.1 Sigurni FTP ............................................................................................25
2.3.2 NFS ......................................................................................................25
2.3.3 CIFS .....................................................................................................25
2.4 Servisi adresovanja ......................................................................................26
2.4.1 DHCP ....................................................................................................26
2.4.2 DNS ......................................................................................................27
2.5 Multimedijalni servisi ....................................................................................30
2.5.1 Telefonija ..............................................................................................30
2.5.2 Video konferencija ..................................................................................30
3 Osnove bezbednosti u računarskim mrežama ........................................................32
Uvod ................................................................................................................32
3.1 Tipovi napada ..............................................................................................32
3.1.1 Kriptoanaliza ..........................................................................................33
3.1.2 Razbijanje šifrata primenom sirove sile......................................................33
3.1.3 Napad posredovanjem u komunikaciji .......................................................34
3.1.4 Napad uskraćivanjem usluge ....................................................................35
3.2 Sistemi za zaštitu .........................................................................................36
3.2.1 Zaštita na nivou aplikativnog protokola .....................................................37
3.2.2 Zaštita na nivou transportnog protokola ....................................................37
3.2.3 Zaštita na nivou mrežnog protokola ..........................................................38
3.2.4 Firewall .................................................................................................40
3.2.5 Standardni šifarski algoritmi.....................................................................42
3.2.6 Trendovi ................................................................................................44
1 Network Programming in the .NET Framework .......................................................45
2
I POLUGODIŠTE
1 Mrežni operativni sistemi
Kao što računar ne može da radi bez operativnog sistema, mreža računara ne može da
funkcioniše bez mrežnog operativnog sistema. To znači da nije moguće deliti resurse
posmatranog računara, odnosno korisnici drugih računara neće biti u stanju da koriste
resurse posmatranog računara. Ponekad se kao skraćenica za mrežne operativne sisteme
koristi NOS.
Ukratko
Zavisno od proizvođača NOS-a, mrežni softver desktop računara može biti naknadno dodat
operativnom sistemu računara ili integrisan u njega.
Novell NetWare je najpoznatiji primer NOS-a kod koga se klijentski mrežni softver
naknadno dodaje (instalira). On se uklapa u postojeći operativni sistem tako da desktop
računar može obrađivati stand-alone i mrežne operacije.
S druge strane Windows je primer NOS-a u koji je integrisan mrežni softver.
Hardver i softver
Operativni sistem u računaru koordiniše interakciju između računara i programa—aplikacija
koje se izvršavaju. Upravlja alokacijom i upotrebom hardverskih resursa kao što su:
- Memorija,
- Procesorsko vreme,
- Prostor na disku,
- Periferni uređaji.
U mrežnom okruženju, serveri obezbeđuju resurse mrežnim klijentima, a klijentski mrežni
softver čini te resurse dostupnim klijentskom računaru.
Multitasking
Preemptive – operativni sistem može preuzeti upravljanje nad procesorom bez pitanja i
dozvole zadtaka koji se izvršava.
Nonpreemptive (cooperative) – u ovakvim sistemima zadatak odlučuje kada će
osloboditi procesor. Programi pisani za nonpreemptive multitasking sisteme moraju
uključivati procedure za upravljanje procesorom. Nijedan drugi program se ne može
izvršavati dok nonpreemptive program ne prepusti kontrolu nad procesorom.
3
Softverske komponente
Kod računara sa operativnim sistemom koji ne uključuje mrežne funkcije, mrežni klijent
softver mora biti instaliran kao dodatak postojećem operativnom sistemu. Drugi operativni
sistemi kao što je Windows, integrišu mrežne funkcije u postojeći operativni sistem. Pored
mrežnih komponenti za „svoj“ NOS, Windows uključuje i mrežne komponente za druge
NOS. Kada se podešava mrežno okruženje u kome su prisutni proizvodi različitih
proizvođača, važno je razmotriti pitanje interoperabilnosti (interoperability). Elementi ili
komponenete operativnog sistema računara, kaže se "interoperišu" kada su u stanju da
funkcionišu u različitim računarskim okruženjima. NetWare server, na primer, može
interoperisati sa drugim serverima kao što je Windows, a korisnici Apple računara mogu
interoperisati i sa (tj, pristupati resursima) NetWare i sa Windows serverima.
NOS kao što je prikazan na slici 1:
- Povezuje sve računare i periferale,
- Koordiniše funkcijama svih računara i periferala,
- Pruža bezbednost kontrolisanjem prava pristupa podacima i periferalima.
Slika 1
Klijentski softver
Kod stand-alone sistema, kada korisnik zada komandu koja zahteva da računar izvede
zadatak, zahtev preko lokalne magistrale stiže do CPU-a ( slika 2). Na primer, ako želimo
videti sadržaj direktorijuma (foldera) na lokalnom disku, CPU interpretira i izvršava
komandu i prikazuje listu.
Slika 2
U mrežnom okruženju, kada korisnik inicira zahtev za upotrebom resursa koji se nalazi na
serveru negde u mreži, zahtev se mora proslediti, tj redirektovati (preusmeriti), sa lokalne
4
Redirector
Slika 3
Slika 3 prikazuje preusmerenje zahteva. Korisnički računar je klijent jer traži uslugu od
servera. Server obrađuje zahtev klijenta i daje mu pristup ka resursu koji je zahtevan.
Drugim rečima, server servira tj uslužuje zahtev klijenta.
Designators (obeleživač)
Ako je potreban pristup deljenom folderu, i postoji pravo pristupa, operativni sistem će
obično ponuditi nekoliko izbora za način pristupa folderu. Na primer, u Windows-u može
se koristiti Windows Explorer za povezivanje na mrežni drive koristeći Network
(Neighborhood) ikonu. Takođe se može mapirati drive. (Drive mapping je dodeljivanje
slova ili imena disk drive-u tako da ga operativni sistem ili mrežni server mogu
identifikovati i locirati) Redirector čuva način na koji se pristupalo (drive designators) kom
mrežnom resursu.
Peripherals
Redirektori mogu poslati zahtev periferalima kao i deljenim folderima. Slika 4 opisuje takav
zahtev (zahtev ka serveru štampe). Zahtev je preusmeren od računara u kome je nastao
i poslat preko mreže do cilja. Cilj je u ovom slučaju, print server jer se zahtev odnosi na
štampu. Preko redirektora, LPT1 ili COM1 mogu pokazivati na mrežne štampače umesto
lokalnih. Redirektor će presresti bilo koji print job koji ide ka LPT1 i preusmeriti ga izvan
lokalne mašine ka specifičnom računaru u mreži.
Slika 4
Posredstvom redirektora, korisnik ne mora da brine o tome gde je tačna kolacija podataka
ili periferala, ili o kompleksnosti uspostavljanja veze. Da bi pristupio podacima na mrežnom
5
računaru, na primer, korisnik jedino treba da zada drive designator pridružen (dodeljen)
lokaciji resursa a redirektor utvrđuje stvarnu rutu.
Server Software
Pomoću server softvera, korisnici računara, mogu deliti podatke i periferale kao što su
štampači, crtači, modemi, folderi i sl. Na slici 5, korisnik zahteva sadržaj foldera na
deljenom udaljenom hard disku. Zahtev se prosleđuje posredstvom redirektora ka mreži,
a onda ka file and print server-u na kome je deljeni folder. Zahtev je odobren (granted), i
listing (sadržaj) foldera se vraća.
Slika 5
Sharing je termin koji se koristi da opiše resurse postavljene da budu javno (publicly)
dostupni za pristup na mreži. Skoro svi NOS ne samo da omogućavaju deljenje, već imaju
mogućnost da se ta deljivost dodatno definiše. Te dodatne mogućnosti su:
- Ratličiti korisnici – različite dozvole pristupa,
- Koordinisanje pristupa radi osiguranja da dva korisnika ne koriste ekskluzivni resurs
istovremeno.
Različite dozvole pristupa označavaju da pristup može biti takav da:
- Nekim korisnicima će biti dozvoljeno samo čitanje.
- Nekim korisnicima će biti dozvoljeno čitanje ali i menjanje sadržaja.
Radi olakšanja procesa upravljanja korisnicima u velikoj mreži, NOS koristi koncept grupe.
Dodavanjem pojedinaca u grupu, taj korisnik automatski nasleđuje privilegije definisane
za tu grupu.
Neki napredni NOS uključuju alate koji pomažu administratoru da prati dešavanja u mreži.
Ako se javi problem u mreži, ovi alati mogu detektovati znake problema i prikazati ih u
obliku grafikona, ili drugom formatu. Posredstvom ovih alata, mogu se preduzeti
korektivne aktivnosti u cilju stabilnog rada mreže.
Izbor NOS
U planiranju mreže, izbor NOS može biti znatno sužen ako se prvo utvrdi koja mrežna
arhitektura — client/server ili peer-to-peer — će se implementirati. Ovaj izbor može takođe
6
Ukratko
2 Sloj aplikacije
Uvod
Sa korisničke tačke gledišta računarske mreže predstavljaju samo infrastrukturu kojom
putem odgovarajućih aplikacija šalju i primaju podatke. Dva osnovna tipa softvera na sloju
aplikacije jesu korisničke aplikacije i servisi.
Popularno ime za servise na UNIX operativnim sistemima je demoni (engl. daemon). Ovaj
termin se u računarstvu prvi put pojavio 1963. godine, a upotrebili su ga učesnici na
projektu MAC kompanije IBM. Kao inspiraciju za uvođenje ovog termina učesnici projekta
navode Maksvelove demone iz oblasti fizike i termodinamike. Nazivi servisnih procesa na
UNIX operativnim sistemima se najčešće završavaju slovom d, na primer httpd, mysqld...
U praksi se često inficirajući deo „trojanskih konja“ (tip malicioznog softvera) realizuje u
vidu servisa koji od klijentske komponente – aplikacije koju koristi napadač - dobija
instrukcije. Rootkit alati na UNIX operativnom sistemu primer su navedenog softvera a
teško se otkrivaju jer se na specifičan način skrivaju od sistemskih alata za listanje aktivnih
procesa.
Osnovna klijent-server arhitektura podrazumeva postojanje dva sloja – sloja klijenta i sloja
servera. Kod dvoslojne klijent-server arhitekture softversko rešenje se razlaže na jednu
isključivo klijentsku, i jednu isključivo serversku komponentu. Primer osnovne, dvosjlojne
klijent-server arhitekture jeste mreža u kojoj korisnici putem aplikacija na svojim
računarima pristupaju centralnoj bazi podataka. U praksi su česte i klijent-server
arhitekture sa tri sloja jer se njima lakše rešavaju pitanja zaštite podataka i kontrole
pristupa. Na primer, Veb aplikacije najčešće koriste troslojnu klijent-server arhitekturu na
takav način da osnovni klijentski deo čini Veb brauzer, srednji sloj čini aplikativni Veb
server, a server baze podataka čini treći, serverski sloj. U takvoj organizaciji srednji sloj je
9
realizovan kao serverska komponenta, gledano sa aspekta Veb brauzera, odnosno kao
klijentska komponenta, gledano sa aspekta servera baze podataka.
Na primeru troslojne arhitekture jasno se može steći uvid da se pojmovi „klijent“ i „server“
ne odnose na hardverske karakteristike računara, već na tipove procesa, ili čak njihove
procedure, koji se na tim računarima izvršavaju. Ukoliko neki proces, ili jedan njegov deo,
zahteva uslugu od drugog procesa (bilo na lokalnom ili na udaljenom računaru) njegovo
ponašanje se spada u klijentski deo klijent-server arhitekture. I obrnuto, ukoliko neki
proces čeka na zahteve drugih procesa, njegovo ponašanje spada u serverski deo klijent-
server arhitekture. Opšte pravilo za određivanje uloge kod klijent-server arhitekture
definiše da je klijentska strana ona koja od druge strane zahteva uslugu, a da je serverska
strana ona koja čeka na zahtev od druge strane i isporučuje odgovor na njega.
Veb ujedno predstavlja i servis koji je najviše evoluirao od svog nastanka. Takođe, bez
obzira na broj uvedenih funkcionalnosti, tehnologije na kojima se Veb zasniva još uvek su
u fokusu mnogobrojnih razvojnih timova jer se smatra da one predstavljaju primarnu
platformu za rad i razvoj aplikativnog softvera u budućnosti. Danas postoje značajne
kompanije koje svoje poslovanje kompletno zasnivaju na Vebu, a umnožavaju se i profesije
i discipline koje su usmerene ka njemu (Veb kopirajting, Internet marketing, optimizacija
za pretraživače...).
Inicijalno, Veb je razvijan kao sistem za povezivanje različitih dokumenata. Takav Veb je
danas poznat pod nazivom „Veb prve generacije“ (Veb 1.0). Međutim, potencijali ovog
servisa ubrzo su omogućili njegovo korišćenje u vidu potpuno funkcionalnih korisničkih
aplikacija. Razvojem pridruženih servisa višeg nivoa, Veb se od svoje projektovane
konačne funkcije sve više transformisao u infrastrukturni servis. Danas, se pod nazivom
„Veb druge generacije“ podrazumevaju upotreba i tehnologije Veba koje omogućavaju
razmenu informacija, kolaboraciju i socijalizaciju korisnika.
Uniformni lokator resursa (engl. Uniform Resource Locator, URL) definiše način kodovanja
informacija za lociranje i pristup resursima na Internetu. U pitanju je Internet standard
koji se zbog pogodnosti koje nudi, osim za resurse na Internetu, često koristi i u lokalnim
mrežama, kao i u softverskim sistemima koji ne podrazumevaju distribuiranu obradu
podataka. Tipovi resursa koji se ovim načinom adresovanja lociraju nisu ograničeni, a
mogu biti elektronski dokumenti, njihove grafičke i multimedijalne komponente, softverske
komponente i stanja aplikacija, i t.d.
Za potrebe pristupa različitim resursima definisano je više šema za opisivanje lokacije.
Sama šema predstavlja prvi deo lokatora i najčešće se odnosi na aplikativni protokol kojim
se pristupa resursu. Ostali deo lokatora čini adresa specifična za tu šemu i od nje je
odvojena sa dve tačke. Specifikacija šema koje se koriste na Internetu podrazumeva
postojanje dve kose crte nakon separatora između šeme i za nju specifične adrese. Pored
ovog, lokator resursa može posedovati i više separatora koji određuju njegove različite
delove.
Kada je u pitanju Veb, zahtevani delovi uniformnog lokatora resursa na njemu su šema
(HTTP ili HTTPS protokol) i adresa domaćina (simbolička ili logička). Ovako jednostavni
lokatori se uglavnom koriste za inicijalni pristup Veb sajtovima. Port je takođe neophodan
deo uniformnog lokatora resursa ali se on u savremenim Veb brauzerima ne prikazuje
ukoliko se koriste podrazumevane vrednosti za protokol (port 80 za HTTP protokol i port
443 za HTTPS protokol).
Osim zahtevanih delova u praksi se često koristi i putanja, upit i identifikator fragmenta.
Pod putanjom se podrazumeva hijerarhijska putanja do resursa na samom domaćinu a ona
može biti putanja na fajl-sistemu ili se može dinamički obrađivati od strane Veb servera
(primer: mod_rewrite modul Apache Veb servera). Upit, kao deo lokatora, najčešće se
koristi kod Veb aplikacija za prosleđivanje parametara serveru putem GET metoda HTTP
protokola. Podrazumevana uloga identifikatora fragmenta je skakanje na određeni deo
dokumenta nakon njegovog učitavanja, s tim da određene Veb tehnologije na strani
klijenta mogu iskoristiti ovaj parametar i za druge funkcionalnosti. Inače, sam identifikator
fragmenta se ne šalje serveru već isključivo služi za lokalnu upotrebu unutar Veb brauzera.
Neki resursi na Internetu i u ostalim računarskim mrežama javno su dostupni, dok se za
pristup nekima zahteva potvrđivanje identiteta korisnika kome je pristup odobren. Različiti
protokoli nude različite sisteme za utvrđivanje identiteta korisnika a sam HTTP protokol
nudi jednostavan sistem za autorizaciju korišćenjem korisničkog imena i lozinke.
Ovi pristupni parametri se takođe mogu uključiti u uniformni lokator zaštićenog resursa,
od domaćina odvojeni znakom „@“, a međusobno odvojeni dvema tačkama
(korisnik:lozinka@domaćin). Pri korišćenju sistema autentifikaciju HTTP protokola treba
imati u vidu da on samostalno ne nudi ozbiljan nivo zaštite, a da uključivanje korisničkog
imena i lozinke u uniformni lokator resursa takođe može dovesti do bezbednosnih
problema.
12
Protokol za prenos hiperteksta ne definiše stanje veza (engl. stateless), niti se to zahteva
od strane klijentske i serverske implementacije. To u praksi znači da server na svaki zahtev
gleda van konteksta, odnosno da se za svaki novi zahtev (od strane istog klijenta ka istom
serveru, čak i ka istom ili direktno referenciranom resursu) ostvaruje potpuno nova veza.
Ovakav pristup se mogao smatrati optimalnim (po pogledu jednostavnosti protokola i
njegove implementacije) u ranim fazama razvoja Veba kada se on uglavnom koristio za
pristum jednostavnim, statičnim dokumentima. Međutim, pojavom Veb aplikacija kontekst
sesije je postao zahtevana funkcija protokola za prenos hiperteksta. Kontekst sesije kod
Veb aplikacija je značajan jer samoj aplikaciji pruža informacije o tome da li se korisnik
uspešno autorizovao, da li se nalazi u nekom od koraka složene aktivnosti, i tome slično.
Podrška za sesiju nije ugrađena direktno u protokol za prenos hiperteksta već je
realizovana u vidu specifikacije funkcija klijentske i serverske implementacije. Serverska
implementacija je proširena posebnim funkcijama koje omogućavaju kontekst sesije kroz
rezervisanje namenskog, trajnijeg memorijskog prostora za svakog pojedinačnog klijenta.
Sa druge strane, zadatak klijenta jeste čuvanje i dostavljanje identifikatora sesije pri
svakom zahtevu ka serveru.
13
2.1.1.4 HTML
Jezik za označavanje hiperteksta (engl. Hyper Text Markup Languagem, HTML) je jezik iz
porodice jezika za označavanje (engl. markup language). Jezici za označavanje se ponekad
svrstavaju u programske jezike, što je pogrešno. Uloga jezika za označavanje je da označe
delove dokumenta. Na primer:
2.1.1.5 XML
Iz deklaracije funkcije vidi se da je njen naziv „sabiranje“, da kao argumente prihvata dva
cela broja i da vraća celobrojnu vrednost. Ovu funkciju je jednostavno pozvati iz programa
u kome se ona nalazi:
c = sabiranje(2, 3);
XML omogućava definisanje poziva funkcije u obliku pogodnom za prenos putem mreže
(naravno, uz postojanje adekvatnih interfejsa na obe strane):
<naredba>
<pokrenuti>sabiranje</pokrenuti>
<argument tip='int'>2</argument>
<argument tip='int'>3</argument>
</naredba>
<odgovor>
<rezultat tip='int'>5</rezultat>
</odgovor>
15
Iako jednostavan, ovaj primer jasno pokazuje kako je putem poruka u XML formatu
moguće distribuirati pozive funkcija a samim tim i obradu podataka. U nastavku su
analizirane tri tehnologije (protokola) - XML-RPC, SOAP i WDDX - koje omogućavaju
povezivanje softverskih sistema putem XML-a.
2.1.1.6 SOAP
SOAP (Service Oriented Arhitecture Protocol ili Simple Object Access Protocol) protokol
omogućava razmenu XML poruka putem računarskih mreža (najčešće HTTP protokola).
Ovaj protokol predstavlja osnovni sloj grupe protokola koja se koristi za definisanje,
lociranje i korišćenje Veb servisa (engl. Web services stack) i kao takav čini osnovu
frejmvorka za razmenu poruka kao apstraktnog sloja OSI i TCP/IP modela. Osim što
omogućava pozivanje procedura na udaljenim računarima (engl. Remote Procedure Call,
RPC), SOAP protokol omogućava i druge tipove poruka. SOAP protokol je naslednik
XMLRPC protokola i koristi ista pravila za transport ali se razlikuje po načinu formatiranja
(struktuiranja) poruka. Primer SOAP zahteva bi izgledao ovako:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getStudentData xmlns="http://studenti.unis.local/ws">
<Student_ID>2704</Student_ID>
</getStudentData>
</soap:Body>
</soap:Envelope>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getStudentDataResponse xmlns="http://studenti.unis.local/ws">
<getStudentDataResult>
<ID>2704</ID>
<Ime>Petar</Ime>
<Prezime>Petrović</Prezime>
<BrojIndeksa>III-8/2004</BrojIndeksa>
<Fakultet_ID>2</Fakultet_ID>
<Fakultet_Kod>FPI</Fakultet_Kod>
16
</getStudentDataResult>
</getStudentDataResponse>
</soap:Body>
</soap:Envelope>
SOAP protokol predstavlja odličnu osnovu za uvođenje servisno orijentisane arhitekture u Veb
aplikacije ali i način da se pristup određenim podacima i procedurama omogući svim hardverskim
i softverskim uređajima koji imaju podršku za njega.
2.1.1.7 WDDX
Razmena podataka putem Veba (engl. Web Distributed Data eXchange, WDDX) tehnologija
omogućava razmenu podataka između raznorodnih softverskih okruženja putem
prevođenja osnovnih tipova podataka u XML format. U podržane tipove podataka spadaju
brojevi, stringovi, strukture, nizovi, itd. S obzirom da većina programskih jezika koristi iste
ili slične tipove podataka, WDDX je podržan od strane više programskih jezika među kojima
su
i PHP, Ruby, Python, Java, C++, .Net, Flash, Lisp, Haskell ... Prevođenjem interne strukture
u WDDX paket dobija se paket kojim može da izgleda ovako:
<wddxPacket version='1.0'>
<header comment='UNIS'/>
<data>
<struct>
<var name='ID'>
<number>2704</number>
</var>
<var name='Ime'>
<string>Petar</string>
</var>
<var name='Fakultet'>
<array length='2'>
<number>2</number>
<string>FPI</string>
</array>
</var>
</struct>
</data>
</wddxPacket>
{
"ID": 2704,
"Ime": "Petar",
"Prezime": "Petrović",
"BrojIndeksa": "III-8/2004",
"Fakultet": {
"ID": 2,
"Kod": "FPI"
}
}
Bez obzira na pominjanje JavaScript tehnologije u nazivu JSON-a, ovaj format se može
koristiti i u većini aktuelnih programskih jezika, kao što su ActionScript, C, C++, C#, Java,
Perl, PHP, Python, Ruby, i drugi.
Osnovne funkcije serverske strane Veb servisa čine osluškivanje na zadatom portu na
zahtev klijenta, obrada zahteva i slanje rezultata obrade. Zahtevi i odgovori na njih se
podrazumevano razmenjuju korišćenjem protokola za prenos teksta i u njime definisanom
formatu poruka.
Složenost realizacije serverske strane Veb servisa varira od jednostavnih skriptova koji
koriste biblioteke sa implementacijom protokola za prenos hiperteksta, pa sve do složenih
farmi servera sa ogromnim diverzitetom primenjenih programskih jezika, modela
realizacije, softverskih arhitektura, sistema za upravljanje bazama podataka, inteligentnim
algoritmima, i tako dalje. U praksi se najčešće sreće dvoslojna klijent-server arhitektura
(za potrebe isporuke statičnih Veb prezentacija) i troslojna klijent-server arhitektura (za
potrebe isporuke dinamičnih Veb prezentacija i aplikacija).
18
Ulogu klijenta kod Veb servisa mogu preuzimati različite softverske komponente. Međutim,
u praksi se kao klijenti najčešće identifikuju Veb brauzeri (korisničke desktop aplikacije) i
roboti (automatizovani agenti Veb pretraživača).
Veb brauzer predstavlja složenu korisničku aplikaciju, sastavljenu od više različitih
komponenata. Primarnu komponentu Veb brauzera čini sama implementacija protokola za
prenos hiperteksta. Na osnovu podrške za ovaj protokol vrši se preuzimanje
hipertekstualnih dokumenata. Međutim, sadržaj
hipertekstualnih dokumenata se nakon preuzimanja interpretira, a zatim prikazuje
korisniku.
20
U praksi se najčešće koriste dva termina koji opisuju tip sadržaja na nekom Veb sajtu -
Veb prezentacija i Veb aplikacija. U ranim fazama razvoja Veb tehnologija razlika između
Veb prezentacija i aplikacija određivana je na osnovu dinamičnosti sadržaja - da li je
sadržaj generisan korišćenjem programskog jezika na serveru ili je zahtevani resurs
jednostavno učitan sa fajl-sistema. U skladu sa tim, u Veb prezentacije su spadali sajtovi
koje su činili statični hipertekstualni dokumenti, dok su Veb aplikacijama smatrani sajtovi
čiji je sadržaj dinamički generisan za svaki pojedinačni zahtev.
Razvojem i intenzivnijom primenom Veb tehnologija navedena terminološka razlika između
Veb prezentacija i aplikacija počela je da se više odnosi na tip informacija kojima se
pristupa i način interakcije sa Veb sadržajem, a manje na tehnolgije koje su korišćene za
njegovu isporuku. Omogućavanje korišćenja programskih jezika na strani servera
omogućilo je i korišćenje sadržaja iz baza podataka za generisanje hipertekstualnih
dokumenata. Danas veoma popularan tip Veb aplikacija za dinamički razvoj Veb
prezentacija jesu sistemi za upravljanje sadržajem (engl. Content Management
System, CMS). Pod ovim nazivom se podrazumeva kompletno rešenje, iako se on odnosi
samo na administratorsku komponentu, odnosno komponentu koju koriste urednici
sadržaja. Nasuprot komponente za uređivanje sadržaja stoji komponenta koju koriste
posetioci, odnosno komponenta koja na osnovu sadržaja i parametara zahteva generiše
odgovarajuće hipertekstualne dokumente.
21
Danas postoji veliki broj već razvijenih sistema za upravljanje sadržaja od kojih je veliki
broj slobodno dostupan, čak i za komercijalno korišćenje. Najveći broj besplatnih sistema
za upravljanje sadržajima realizovan je u PHP programskom jeziku i podrazumevano koristi
MySQL sistem za upravljanje bazama podataka. U najpopularnije besplatne sisteme za
upravljanje sadržajem danas spadaju Džumla, Vordpres i Drupal. Nasuprot njima stoje
komercijalna rešenja kompanije Majkrosoft, Orakl i drugih.
Bez obzira na postojanje velikog broja već razvijenih rešenja mnoge organizacije se
odlučuju na samostalan razvoj sistema za upravljanje sadržajem, prvenstveno zbog
potrebe za specifičnim funkcionalnostima i višim nivoom bezbednosti.
22
2.2.1 Arhitektura
korisnički agent,
agent za podnošenje poruka,
agent za prenos poruka i
agent za isporuku poruka.
Pored navedenih pomponenata značajnu ulogu kod ovog servisa igra i skladište poruka
(engl. Message Store, MS) kao komponenta korisničkog agenta. Zadatak ove komponente
je da pravi arhivske kopije poruka koja se šalju ili preuzimaju u cilju omogućavanja
naknadnog pristupa korisnika njima. Kod većine popularnih klijenata za elektronsku poštu
poruke su organizovane u direktorijume.
Korisnički agent za elektronsku poštu (engl. Message User Agent, MUA) je interfejs između
korisnika i ostalog dela servisa elektronske pošte.
Najčešće realizacije ovog softvera su u vidu desktop ili Veb aplikacije. Zadatak korisničkog
agenta je da korisniku omogući slanje elektronskih poruka drugim korisnicima, kao i
pregled elektronskih poruka poslatih od strane njih.
Agent za podnošenje poruka (engl. Message Submission Agent, MSA) prihvata poruku od
korisničkog agenta, stavlja je u format propisan odgovarajućim standardima i prosleđuje
agentu za prenos poruka. Ovaj proces obavlja klijentsku ulogu protokola za prenos poruka
elektronske pošte. Agent za prenos poruka (engl. Message Transfer Agent) predstavlja
serversku implementaciju protokola za prenos poruka elektronske pošte. Ovaj proces
23
prihvata poruke od strane korisničkih agenata za podnošenje poruka ili od drugih agenata
za prenos poruka. U zavisnosti od da li predstavlja konačno odredište primljene poruke
ovaj agent poruke prosleđuje lokalnom agentu za isporuku poruka ili narednom agentu za
prenos poruka.
Agent za isporuku poruka (engl. Message Delivery Agent) zadužen je za smeštanje poruke,
primljene od poslednjeg agenta za prenos poruka, u elektronsko poštansko sanduče
primaoca (koje može biti realizovano putem fajl-sistema, SUBP-a ili na neki drugi način).
Isporuka poruke u sanduče korisnika ne znači da je korisnik nju istog trenutka pročitao,
već da je njegovom korisničkom agentu omogućen pristup poruci.
Dva osnovna tipa protokola koje koristi servis elektronske pošte jesu protokoli za slanje
poruka i protokol za pristup porukama u sandučetu. Kada su u pitanju protokoli za slanje
elektronske pošte, u praksi se gotovo uvek koristi jednostavan protokol za prenos
elektronske pošte (engl. Simple Mail
Transfer Protocol, SMTP). Sa druge strane, kada je u pitanju pristup korisničkog agenta
sandučetu sa elektronskom poštom u praksi se koriste relativno jednostavan protokol za
elektronsku poštu treće verzije (engl. Post Office Protocol version 3, POP3) i nešto složeniji
Internet protokol za pristup porukama (engl. Internet Message Access Protocol, IMAP).
Neke od osnovnih funkcija servisa elektronske pošte direktno zavise od sistema domenskih
imena. U ove funkcije spadaju pronalaženje naziva domaćina zaduženog za razmenu
elektronske pošte sa određenom organizacijom i prevođenje tog naziva u odgovarajuću
adresu Internet protokola. U slučaju da server domenskih naziva zadužen za određeni
Internet domen ne poseduje informaciju o tome koji server je zadužen za prijem i slanje
elektronske pošte, njena razmena sa adresama pri tom domenu neće biti moguća.
U poslednjih nekoliko godina znatno se popularizovalo korišćenje elektronske pošte putem klijenata u
vidu Veb aplikacija (engl. Webmail). Razlog tome je jednostavnije korišćenje kroz eliminisanje procesa
instalacije desktop aplikacije za elektronsku poštu, kao i mogućnost korišćenja aplikacije i
poruka sa bilo kog računara koji ima pristup Vebu. Uglavnom najkvalitetniji klijenti za
elektronsku poštu u vidu Veb aplikacija se korisnicima nude zajedno sa kompletnom
uslugom elektronske pošte (Google Mail, Hotmail, Yahoo), s tim da postoji i veliki broj
besplatnih Veb aplikacija ove namene (Roundcube, Horde/IMP, Squirrel Mail, AtMail i
druge).
2.2.2 SMTP
Osnovni zadatak jednostavnog protokola za prenos elektronske pošte (engl. Simple Mail
Transfer Protocol, SMTP) jeste da omogući pouzdan i efikasan prenos poruka ovog servisa.
Iako ovaj protokol nije direktno vezan za protokole nižeg nivoa već samo zahteva pouzdan
kanal za prenos podataka, on se uglavnom koristi u kombinaciji sa protokolom za kontrolu
prenosa, TCP.
Pre samog slanja elektronske pošte potrebno je uspostaviti dvosmerni komunikacioni kanal
između klijenta i servera. U slučaju da je poruka adresovana na višestruke primaoce koji
se nalaze na različitim domenima, zadatak je klijenta da uspostavi veze sa serverima za
elektronsku poštu svakog od njih. U slučaju da je jedna poruka adresovana na višestruke
primaoce za čije je domene zadužen isti server, klijent samo jedan put vrši slanje poruke.
24
Nakon uspostavljanja veze sa serverom klijent vrši slanje poruke putem niza naredbi.
Nakon što je prenos poruke izvršen klijent može zahtevati raskid uspostavljene veze ili
započeti slanje naredne poruke. Osim za slanje poruke, veza sa serverom elektronske
može se uspostavljati i za druge potrebe, kao što su provera ispravnosti adrese primaoca
ili preuzimanje adresa članova liste za elektronsku poštu.
Značajnu karakteristiku SMTP protokola predstavlja i njegova mogućnost da prenosi
poruke kroz višestruke mreže. To znači da server koji prima poruku može biti njeno
konačno odredište ili samo posrednik (relej) u dostavljanju poruke do njega, odnosno da
dostavljanje poruke primaocu može biti izvršeno unutar jedne direktne veze ili putem više
veza između različitih servera.
2.2.3 POP3
Protokol za elektronsku porštu (engl. Post Office Protocol version 3, POP3) namenjen je da
korisničkim aplikacijama omogući preuzimanje i upravljanje porukama u sandučetu
elektronske pošte na serveru. U pitanju je jednostavan, ali i veoma popularan protokol
navedene namene.
Protokol za elektronsku poštu definiše tri stanja veze: stanje autorizacije, stanje
transakcija i stanje ažuriranja. Stanje autorizacije počinje odmah nakon uspostavljanja
veze sa serverom. U okviru ovog stanja vrši se utvrđivanje identiteta korisnika na osnovu
korisničkog imena i lozinke koje on dostavlja.
Dve osnovne naredbe u stanju autorizacije su USER i PASS kojima klijent zadaje svoje
korisničko ime i lozinku.
Nakon uspešnog utvrđivanja identiteta korisnika prelazi se u stanje transakcija. Prelaskom
u ovo stanje zaključava se poštansko sanduče identifikovanog korisnika, odnosno
onemogućava mu se pristup iz paralelnih sesija. Unutar stanja transakcije klijent može
zadavati sledeće naredbe:
• STAT - zahteva se ispisivanje trenutnog statusa poštanskog sandučeta, odnosno broja
poruka u njemu i njihove veličine u bajtovima;
• LIST - zahteva se preuzimanje zaglavlja poruka u poštanskom sandučetu;
• RETR - zahteva se preuzimanje kompletne poruke čiji je redni broj naveden nakon
naredbe;
• DELE - zahteva se označavanje za uklanjanje poruke čiji je redni broj naveden nakon
naredbe; ovako označene poruke se uklanjaju nakon prelaska veze u stanje ažuriranja;
• RSET - zahteva se poništavanje označavanja poruka za uklanjanje;
• NOOP - ova naredba nema nikakvu drugu namenu osim da se potvrdi veza između
klijenta i servera da ne bi došlo do njenog automatskog prekida nakon određenog perioda
nekativnosti;
• QUIT - zahteva se prekid sesije, odnosno prelazak u stanje ažuriranja.
Ovi nedostaci ne predstavljaju problem kod lokalnih mreža čiji se komunikacioni kanali
najčešće smatraju bezbednim. Međutim, korišćenje FTP protokola putem mreže čije je
kanale moguće prisluškivati (npr. Internet) otvara sledeće bezbednosne rizike:
Usled pomenutih bezbednosnih rizika pri korišćenju FTP-a, pojavile su se dve različite
implementacije sigurnog FTP-a:
1. SFTP (SSH File Transfer Protocol) - FTP baziran na SSH (Secure SHell) protokolu.
2. FTPS (File Transfer Protocol over SSL) - FTP sa korišćenjem SSL ili TLS enkripcije.
2.3.2 NFS
Mrežni fajl-sistem (engl. Network File System, NFS) najčešće je korišćeni fajl-sistem ovog
tipa na UNIX operativnim sistemima. Razvila ga je kompanija San Majkrosistems. Mrežni
fajl-sistem je realizovan na klijent-server arhitekturi. To znači da računar na kome se
nalaze putem mreže dostupni fajlovi poseduje serversku softversku komponentu, a
računari koji tim fajlovima pristupaju putem mreže
klijentske softverske komponente.
2.3.3 CIFS
SMB (Server Messages Block) je protokol aplikativnog sloja OSI modela i najčešće se koristi
za razmenu fajlova, deljenje štampača i serijskih portova između računara na mreži.
Uglavnom se koristi na računarima pod MS Windows operativnim sistemima. SMB je
originalno predstavljen od strane IBM-a sa ciljem da od DOS-ovog "Interrupt 33" lokalnog
pristupa fajlovima napravi mrežni fajl sistem. Međutim, opšte rasprostranjena varijanta
26
2.4.1 DHCP
mreže koji se baziraju na zloupotrebi ovog servisa - zauzimanje svih mrežnih adresa na
serveru, umetanje napadača
kao podrazumevani mrežni prolaz.
2.4.2 DNS
Sistem domenskih imena (engl. Domain Name System, DNS) je sistem koji čuva
informacije vezane za imena domena u vidu distribuirane baze podataka, a realizovan je
kao klijent-server servis. Najvažnija funkcionalnost DNS-a je prevođenje domenskih imena
u adrese Internet protokola i obrnuto. Većina ostalih mrežnih servisa (Veb, elektronska
pošta, prenos fajlova itd.) koristi ili ima mogućnost da koristi DNS servis. Na primer, jedna
od funkcionalnosti DNS-a je i obezbeđivanje informacije o tome koji serveri su zaduženi za
razmenu elektronske pošte za određeni domen. Bez ove funkcionalnosti DNS-a servis za
razmenu elektronske pošte ne bi mogao da funkcioniše.
Sistem domenskih imena razvijen je kao odgovor na porast veličine računarskih mreža,
porast broja računarskih mreža (i pojave Interneta) i potrebu za jednostavnijim
adresovanjem računara na mreži. Pod jednostavnijim adresovanjem se misli na
prilagođavanje mrežnog adresovanja karakteristici ljudi da lakše pamte simbolička imena
od brojeva (na primer, lakše je zapamtiti www.dir.singidunum.ac.rs od 212.62.45.222).
Problem je u početku bio rešen putem hosts fajlova na svakom od računara na mreži.
Međutim, porastom broja računara u računarskim mrežama nedostaci ovakvog rešenja su
postali ozbiljan problem:
1. Uzmimo za primer računarsku mrežu od N članova.
2. N računara čuva informaciju o N članova te mreže u lokalnim hosts fajlovima:
1. 192.168.1.1 računar1.lokalna-mreža
2. 192.168.1.2 računar2.lokalna-mreža
3. 192.168.1.N računarN.lokalna-mreža
3. Problem 1: dodavanjem novog računara u mrežu potrebno je na N računara dodati novi
zapis u hosts fajl i na novom računaru uneti kompletan hosts fajl
4. Problem 2: izmenom postojećeg računara u mreži potrebno je na N računara izmeniti
postojeći zapis u hosts fajlu
5. Problem 3: uklanjanjem postojećeg računara iz mreže potrebno je na N-1 računara
dodati ili ukloniti zapis iz hosts fajla
Iz navedenog se jasno vidi da kod malih mreža hosts fajlovi mogu biti jednostavnije rešenje
od DNS-a jer nema potrebe za postavljanjem DNS servera. Međutim, kod velikih mreža
administracija se znatno otežava jer se pri svakoj izmeni mreže ona odnosi na sve računare
u mreži. Prvi korak ka rešavanju navedenih problema bio je distribuirani hosts fajl (jedan
hosts fajl u mreži kome mogu da pristupaju svi članovi mreže) a problem je u potpunosti
rešen 1983. godine kada je Pol Mokapetris izumeo sistem domenskih imena.
Hosts fajlovi se mogu koristiti u kombinaciji sa DNS-om. U tom slučaju oni imaju prioritet
nad DNS-om tj. pri razrešavanju nekog imena prvo se proverava sadržaj hosts fajla a tek
ukoliko on ne sadrži informaciju o traženom imenu upit se šalje DNS serveru. Ovakav
redosled u razrešavanju imena ima svoje dobre strane. Na primer, moguće je “zaobići”
DNS tj. moguće je zameniti adresu nekog računara pri lokalnom razrešavanju imena –
unosom zapisa “0.0.0.0 ad.doubleclick.net” u hosts fajl lokalnog računara on neće biti u
mogućnosti da pristupi stvarnoj adresi “ad.doubleclick.net”. Posledica ovoga je da pri
surfovanju Internetom nijedan sadržaj sa pomenute adrese neće biti dostupan. Međutim,
kako sa pomenute adrese najčešće dolaze samo reklame, one neće biti dosupne tako da
će se to odraziti većom brzinom učitavanja ostalih sadržaja u kojima se one prikazuju. Sa
druge strane, zaobilaženje DNS-a moguće je kao posledica inficiranja sistema malicioznim
softverom. Na primer:
1. Napadač kreira Veb stranicu na sopstvenoj adresi Internet protokola - X.X.X.X - koja je
različita od adrese na kojoj se nalazi domen www.google.com - Y.Y.Y.Y.
28
Prostor domenskih imena je stablo za čiji svaki čvor postoji zapis u DNS-u nadležnom za
tu zonu. U nadležnom DNS serveru (engl. authoritative DNS nameserver) moguće je za
određenu zonu deklarisati podzone putem deklarisanja odgovarajućih DNS pod-servera.
Za razumevanje sistema domenskih imena i načina njegovog funkcionisanja potrebno je
razumeti samu strukturu imena domena (engl. domain name). Naziv domena se sastoji od
dva ili više delova razdvojenih tačkama. Uzmimo za primer domen dir.singidunum.ac.rs:
• Prva oznaka sa desne strane predstavlja domen najvišeg nivoa (engl. top level domain),
u ovom slučaju rs.
• Svaka naredna oznaka gledano sa desne strane - ac, singidunum i dir - predstavlja
poddomen. Maksimalan broj poddomena je 127 a svaki od članova može imati maksimalnu
dužinu od 63 karaktera, s tim da celokupna dužina naziva (uključujući sve poddomene i
tačke kojim su razdvojeni) ne sme preći 255 karaktera.
Domen može imati definisanih jedan ili više imena domaćina (engl. hostname) kojima su
pridružene adrese Internet protokola. U navedenom slučaju, domen je
dir.singidunum.ac.rs a ime domaćina bi moglo da bude www.dir.singidunum.ac.rs sa
odgovajućom adresom Internet protokola 212.62.45.222
Servis sistema domenskih imena čine hijerarhijski povezani serveri. Za svaki od domena
mora da postoji deklarisan jedan ili više nadležnih DNS servera koji su zaduženi za čuvanje
i davanje informacija o njemu. Jedan DNS server može biti zadužen i za veći broj potpuno
nezavisnih domena. U korenu stabla postoje specijalni DNS serveri koji se zovu koreni
serveri (engl. Root servers) i oni su zaduženi za domene najvišeg nivoa - domene na
29
samom korenu stabla. Bez pomenutih korenih servera rad Interneta ne bi bio moguć jer
oni čine osnovu svakog domenskog imenovanja na njemu. Trenutno postoji 13 korenih
servera i njihova imena su [A-M]. root-servers.net.
Domen najvišeg nivoa je prva s desna oznaka u svakom imenu domena - u domenu
dir.singidunum.ac.rs domen najvišeg nivoa je rs. Postoje tri kategorije domena najvišeg
nivoa:
1. domeni najvišeg nivoa vezani za države - domeni dužine dva slova vezani za zemlju ili
određeni geografski prostor: rs – Republika Srbija, ru - Ruska Federacija, cn - Narodna
Republika Kina i tako dalje;
2. generički domeni najvišeg nivoa - domeni koji se koriste za određenu klasu organizacija:
com - komercijalni sistemi, org - neprofitne organizacije, edu - obrazovne ustanove i tako
dalje;
3. infrastrukturni domeni najvišeg nivoa - jedini u ovoj grupi je arpa domen.
Za našu državu, kao i za sve države čije pismo sadrži i druge znakove sem engleskog
alfabeta, značajna je od skora dostupna mogućnost korišćenja i međunarodnih znakova u
nazivu domena. U skladu sa njom, definisano je i više domena najvišeg domena za
navedeni tip država. Kada je su u pitanju ćirilični domeni najvišeg nivoa, Republika Srbija
je, prvenstveno zahvaljujući profesionalnom i efikasnom radu RNIDS-a, obezbedila srb
domen najvišeg nivoa, odmah nakon Ruske federacije. Početak javne upotrebe ovog
domena planiran je za kraj 2011. godine.
Klijentska komponenta DNS sistema naziva se razrešivač (engl. resolver). Ova
komponenta se obraća DNS serveru da bi od njega dobila adresu Internet protokola za
zadato ime domena. Razrešivač je sistemska komponenta koja se koristi posredno,
odnosno putem programa kojima je ova usluga potrebna.
Razrešivači domenskih imena koriste sistemske mrežne parametre koji najčešće sadrže
logičku adresu jednog ili dva DNS servera. Primer korišćenja DNS usluge:
Na ovaj način aplikacija na klijentskom računaru dobija adresu Internet protokola Veb
servera i putem te adrese prosleđuje zahtev za Veb stranicom /index.php. Ovaj primer
objašnjava rekurziju u radu DNS-a. Treba imati u vidu da jedan DNS server može čuvati
informacije o više različitih domena kao i da više DNS servera mogu pružati informaciju o
jednom domenu.
2.5.1 Telefonija
Internet telefonija predstavlja jedan od servisa koji se mogu koristiti putem Internet mreže
i mreža zasnovanih na Internet tehnologijama. Ovaj servis se često sreće i pod nazivom
„glas preko Internet protokola“ (engl. Voice over IP, VoIP). Osnovni zadatak Internet
telefonije je da omogući migraciju popularnih servisa sa javne telefonske mreže (prenos
glasa i faksimila) na Internet tehnologije.
Internet telefonija se realizuje korišćenjem više različitih zatvorenih i otvorenih protokola.
Istorijski najznačajniji set protokola za realizaciju Internet telefonije je H.323, kao ITU-T
preporuka iz 1996. godine. Ovaj set protokola omogućuju prenos glasa i video signala a
podržan je u većini sistema za Internet telefoniju i video-konferencije. Pored H.323
protokola u praksi se sve češće sreće i Session Initiation Protocol (SIP) kao protokol za
uspostavljanje i kontrolu sesija Internet telefonije.
Jedna od za ovaj rad najznačajnijih karakteristika Internet telefonije je korišćenje IP
protokola od strane protokola koji se koriste za njenu realizaciju. To znači da se
realizacijom sistema zaštite na nivou IP protokola mogu štititi i podaci komunikacionih
sesija Internet telefonije.
moguće. Trenutno najčešće korišćeni javni standardi za kodiranje audio/video poruka su:
H.320, H.323 i MPEG-2.
Ovi standardi međusobno nisu kompatibilni ali postoje aplikacije koje omogućavaju
korišćenje više od jednog standarda. Poseban vid video konferencija jeste Webcasting. On
omogućava jednosmerni prenos audio/video materijala, od servera ka klijentima.
Audio/video materijal se kreira i postavlja na server a klijenti zatim pristupaju materijalu.
Za ovaj vid video-konferencija trenutno ne postoje formalni standardi ali na tržištu postoji
veći broj rešenja baziranih na de-fakto standardima.
32
Iako greške svih pomenutih kategorija mogu imati katastrofalne posledice, ovo poglavlje
se bavi greškama četvrtog tipa jer se one mogu klasifikovati kao napadi i sa sobom
najčešće nose najveći negativan uticaj na poverljivost i dostupnost resursa i nesmetan rad
mreže. Tema ovog poglavlja jeste bezbednost računarskih mreža ili tehnička rešenja za
zaštitu računarskih mreža i putem njih dostupnih resursa od neregularnog korisničkog
ponašanja.
3.1.1 Kriptoanaliza
Glavni nedostatak primene metoda „sirove sile“ jeste vreme potrebno za razbijanje lozinki
i ključeva veće bitske dužine, jer svaki dodatni bit lozinke ili ključa duplira potrebno vreme
(eksponencijalni rast). Iz tog razloga se u praksi (uglavnom kod razbijanja pristupnih
lozinki) često koriste modifikovani algoritmi i rečnici često korišćenih izraza.
Principi i mogućnosti odbrane od ovog tipa napada znatno se razlikuju u zavisnosti od toga
da li se štiti pristup sistemu ili šifrovani podaci koji se prenose putem mreže. Za slučaj
zaštite sististema od neovlašćenog pristupa kao primer se može uzeti UNIX operativni
sistem, njegovi bezbednosni mehanizmi i njihova evolucija.
U ranim fazama razvoja računara, njihova procesorska snaga i broj korisnika bili su (sa
bezbednosnog aspekta) zanemarljivi te su pristupne lozinke korisnika čuvane u šifrovanom
obliku (heš funkcije) u javno dostupnom fajlu /etc/passwd. Međutim, uporedo sa razvojem
procesorske snage računara i rastom broja korisnika javili su se prvi slučajevi zloupotrebe
pristupnih parametara ostalih korisnika sistema koji su bili otkriveni primenom metoda
„sirove sile“ na šifrate lozinki. Iz ovog razloga šifrati lozinki su izmešteni u fajl /etc/shadow
kome je pristup odobren samo administratoru sistema i procesu koji vrši prijavljivanje
korisnika na sistem.
34
Sledeći bezbednosni problem koji se javio jeste pojava alata koji su za metod primene
„sirove sile“ iskoristili sistemsku naredbu za promenu identiteta su i na taj način iskoristili
posredan pristup heš vrednosti lozinke putem
procesa za prijavljivanje korisnika na sistem. Ovi alati su omogućavali maksimalno
iskorišćavanje performansi sistema za razbijanje heš vrednosti lozinke time što se moglo
ispitati više desetina, stotina ili hiljada vrednosti (u zavisnosti od procesorske snage
računara) u toku jedne sekunde.
Ovaj bezbednosni problem je rešen izmenom sistema za prijavu korisnika na sistem tako
da su dodata čekanja od po nekoliko sekundi između dva pokušaja prijavljivanja.
Na MS Windows operativnim sistemima postoji i opcija da se nalozi automatski zaključavaju
nakon nekoliko neuspešnih pokušaja prijavljivanja. Isti princip se koristi i kod tzv.
„pametnih“ kartica i njima pridruženim pristupnim PIN kodovima. Ovaj metod zaštite, iako
efikasan u zaštiti od neovlašćenog pristupa, često se može zloupotrebiti od strane napadača
u cilju onemogućavanja normalnog funkcionisanja sistema i rada legalnih korisnika.
Za razliku od zaštite sistema od neovlašćenog pristupa, kod prenosa podataka računarskim
i telekomunikacionim mrežama zaštitu nije moguće zasnovati na nedostupnosti šifrata
napadaču. U takvoj situaciji se kao rešenje najčešće predlaže korišćenje ključeva veće
bitske dužine. Postoje različite preporuke za izbor dužine ključa u cilju odbrane od napada
metodom primene „sirove sile“ a u zavisnosti od načina šifrovanja, oblasti primene,
važnosti podataka i slično:
Vreme potrebno za razbijanje šifrata primenom „sirove sile“ u opštem slučaju zavisi od dva
parametra – dužine korišćenog ključa (veličine skupa iz koga se bira ključ) i frekvencije
kojom se isprobavaju različiti ključevi. Očekivana verovatnoća da će ključ biti pogođen
iznosi 2N-1 proverenih kombinacija gde je N bitska dužina ključa. U cilju ostvarivanja što
kraćeg vremena za razbijanje šifrata najčešće se koriste brzi računari sa više procesora,
klasteri računara ili namenski uređaji. Primer namenskog uređaja za razbijanje šifrata
primenom „sirove sile“ je uređaj COPACOBANA razvijen na nemačkim univerzitetima
Bochum i Kiel.
Ovaj uređaj je namenjen razbijanju svih simetričnih sistema šifrovanja koji koriste ključeve
dužine do 64 bita. U sistem je ugrađena podrška za DES algoritam a sistem se može
proširiti i sopstvenim modulima. Takođe, moguće je i serijsko povezivanje do 127
COPACOBANA uređaja koji bi paralelno radili na istom zadatku. Prosečna brzina pretrage
sistema je oko 43 milijarde ključeva u sekundi a snaga sistema je 2006. godine upoređena
sa 22.865 Pentium 4 računara. Cena jednog uređaja je oktobra 2006. godine iznosila 8.980
evra.
Kao što je ranije pomenuto i prikazano, u literaturi i od strane različitih organizacija koje
se bave bezbednošću komunikacija, kao podrazumevani metod zaštite od razbijanja šifrata
primenom sirove sile navodi se korišćenje ključeva veće bitske dužine, jer se polazi od
osnovne pretpostavke da je razbijanje šifrata simetričnih algoritama moguće samo
primenom „sirove sile“. Međutim, jedna od čestih teza eksperata na polju zaštite u
računarskim mrežama jeste da veće bitske dužine mogu predstavljati prepreku za
napadače koji za razbijanje koriste računarske sisteme skromnijih proceskih moći ali ne i
za napadače koji raspolažu klasterima super-računara ili namenskih uređaja.
Kod ovog tipa napada samom napadu prethodi proces kompromitovanja što većeg broja
posrednika (koji se ponekad nazivaju i „zombijima“). Za kompromitovanje posrednika
najčešće se koristi maliciozni softver. Na kompromitovane posrednike se instalira softver
za udaljenu kontrolu koji, kada napadač dobije adresu žrtve, započinje slanje podataka.
Dva značajna problema pri odbrani od ovog tipa napada su ta što se javlja veliko
opterećenje komunikacionih kanala i što postoji veliki broj izvora napada.
Sredinom 2008. godine primećen je novi tip napada sa ciljem onemogućavanja usluge.
Ovaj napad nije usmeren na zagušivanje komunikacionog kanala žrtve već na njen mrežni
interfejs. Redosled koraka u izvršavanju ovog tipa napada je sledeći:
Ukoliko korisnici komunikaciju vrše putem različitih protokola, tada se za svaki od protokola
mora izvršiti zaseban razvoj/integracija. Dodatno, u takvoj situaciji se set softvera koji
koriste krajnji korisnici mora ograničiti da ne bi došlo do razmene važnih podataka
protokolima koji nisu zaštićeni.
ž
Ogromna prednost u realizaciji sistema zaštite na nivou mrežnog protokola je i činjenica
da se realizacijom sistema na tom nivou štite i podaci protokola viših nivoa - transportnog
i aplikativnog, odnosno da se na ovaj način mogu zaštititi komunikacije svih korisničkih
aplikacija. Vodeći sistem zaštite na mrežnom sloju je Internet Protocol Security.
Internet Protocol Security (IPsec) protokol je rešenje za zaštitu podataka koji se prenose
korišćenjem IP protokola. Ovaj sistem je realizovan setom protokola kojima se ostvaruje
šifrovanje, provera autentičnosti izvora i integriteta poruka koje se prenose. Dodatno,
IPsec sistem koristi i protokol za razmenu ključeva na početku sesije.
40
IPsec sistem se može koristiti za zaštitu komunikacije između krajnjih učesnika, između
krajnjeg učesnika, sa jedne strane, i podrazumevanog mrežnog prolaza, sa druge strane,
ili između podrazumevanih mrežnih prolaza sa obe strane. U skladu sa tim IPsec podržava
dva režima rada: transportni i tunelski.
Za razvoj IPsec sistema zaštite zvanično je zadužena IETF grupa. Sam Ipsec sistem zaštite
je naslednik ISO standardizovanog NLSP (Network Layer Security Protocol) protokola
baziranog na SP3 protokolu, kojeg je prvi objavio američki NIST a inicijalno je dizajniran
od strane američke nacionalne bezbednosne agencije (NSA). Postoji veliki broj dokumenata
kojim je IPsec sistem zaštite dokumentovan i standardizovan.
Jedna od značajnih prednosti IPsec sistema zaštite u odnosu na druge popularne sisteme
zaštite (SSL, TLS...) je rad na niskom nivou u odnosu na OSI i TCP/IP referentne modele.
Ovakva pozicija obezbeđuje fleksibilnost u pogledu zaštite velikog broja protokola viših
nivoa.
Osnovne komponente IPsec sistema zaštite su Internet Key Exchange (IKE, IKE2) – sistem
za upravljanje ključevima i uspostavljanje bezbednosnih asocijacija, Authentication Header
(AH) – protokol za obezbećivanje autentičnosti i integriteta i Encapsulating Security
Payload (ESP) – protokol za obezbeđivanje poverljivosti, autentičnosti i integriteta.
Još jedna značajna karakteristika IPsec sistema zaštite je i podrška za IPv6 protokol. U
stvari, IPsec je podrazumevani deo ovog protokola i inicijalno je i razvijan na njemu a
naknadno je portovan na verziju 4.
Za uspešno korišćenje IPsec protokola neophodno je uspostavljanje pravilnih bezbednosnih
asocijacija. Bezbednosne asocijacije predstavljaju pravila po kojima će se uspostaviti
bezbedna komunikacija između učesnika. U bezbednosnim asocijacijama mogu biti
direktno postavljeni ključevi koji će se koristiti za šifrovanje a u tu svrhu se može iskoristiti
i protokol za razmenu ključeva putem Interneta.
IPsec sistem zaštite se može posmatrati kao jednostavno i efikasno rešenje za zaštitu
komunikacija baziranih na IP protokolu. Važna karakteristika ovog sistema jeste otvorenost
i dokumentovanost kroz RFC i druge dokumente. Izbor IPsec sistema zaštite kao nosioca
realizacije sopstvenog rešenja baziranog na sopstvenom algoritmu, rezultat je dugortajnog
i temeljnog ispitivanja postojećih alternativa.
3.2.4 Firewall
Jedan od najefikasnijih načina zaštita računarskih mreža i njenih članova jeste korišćenje
fajervol sistema za kontrolu pristupa. Ovi sistemi funkcionišu po principu prihvatanja ili
odbijanja mrežnih komunikacija određenih polisama fajervol sistema. Postoji više tipova
41
fajervol sistema u zavisnosti od toga u kom obliku su realizovani, kakve mogućnosti nude,
na kom nivou se izvršavaju i koja je njihova uloga u mreži u kojoj se nalaze.
U zavisnosti od toga u kom obliku su realizovani fajervol sisteme možemo podeliti na
namenske uređaje i računarski softver. Namenski fajervol uređaji uglavnom su namenjeni
zaštiti računarskih mreža, pre nego zaštiti pojedinačnih račuanra. Realizovani su u obliku
nezavisnih mrežnih uređaja sa najčešće dva mrežna interfejsa od koja ih jedan povezuje
sa nepouzdanom mrežom (na primer Internetom) a drugi sa mrežom koju treba zaštititi
(na primer lokalna mreža). Uređaji u sebi sadrže firmver koji vrši analizu ulaznih i izlaznih
podataka i na njih primenjuje postavljenja pravila (polise).
Ova pravila se postavljaju najčešće putem računara koji se sa uređajem povezuje putem
mrežnog ili serijskog kabla.
Prednost namenskih fajervol uređaja nad ostalim rešenjima jeste jednostavnost (nema
dodatnog softvera) i namenski dizajn (hardver uređaja je prilagođen svrsi). Računarski
softver takođe može obavljati ulogu fajervola. Ovakav softver se instalira na računare u
vidu korisničkog softvera ili dela operativnog sistema što ujedno predstavlja i podelu po
tome na kom nivou se softver izvršava.
Prednost integracije fajervola u jezgro operativnog sistema jesu pre svega performanse,
dok osnovnu manu u određenim slučajevima (kada je napravljen propust u softveru) čini
mogućnost pristupa funkcijama operativnog sistema pri „pucanju“ softvera. Prednost
realizacije fajervol sistema u obliku dodatnog računarskog softvera jeste pre svega
mogućnost instaliranja fajervol sistema na obične računare i na svaki računar pojedinačno,
jednostavno instaliranje novih verzija softvera kao i mogućnost izbora softverskog
rešenja.
Glavna mana realizacije fajervol sistema u obliku dodatnog računarskog softvera naspram
namenskih uređaja su, pre svega performanse a zatim i potreba da se na računar instalira
nenamenski operativni sistem, odnosno operativni sistem koji osim funkcionalnosti vezanih
za fajervol poseduje i dodatne funkcionalnosti koje mogu biti zloupotrebljene i izvor
nestabilnosti/nesigurnosti sistema.
U zavisnosti od toga kakve mogućnosti nude fajervol sisteme možemo pre svega podeliti
na osnovu toga koje slojeve TCP/IP modela podržavaju i koje informacije o svakoj
komunikaciji mogu izvući putem celokupne komunikacije a ne samo na osnovu trenutnog
saobraćaja. U skladu sa takvim kriterijuma fajervol sisteme možemo podeliti na:
jedinica već ostvarene veze (eng. Established connection). Informacije ovog tipa
predstavljaju dodatni kriterijum koji se može iskoristiti za kreiranje polisa statefull fajervol
sistema.
3. Sisteme treće generacije
Fajervol sistemi treće generacije osim ranije opisanih funkcionalnosti imaju i mogućnost
korišćenja parametara aplikativnog sloja. Iz tog razloga se ponekad nazivaju i prodžy
based fajervol sistemima. Ovakvi sistemi najčešće dolaze sa modularnom podrškom za
različite protokole aplikativnog sloja a skup modula je uglavnom moguće proširivati.
U zavisnosti od uloge koju imaju u mreži u kojoj se nalaze fajervol sistemi se mogu podeliti
na mrežne i lične. Mrežni fajervol sistemi najčešće se nalaze na tačkama mreže koje je
spajaju sa jednom ili više spoljnih mreža.
Uloga ovih sistema jeste da zaštite sve članove lokalne mreže ili da im zabrane određene
mrežne akcije usmerene ka spoljnim mrežama. Mrežni fajervol sistemi se mogu štititi
lokalnu mrežu od spoljnih mreža ali se takođe mogu naći i na više tačaka u lokalnoj mreži
da bi štitili segmente lokalne mreže. Za razliku od mrežnih fajervol sistema lični fajervol
sistemi imaju za zadatak da štite lokalni računar.
Osnovna podela šifarskih algoritama definiše dva tipa: simetrične i asimetrične šifarske
algoritme. Simetrični šifarski algoritmi (šifrovanje tajnim ključem) rezultat su razvoja
klasične kriptografije. Za uspešno korišćenje simetričnog šifrovanja korisnici pre toga
moraju razmeniti ključ koji će biti korišćen za šifrovanje i dešifrovanje sadržaja. Osnove
bezbednosti koju nude simetrični šifarski algoritmi leže u tajnosti ključa i nemogućnosti
dobijanja originala bez njegovog poznavanja. U najpopularnije simetrične šifarske
algoritme spadaju AES, DES, RC4 i Blowfish.
Osnovna prednost simetričnih šifarskih algoritama je njihova brzina. Sa druge strane,
osnovni problem kod njihovog korišćenja jeste uspostavljanje tajnog ključa, odnosno
neophodnost da se tajni ključ bezbedno dostavi do obe strane. U tu svrhu se najčešće
koriste odvojeni komunikacioni kanali. To može biti značajan problem kod većih
komunikacionih mreža jer se za potrebe bezbedne komunikacije mora izvršiti n-1 razmena
ključeva (n je broj članova mreže). Jedno od rešenja za ovaj problem može biti centralno
telo koje izdaje ključeve za komunikacione sesije.
Koncept asimetričnog šifrovanja predstavljen je 1976. godine od strane Vajtfilda Difija i
Martina Helmana. U svom prvom radu kao osnovnu motivaciju ovi autori su naveli
„eliminisanje potrebe za odvojenim komunikacionim kanalima za razmenu ključeva i
stvaranje ekvivalenta pisanom potpisu“. Kod asimetričnog šifrovanja svaka strana ima par
ključeva, e (javni ključ) i d (tajni ključ). Javni ključ je javno dostupan dok se tajni ključ
čuva van dometa ostalih korisnika. Podaci šifrovani javnim ključem mogu se dešifrovati
samo uparenim tajnim ključem. Sa druge strane, tajni ključ se može iskoristiti za
potpisivanje digitalnog sadržaja, a javni ključ se u tom slučaju koristi za proveru
autentičnosti potpisa. Podrazumeva se nemogućnost izračunavanja tajnog ključa na
osnovu njegovog javnog para. Najpoznatiji predstavnici asimetrične kriptografije jesu Difi-
Helman sistem razmene ključeva i RSA algoritam.
U poređenju sa simetričnim ekvivalentima asimetrični sistemi za šifrovanje su uglavnom
sporiji i nude niži nivo bezbednosti za istu dužinu ključeva (odnosno, zahtevaju korišćenje
ključeva veće dužine). Sa druge strane, oni ne zahtevaju odvojene kanale za distribuciju
ključeva, a nude i specifičnosti u pogledu elektronskog potpisivanja dokumenata. U praksi
se često sreće mešovita upotreba simetričnog i asimetričnog šifrovanja - asimetrično
šifrovanje koristi se za distribuciju ključeva simetričnih algoritama.
Na početku procesa šifrovanja ulazni niz se kopira u matricu stanja. Nakon dodavanja
Round Key vrednosti matrica stanja se transformiše korišćenjem funkcije zaokruživanja
10, 12 ili 14 puta, u zavisnosti od dužine ključa. Nakon zaokruživanja, matrica stanja se
kopira u izlazni niz. Jedan od parametara funkcije zaokruživanja je jednodimenzionalni niz
reči od po četiri bajta, dobijen na osnovu Key Expansion rutine. Rutina Key Expansion na
osnovu glavnog ključa generiše tzv. raspored ključeva (engl. key schedule) dužine Nr reči
(Nr je broj ciklusa) od po četiri bajta.
3.2.5.3 RSA
Šifarski algoritam RSA dobio je ime po svojim autorima Ronu Rajvestu, Adiju Šamiru i
Leonardu Adlemanu (Rivest-Shamir-Adleman). U pitanju je asimetrični šifarski algoritam
koji se, osim za šifrovanje podataka, može koristiti i za potpisivanje elektronskih
dokumenata.
Asimetrični rad RSA algoritma podrazumeva postojanje dva ključa - javnog i tajnog. Javni
ključ se sastoji od dva pozitivna cela broja - modula i javnog eksponenta. Privatni ključ
RSA algoritma može se predstaviti na dva načina:
preko modula i tajnog eksponenta (pozitivni celi brojevi), ili preko sedam parametara -
prvi faktor, drugi faktor, prvi faktor CRT (Chinese Remainder Theorem) eksponenta, drugi
faktor CRT eksponenta, prvi CRT koeficijent, i-ti faktor, i-ti faktor CRT eksponenta, i-ti
faktor CRT koeficijenta.
Šifarski algoritam RSA predstavlja grupu asimetričnih algoritama. Osnovna prednost ovih
algoritama, u odnosu na simetrične šifarske algoritme, jeste mogućnost da se između dve
strane izvrši razmena šifrovanih podataka a da nije neophodna prethodna razmena ključa
zaštićenim kanalom. Sa druge strane, simetrični šifarski algoritmi obično nude bolje
performanse u radu, a njihova bezbednost ne zavisi od protokola za inicijalnu razmenu
ključa.
3.2.6 Trendovi
1. неовлашћени приступ,
2. проблем инсајдера и
3. крађа идентитета.
II POLUGODIŠTE
1 Network Programming in the .NET Framework
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/socket-code-
examples