You are on page 1of 73

Tehnologije razvoja Web aplikacija

Tokom devedesetih godina prošlog veka mnogobrojne sfere ljudske delatnosti


su se veoma brzo preselile na mrežu svih mreža. Jedna od ključnih aktivnosti,
poslovanje preduzeća, postaje generator razvoja tehnologija za Internet.
Rešavajući zahteve za brzinom, skalabilnošću i bezbednošću, bez kojih je
nemoguće zamisliti savremeno poslovanje, informatička tehnologija je
munjevitom brzinom morala da iznađe odgovor na nove izazove.

Internet je prešao vremenski kratak, ali tehnološki dugačak put od vojne


tehnologije, zatim novotarije kojom su se zabavljali u naučnim krugovima,
preko .COM groznice krajem devedesetih, sve do današnjeg pouzdanog medija
za nebrojene primene. U ovom poglavlju razmotrićemo neke od trenutno
aktuelnih tehnologija razvoja Web aplikacija, uz prethodno objašnjenje
protokola potrebnih za klijent/server prenos podataka u Web svetu.

HTTP protokol, statičke i dinamičke Web stranice


Osnovni stek protokola koji se koristi na Internetu jeste TCP/IP (Transmission
Control Protocol / Internet Protocol). Kao podloga najkorišćenijeg Internet
servisa, World Wide Web-a, upotrebljava se HTTP protokol (HypertText
Transfer Protocol), koji je deo aplikativnog sloja OSI modela TCP/IP-ja.
Tehnologije razvoja Web aplikacija 2

HTTP zahtev
Zahtev: GET / default.aspx
/http://www.tfzr.uns.ac.rs
/HTTP1.1

Zaglavlje:
Korisnikov agent: IE 9
Prihvaćeno: */*
Datum: 05/15/2011

Web server
Telo: (prazno ili POST podaci)
klijent

Port 80

HTTP odgovor

Odgovor: HTTP1.1/200 OK

Zaglavlje:
Server: Microsoft IIS 7.0
Datum: 05/15/2011

Telo: <HTML>

</HTML>

Slika 80: Delovi HTTP protokola, zahtev (request) i odgovor (response)

HTTP je zasnovan na konceptu postavljanja zahteva i dobijanja odgovora, i


obezbeđuje efikasno prenošenje informacija između klijenta, koji zahteva
informacije, i servera, koji odgovara na postavljene zahteve. Web čitač klijenta
šalje zahtev (HTTP request) ka Web serveru. Kad dobije taj zahtev, Web server
proverava svoja spremišta datoteka da bi pronašao stranicu koja je tražena. Ako
je pronađe, pakuje HTML (HyperText Markup Language) kod sadržan u
stranici (koristeći TCP), adresira pakete na čitač (HTTP-om) i vraća ih u mrežu.
Ako server ne može da pronađe datoteku, generiše sopstveni HTML sa kodom
greške i porukom.

Web je u početku svoga razvoja funkcionisao upravo na navedeni način:


postojao je isključivo kao statički, tj. nisu postojale tehnologije koje bi uzele u
obzir informacije koje su pristigle od korisnika i na osnovu njih generisale
odgovor. Proces objavljivanja informacija statičkim Web stranama svodio se
na sledeće korake:
Tehnologije razvoja Web aplikacija 3

WEB SERVER 4
HTML tok (od
3 .htm stranice)
vraća se čitaču
Web server locira
1 .htm datoteku
Autor piše HTML
i pohranjuje ga na
disku web
servera

KLIJENT

2 5
Klijent daje HTTP Čitač obrađuje
zahtev za web HTML i prikazuje
stranicu stranicu

Slika 81: Serviranje statičkih Web stranica

Mogućnosti statičkog Weba nisu bile naročito velike: HTML stranice jesu
nosilac informacija, ali onih koje se ne menjaju zavisno od konteksta: te
informacije su uvek iste. Očigledno je bilo neophodno da se dođe do određenog
stepena programabilnosti na Webu, tj. da se razviju tehnologije koje će
omogućiti veći stepen interaktivnosti od statičkog Weba.

Dinamičke Web stranice se zasnivaju na principu da se HTML kod ne stvara


sve dok korisnik ne poželi da vidi Web stranicu. To dinamičko stvaranje stranica
omogućuje da one budu prilagođene korisnikovim zahtevima, da zavise od
prethodnih akcija korisnika, od vremena i mesta kad je pristupio lokaciji, od
njegovog identiteta i specifičnih potreba. Pojava dinamičkog Weba dovela je i
do mogućnosti da se Internet iskoristi kao medij za elektronsko poslovanje, uz
uvažavanje svih njegovih specifičnosti.
Tehnologije razvoja Web aplikacija 4

3 Web server locira datoteku sa instrukcijama

4 Web server obrađuje instrukcije da bi stvorio HTML


(interpretira skript, instancira klasu, učitava program...)
WEB SERVER

Autor piše 5
instrukcije
(program, klasu, HTML tok vraća
skript... se čitaču
zavisno od
tehnologije)

KLIJENT

2 6
Klijent daje HTTP Čitač obrađuje
zahtev za web HTML i prikazuje
stranicu stranicu

Slika 82: Serviranje dinamičkih Web stranica

Razlika između statičkih i dinamičkih Web stranica konceptualno je očigledno


veoma mala: u oba slučaja imamo približno slične korake u dobavljanju
sadržaja od servera, i u oba slučaja rezultat uspešno izvršenog HTTP zahteva
jeste HTML koji se prikazuje u Web pretraživaču (browseru) klijenta. Jedina i
najbitnija razlika je korak u kojem se (kod dinamičkih Web stranica) na serveru
vrši programska konstrukcija HTML-a. Postoje različiti načini za postizanje
ovog koraka, jer su se tokom vremena pojavile mnogobrojne tehnologije za
razvoj Web aplikacija. U daljem tekstu ćemo ukratko opisati neke od njih, uz
kratak osvrt na sam HTML i ostale markerske (markup) jezike, zaključno sa
verzijom HTML5.

Markerski jezici

SGML
SGML (Standard Generalized Markup Language) je jezik namenjen
definisanju markerskih jezikа, nastao još osamdesetih godina prošlog veka.
HTML je samo jedna od primena SGML-a, iako su se razvijali paralelno.

Primene SGML-a se sastoje iz nekoliko delova:

▪ SGML deklaracije, koja određuje koji se karakteri i znaci interpunkcije


pojavljuju u aplikaciji,
Tehnologije razvoja Web aplikacija 5

▪ DTD-a (Document Type Definition), koji definiše sintaksu markerskih


konstrukcija,
▪ specifikacije koja definiše semantiku markerskog jezika, kao i sintaksne
zabrane koje ne može da definiše DTD, i
▪ instance dokumenata koje sadrže podatke i markiranje. Svaka instanca ima
reference na DTD koji se koristi za njenu interpretaciju.

SGML konstrukti korišćeni u HTML-u


Entiteti su numerička ili simbolička imena za karaktere koji se mogu uvrstiti u
HTML dokument. Oni su korisni kada alat koji se koristi ne pruža mogućnost
unosa nekog od karaktera. Entiteti počinju sa (&), a završavaju se sa (;) (na
primer, &nbsp; za razmak, &quot; za navodnik itd).

SGML definiše elemente koji predstavljaju strukture ili željeno ponašanje.


Element se obično sastoji od tri dela: startni tag, sadržaj i završni tag. Startni
tag se označava sa <element-name>, gde je element-name naziv elementa.
Završni tag se predstavlja sa </element-name>. Na primer,
<pre>Sadržaj ovog taga je preformatirani tekst.</pre>

Neki HTML elementi nemaju sadržaj. Na primer, BR tag nema sadržaj jer on
pokazuje kada se linija teksta završava, a dalji sadržaj se prebacuje u novu
liniju. Takvi "prazni" tagovi nemaju završne tagove.

Važno je napomenuti da elementi nisu isto što i tagovi. Na primer, head


elemenat je uvek prisutan, iako ni početni ni završni <head> tagovi nisu prisutni
u dokumentu.

Elementi mogu imati pridružene osobine koje se nazivaju atributi. Atributima


se mogu dodeliti vrednosti. Atribut i vrednost se nalaze ispred oznake za kraj
početnog taga (>). Jedan element može imati više atributa, a njihov redosled
nije bitan.

Na primer, H1 element može ovako da izgleda:


<H1 align="center">Ovo je centrirani naslov</H1>

SGML zahteva da se sve vrednosti atributa označe sa (") ili sa ('). Vrednosti se
mogu sastojati od slova (a-z i A-Z), brojeva (0-9), povlaka (ASCII decimalno
45) i tačaka (ASCII decimalno 46).

HTML komentari imaju sledeću sintaksu:


<!-- ovo je komentar -->
Tehnologije razvoja Web aplikacija 6

<!--i ovo je komentar,


ali u više redova -->

HTML
HTML (HyperText Markup Language) dokument je ASCII ili Unicode
tekstualna datoteka koja sadrži markup tagove. Ti tagovi govore Web browseru
kako da prikaže sadržaj stranice (generiše prikaz). HTML dokument mora da
ima htm ili html ekstenziju, a može se kreirati u običnom tekst editoru, mada
postoje brojni alati koji pomažu u pisanju HTML-a.

Elementi HTML-a čine HTML dokument, i oni su definisani upotrebom HTML


tagova. Tagovi se koriste za označavanje elemenata i označeni su znacima <
(manje) i > (veće). Tagovi obično idu u paru, npr. <strong> i </strong>. Prvo
se navodi početni, a zatim završni tag.

Struktura HTML dokumenta je sledeća:


<html>
<head>
<title>Naslov stranice</title>
</head>
<body>
Sadržaj stranice. <strong>Podebljani tekst</strong>
</body>
</html>

Tagovi imaju svoje atribute koji obezbeđuju dodatne informacije o HTML


elementima. Na primer, <body bgcolor="red"> definiše pozadinsku boju
stranice, tačnije boju body elementa. Isto tako, tag <table border="0">
definiše da tabela nema ivicu. Atributi predstavljaju par name="value", i
dodaju se početnom tagu elementa.

Iako su atributi praktično prvobitne preporuke za formatiranje izgleda


dokumenta u browseru, W3C regulatorno telo danas za postizanje istih i boljih
efekata ohrabruje korišćenje CSS (Cascading Style Sheets), koji su daleko
fleksibilniji i omogućuju da isti HTML dokument, primenom različitih CSS
stilova, može da izgleda i funkcioniše radikalno drugačije, u zavisnosti od
konkretnog primenjenog stila. Međutim, i pored današnje šioke upotrebe CSS
stilova, za pojedine primene atributi su i dalje nezamenljivi.

Jedan od osnovnih tagova u HTML dokumentu jeste title tag. On definiše


naslov stanice, npr:
<title>Moj prvi HTML dokument</title>
Tehnologije razvoja Web aplikacija 7

Naslovi u tekstu se označavaju heading tagom. U HTML-u postoji šest nivoa


tih tagova. H1 je najviši, a H6 najniži u hijerarhiji.
<h1>Naslov</h1>

Ostatak teksta se piše u paragrafima, npr.:


<p>Prvi paragraf testa</p>

Prikazivanje slika je omogućeno pomoću <img> taga. Prikaz slike jovan.jpg


vrši se na sledeći način:
<img src="jovan.jpg" width="200" height="150">

U primeru je navedena i dimenzija slike, tako da će browser prilikom obrade


koda na stranici odmah ostaviti potreban prostor za sliku. Kada browser
prilikom interpretiranja pristiglog HTML-a dođe do IMG taga, uspostavlja se
novi HTTP zahtev prema naznačenom resursu, nakon čega se datoteka prenosi
na klijentski računar i prikazuje u browseru.

Veza ka drugom Web dokumentu se vrši pomoću <a> (anchor) taga. Primer
pokazuje kako bi se postojeća stranica povezala sa Web dokumentom
jovan.html :

<a href="jovan.html">Druga stranica</a>

Tekst između <a> i </a> taga jeste sam link na drugi dokument, i biće po
definiciji predstavljen plavim podvučenim tekstom, osim ako izgled nije
izmenjen atributima ili CSS stilovima.

Link ka drugoj stranici na drugom Web sajtu naveo bi se na sledeći način,


navođenjem apsolutne URL (Uniform Resource Locator) putanje ka resursu:
<a href="http://www.w3.org/">W3C</a>

Ako se za link koristi slika, to može izgledati ovako:


<a href="/"><img src="logo.gif" alt="Home page"></a>

Tabele se definišu <table> tagom. Vrste tabele se definišu <tr> tagom, a svaka
vrsta deli se na ćelije <td> tagom. Primer za jednu tabelu je sledeći:
<table border="1">
<tr>
<td>vrsta 1, ćelija 1</td>
<td>vrsta 1, ćelija 2</td>
</tr>
Tehnologije razvoja Web aplikacija 8

<tr>
<td>vrsta 2, ćelija 1</td>
<td>vrsta 2, ćelija 2</td>
</tr>
</table>

HTML nije strogo standardizovan jezik – umesto čvrstih i propisanih standarda


postoje preporuke specijalizovanog tela koje se zove World Wide Web
Consortium (http://www.w3c.org). Proizvođači browser programa moraju da se
pridržavaju tih preporuka, ukoliko žele da im proizvod ispravno prikazuje
učitani HTML.

Trenutno važeća specifikacija HTML jezika stara je već preko 12 godina i nosi
oznaku 4.01 (24. decembar 1999. godine, sa listom ispravki iz 2001), a nalazi
se na Web adresi http://www.w3.org/TR/html401. Nabrojani tagovi su samo neki
od najvažnijih, a broj postojećih tagova je izuzetno veliki, posebno ako se uzmu
u obzir i oznake iz ranijih verzija HTML-a koje su u browserima još uvek
podržane zbog kompatibilnosti sa ranije napisanim Web stranicama.

HTML5
Rad na novom HTML standardu započeo je 2004. godine, od strane Web
Hypertext Application Technology Working Group (WHATWG), male grupe
sastavljene od profesionalaca iz vodećih svetskih IT kompanija poput Apple-a,
Opera Software, Mozilla Foundation i Google. U to vreme, HTML standard je
bio u verziji koja je aktuelna i danas, dok je W3C konzorcijum bio na putu
standardizacije XTHML 2.0. Međutim, pošto XHTML umnogome nije ispunio
očekivanja, niti je naročito zaživeo u Web zajednici, W3C odlučuje da zajedno
sa WHATWG nastavi rad na specifikaciji HTML5, a rad na XHTML 2.0
napušta 2009. godine.

Slika xx: Logo HTML5, usvojen od strane W3C


Tehnologije razvoja Web aplikacija 9

HTML5 donosi niz novih elemenata i atributa, čija upotreba će olakšati tipične
načine upotrebe Web sajtova u Web 2.0 svetu. Dodati su <video>, <audio> i
<canvas> elementi, kao i integracija SVG (Scalable Vector Graphics) slika na
Web stranicama – sada grafički elementi stranice mogu da se iscrtavaju
direktno od strane Web pretraživača, ali i da se skaliraju bez gubitaka u
kvalitetu. Takođe, HTML5 donosi i semantička poboljšanja – tagovi
<article> , <section> i <header> , kao i <nav> , razdvajaju tipove sadržaja
samih stranica. Neki stari elementi su redefinisani, preporuka je da se određeni
uobičajeni elementi više ne koriste (npr font ili center – sada se celokupan
izgled stranice definiše pomoću CSS), a ubačeni su i razni novi atributi.

Specifikacija novog, HTML5 standarda još uvek nije kompletirana (kao rok za
dovršetak pominje se 2014. godina), iako se proizvođači internet pretraživača
trude da već danas implementiraju standard u nastajanju. HTML5 će doneti
velike novine u svetu Weba, jer će omogućiti još bolju interaktivnost, rad sa
multimedijom bez dodataka (plugins) i razna druga poboljšanja, neophodna za
udoban, brz i siguran rad na savremenom Webu, čije kompleksne aplikacije
postavljaju velike izazove kako pred programere, tako i pred klijente na čijim
računarima se zahtevne Web aplikacije delimično izvršavaju (klijentski
JavaScript kod, AJAX,...).
Tehnologije razvoja Web aplikacija 10

Slika xx: Podrška za HTML5 specifikaciju u modernim Web browserima

XML
XML (eXtensible Markup Language) je markerski jezik sličan HTML-u.
Dizajniran je da opisuje podatke, za razliku od HTML-a koji je osmišljen pre
svega za njihovo prikazivanje. XML tagovi nisu predefinisani, tako da svako
mora definisati sopstvene tagove. XML koristi DTD ili XML šemu (XML
Schema) za opis tipova dokumenata.

Mogućnosti koje XML pruža su raznovrsne. Sa XML-om podaci se mogu


razmenjivati među nekompatibilnim sistemima, pogotovo preko Interneta.
XML se može koristiti za skladištenje podataka u datotekama i bazama
podataka, za daljinsko pozivanje procedura (Remote Procedure Call), a
posredstvom Web servisa XML je naročito korišćen u određenim formama
elektronske trgovine.
Tehnologije razvoja Web aplikacija 11

Sintaksa XML-a je jednostavna.


<?xml version="1.0" encoding="UTF-8"?>
<poruka>
<za>Mina</za>
<od>Jovica</od>
<naslov>Podsetnik</naslov>
<telo>Javi se za vikend! Idemo u šetnju.</telo>
</poruka>

Prva linija je XML deklaracija. Ona definiše XML verziju i kodni raspored koji
se koriste u dokumentu. U ovom slučaju to je XML 1.0 i UTF-8 (Unicode).
Korenski (root) element je <poruka>. Slede četiri child elementa ( za, od,
naslov i telo ), a </poruka> označava završetak korenskog (root) elementa.

Svi XML elementi moraju imati završni tag. Takođe, svi XML tagovi razlikuju
mala i velika slova, tj. tag <Poruka> se razlikuje od taga <poruka>. Redosled
tagova je bitan: svi tagovi moraju biti pravilno ugnježdeni, bez ukrštanja.

Svi XML dokumenti moraju imati samo jedan root ili korenski element, a svi
ostali elementi moraju biti unutar root elementa. Svi elementi mogu imati
podelemente (child elementi), npr:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>

Vrednosti atributa se moraju označiti znacima navoda, kao u sledećem primeru:


<?xml version="1.0" encoding="UTF-8"?>
<poruka datum="15/05/2011">
<za>Mina</za>
<od>Jovica</od>
</poruka>

Komentari se navode na sledeći način:


<!-- Komentar -->

XML elementi su proširivi. Jedan element se može proširiti, ako je to potrebno.


Na primer, ako postoji definisan element,
<poruka>
<za>Mina</za>
<od>Jovica</od>
<telo>Javi se za vikend! Idemo u šetnju.</telo>
</poruka>
Tehnologije razvoja Web aplikacija 12

njemu se mogu dodati i druge informacije:


<poruka>
<datum>15/05/2011</datum>
<za>Mina</za>
<od>Jovica</od>
<naslov>Podsetnik</naslov>
<telo>Javi se za vikend! Idemo u šetnju.</telo>
</poruka>

Postoje relacije između parent i children elemenata. Na primer, sledeći XML


dokument opisuje knjigu:
<?xml version="1.0" encoding="UTF-8"?>

<knjiga>
<naslov>Moj prvi XML</naslov>
<prod id="33-657" media="papir"></prod>

<poglavlje>Uvod u XML
<podnaslov>Šta je HTML</podnaslov>
<podnaslov>Šta je XML</podnaslov>
</poglavlje>

<poglavlje>XML sintaksa
<podnaslov>elementi moraju imati završni tag</podnaslov>
<podnaslov>elementi moraju biti u pravilnom
rasporedu</podnaslov>
</poglavlje>

</knjiga>

Knjiga je root (korenski) element. Naslov, prod i poglavlje su child elementi


elementa knjiga. Knjiga je parent element elementima naslov, podnaslov i
poglavlje . Naslov , prod i poglavlje su sister elementi pošto imaju isti
parent element.

Sadržaj elemenata je različitog tipa. U prethodnom primeru sadržaj elementa


knjiga su elementi ( naslov , prod i poglavlje ), dok poglavlje ima mešani
sadržaj jer se sastoji od teksta i drugih elemenata. Element para ima
jednostavan tekstualni sadržaj, a prod ima prazan sadržaj jer ne nosi
informacije. Jedino prod element ima atribute.

Dodeljivanje naziva elementima ima sledeća pravila:

▪ mogu da sadrže slova, brojeve i druge karaktere,


▪ ne smeju počinjati brojem ili znakom interpunkcije,
▪ ne smeju počinjati slovima xml (ili XML ili Xml ..), i
Tehnologije razvoja Web aplikacija 13

▪ ne smeju imati space znak.

Primeri: <first_name>, <last_name>, <book_title> ...

XML elementi, kao i HTML elementi, mogu imati atribute u početnom tagu.
Atributi se koriste za dodatne informacije o elementima. Oni nose informacije
koje nisu deo podataka:
<file type="gif">computer.gif</file>

Vrednost atributa uvek mora biti označena navodnicima.

<gangster name="George Ziegler"> ili

<gangster name='George "Shotgun" Ziegler'> ili


<gangster name="George 'Shotgun' Ziegler">

XML dokumenti imaju smisla samo ako su dobro formirani i valjani. Dobro
formirani su oni XML dokumenti koji su usklađeni sa osnovnim pravilima
sintakse i strukture specifikacije XML 1.1, navedenim u prethodnom tekstu.
Valjani XML dokumenti su dobro formirani dokumenti koji su usklađeni još i
sa sintaksičkim, strukturnim i ostalim pravilima iz DTD-a ili XML Schema-e.

XML dokumenti se u pretraživačima mogu prikazivati znatno efektnije,


korišćenjem CSS (Cascading Style Sheets) ili XSLT (eXtensible Style sheet
Language for Transformations) jezika. Ovim tehnikama se XML zapravo
konvertuje u HTML pre prikazivanja. Rezultate takve transformacije možete
videti na sledećoj slici.
Tehnologije razvoja Web aplikacija 14

Slika 83: XML (levo) transformisan pomoću XSLT-a (desno)

Na temelju XML-a nastale su na desetine novih, specijalizovanih markerskih


jezika, sa različitim namenama: RSS, Atom, XHTML, XAML..., a mnoge
aplikacije počele su da koriste ovaj format za pohranjivanje podataka u okviru
svojih datoteka (Microsoft Office Open XML, OpenOffice.org OpenDocument
format itd).
Tehnologije razvoja Web aplikacija 15

Jezici i tehnologije razvoja dinamičkog Weba


Aplikacije za Web se mogu pisati u raznim programskim jezicima, od klasičnih
(Pascal, Fortran, C, C++...) do jezika koji su nastali i razvijali se upravo kao
nosioci "Internet programiranja" (Java, razni skript jezici (PERL, PHP,
JavaScript...)...). Moramo razlikovati same jezike od tehnologija koje te jezike
koriste (recimo, CGI kao tehnologija koristi čitav niz jezika poput C/C++-a,
PERL-a, TCL-a...; ASP tehnologija koristi JScript ili VBScript, Java
tehnologija koristi Java programski jezik itd.). Najpre ćemo dati kratak pregled
skript jezika (s obzirom da je njihova prvobitna namena klijentsko ili serversko
skriptovanje i da su nastali paralelno sa ekspanzijom dinamičkog Weba), a
potom se osvrnuti na danas vodeće Web tehnologije.

Skript jezici

JavaScript
JavaScript je skript jezik čija je sintaksa slična programskom jeziku Java, i na
tome se gotovo sva sličnost i završava. JavaScript je razvijen od strane
kompanije Netscape pod kodnim imenom Mocha, da bi kasnije proizvod bio
preimenovan u LiveScript i na kraju konačno u JavaScript. Jezik je široko
prihvaćen i standardizovan pod imenom ECMAScript, a podrška za njega je
ugrađena u sve novije browsere. Za razliku od Jave, koja predstavlja objektno
orijentisani programski jezik visokog nivoa, i koja se izvršava isključivo unutar
Java virtuelne mašine (JVM), JavaScript programi (skriptovi) su obično
klijentski skriptovi. Oni su ugrađeni u HTML stranice, i izvršavaju se u
browseru klijenta.

<html>
<head><title>JavaScript</title>
<script>
function update()
{
alert("Подаци су послати!");
}
</script>
</head>
<body>
<form name="myForm" method="post"
action="obrada.php" onSubmit="update()">
<input type="text" name="textfield">
<input type="submit" name="Submit"
value="Пошаљи">
</form>
</body>
</html>
test.html

Slika 84: Rezultat izvršavanja kratke JavaScript funkcije


Tehnologije razvoja Web aplikacija 16

Zahvaljujući DOM (Document Object Model) specifikaciji, iz JavaScript


skriptova moguće je kontrolisati sve elemente browsera, kao i dokumenta
učitanog u browser. Klijentski JavaScript se obično koristi za postizanje
posebnih efekata na Web stranicama, ili za klijentsku validaciju podataka koji
se unose u HTML forme. Postoji mogućnost da se JavaScript koristi i na
serveru, ali obično u sprezi sa još nekom Web tehnologijom (npr. ASP).

VBScript
VBScript je podskup Visual Basic programskog jezika. Koristi se u svrhe slične
JavaScript-u, kao klijentski skript koji se izvršava u browseru, s tim što je
podržan isključivo od strane Microsoft-a i pretraživača MS Internet Explorer.
Uz pomoć ovog jezika i Windows Scripting Hosta, unutar kojeg se izvršavaju
programi, moguće je napisati i skriptove koji rešavaju određene administrativne
probleme u Windows operativnim sistemima (dodavanje novih korisnika,
izmena prava, rad sa diskovima, pa čak i automatizaciju rada sa MS Office
aplikacijama itd.). Pošto predstavlja pojednostavljeni skup VBasic naredbi,
mnogo je lakši i jednostavniji za učenje od JavaScript-a, ali je zato znatno
manje zastupljen što se tiče klijentskog skriptovanja, jer nije toliko moćan i ima
problema sa kompatibilnošću kod korisnika koji ne koriste Internet Explorer.
Tehnologija koja je proslavila ovaj skripting jezik jeste ASP, s tim da se u ASP-
u VBScript koristi kao podrazumevani jezik za razvoj serverskih (a ne
klijentskih) skriptova.
Dim MSWord, WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set MSWord = WScript.CreateObject("Word.Basic")
MSWord.FileNew("Normal")
MSWord.Insert("Ovo je knjiga iz Elektronskog poslovanja," & Chr(13))
MSWord.Insert("koja se bavi poslovnom upotrebom Interneta.")
MSWord.FileSaveAs("c:\Test.doc")
MSWord.FileClose

Slika 85: VBScript koji se izvršava unutar Windows Scripting Host-a:


podiže se aplikacija MS Word bez korisničkog interfejsa, kreira se nova datoteka,
umeće se tekst i datoteka snima na disk

Još jedna velika prednost VBScript-a je prirodno i jednostavno korišćenje


ActiveX objekata, što se vidi i na gornjem primeru.

Web tehnologije

CGI
CGI (Common Gateway Interface) je standard za spajanje eksternih aplikacija
sa serverima informacija, kao što su HTTP (Web) serveri. CGI programi se
Tehnologije razvoja Web aplikacija 17

izvršavaju u realnom vremenu, i proizvod njihove egzekucije predstavlja (kao


i kod ostalih tehnologija za generisanje dinamičkog Web sadržaja) dinamički
generisani HTML. Pošto CGI program, u najširem smislu, predstavlja izvršnu
datoteku kojoj dopuštamo da bude pokrenuta od strane bilo kog posetioca našeg
sajta, jasno je da takav način programiranja Web aplikacija nije najsigurniji sa
bezbednosnog stanovišta – postoje mnoge sigurnosne pretpostavke kojih se
moramo pridržavati. Uobičajena je praksa da, upravo zbog bezbednosti,
omogućujemo da se CGI aplikacije izvršavaju u samo jednom folderu (najčešće
se naziva cgi-bin folder) na našem serveru. CGI aplikacije se mogu pisati u bilo
kom programskom jeziku višeg nivoa (C/C++, Fortran, Pascal...) ili skript
jeziku koji je podržan na našem serveru (PERL, TCL, bilo koji Unix shell skript
jezik, VBScript, AppleScript...), tako da od konkretnog jezika zavisi da li će
CGI aplikacija biti kompajliran ili interpretiran kod.

Loša osobina CGI aplikacija jeste upravo to što je CGI, u principu, program –
aplikacija koja se po pozivu od strane klijenta učitava u memoriju servera,
izvršava, a zatim briše iz memorije. Kreiranje procesa je sa stanovišta
performansi mnogo skuplja operacija nego, na primer, jednostavno iščitavanje
HTML datoteke. Pretpostavimo da sa našeg sajta u jednom momentu 100
korisnika zatraži izvršavanje CGI programa. To bi značilo da serverski
operativni sistem treba da učita 100 instanci programa u memoriju, da zatim
izvrši te programe i oslobodi resurse. Ovo može veoma brzo da popuni
serverske resurse, tako da je skalabilnost ovakvih aplikacija izuzetno loša. Ipak,
CGI je istorijski prvi pokušaj kreiranja dinamičkog Weba, i tako ga valja i
posmatrati. I pored ovog problema, CGI je i dalje veoma popularno rešenje,
naročito u UNIX svetu.

RSS

RSS (skrćenica od RDF Site Summary, više poznat kao Really Simple
Syndication - stvarno jednostavne vesti) je skup Web formata za Web
stranice koje se često osvežavaju, i sam njih izvor(feed) i preglednici za
vijesti iz tog izvora (RSS readers). RSS izvori postoje najčešće za blogove,
neke novinske Internet stranice (portali) ili Web stranice poput
Wikipedije koje se učestalo menjaju (češće od jednom dnevno, pa do
nekoliko promena u sekundi). Čitanje RSS vesti može biti elegantnije od
otvaranja desetak tabova u Web pretraživaču.

RSS univerzalni format za razmenu sadržaja, omogućava vlasnicima


web stranica prezentiranje sadržaja korisnicima u skraćenom obliku. Korisnici
mogu ponuđene sadržaje pregledati pomoću preglednika, posebnih programa
Tehnologije razvoja Web aplikacija 18

ili koristiti na svojim stranicama. T akođe, postoje posebni portali čiji


sadržaj se sastoji isključivo od RSS sadržaja.

PHP
Najpopularniji opensource način razvoja Web aplikacija današnjice jeste PHP,
programska platforma i jezik interesantnog rekurzivnog naziva (PHP je
skraćenica od PHP: Hypertext Preprocessor). To je programski jezik koji se
dodaje u HTML kod stranice (slično ASP načinu skriptovanja), i po svojoj
sintaksi sličan je jezicima C, Java i Perl. PHP omogućuje generisanje Web
stanice u vreme izvršavanja – kada čitač klijenta pozove PHP stranicu, Web
server šalje zahtev PHP procesoru. Procesor čita dokument koji čitač želi da
preuzme, i izvršava PHP iskaze obuhvaćene oznakama za početak ( <?php ili
<?) i završetak ( ?>) PHP skripta. Na taj način PHP procesor ispisuje dinamički
generisani HTML u memoriju Web servera, koji, zatim, takav sadržaj
prosleđuje klijentu.

PHP znatno olakšava pristup brojnim bazama podataka, a najprirodnije


sarađuje sa drugim opensource rešenjem, RDBMS serverom MySQL. Podržava
rad sa protokolima IMAP, POP3, NNTP i HTTP, a može da koristi priključke
za rad sa drugim TCP/IP protokolima. Može se koristiti na različitim
serverskim platformama (Linux, FreeBSD, Windows – gde se na IIS instalira
kao ISAPI dodatak). Popularnost je stekao zahvaljujući jednostavnosti, ceni i
izuzetno bogatoj dokumentaciji. Loša strana (kao i kod ASP-a) jeste izmešan
HTML i PHP kod, koji je teško održavati. Funkcionalni i prezentacioni deo
Web aplikacije su na ovaj način isprepleteni i teško odvojivi.

ASP
Active Server Pages je, slično PHP-u, tehnologija koja omogućuje programsku
konstrukciju HTML stranica neposredno pred njihovu isporuku čitaču.
Microsoft je zvanično obelodanio ASP 16.07.1996. godine pod šifrom Denali.
Beta verzija je puštena u novembru iste godine, a ASP 1.0 bila je na tržištu
12.12.1996. Od kada je ASP ugrađen u IIS 3.0 (mart 1997), postaje znatno
rasprostranjeniji. ASP ne zavisi od konkretnog klijenta, odnosno čitača, jer se
celokupan kod izvršava na serveru. Tu imamo sledeće prednosti, koje važe i za
ostale serverski orijentisane tehnologije:
Tehnologije razvoja Web aplikacija 19

▪ programi se mogu izvršavati u programskom jeziku koji browser ne


podržava;

▪ mogućnost programiranja dinamičkih Web aplikacija nezavisno od čitača,


bez programiranja na strani klijenta Java apletima, DTML-om ili ActiveX-
om – svi oni zahtevaju određene čitače ili platforme.

▪ možemo dostaviti čitaču podatke koji su mu inače nedostupni;

▪ brže se učitava – jer do čitača stiže samo HTML, a ne neki klijentski kod;

▪ bezbednije je – programski kod ne može se videti.


Jezik kojim se vrši serversko skriptovanje može biti VBScript ili JScript, MS
varijanta JavaScripta. ASP stranice su kombinacija tri tipa sintakse: običnog
teksta, HTML oznaka i ASP naredbi.

Tabela 22: Tipovi sintakse u ASP datotekama

Tip Svrha Tumač Oznake

Informacije koje Čitač na


se fiksno upisuju, korisnikovom
Tekst Jednostavan ASCII tekst
a koje treba računaru
prikazati korisniku prikazuje tekst

Čitač na
Svaka oznaka unutar graničnika <>.
korisnikovom
Uputstva čitaču HTML oznake su većinom u
HTML računaru tumači
kako da formatira parovima (otvorena oznaka i
oznake oznake za
tekst i slike zatvorena oznaka), npr. <TABLE> i
formatiranje
</TABLE>
teksta
Uputstva Web
serveru, na kome Web server Web Svaki deo ASP-a sadržan je između
graničnika <% %>
ASP radi ASP, kako se lokacije pomoću
ASP naredbe sadrže strukture
naredbe stvaraju delovi ASP oznaka tipa
programskih jezika, kao što su
stranice koje izvršava ASP kod
treba poslati VBScript i JScript

Rad u Active Server Pages 3.0 svodi se na pisanje skriptova koji koriste ASP
objektni model. ASP ima sedam ugrađenih (built-in) objekata: Server,
Application, Session, Request, Response, ObjectContext, ASPError. Svaki od
ovih objekata svojom funkcionalnošću pokriva određeni deo zadataka koji se
postavljaju pred ASP kao serversku tehnologiju za razvoj Web aplikacija.
Tehnologije razvoja Web aplikacija 20

Objekat Application

Objekat
Session

Zahtev
klijenta Objekat
Request SERVER

Objekat
Response
Odgovor
servera
Klijent

Objekat
Session

Zahtev Objekat
Objekat Server
klijenta
Request

Objekat
Response Objekat
Odgovor
Klijent servera ASPError

Slika 87: ASP objektni model

Java
Java je istovremeno i platforma i programski jezik. U pitanju je već zrela
tehnologija kompanije Sun Microsystems, koja je razvijana gotovo isključivo
za Internet programiranje. Programski jezik Java ima sledeće karakteristike:
jednostavnost, objektnu orijentisanost, distribuiranost, robustnost, sigurnost,
arhitekturnu neutralnost, portabilnost, visoke performanse, dinamičnost i
multithreading (mogućnost razvoja višenitnih aplikacija). Za razliku od većine
programskih jezika koji se ili kompajliraju ili interpretiraju da bi se mogli
izvršavati na računaru, Java je i kompajliran i interpretiran jezik. Najpre se
kompajlerom izvorni kod prevede u "međujezik" (intermediate language, IL) –
tzv. bajtkod (bytecode), koji je nezavisan od platforme i izvršiv u tzv. Java
virtuelnoj mašini (JVM), da bi se zatim taj bajtkod parsirao i interpretirao
unutar JVM. Proces kompilacije se izvršava samo jednom, da bi se bajtkod
interpretirao svaki put pri pokretanju Java programa:

myProgram.java interpreter

myProgram.class
kompajler

Slika 88: Kompajliranje i interpretiranje Java programa


Tehnologije razvoja Web aplikacija 21

Zahvaljujući ovakvom konceptu, postaje moguća paradigma "napiši jednom,


pokreni svuda": bez obzira na platformu (PC, Macintosh, Solaris, ...), ukoliko
postoji Java virtuelna mašina – program se može izvršiti na toj platformi.

kompajler

helloWorldApp.java

interpreter interpreter interpreter

Win32 Solaris MacOS

Slika 89: Write Once, Run Everywhere – Java paradigma

Posledica interpretiranja – bez native-code kompajlera – jeste kod koji je nešto


sporiji od kompajliranog. Međutim, savremene JVM u velikoj meri anuliraju tu
prednost klasičnog kompajliranja: ukoliko su performanse ranije i bile problem,
danas su u tom pogledu klasične i Java aplikacije gotovo izjednačene. Java nije
samo platforma za Internet razvoj, jer se koristeći ovaj jezik i JVM mogu
napisati aplikacije za bilo koju namenu.

Što se tiče pisanja Internet aplikacija, moramo razdvojiti dva tipa programa:
aplete (applet), koji se izvršavaju u klijentskim JVM, i servlete (servlet), koji
se izvršavaju na serverima, dok se rezultat njihovog rada šalje klijentima.
Problem koji je Microsoft imao sa ISAPI-jem (monolitnost dinamičkih
biblioteka i HTML koji je "ugrađen" u dll, izmešanost koda i interfejsa) Sun je
dobio sa servletima, tako da je i reagovao na sličan način: osmišljena je
tehnologija koja znatno olakšava izradu i održavanje dinamičkih Web
aplikacija – Java Server Pages, JSP.

Java Server Pages


Ideja koja se nalazi u osnovi JSP koncepta jeste da se omogući paralelan, ili bar
nezavisan, rad Web dizajnera i programera. JSP stranice su tekstualne datoteke
koje sadrže HTML oznake, ali i specijalne tagove koji omogućavaju dodavanje
dinamičkih elemenata u stranicu. Ti tagovi su sintaksno potpuno isti kao u ASP-
u (<% za otvaranje i %> za zatvaranje bloka koda). Realizacija se zasniva na
sledećoj ideji: ovako napisana JSP stranica će poslužiti kao osnov za dinamičko
generisanje servleta koji će proizvesti upravo onakvu HTML stranicu koja je
Tehnologije razvoja Web aplikacija 22

specificirana u JSP stranici. Takav servlet se generiše kao klasična datoteka sa


izvornim Java kodom. Nakon generisanja servleta vrši se njegovo prevođenje
u Java bajt-kod, a zatim izvršavanje u Java virtuelnoj mašini na serveru.
Proizvod tog izvršavanja jeste čist HTML, koji se vraća klijentu.

čita hello.jsp

http request

generiše helloServlet.java
http response
Internet kompajlira
izvršava
klijent server
helloServlet.class

Slika 90: Postupak dinamičkog generisanja servleta

Iz JSP koda moguće je koristiti klase iz raspoloživih Java biblioteka,


JavaBeans komponente, Enterprise JavaBeans, pristupati bazama podataka
preko JDBC-a itd. Na taj način JSP stranice imaju dovoljnu funkcionalnost za
gradnju kompleksnih, skalabilnih Web aplikacija. Apache Software Foundation
i Jakarta Project stoje iza najpoznatije implementacije JSP tehnologije –
Tomcat.

.NET Framework
.NET tehnologija (čita se dotNET) predstavlja novi način razvoja aplikacija za
(za sada) Windows operativne sisteme. .NET vizija nasleđuje Windows DNA
tehnologiju za razvoj troslojnih poslovnih aplikacija, koja je bila zasnovana na
COM+ modelu.

.NET Framework (= programski okvir) predstavlja platformu za razvoj


aplikacija koja bi trebalo da postane nezavisna od operativnog sistema - poput
programskog jezika Java. Postoji mogućnost izrade Windows aplikacija, Web
aplikacija, Web servisa, aplikacija za mobilne uređaje... na relativno
uniformisan i jednostavan način, uz jaku objektnu orijentaciju.

Ispod čitavog framework-a nalaze se sistemski servisi. U trenutnoj


implementaciji u pitanju je Win32 API i COM+, mada teoretski (još uvek ne i
praktično) te servise može pružati bilo koji operativni sistem. Iznad sistemskih
servisa nalazi se najbitniji deo framework-a - CLR, Common Language
Runtime (adekvatan prevod ne postoji, najpribližnije bi bilo zajedničko izvršno
okruženje – zapravo, virtuelna mašina za .NET). CLR učitava i izvršava kod
napisan na bilo kom jeziku koji može da bude kompajliran u MSIL (Microsoft
Tehnologije razvoja Web aplikacija 23

Intermediate Language). Dakle, koncept veoma sličan Javi. Kod koji se na ovaj
način izvršava nazivamo upravljanim kodom (managed code).

VB.NET C# JScript.NET ...

Common Language Specification (CLS)

ASP.NET
Windows
Forms

Visual Studio .NET


Web Forms XML Web Services

ADO.NET and XML

.NET Framework Classes

Common Language Runtime

Windows COM+ Services

Slika 91: .NET Framework

Na CLR se oslanjaju .NET framework klase. Ove klase mogu biti instancirane
iz bilo kog programskog jezika, i predstavljaju osnovu funkcionalnosti .NET
framework-a. Klase pokrivaju veoma veliku oblast, od servisa za pristupanje
podacima do mrežnih biblioteka i upravljanja nitima (threads). Programer
jednostavno nasledi klasu i koristi je – razvoj aplikacija je brz, grešaka je manje.

Iznad klasa nalaze se posebne kolekcije objekata za rad sa podacima


(ADO.NET) i XML-om. Dalje, imamo podršku za dva (zasad) osnovna tipa
aplikacija: za tradicionalne klijente koji koriste Windows Forms, kombinaciju
Visual Basic-ovih i MFC formi, i za ASP.NET, koji uključuje Web forme i Web
servise. Iznad ovoga dolazimo do CLS (Common Language Specification), i
konačno do razvojnih jezika koji prate CLS. Zajednička jezička specifikacija je
skup pravila koje mora da zadovolji programski jezik da bi se mogao nazvati
.NET kompatibilnim.

Za razvoj se mogu koristiti različiti programski jezici: Visual Basic.NET, C#,


JScript.NET... tačnije, svaki jezik koji zadovoljava .NET specifikaciju, tj. koji
ima kompajler za prevođenje u MSIL. Svi jezici su potpuno ravnopravni, jer bi
trebalo da njihovi kompajleri generišu približno isti MSIL. Dakle, performanse
ne bi trebalo da se razlikuju, što bi konačno dovelo do kraja "rata programskih
jezika". Još jedan veoma bitan zajednički koncept jeste Common Type System
- zajednički sistem tipova. Svi .NET kompatibilni jezici koriste iste tipove
podataka, koji su definisani na nivou frameworka, tako da je znatno olakšana
jezička međuoperabilnost.
Tehnologije razvoja Web aplikacija 24

Prilikom kompajliranja u .NET-u, slično Javi, ne dobijamo odmah prirodni


(native) kod specifičan za operativni sistem. Umesto toga, vrši se kompajliranje
u Microsoftov posredni jezik (MSIL - Microsoft Intermediate Language). Ovaj
kod nije namenjen niti jednom operativnom sistemu, i u njega se prevode svi
.NET kompatibilni jezici. Dužnost jezičkih kompajlera je da algoritamski isti
programi u različitim jezicima generišu približno isti MSIL.
Kompajliranje

Kompajler .NET
MSIL
Izvorni kod kompatibilnog
metapodaci
jezika

Prirodni
JIT kompajler
(native) kod

Izvršavanje

Slika 92: Proces kompajliranja u .NET framework-u

Da bi se program izvršio, očigledno je potrebno još rada. Za taj posao zadužen


je tzv. Just-In-Time (JIT) kompajler, koji prevodi MSIL u prirodni kod
specificiran od strane operativnog sistema i same mašine na kojoj se program
izvodi. Tek tada operativni sistem zaista može izvršiti program. Praktično, faza
kompajliranja je ista za sve platforme; za druge operativne sisteme (ili novi
hardver) potrebno je obezbediti samo izvršnu fazu za to okruženje.

ASP.NET
Zbog svoje velike popularnosti, ASP je jednostavno prerastao svoju ulogu, i
morao je biti zamenjen tehnologijom (napisanom u jeziku C#) koja će biti u
stanju da se izbori sa zahtevima postavljenim pred savremene Web aplikacije.

Mane ASP-a:

▪ ASP stranice se pišu pomoću skript jezika (najčešće VBScript ili JScript);
ti jezici su interpretirani, a ne kompajlirani. Manjkavosti interpretiranih
jezika su nedostatak jakih tipova i kompajliranog okruženja. ASP kešira
kod, ali je on ipak interpretiran, što vodi do problema sa performansama i
skalabilnošću.

▪ Mešanje koda i sadržaja: iako u početku smatrano prednošću, ipak je mana


– dve grupe ljudi (Web dizajneri i programeri) rade na istim datotekama,
Tehnologije razvoja Web aplikacija 25

što nije praktično. Komplikovaniji kod je često značio i drastično veće


izvorne datoteke.

▪ U ASP-u se kodiraju i najjednostavnije funkcije (na primer, validacija polja


obrazaca...). ASP.NET je znatno komforniji, zahvaljujući serverskim
kontrolama – dosta koda je već napisano, a razvijaoci ga samo koriste.

▪ ASP ne rešava probleme kompatibilnosti uređaja (palmtop-ovi, mobilni


telefoni...). ASP.NET kontrole su dovoljno inteligentne da na osnovu
HTTP zahteva same otkrivaju šta se nalazi sa druge strane, i "emituju"
odgovarajući kod.

▪ ASP je teško proširiv, zatvoren sistem, bez otvorene mogućnosti podrške


novim standardima (poput XHTML-a, XML/XSLT-a...).
Ključni ciljevi koji se postižu uvođenjem ASP.NET-a:

▪ Uklanjanje zavisnosti od mašina za skriptovanje i omogućavanje da


stranice budu tipski bezbedne i kompajlirane - mnogo bolje performanse.

▪ Smanjenje količine koda potrebne za razvoj aplikacije (serv. kontrole).

▪ Olakšavanje instalacije Web aplikacija (XCOPY Deployment) – XML


konfiguracione datoteke. Ranije veliki problemi sa COM komponentama
kod three-tier Web aplikacija zbog neophodne registracije na serveru; sada
- Shadow Copying komponenti koje se nalaze u bin folderu u okviru
virtuelnog direktorijuma (to je funkcija CLR-a; nema zaključavanja
komponenti koje se trenutno koriste jer se zapravo pozivaju sa drugog
mesta, iz keša, a ne sa originalne lokacije).

▪ Bolje rukovanje greškama (automatsko otkrivanje curenja memorije i


restart problematičnih ASP.NET aplikacija, otkrivanje zahteva na
beskonačnom čekanju i mrtvih petlji i njihovo razrešavanje, skladištenje
stanja sesije eksterno tako da je moguć restart ASP.NET aplikacija bez
gubitka podataka krajnjeg korisnika).

▪ Poboljšanje performansi: svaka ASP.NET stranica je kompajlirana.


Tehnologije razvoja Web aplikacija 26

Parsira Kompajler Generiše


stranice

Zahtev
ASP.NET
DLL
stranica

Odgovor
Klasa PAGE Instancira

Slika 93: Prilikom prvog zahteva klijenta za određenom aspx stranicom


vrši se njeno kompajliranje u native kod – kreira se odgovarajući DLL

Kompajliranje stranice nije jeftino i može da potraje nekoliko sekundi za


složene stranice. Ali, kompajliranje se uvek vrši samo jednom za datu . aspx
datoteku. Svi naknadni zahtevi za stranicom (čak i nakon restartovanja Web
servera) zadovoljavaju se instanciranjem generisane klase i zahtevom da se
stranica vizualizuje. Rezultat su odlične performanse, a cena – nešto malo
prostora na disku za DLL-ove.

Kao što JSP stranice mogu da pozivaju sve ranije napisane Java klase
(uključujući i JavaBeans komponente, JDBC...), celokupna .NET biblioteka
klasa je dostupna ASP.NET stranicama. Pristup podacima se vrši ADO.NET
bibliotekom klasa.

Web 2.0

Koncept
Web 2.0 je koncept koji je u prethodnih nekoliko godina, koliko postoji,
napravio revoluciju u korišćenju Interneta i vratio mu imidž medija za razmenu
informacija koju je prvobitno i imao. Formalizacija termina i koncepta Web 2.0
vezuje se za ime Tima O’Rajlija (Tim O’Reilly). Nakon čuvenog „Dot – com
balona” i propadanja velikog broja kompanja iz Web 1.0 perioda, O’Rajli
verovao da se radi o kraju Weba, kako su mnogi tvrdili, već je smatrao da se
radi o normalnoj fazi „rasta balona i njegovog pucanja”, koja prati mnoge
tehnologije i usluge. Tvrdio je da se radi samo o prekretnici u razvoju Weba i
da je došlo vreme za razvoj nove – druge faze Weba. O’Rajli i „Media Live
International” su u seriji rasprava taj pojam nazvali Web 2.0, kojim su, umesto
da ga definišu, predstavili koncepte na kojima počiva, ključne razlike
i evoluciju Weba 1.0 u Web 2.0. Stvaranje koncepta rezultiralo je i održavanjem
Tehnologije razvoja Web aplikacija 27

tri Web 2.0 konferencija u San Francisku u oktobru 2004. i 2005. godine, dok
je treća konferencija bila održana početkom novembra 2006. godine. Na
konferencijama se raspravljalo o prošlosti, sadašnjosti i budućnosti weba, prvo
kroz Web kao platformu, da bi se u poslednje dve godine godine proširila priča
na inovacije kojima je rezultiralo koriščenje Weba kao platforme i usluga koje
tako nastaju. Ove se godine problematika proširila na teme novih aplikacija i
usluga, kao i poslovnih 2.0 modela.

Definicija Web-a 2.0


„Filozofija uzajamnog povećanja kolektivne inteligencije i dodane
vrednosti za svakog sudionika dinamičkim stvaranjem i deljenjem
informacija.“ Web 2.0 lekcija: „Posložiti stvari tako da samousluga kupca i
algoritamsko upravljanje podacima dosegnu celi web, sve do rubova, a ne samo
do centra, do dugačkog repa, a ne samo do glave.“Sam pojam postaje značajan
nakon prve Web 2.0 Konferencije O'Reilly Media 2004. godine. Dopredednik
firme Tim O'Reilly termin definiše kao: „Web 2.0 je poslovna revolucija u
komjuterskoj industriji uzrokovana tretiranjem mreže kao platforme i
nastojanje da se shvate pravila uspjeha na toj novoj platformi.

Osnovne karakteristike Web 2.0 su otvorenost, sloboda i kolektivna


inteligencija. Korisnici mogu koristiti aplikacije u potpunosti kroz Web
preglednik – dakle Web se definiše kao platforma pa imaju kontrolu nad
podacima na nekoj stranici. Zatim, sama arhitektura Web-a 2.0 podstiče
korisnike da tokom korišćenja daju svoj prilog nekom Web 24 sadržaju ili
aplikaciji. Nadalje su tu neki aspekti društvenog umrežavanja (društveni
softveri unutar društvenog networking-a) te kvalitetnije grafičko uređenje nego
na Web 1.0.

"Web 2.0 je termin koji neke osobe vide kao drugu fazu razvoja WWW servisa
Interneta, uključujući njegovu arhitekturu i aplikacije." Pod ovim se generalno
misli na razvoj Weba posle 2000. g. Web 2.0 se opisuje kao promena
razmišljanja i ponašanja u nekoliko bitnih oblasti online okruženja:

Struktura Web 2.0 aplikacije


Arhitektura klasične aplikacije neophodna jer implementira osnovnu
funkcionalnost aplikacije, zastupljenost socijalne arhitekture i arhitekture
participacije zavisiće od namene konkretne aplikacije. Struktura Web 2.0
aplikacije prikazana je na Slici 3. U Web 2.0 aplikaciji možemo posmatrati tri
nivoa. Prvi je nivo aplikacije, koji se odnosi na neophodnu funkcionalnost, i
sadrži bazu podataka, aplikacioni sloj i klijentski sloj. Drugi nivo odnosi se na
distribuciju, i obuhvata API (protokoli kao SOAP i RSS, format podataka JSON
Tehnologije razvoja Web aplikacija 28

itd), vidžete (male aplikacije ugrađene u Veb stranice) i sindikaciju (mogućnost


dinamičkog, automatizovanog praćenja izmena na određenom Veb sajtu). Treći
nivo odnosi se na socijalnu dimenziju, i obuhvata softver za izgrađivanje i
funkcionisanje zajednice (forum, blog, viki), softver za socijalno umrežavanje
(lista prijatelja, tok aktivnosti, slanje pozivnica) kao i participaciju

• Prelazak sa razmišljanja o Web sajtovima kao samostalnim "informacionim


silosima" ka izvorima sadržaja i funkcionalnosti. Tvorci termina Web 2.0
(O'Reilly Media) ovaj koncept vide na način "Web kao platforma".

• Socijalni fenomen kreiranja i distribucije sadržaja na Webu koji karakteriše


otvorena komunikacija, decentralizacija autoriteta, sloboda deljenja
sadržaja i njegovo ponovno korišćenje.

• Bolje organizovan i kategorizovan online sadržaj.

• Razmišljanja o realnoj ekonomskoj vrednosti Web-a, za razliku


od perioda krajem devedesetih.

• Marketinški termin kojim se razdvajaju poslovni modeli koji su


nastali nakon 2000. g.

3.2 Tehnološka prekretnica


Dok nisu došli novi jezici u kreiranju Web stranica, korišćeno je samo HTML
jezik koji se i dan danas unapređuje. Krajem prošlog i početkom ovog veka web
industrija doživljava tehnološki procvat. Pojavljuju se tehnologije kao što su
RSS, XML, blogovi ili društvene mreže koje daju potpuno novu dimenziju
prisustvu na Internetu. One u potpunosti menjaju i način na koji korisnici
počinju da koriste web, te Internet prelazi put od platforme do servisa na
raspolaganju krajnjim korisnicima, koji će u potpunosti promeniti živote ljudi
u vidu korišćenja Interneta.

Многи програмери веб сајтова и апликација желе да пруже корисницима


доста богатије клијентско искуство, али, или не желе да напишу
стандардне десктоп 1 апликације или једноставно не могу. За њих Ajax
може бити тачно оно што им треба. Ajax им дозвољава да се веб

1
Десктоп апликације подразумевају стандардне апликације које се извршавају
ван веб претраживача, на какве смо обично навикли.
Tehnologije razvoja Web aplikacija 29

апликације понашају скоро као десктоп апликације, са могућностима које


су раније само десктоп апликације могле похвалити, нпр. тастатурне
пречице и повуци и отпусти померањем.

1.1.1. Asp.Net AJAX и Asp.Net


Asp.Net “Atlas” је била кодна шифра за нови сет Microsoft технологија које
су пружале Ajax-олику функционалност за програмере који су радили са
Asp.Net програмским језиком. Тај сет технологија је пружао исто толико
предности за Ajax програмирање, колико је Asp.Net пружао за серверско
веб програмирање. У јесен 2006, најављено је финално име производа:
„Asp.Net AJAX“. 2

И ако Asp.Net AJAX пружа прегршт могућности за програмера који се


бави клијентским програмирањем Ajax апликација, Asp.Net AJAX није
само о писању JavaScript и прављењу асинхроних позива ка серверу.
Пошто је Asp.Net AJAX прављен од стране Asp.Net тима, није
изненађујуће да је једна од његових наглашених особина је интегрисаност
са Asp.Net програмским језиком.

Као и са Asp.Net, Asp.Net AJAX је дизајниран да донесе функционалност


– у овом случају предности Ajax-а – без потребе за великим знања Ajax
технологија. Asp.Net AJAX може да управља Ajax технологијама на исти
начин као што Asp.Net управља HTTP функционалношћу, као што су
postback-ови, управљање стањима и клијентским скриптама које чине да
Asp.Net „ради“.

Као додатак, на серверској страни, Asp.Net AJAX ради као део Asp.Net-а
преузимајући предности које му он пружа. Asp.Net AJAX контроле могу
да комуницирају са Asp.Net контролама и да учествују у животном
циклусу странице. Може се повезати на већ постојеће особине Asp.Net-а
као што су сесије, аутентикација и профили – што на, допушта да
користимо ове могућности код клијента.

Навешћи неке од кључних елемената Asp.Net AJAX технологија:

➢ Asp.Net AJAX серверске контроле


Asp.Net AJAX пружа серверске контроле које
подсећају на оне из Asp.Net-a, али које раде са
Asp.Net AJAX клијентском платформом за
Tehnologije razvoja Web aplikacija 30

пружање своје функционалности. Две контроле


су фундаменталне за Asp.Net AJAX апликације:

o ScriptManager – је централни део Asp.Net


AJAX странице. Ова контрола преузима
контролу над учитавањем свих потребних
JavaScript библиотека које су потребне за
функционисање.

o UpdatePanel – је контрола која пружа


могућност страници да изврши парцијално
освежење без слања података са целе
стране и преузимање комплетне стране,
већ само тог дела што се налази унутар
UpdatePanel контроле.

➢ Аsp.Net AJAX Asp.Net сервиси


Аsp.Net AJAX Asp.Net сервиси пружају одређене
Asp.Net апликативне сервисе директно доступне
Аsp.Net AJAX клијентским скриптама. Ти сервиси
укључују профиле, персонализацију,
аутентикацију, чланства и локацијске сервисе.
Може се очекивати да се број сервиса који су
доступни клијентским скрипта буде повећавао са
новијим издањима Аsp.Net AJAX технологије.
Zaštita računarskih mreža i sigurnost podataka
Ekspanzija Interneta poslednjih godina dvadesetog veka i početak korišćenja
resursa globalne računarske mreže za različite vidove poslovnih delatnosti,
uslovili su i povećanje efikasnosti u poslovanju, uz jednostavnost i pogodnosti
korišćenja infrastrukture i aplikacija na koje su se korisnici veoma brzo navikli.
Međutim, neprekidna povezanost na svetsku mrežu, koja je u eri povoljnog
širokopojasnog Interneta postala sasvim prirodna, uslovila je i specifične
probleme koji se tiču privatnosti korisnika i zaštite njihovih informacija. Zbog
toga se javlja potreba za pouzdanom zaštitom podataka, koja se ostvaruje
primenom različitih tehnoloških postupaka, a na različitim nivoima i u raznim
aspektima sistema – počev od fizičke zaštite računarskih resursa, preko mrežne
zaštite i sistemske kontrole pristupa tim resursima, do zaštite samih korisničkih
podataka.

Ovo poglavlje posvećeno je diskusiji određenih problema zaštite podataka koji


su dostupni preko Interneta. Najpre ćemo rezimirati osnovne opšte opasnosti
kojima su izloženi podaci, a potom izložiti pristupe za njihovo umanjivanje ili
prevazilaženje.

Pretnje sigurnosti podataka i njihova zaštita


Da bismo uspešno zaštitili sistem, moramo poći od osnovne pretpostavke –
sistem sam po sebi nije bezbedan. Neophodno je izvršiti identifikaciju pretnji i
analizu mogućih rizika, a na osnovu prethodnog iskustva ili proučavanjem
srodnih sistema, procenom gubitaka koji mogu nastati, kao i utvrđivanjem
verovatnoće napada. Na taj način se utvrđuje koje komponente sistema su
kritične, a zatim se pristupa adekvatnoj zaštiti. Takva se zaštita može sprovesti
na više nivoa: primenom specijalizovanih mrežnih uređaja, softverskim
proizvodima namenjenim zaštiti, aktiviranjem zaštitnih mehanizama
operativnih sistema ili korišćenjem njihovih servisa za zaštitu podataka.

Pretnja sistemu (konkretnom računaru ili mreži) može biti bilo koja osoba,
objekat ili događaj koji mogu dovesti do ugrožavanja ili kompromitovanja
privatnosti informacija u sistemu. Da bismo predupredili nastajanje, ili se
odbranili od pretnje koja je prisutna, neophodno je koristiti odgovarajuće
zaštitne mehanizme, kao sredstva za realizaciju zaštite informacija, odnosno
zaštitne servise, koji predstavljaju kolekciju takvih mehanizama.
Zaštita računarskih mreža i sigurno st podataka 32

U kontekstu korišćenja računarskih sistema na Internetu, smetnje možemo


kategorizovati na sledeći način:

▪ neovlašćen pristup resursima sistema,


▪ neovlašćen pristup podacima,
▪ neautorizovana izmena podataka,
▪ poricanje realizovanih aktivnosti, kao i
▪ lažiranje aktivnosti.

Što se tiče mogućnosti kompromitovanja privatnosti podataka prilikom prenosa


preko mrežnog medijuma, napadi koji mogu uslediti svrstani su u četiri vrste:
presretanje, prekid, modifikacija i falsifikovanje. Na donjoj slici je prikazan
normalan tok podataka, kao i navedene četiri vrste napada.
izvor odredište
informacije informacije

normalan tok

prekidanje presretanje

modifikovanje falsifikovanje

Slika 95: Mogućnosti ugrožavanja podataka prilikom mrežnog prenosa


Zaštita računarskih mreža i sigurno st podataka 33

Zaštitni postupci kojima se u znatnoj meri otklanja opasnost od


neautorizovanog pristupa i/ili izmene podataka na zaštićenom sistemu ili
prilikom mrežnog prenosa jesu: kontrola pristupa, autentifikacija korisnika,
obezbeđivanje privatnosti podataka, mogućnost provere integriteta podataka i
nemogućnost poricanja.

Kontrola pristupa
Ovaj postupak možemo podeliti na dve grupe akcija: lokalnu kontrolu pristupa
resursima računara (deljenje datoteka i foldera, pristup uređajima na sistemu,
prava korisnika nad podacima – postiže se servisima operativnog sistema) i
restrikciju mrežnog saobraćaja između lokalnog sistema i javne računarske
mreže (zaštita može biti postignuta specijalizovanim uređajima, softverskim
putem ili kombinacijom ovih pristupa). Politika zaštite treba da bude veoma
restriktivna – zabraniti sve aktivnosti za kojima ne postoji apsolutna potreba.

Autentifikacija korisnika
Pod autentifikacijom se podrazumeva pouzdano dokazivanje identiteta
korisnika. Zasniva se na nečemu što zna samo jedan korisnik (lozinka), na
nečemu što poseduje samo jedan korisnik (npr, smart kartica ili medijum sa
digitalnim sertifikatom) ili na nečemu što je vezano za određenog korisnika
(biometrijska provera), te kombinacijama ovih metoda. Ukoliko se primenjuje
samo autentifikacija na bazi lozinke, a ona se prenosi nebezbednim
medijumom, kao što je nezaštićena TCP/IP veza, moguće je njeno presretanje
i zloupotreba.

Obezbeđivanje privatnosti podataka


Osetljive informacije ne treba skladištiti u originalnom, nego u obliku kojim se
obezbeđuje zaštita privatnosti (tajnosti). Ukoliko zlonamerni korisnik i uspe da
zaobiđe mehanizme zaštite pristupa, informacije do kojih je na taj način došao
biće praktično neupotrebljive, jer samo korisnik koji poseduje odgovarajuću
tajnu informaciju (ključ) može da vrati podatke u originalan oblik. Pošto
globalna Mreža podrazumeva nemogućnost pouzdane kontrole pristupa
prilikom prenosa podataka, jasno je da informacije moraju biti na ovaj način
zaštićene pre postavljanja na komunikacioni medijum.

Provera integriteta podataka


Servis zaštite integriteta informacija omogućuje otkrivanje njihove eventualne
izmene. Smisao takvih servisa nije u zaštiti od neovlašćene modifikacije, nego
u detekciji izmene, koja je moguća uvek – osim u slučaju brisanja datoteka.
Zaštita računarskih mreža i sigurno st podataka 34

Pouzdanu proveru integriteta pružaju digitalni sertifikati ili kriptografske


čeksume poput MAC (Message Authentication Code).

Onemogućavanje poricanja
Servis za zaštitu od poricanja obezbeđuje zaštitu učesnika u mrežnoj
komunikaciji i onemogućuje lažiranje. Onemogućavanje poricanja ima
posebno bitnu primenu na servis elektronske pošte, jer na ovaj način prijemna
strana može pouzdano da proveri da li je poruka stigla sa deklarisanog
odredišta. Takođe, nemoguće je da jedna strana u poslovanju kasnije porekne
da je preduzela neku akciju, poput npr. kupovine ili prodaje dobara ili hartija
od vrednosti, što je osnovni preduslov za ostvarivanje elektronskog poslovanja.

Zaštitni postupci se ostvaruju uz pomoć posebno projektovanih uređaja, servisa


operativnih sistema, metodologija i tehnika zaštite. U daljem tekstu ćemo se
najpre baviti fizičkim aspektima zaštite računarskih sistema i mreža, dok će
zasebno biti izložene metode za zaštitu podataka, koje uključuju i ostale
postupke za ostvarivanje bezbednosti (poput dokazivanja identiteta korisnika
ili očuvanja integriteta poruka). Ove metode su zasnovane na kriptografskim
tehnikama zaštite.

Zaštita računarskih mreža

Firewall sistemi
U današnje vreme, sigurnost mreža i zaštita podataka predstavljaju veoma
važan faktor. Povezivanje mreže na Internet i direktna veza sa svetom,
predstavljaju stalnu pretnju za sistem i pružaju mogućnost hakerima, da
koristeći različite bezbednosne propuste, provale u sistem.

Firewall predstavlja mehanizam zaštite u računarskim mrežama. To je


softverski proizvod koji proverava pakete koji dolaze do njega i na osnovu
unetih pravila, propušta ili odbija te pakete. Na tržištu postoji veoma mnogo
firewall proizvoda.

Firewall se obično nalazi na ulazu u mrežu, tj. između unutrašnje i spoljašnje


mreže, tako da se celokupan saobraćaj mora odvijati preko njega. On štiti mrežu
na svim softverskim slojevima OSI modela – od sloja veze podataka, do
aplikacionog sloja.

U firewall sistemima se koriste tri osnovna metoda zaštite:


Zaštita računarskih mreža i sigurno st podataka 35

▪ filtriranje paketa (packet filtering) – metod pomoću koga se odbija pristup


TCP/IP paketa koji dolaze sa neovlašćenih hostova i na neovlašćene
servise.

▪ translacija adresa ili NAT (Network Address Translation) – metod koji


prevodi IP adrese unutrašnjih hostova u neku od spoljašnjih (javnih) adresa
i tako omogućava hostovima iz unutrašnje mreže pristup Internetu. Za ovaj
metod se često koristi i termin IP masquerading.

▪ proxy servisi – metod koji radi pomoću aplikacija višeg sloja, koje
omogućavaju hostovima iz interne mreže pristup servisima na javnim
serverima.

Sve ove funkcije mogu se obavljati na jednom hostu, ali i na više njih. Ostale
funkcije koje firewall sistem može da pruži su:

▪ kriptovana autentifikacija – omogućava korisnicima da sa spoljašnje,


pristupe unutrašnjoj mreži, ako se identifikuju.

▪ podrška za virtualne privatne mreže ili VPN (Virtual Private Networking)


– tehnologija koja pruža mogućnost uspostavljanja sigurne veze između
dve privatne, preko javne mreže, npr. Interneta. VPN mreže se takođe
nazivaju enkriptovani tuneli.

▪ skeniranje virusa – mogućnost da se vrši skeniranje dolaznih podataka da


bi se otkrili i uklonili virusi.

▪ filtriranje sadržaja (content filtering) – mogućnost da se vrši blokiranje


pristupa pojedinim servisima na osnovu sadržaja kojem se pristupa.

Filtriranje paketa
Prvi firewall sistemi su bili jednostavni filteri paketa. Filtriranje paketa (packet
filtering) ostaje ključna i osnovna funkcija današnjih firewall sistema.
Filtriranje je proces u kome se proveravaju paketi mrežnog protokola, kao što
je IP, ili transportnog protokola, kao što je TCP. Paketi se upoređuju sa
pravilima na osnovu kojih se vrši filtriranje. Pravila se nalaze u tabeli i mogu
se naći na ruteru ili nekom od računara sa odgovarajućim softverom za
filtriranje.

Filteri sprečavaju prolaz sumljivih paketa u unutrašnjost mreže. Upotreba


firewall softvera na ruteru ima svojih prednosti. Ruteri se obično nalaze na
ulazu u mrežu [slika 96], kao čvorovi kroz koji mora da prođe ceo saobraćaj
Zaštita računarskih mreža i sigurno st podataka 36

upućen na tu mrežu. Filteri koji su podignuti na njima mogu da kontrolišu


pristup celoj mreži, delu mreže ili samo ka specifičnom hostu.

klijent
klijent

klijent

Internet
switch firewall

klijent
mail server firewall pravila

svi portovi su blokirani

propušta se port 80 (web)

propušta se port 25 (mail)


web i ftp server
propušta se port 21 (FTPl)
klijent

Privatna mreža firme Spoljašnja javna mreža

Slika 96: Prikaz zaštićene mreže u kojoj firewall


blokira nepoželjan saobraćaj sa spoljašnje mreže

Filteri se mogu podići i na pojedinim hostovima. Ti filteri mogu obično da


kontrolišu pristup samo onim hostovima na kojima se nalaze. Zbog toga se
upotreba filtera na hostovima preporučuje samo kao dodatak i u kombinaciji sa
filterima na ulaznim ruterima, a nikako kao jedinstveno rešenje.

Tipična pravila za filtriranje paketa mogu biti raznovrsna. Jedno od osnovnih


je sprečavanje pokušaja uspostavljana dolazne konekcije (inbound) na neki od
hostova unutrašnje mreže. To se postiže odbacivanjem paketa (drop). Takođe
se može vršiti i sprečavanje pristupa određenom opsegu IP adresa, tj. većem
broju hostova. Zatim postoji mogućnost dozvoljavanja uspostavljana izlazne
konekcije (outbound).

Firewall može da vrši i sprečavanje pristupa onim portovima na unutrašnjim


računarima, na kojima se nalaze servisi koji ne bi trebali da budu vidljivi na
Internetu (npr. NetBIOS session port), a da dozvoli pristup za pakete upućene
na portove na kojima se nalaze servisi koji treba da su dostupni sa spoljne mreže
(SMTP za servis elektronske pošte ili HTTP za Web servis). Obično se
dozvoljava pristup preko SMTP protokola (port 25) samo mail serveru, tj. samo
onom hostu u mreži na kome se nalazi taj servis.
Zaštita računarskih mreža i sigurno st podataka 37

Napredniji paket filteri proveravaju stanje svake konekcije koja se uspostavlja


preko njih, u potrazi za nekim znacima napada. Ti znaci napada mogu biti
source routing, ICMP redirekcija i IP spoofing. Konekcije koje pokazuju slične
znake se blokiraju.

Unutrašnjim klijentima se obično dozvoljava izlaz sa mreže. Ako unutrašnji


klijent inicira uspostavljanje veze sa spoljašnjim hostom, tada se spoljašnjim
hostovima dozvoljava uspostavljanje povratne konekcije sa unutrašnjim
hostom, koji je inicirao konekciju. Naime, kada host unutar mreže pokuša da
uspostavi TCP konekciju, šalje TCP poruku na IP adresu odredišnog hosta i
broj porta javnog servera na tom hostu. U inicijalnoj poruci se naznači IP adresa
udaljenog servera i port koji će služiti za uspostavljanje povretne konekcije
(npr. port 2050).

Spoljašnji server šalje nazad podatke na naznačeni port. Pošto firewall


proverava ceo saobraćaj između dva hosta, on zna da je konekcija inicirana sa
hosta koji se nalazi unutar mreže, tj. hosta koji je priključen na njegov
unutrašnji interfejs. Takođe, firewall zna IP adresu unutrašnjeg hosta i port na
kojem očekuje konekciju. Na osnovu tih podataka, dozvoljava se konekcija na
unutrašnji host sa odgovarajućom IP adresom i samo na predviđeni port.

Kada host koji je inicirao konekciju, zatvori TCP konekciju, firewall otklanja
ulaz u tabeli koji dozvoljava konekciju spoljnog hosta na unutrašnji. Ako
računar, koji je inicirao uspostavljanje konekcije, prestane da komuncira usled
pada ili neke druge nepredviđene situacije pre zatvaranja TCP konekcije,
firewall uklanja ulaz u tabelu posle isteka unapred određenog vremena čekanja.

Filtriranje se može vršiti i na operativnim sistemima. Serverske UNIX i


Windows platforme imaju packet filtering ugrađen u okviru TCP/IP protokola.
Taj softver za filtriranje može se koristiti kao dodatak firewall softveru na
ruterima.

Filtriranje paketa ima svoja bezbednosna ograničenja. Ta ograničenja bi se


mogla nazvati i nedostaci firewall-a. Pošto su IP adrese računara iz unutrašnje
mreže prisutne u odlaznim paketima, bezbednosni problem se ne može rešiti u
potpunosti, jer to pruža mogućnost potencijalim napadačima da otkriju broj i
tip hostova unutar mreže i da na njih usmere napade. Filtriranje, znači, ne
skriva identitet hostova unutar firewall sistema.

Takođe, filteri ne proveravaju fragmente IP poruka zasnovane na protokolima


viših slojeva, kao što su TCP zaglavlja. To omogućava pojavu propusta u
filtriranju i dozvoljava komunikaciju sa Trojan horse virusima unutar mreže.
Noviji firewall softveri imaju rešenje za ovakav problem.
Zaštita računarskih mreža i sigurno st podataka 38

Na kraju, filteri nisu dovoljno kompleksni da bi proverili ispravnost protokola


unutar paketa mrežnog sloja. Na primer, filteri ne proveravaju HTTP pakete
unutar TCP paketa da bi proverili da li je to uobičajeni HTTP zahtev ili napad
na Web browser ili Web server na drugom kraju konekcije. Pošto su firewall
softveri skoro eliminisali napade na mrežnom sloju, danas se mnogi napadi
usmeravaju na servise viših slojeva, tako da ovaj nedostatak može predstavljati
problem.

Filtriranje paketa na operativnim sistemima treba da se koristiti tako da se


dozvoli prolaz samo onim paketima koji su potrebni, tj. onim paketima koji su
upućeni na postojeće servise na određenom hostu. OS filtriranje omogućava
definisanje kriterijuma za propuštanje paketa na osnovu:

▪ broja IP protokola,
▪ broja TCP porta i
▪ broja UDP porta

Filtriranje se obično ne primenjuje na odlaznu konekciju (outbound


connection), tj. konekciju koja potiče sa samog servera. Ako postoji više
mrežnih adaptera, filteri se definišu za svaki mrežni adapter na sistemu.

Postavlja se pitanje, koji su portovi obično otvoreni na različitim tipovima


servera. Tipičan server ima podignute servise na sledećim portovima [tabela
23] i oni moraju biti otvoreni da bi servisi radili kako treba:

Tabela 23: Tipični servisi potrebni za rad servera

Port TCP/IP Service


7 Echo
9 Discard
13 Daytime
17 Quote of the Day
19 Character Generator

Internet serveri obično imaju otvorene dodatne portove [tabela 24]:

Tabela 24: Tipični servisi potrebni za rad Internet servera

Port Server
21 File Transfer Protocol (FTP)
22 Secure Shell
23 Telnet
80 World Wide Web (HTTP)
119 Net News (NNTP)
443 Secure HTTP (HTTPS)
Zaštita računarskih mreža i sigurno st podataka 39

Fajl serveri imaju otvorene sledeće portove [tabela 25]:

Tabela 25: Tipični servisi potrebni za rad file servera

Port Service
53 Domain Name Service (DNS servis, ako postoji)
137 NetBIOS Name Service (WINS serveri)
NetBIOS Session Service
139 (Windows mreža i SMB/CIFS klijenti)
Remote Procedure Call
530
(RPC koristi Windows NT i aplikacije višeg sloja)
Windows Terminal Services
3389
prihvata konekcije pomoću RDP protokola

Mail serveri imaju otvorene portove [tabela 26]:

Tabela 26: Tipični servisi potrebni za rad mail servera

Port Mail Server


25 Simple Mail Transfer Protocol
(za međuserversku razmenu pošte)
Post Office Protocol version 3
110
(za preuzimanje pošte sa servera)
Internet Mail Access Protocol
143
(za pristup klijenta mail serveru)

Potrebno je napomenuti da se pri svakoj instalaciji novog servisa na računaru


firewall mora podesiti da dozvoli pristup portu na kome se servis nalazi. U
suprotnom, taj servis neće raditi. Ovo se ne odnosi i na server i na ulazni
firewall.

Postoje dva osnovna principa za postizanje sigurnosti. Prvi je sprečavanje svake


vrste saobraćaja osim one koja je potrebna i drugi, koji dozvoljava svaku vrstu
saobraćaja osim one za koju se zna da predstavlja pretnju za sigurnost sistema.
Prvi način je sigurniji, jer drugi podrazumeva da se pretnja može predvideti
unapred, što nije sasvim tačno. Stoga će se opširnije opisati prvi princip.

Kada se postavljanju filteri, potrebno je zabraniti pristup svim protokolima i


adresama. Nakon toga treba dozvoliti pristup pojedinim servisima i hostovima,
ali samo onim za koje je to potrebno. Dalje je potrebno zabraniti sve pokušaje
uspostavljanja konekcije u unutrašnjost mreže, jer dozvoljavanjem
uspostavljana veze sa spoljne strane može se dozvoliti hakerima prolaz ka
Trojan horse virusima ili bagovima u softveru. Nakon toga je potrebno
zabraniti odgovor na ICMP redirect i echo (ping) poruke. Na kraju, treba
odbaciti sve TCP source rutirane pakete, pošto se source routing retko koristi
za uobičajenu komunikaciju.
Zaštita računarskih mreža i sigurno st podataka 40

Ako se u mreži nalaze serveri za Web i mail servis, njih je potrebno postaviti
ispred filtera paketa, radije nego da se zbog njih propušta saobraćaj kroz sam
firewall.

Na kraju treba imati da na umu da filtriranje paketa nije i jedini način zaštite
mreže i da se ne treba samo na to osloniti.

NAT (Network Address Translation)


NAT predstavlja rešenje problema skrivanja internih hostova i informacija o
njima od potencijalnih napadača. NAT je zastupnički servis mrežnog sloja.
Suština ovog servisa je da jedan host, nazvan NAT server, ostvaruje konekcije
iz unutrašnje, prema spoljašnjoj mreži i prema javnim serverima u ime ostalih
hostova. Na taj način ih krije od ostatka sveta. Windows 2000, Windows XP,
Linux i ostali UNIX operativni sistemi podržavaju NAT u sklopu distribucije
operativnog sistema.

NAT krije unutrašnje IP adrese pretvaranjem njihovih adresa u adresu firewall


sistema. Kada primi zahtev za uspostavljanje konekcije prema spoljašnjoj
mreži, firewall to čini koristeći svoj broj TCP porta za uspostavljanje veze sa
javnim hostom. Na Internetu, ovaj zahtev za uspostavljanje veze izgleda kao da
saobraćaj dolazi sa jednog računara, u ovom slučaju NAT servera [sl. 97].

192.168.100.5

klijent

web server

klijent 212.60.72.1

192.168.100.20
Internet
switch firewall + NAT server web server

212.60.72.1

web server
proxy server

Privatna mreža firme Spoljašnja javna mreža

Slika 97: NAT server pretvara adresu hostova u svoju


adresu i prosleđuje zahtev hostova na Web server
Zaštita računarskih mreža i sigurno st podataka 41

NAT efikasno krije sve informacije TCP/IP sloja o unutrašnjim hostovima.


Adresna translacija takođe dozvoljava upotrebu privatnih IP adresa, koje bez
tog servisa ne bi mogle da pristupe Internetu. To može da pomogne u
slučajevima kada administrator ne raspolaže dovoljnim brojem javnih IP adresa
i kada se ne bi moglo izvršiti adresiranje svih hostova koji treba da pristupaju
Internetu.

Hostovi unutar mreže se mogu adresirati sa bilo kojim IP adresama, ali to može
dovesti do problema ako se neovlašteno dodele adrese koje već postoje na
Internetu. Zbog toga se preporučuje upotreba privatnih IP adresa iz nekog, za
tu svhu, preporučenih rezervisanih opsega (npr. 192.168.0.0 ili 10.0.0.0 adrese).

NAT takođe dozvoljava pristup Internetu sa većeg broja računara iz unutršanje


mreže preko jedne javne IP adrese. To je veoma važno za kompanijske mreže
koje ne raspolažu dovoljnim adresnim prostorom i u slučaju kada se deli jedna
dial-up konekcija ili jedan pristup preko kablovskog modema.

Kao i u prethodnom slučaju NAT, koji se implementira samo na TCP/IP sloju,


ne može u potpunosti da zaštiti sistem. Informacije protokola viših slojeva
mogu biti skrivene za firewall, tako da paketi mogu koji kroz njega prođu
ponovo mogu da se iskoriste za napad na bagoviti softver ili komunikaciju sa
Trojan horse virusima. Firewall neće proveravati takve pakete. Da bi se
postigla potpuna zaštita i da bi se sprečili takvi napadi, i potrebno je koristiti
servise viših slojeva. To se postiže upotrebom proxy servisa.

Pored ovog nedostatka, moguće je da dođe do problema u radu nekih servisa.


Problem sa NAT sistemima se javlja kod nekih protokola koji stavljaju IP
adresu hosta u deo za podatke. Kada se adresa zameni za javnu adresu, što se
događa pri prolasku paketa kroz NAT, ranije upisana adresa u tom delu postaje
nevalidna što može da izazove probleme u komunikaciji. To se dešava kod FTP,
H.323 ili IPSec komunikacije.

NAT stvara problem administratorima koji hoće da se povežu na klijente iza


NAT servera, u slučaju udaljene administracije. To se dešava pošto NAT ima
jednu IP adresu, te nema načina da se odredi interni klijent kojem želimo da
pristupimo. Ovo sprečava hakere od direktnog povezivanja na unutrašnji
klijent, ali i legitimne korisnike da pristupe mreži u slučaju potrebe. Srećom,
mnogi savremeni NAT servisi dozvoljavaju redirekciju, tj. propuštanje
konekcija koje dođu na server na određeni host sa određenom IP adresom i
odgovarajućim portom u unutrašnjoj mreži (port-forwarding).
Zaštita računarskih mreža i sigurno st podataka 42

Proxy servisi
NAT rešava probleme koji se mogu javiti kod direktnog pristupa računara na
Internet, ali ne može da kontroliše i sprečava protok paketa kroz firewall. I dalje
postoji mogućnost da potencijalni napadač, sa monitoring softverom, analizira
saobraćaj koji dolazi iz pravca naše mreže. Tako se može saznati da firewall
vrši translaciju adresa za ostale hostove. Ta se informacija može iskoristiti za
pokretanje napada na mrežu.

Proxy softver koji radi na sloju aplikacije sprečava takvu zloupotrebu. On


omogućava da se u potpunosti zabrani protok, na sloju mreže, kroz firewall i da
se dozvoli saobraćaj samo sa protokolima višeg sloja kao što su HTTP, FTP i
SMTP.

Proxy softver aplikacionog sloja je kombinacija servera i klijenta za specifični


protokol. Na primer, Web proxy je kombinacija Web servera i Web klijenta.
Serverska strana proxy servisa prima konekciju sa klijenta u unutrašnjoj mreži,
klijentska strana proxy servera uspostavlja vezu ka Web serveru na javnoj
mreži. Kada klijentski deo proxy servera primi podatke od javnog servera,
serverska strana ga prosleđuje klijentu [slika 98].

klijent

web server

klijent

Internet
switch firewall web server

web server
proxy server

Privatna mreža firme Spoljašnja javna mreža

Slika 98. Proxy server prima zahtev na privatnoj mreži i šalje ga


ka Web serveru na javnoj mreži. Sadržaj koji je dobijen
sa Web servera prosleđuje se klijentu
Zaštita računarskih mreža i sigurno st podataka 43

Proxy povezuje dve mreže između kojih je zabranjena komunikacija. Kada


klijent na zaštićenom delu mreže uspostavi konekciju na javni server, proxy
prima zahtev za tu konekciju i uspostavlja konekciju u ime zaštićenog klijenta.
Proxy tada prosleđuje odgovor javnog servera na unutrašnju mrežu. Može se
reći da proxy ima ulogu posrednika za hostove u unutrašnjoj mreži.

Aplikacioni proxy servisi (kao što Microsoft Proxy Server ili squid), za razliku
od NAT servera i paketnih filtera, koriste se samo ako se u korisničkoj aplikaciji
to navede. Na primer, u Internet Exploreru treba da se podesi upotreba proxy
servera navođenjem njegove IP adrese (ili domenskog imena) i porta na kojem
se servis nalazi (obično 8080). Tako Internet Explorer šaje sve svoje zahteve
na proxy server, a ne direktno na Internet ka Web sajtovima.

Bilo koji server, unutrašnji ili spoljašnji, može da izvrši ulogu proxy servera.
Bez upotrebe firewall-a, upotrebom samo proxy servera, mreža se ne može
zaštiti, tako da je potrebno implementirati oba servisa. Paketni filter mora biti
instaliran, barem da bi sprečio denial-of-service napad na proxy server (napad
kao što je "ping smrti"). Ako se proxy nalazi iza firewall-a, mora se dozvoliti
prolaz kroz postojeći ulazni firewall.

Idealno bi ipak bilo da firewall može da izvršava proxy funkciju. Neka proxy -
firewall rešenja imaju mogućnost IP filtriranja i maskiranja (IP masquerade).
To im omogućava da blokiraju izlazne konekcije, npr. konekcije sa unutrašnjih
hostova na port 80 u slučaju HTTP protokola, i posle preusmere sve korisničke
zahteve na proxy. U tom slučaju ne bi bilo potrebno unositi proxy za svakog
klijenta ponaosob, već bi se Web zahtev klijenta automatski preusmeravao na
proxy. Firewall - proxy bi se nakon toga povezao sa udaljenim serverom i tražio
bi podatke u ime blokiranog klijenta. Povratni podaci bi se vraćali klijentu.
Ovakav proxy se naziva transparent proxy i potpuno je nevidljiv za korisika.

Sigurnosni proxy može da izvrši i filtriranje paketa na aplikacionom sloju. Na


pimer, firewall HTTP proxy može da proverava tagove u HTML stranicama i
tako pronađe one stranice sa Java ili ActiveX apletima. Apletima se može
zabraniti prolaz. Ovo sprečava da se aplet izvršava na klijentskim računarima,
a samim tim smanjuje rizik od preuzimanja Trojan horse i sličnih virusa.

Što su mrežni slojevi viši, sigurnosni servisi su sve specifičniji. Specifičnost


proxy servera je to, što rade samo sa specifičnom aplikacijom. Na primer, za
Web servis je potreban HTTP proxy modul, za FTP je potreban FTP proxy
modul itd. Mnogi protokoli su retki, pa za njih ne postoji sigurnosni proxy.
SOCKS je specifični proxy, koji se nekad naziva circuit-level gateway.

Na kraju se može preporučiti da se u zaštićenim mrežama ne dozvoli korišćenje


servisa za koje ne postoje proxy serveri. Takođe se preporučuje upotreba proxy
Zaštita računarskih mreža i sigurno st podataka 44

servera koji mogu da spreče ulazak ActiveX ili Java apleta na korisničke
računare.

Zaštita podataka na Internetu


Da bi se pretnje po integritet i tajnost podataka efikasno otklonile, i time
Internet, od izuzetno nebezbednog, postao prirodan i siguran medij za osetljivu
delatnost poput elektronskog poslovanja, bilo je neophodno razviti
odgovarajuće sigurnosne protokole. Ti protokoli se izvršavaju na različitim
nivoima OSI mrežnog modela TCP/IP protokol steka, i možemo ih podeliti na
aplikativne sigurnosne protokole: SSL, SSH, S/MIME, PGP, i tzv. protokole
za tunelovanje (tunneling) kojima se ostvaruju različite vrste virtuelnih
privatnih mreža: MPLS, PPTP, L2TP, GRE, IPSEC. Ovi protokoli se delom
zasnivaju na kriptografskim tehnikama zaštite informacija, čije usluge koriste i
mehanizmi za pouzdano dokazivanje identiteta – digitalni potpisi i sertifikati.

Osnove kriptografije
Kriptografija je nauka o tajnom pisanju (zapisivanju), i bavi se metodama
očuvanja tajnosti informacija. Kriptografski algoritam transformiše čitljiv tekst
P (od plaintext) u nečitljiv tekst C (od ciphertext). Kriptoanaliza je, suprotno,
nauka o dobijanju čitljivog teksta P (ili ključeva, ...), tako da napad na
privatnost kriptovanih podataka predstavlja pokušaj kriptoanalize. Kriptologija
je nauka koja obuhvata i kriptografiju i kriptoanalizu.

Osnovni elementi kriptografske metode za zaštitu su:

▪ šifrovanje – transformacija čitljivog teksta u nečitljiv oblik,


▪ dešifrovanje – postupak vraćanja šifrovanog teksta u čitljiv oblik,
▪ ključ – početna vrednost algoritma kojim se vrši šifrovanje; može biti reč,
broj ili fraza,
▪ plaintext – generalno, informacija koju želimo da zaštitimo, i
▪ ciphertext – kriptovan tekst, nečitljiv, onaj koji treba dekriptovati

Namena kriptografije je zaštita memorisane informacije čak i u slučaju da neko


neovlašćen pristupi podacima.

Kriptografski algoritmi predstavljaju matematičke funkcije koje se koriste za


šifrovanje i/ili dešifrovanje, a mogu biti:

▪ Ograničeni algoritmi: bezbednost se zasniva na tajnosti algoritma, i


Zaštita računarskih mreža i sigurno st podataka 45

▪ Algoritmi zasnovani na ključu: bezbednost se zasniva na ključevima, a ne


na detaljima algoritma koji se može publikovati i analizirati (algoritam je
javno poznat, a ključ se čuva tajnim).

Moderna kriptografija koristi algoritme zasnovane na ključu, zbog njihovih


praktičnih prednosti u odnosu na ograničene algoritme. Konkretan skup koji se
sastoji iz kriptografskih algoritama, protokola koji omogućuju njihov rad i svih
mogućih ključeva, naziva se kriptosistem.

Kriptografski postupci
Kriptografski algoritmi zasnovani na ključu dele se na simetrične (često se
nazivaju i konvencionalnim) i asimetrične. Prvi koriste isti tajni ključ za
enkripciju i dekripciju (shared secret key cryptography), dok se drugi baziraju
na korišćenju različitih ključeva za enkripciju i dekripciju, od kojih je jedan
javni i poznat svima, a drugi tajni i poznat samo jednom od učesnika u
komunikaciji (public key cryptography).

Simetrična kriptografija
Kod simetrične kriptografije postupak enkripcije i dekripcije zasniva se na dve
matematički srodne funkcije:
Pošiljalac poruke Primalac poruke

enkripcija dekripcija
Originalna Zaštićena Originalna
poruka poruka poruka
(clear-text) k (cipher-text) k (clear-text)
m c m
E(k,m) = c D(k,c) = m

Slika 99: Simetrična kriptografija

Enkripciona funkcija E, na osnovu ključa k i ulazne poruke m, kreira zaštićenu


poruku c. Dekripciona funkcija D, na osnovu istog ključa k i zaštićene poruke
c, restaurira originalnu poruku m.

Osnovna prednost ovog načina kriptografije u odnosu na asimetričnu


kriptografiju jeste ta što je manje računski intenzivna, tako da se veće količine
podataka brže enkriptuju/dekriptuju. Velika mana je činjenica da moramo
pronaći bezbedan način za distribuciju tajnog ključa, tj. neophodno je osigurati
bezbedan kanal za razmenu ključeva između zainteresovanih strana. Ukoliko
bismo već imali tako besprekoran siguran kanal, kriptografija nam ne bi bila ni
potrebna: jednostavno bismo preko takvog kanala poslali same podatke.
Zaštita računarskih mreža i sigurno st podataka 46

Takođe, u današnjim intenzivnim razmenama podataka preko Interneta,


izuzetno je nepraktično generisati ogroman broj ključeva koji su neophodni za
komunikaciju: kad god komuniciramo sa nekom drugom stranom, moramo
imati ključ koji je jedinstven samo za komunikaciju sa dotičnim klijentom /
serverom.

Najpoznatiji simetrični enkripcioni algoritmi:

▪ DES (Data Encryption Standard) – ključ je dužine 56 bita,


▪ Triple DES, DESX, GDES, RDES – ključ je dužine 168 bita,
▪ (Rivest) RC2, RC4, RC5, RC6 – promenljiva dužina ključa do 2048 bita,
▪ IDEA (International Data Encryption Algorithm) – osnovni algoritam za
PGP (Pretty Good Privacy) – ključ je dužine 128 bita,
▪ Blowfish – promenljiva dužina ključa do 448 bita,
▪ AES (Advanced Encryption Standard) - radi sa blokovima od po 128 bita i
koristi ključeve dužine 128, 192 i 256 bita.
▪ Rijndael - kriptografski postupak se izvršava nad blokovima od 128, 192
ili 256 bita, a tolika može biti i dužina ključeva. Tako se može definisati
2128 , 2192 ili 2256 ključeva.

Asimetrična kriptografija
Algoritmi za asimetričnu kriptografiju su razvijeni znatno kasnije u odnosu na
konvencionalnu kriptografiju, a njihov koncept je prvi put prikazan u radovima
Whitfielda Diffieja i Martina Hellmana, 1975. godine (mada postoje indicije da
je britanska tajna služba prva došla do mogućnosti ovakve zaštite, nekoliko
godina ranije, ali je postupak smatran vojnom tajnom).
Pošiljalac poruke Primalac poruke

enkripcija dekripcija
Originalna Zaštićena Originalna
poruka poruka poruka
(clear-text) Privatni ključ e (cipher-text) Javni ključ d (clear-text)
m c m
E(e,m) = c D(d,c) = m

Slika 100: Asimetrična kriptografija

Proces enkripcije i dekripcije se kod ovih algoritama takođe zasniva na dve


funkcije – imamo enkripcionu funkciju E i dekripcionu funkciju D. One ponovo
manipulišu originalnom porukom m, odnosno zaštićenom porukom c, ali se
ovog puta za enkripciju i dekripciju koriste dva ključa - jedan za enkripciju
(ključ e), a drugi za dekripciju (ključ d). Jedan od ovih ključeva se naziva javni
Zaštita računarskih mreža i sigurno st podataka 47

ključ (public key) i poznat je svima, a drugi se zove privatni ključ (private key),
i poznat je samo jednoj strani [slika 100].

Enkripcija podataka asimetričnom kriptografijom može se obaviti na dva


načina:

1. enkripcija originalne poruke javnim ključem – samo vlasnik privatnog


ključa može dekriptovati poruku, ali ne može biti siguran ko je poruku
poslao, jer je javni ključ dostupan svima;
2. enkripcija originalne poruke privatnim ključem – ovog puta je poreklo
poruke nedvosmisleno, kao i nemogućnost poricanja vlasnika javnog ključa
da je poruku poslao, ali je tajnost poruke kompromitovana – svako ko ima
javni ključ koji odgovara tajnom ključu korišćenom za enkripciju, može
videti poruku. Ova osobina se koristi u mehanizmu digitalnih potpisa, za
dokazivanje identiteta.

Osnovna prednost korišćenja asimetrične kriptografije jeste da strane koje


nikada do tog momenta nisu komunicirale, niti su pravile bilo kakve
bezbednosne konstrukcije za zaštićeni prenos podataka, mogu bez problema
tajno komunicirati jer nije potreban siguran kanal za distribuciju ključeva.
Takođe, potrebno je znatno manje ključeva za komunikaciju – tačno dva, od
kojih se jedan slobodno prenosi, a drugi čuva. Меđutim, enkripcija korišćenjem
asimetričnih postupaka je mnogo sporija (praktično oko hiljadu puta, u
zavisnosti od konkretnih algoritama) nego zaštita korišćenjem
konvencionalnog (simetričnog) kriptografskog postupka, tako da ih ne treba
koristiti za šifrovanje velikih količina podataka (tzv. bulk-encryption). Najšire
korišćeni algoritmi za asimetrično šifrovanje su RSA algoritam (Ron Rivest,
Adi Shamir i Leonard Adleman, 1978), sa dužinama ključa od 512 do 1024 bita,
i Diffie-Hellman algoritam.

Moderna kriptografija - hibridni pristup


U današnjim modernim enkripcionim sistemima koristićemo i simetričnu i
asimetričnu kriptografiju za postizanje potrebnog nivoa zaštite informacija –
najpre ćemo asimetričnom kriptografijom razmeniti tajni ključ za ostvarivanje
simetrične kriptografije, koju ćemo kasnije koristiti za prenos velike količine
podataka.

Kriptografski ključevi
Pored same poruke koju štitimo, moderni kriptografski algoritmi zahtevaju
upotrebu jednog ili više kriptografskih ključeva radi zaštite poverljivih
informacija. U osnovi, ti ključevi su veoma veliki brojevi, čija se dužina se meri
u bitima. Što je dužina ključa veća, zaštićena informacija je sigurnija. Međutim,
Zaštita računarskih mreža i sigurno st podataka 48

poređenje veličine ključeva kod asimetrične i simetrične (konvencionalne)


kriptografije nije moguće, jer se zbog specifičnosti algoritama sličan stepen
zaštite postiže različitim dužinama ključeva: ključ za simetričnu kriptografiju
dužine 80 bita ima približnu jačinu zaštite kao ključ za asimetričnu zaštitu od
1024 bita; simetrična zaštita od 128 bita odgovara 3000-bitnom javnom ključu
koji bi se koristio u asimetričnim tehnikama, itd.

Kod asimetrične kriptografske tehnike ključevi su matematički povezani. Iako


je iz javnog ključa veoma teško izračunati privatni, uz dovoljno vremena i
procesorske moći uvek je moguće izvesti ovaj zaštićeni deo informacije, a
samim tim i razbiti zaštitu. Zbog toga je prilikom projektovanja jačine zaštite
neophodno razmotriti kakve napade očekujemo, i koliko vremena je neophodno
da naša zaštita odoleva. Ukoliko uzmemo dužinu ključa koja je premala,
rizikujemo da informacije budu otkrivene; u obrnutom slučaju ćemo imati
izuzetno vremenski zahtevne proračune i proizvod (zaštićenu informaciju), koji
je količinski znatno veći nego originalna informacija. Pošto se u današnjim
hibridnim kriptosistemima asimetrična kriptografija pre svega koristi za siguran
transfer simetričnih sesijskih ključeva, smatramo da uz odabir dovoljne dužine
ključa ova karika kriptografskog lanca nije kritična.

Hash funkcije
U hash funkcije spadaju matematičke funkcije koje na osnovu ulazne poruke
generišu vrednost fiksne dužine, tzv. hash vrednost, message digest ili message
fingerprint – "otisak prsta" ulazne poruke. Često korišćena tehnika One-Way-
Hash omogućava da se utvrdi eventualna izmena podataka. Ova tehnika koristi
OWF (One-Way-Functions), čiji je rezultat "digest" - obično 128 ili 160 bita.
Praktično je nemoguće proizvesti dokument koji odgovara digest-u drugog
dokumenta, tako da je ova tehnika provere integriteta podataka veoma
pouzdana (detaljnije u opisu funkcionisanja mehanizma digitalnih potpisa).
Danas se koriste sledeći hash algoritmi:

▪ Message Digest (128-bit digest); MD2, MD4 i MD5,


▪ Secure Hash Algorithm (160-bit digest); SHA i SHA-1,
▪ Digital Signature Algorithm (DSA),
▪ Hash Message Authentication Code (HMAC).
Zaštita računarskih mreža i sigurno st podataka 49

Digitalni potpis
Digitalni potpis (digital signature) predstavlja digitalnu verziju svojeručnog
potpisa – kao što takav potpis jednoznačno identifikuje osobu, digitalni potpis
može da identifikuje autora neke poruke, ali i da dokaže da poruka prilikom
prenosa komunikacionim kanalom nije izmenjena.

Svaki potpis, bio on digitalni ili svojeručni, mora da zadovolji pet osnovnih
pravila:

▪ mora da pruži identifikaciju;


▪ ne može biti manipulisan;
▪ ne može biti kopiran;
▪ mora da bude verodostojan;
▪ ne može biti opovrgnut.

Ovi uslovi se mogu ispuniti pravilnom upotrebom asimetričnih algoritama


enkripcije, uz enkripciju poruke privatnim ključem pošiljaoca.

U najvećem broju slučajeva nije potrebna enkripcija celokupne poruke –


dovoljno je enkriptovati samo digitalni potpis, a poruku ostaviti nepromenjenu.
Naravno, ako je tajnost poruke kritična, i ona može biti zaštićena. Za kreiranje
digitalnih potpisa koriste se pomenute hash funkcije.

Originalna Originalna Hash


Hash
poruka poruka vrednost
funkcija
(clear-text) (clear-text) h

Digitalno
Hash potpisana
Poređenje
funkcija poruka
Enkriptovana
hash
vrednost
Hash Hash
h'
vrednost vrednost
Privatni ključ e (digitalni Javni ključ d
h h
potpis)

Slika 101: Mehanizam digitalnog potpisa

Identifikacija pošiljaoca dokazuje se na osnovu same mogućnosti dekripcije


enkriptovane hash vrednosti, javnim ključem za koji se zna da pripada
pošiljaocu (problem pripadnosti javnog ključa rešava se mehanizmom
digitalnih sertifikata). Prilikom prijema poruke, jednostavnim poređenjem hash
vrednosti na odredišnom računaru, lako se dokazuje da li je poruka bila
Zaštita računarskih mreža i sigurno st podataka 50

izmenjena. Na ovaj način je ostvarena sigurna identifikacija pošiljaoca, uz


očuvanje integriteta poruke.

Digitalni sertifikati
Digitalni sertifikat je elektronska datoteka koja jedinstveno identifikuje
pojedince i Web sajtove na Internetu i omogućuje sigurnu, poverljivu
komunikaciju. On povezuje ime entiteta koji učestvuje u sigurnoj transakciji
(e-mail adresu ili Web adresu) sa javnim ključem (public key), koji je korišćen
za zaštitu komunikacije sa tim entitetom u kriptografskom sistemu.

Potpisnik digitalnog sertifikata je "sigurna treća strana", odnosno telo poznato


pod imenom Certificate Authority (CA). To su tela specijalizovana za brigu o
digitalnim sertifikatima, i ta tela izdaju, kreiraju i potpisuju sertifikate, te
učestvuju u njihovoj distribuciji. Kada neko zatraži digitalni sertifikat od
ovakvog tela, prosleđuju se svi neophodni podaci koje ta organizacija zatraži, i
telo odlučuje da li će izdati sertifikat organizaciji koja je tražila takvu
elektronsku potvrdu. Nakon provere, sertifikat se izdaje, i klijent tog CA
instalira sertifikat na svojim sistemima.

Sertifikat koji je izdat od odgovarajućeg CA nosi i digitalni potpis tog CA, i ta


činjenica je ključna za jednoznačnu identifikaciju organizacije koja je sertifikat
dobila. Na primer, ako korisnik želi da bude apsolutno siguran da Web server
kojem pristupa servira upravo onaj sajt koji mu je potreban (a ne da je u pitanju
falsifikat koji je postignut, na primer, ranijim napadom na neki DNS server),
pokreće se sledeći proces provere identiteta: kada korisnikov browser pristupi
sajtu organizacije koja poseduje digitalni sertifikat, taj sertifikat se automatski
prenosi do klijenta. Browser čita ovaj fajl i odlučuje da li će verovati udaljenom
serveru, a na osnovu činjenice da je sertifikat digitalno potpisan od strane CA
– ovo je moguće jer su javni ključevi svih većih CA ugrađeni u sam browser.
Dakle, kada sertifikat stigne do mašine klijenta, jednostavno se proveri
verodostojnost te "treće strane" i ako je ona dokazana, nemamo razloga da ne
verujemo sajtu koji ima takav sertifikat.

Danas se koristi više vrsta digitalnih sertifikata:

▪ sertifikati sajtova (koristi se za autentifikaciju Web servera)


▪ personalni sertifikati (koriste se za autentifikaciju individualnih korisnika)
▪ CA sertifikati (koriste se za autentifikaciju javnih ključeva CA)
▪ sertifikati softverskih izdavača (za autentifikaciju izvršnih programa i
drajvera).
Zaštita računarskih mreža i sigurno st podataka 51

Slika 102: Digitalni sertifikat Web servera – sa desne strane


prikazan je izgled javnog ključa

Najviše korišćeni standardi za sertifikate su X.509v3 i PKCS (Public Key


Cryptography Standards). Poznate CA organizacije su:

▪ VeriSign, http://www.verisign.com,
▪ Thawte Consulting, http://www.thawte.com,
▪ GTE CyberTrust, http://www.gte.com/cybertrust,
▪ BelSign NV/SA, http://www.belsign.com,
▪ Equifax Secure CA, http://www.equifaxsecure.com i
▪ E-Certify Corporation, http://www.e-certify.com

Sertifikati, isto kao i fizički vidovi identifikacije, mogu da isteknu i postanu


nevažeći. CA organizacija može da odbije sertifikat i iz drugih razloga
(sertifikat dobijen prevarom, privatni ključ kompromitovan, subjekat više nije
autorizovan...). Zbog toga CA održava spisak sertifikata koji se odbijaju – CRL
(Certificate Revocation List). Prilikom utvrđivanja valjanosti sertifikata,
korisnici mogu da koriste CRL i da odbiju autentifikaciju ukoliko se sertifikat
druge strane nalazi na nekoj od ovih lista.

Da ne bi samo jedna CA organizacija davala potvrde o autentičnosti za ceo


Internet ili intranet, može se urediti da jedan CA garantuje za drugi CA
autoritet. Takva hijerarhijska struktura (ulančavanje) omogućava korisnicima
da poklone poverenje samo jednom CA autoritetu, bez obaveze da imaju
poverenja u ostale CA autoritete.
Zaštita računarskih mreža i sigurno st podataka 52

klijent
1
privatni 3
2
javni

generisanje informacije o zahtev za


ključeva klijentu sertifikatom

sertifikaciono telo

4 provera informacija

5 kreiranje sertifikata

6 dostava sertifikata

Slika 103: Postupak dobijanja digitalnog sertifikata

Proces pribavljanja digitalnog sertifikata sastoji se iz šest koraka:

▪ Aplikant generiše par ključeva, privatni i javni;


▪ Aplikant prikuplja informacije koje traži sertifikaciono telo (podaci o
organizaciji, overe, e-mail adrese...);
▪ Aplikant šalje zahtev za sertifikatom, koji se sastoji iz njegovog javnog
ključa i traženih podataka. Zahtev se enkriptuje javnim ključem
sertifikacionog tela;
▪ Dostavljene informacije se proveravaju;
▪ CA kreira i digitalno potpisuje sertifikat koji se sastoji iz aplikantovog
javnog ključa i ostalih dostavljenih informacija. Potpis CA vezuje javni
ključ aplikanta sa podacima koje je dostavio – za tu vezu sada garantuje
CA. Sertifikat je zaštićen javnim ključem aplikanta;
▪ Sertifikat se prosleđuje aplikantu.

SSL protokol
SSL (Secure Sockets Layer) je aplikativni sigurnosni protokol, koji služi za
siguran prenos podataka preko Weba, a izvorno je razvijen od strane Netscape
Communications. Zasniva se upravo na mehanizmu digitalnih serverskih
sertifikata, izdatih od strane nezavisnih CA.

SSL omogućuje dve krucijalne stvari u sigurnim komunikacijama:


autentifikaciju, putem gore opisanog mehanizma serverskih sertifikata izdatih
od strane CA, i enkripciju, čime se vrši zaštita podataka koji se razmenjuju. Da
bi se uspostavila SSL konekcija, najpre se vrši tzv. SSL handshake:
Zaštita računarskih mreža i sigurno st podataka 53

Klijent kontaktira zaštićeni URL (prefiks adrese je


https umesto uobičajenog http, ili se javlja poruka
1 od strane browsera). To je obično zaštićena
forma za prikupljanje podataka od kupca, kao što
su lični podaci ili broj kreditne kartice.

Browser klijenta automatski šalje verziju SSL


protokola koju podržava, jačinu enkripcije (dužinu
ključa) i ostale informacije koje su potrebne za 2
komuniciranje sa klijentom preko SSL.

Server odgovara, automatski šalje browseru


3 klijenta digitalni sertifikat sajta, zajedno sa SSL
verzijom servera, jačinom enkripcije itd.

Klijentov browser proverava informacije iz


digitalnog sertifikata servera:

1. da li je sertifikat validan i da li ima validan


datum;
2. da li je sertifikat izdat od strane CA koji je na
spisku browsera kao CA kojem se veruje;
3. da li javni ključ CA, koji je ugrađen u browser, 4
može da izvrši dekripciju digitalnog potpisa CA
koji je stigao sa sertifikatom (ako može, u pitanju
je verodostojan sertifikat);
4. da li ime domena kojem smo pristupili
odgovara imenu domena koje je navedeno u
sertifikatu.

Ako je server uspešno autentifikovan, web


browser klijenta generiše jedinstveni sesijski
5 ključ. Taj ključ će biti korišćen za simetričnu
klijent enkripciju podataka tokom zaštićene
komunikacije sa serverom, server

Vrši se enkripcija samog sesijskog ključa javnim


ključem sajta (koji je stigao sa digitalnim
sertifikatom), tako da samo sajt može da
dekriptuje ključ, te se ključ šalje serveru. Tako se 6
rešava problem sigurne distribucije ključa u
simetričnoj kriptografiji.

Server dekriptuje sesijski ključ koristeći svoj


7 privatni ključ.

Klijent i server razmenjuju poruke u kojima


decidno kažu da će sve buduće poruke biti 8
enkriptovane sesijskim ključem.

SSL zaštićena sesija je uspostavljena. Koristi se


simetrična enkripcija, koja je mnogo brža od
asimetrične, za enkripciju velike količine
9 podataka. Uspostavljen je "SSL pipeline". Nakon
završetka zaštićene komunikacije SSL veza se
raskida, a sesijski ključ eliminiše.

Slika 104: SSL handshake


Zaštita računarskih mreža i sigurno st podataka 54

HTTPS saobraćaj se obično odvija preko porta 443 umesto uobičajenog HTTP
porta 80, mada se konkretna vrednost može podesiti na Web serveru.

SSL omogućuje dva stepena zaštite: 40-bitnu ili 128-bitnu, što odgovara dužini
sesijskog ključa. 128-bitna simetrična enkripcija je najjača na svetu – prema
podacima RSA Labs, koristeći tehnologiju iz 2000. godine bilo bi potrebno
trilion triliona godina da se ovakva zaštita razbije. 128-bitna enkripcija je
aproksimativno 3 x 1026 jača od 40-bitne. Izvoz softverskih proizvoda koji
postižu 128-bitnu zaštitu je do pre nekoliko godina bio zabranjen u Sjedinjenim
Državama, jer su ovi algoritmi imali epitet visoke vojne tehnologije.

Protokol TLS (Transport Layer Security) jeste još jedan sigurnosni protokol
koji je baziran na SSL-u (zapravo je u pitanju verzija 3.1 protokola SSL,
preimenovana od strane IETF tela). WTLS (Wireless TLS) je verzija tog
protokola za WAP (Wireless Application Protocol) aplikacije.

SSH (Secure Shell)


SSH je protokol koji obezbeđuje autentifikaciju, enkripciju i integritet
podataka. Iako se, poput SSL-a, smatra aplikativnim zaštitnim protokolom,
pomoću SSH moguće je implementirati i VPN mreže. SSH implementacije
pružaju sledeće mogućnosti: siguran komandni shell (mogućnost daljinskog
upravljanja drugim računarom), siguran prenos datoteka i udaljeni pristup
različitim TCP/IP aplikacijama preko sigurnog tunela (tunneling). Secure Shell
klijentske i serverske aplikacije su veoma raspoložive, i napisane su za
najpopularnije operativne sisteme.

Secure Shell je konstantno unapređivan i sve više je u upotrebi od godine kada


je osmišljena prva verzija ovog protokola (1995). SSH1 je prvobitno zamišljen
kao zamena nesigurnih UNIX "r-komandi" (rlogin, rsh i rep), da bi druga
verzija protokola (SSH2), predstavljena 1997, donela niz poboljšanja
postojećeg protokola, naročito na polju prenosa datoteka. Popularnost ovog
standarda je naglo porasla sa povećanjem ponude komercijalnih klijentskih i
serverskih aplikacija za Windows, UNIX i ostale platforme, kao i zbog napora
koje je OpenSSH zajednica uložila na polju razvoja open source
implementacije.
Zaštita računarskih mreža i sigurno st podataka 55

SSH ima tri glavne mogućnosti, čijom upotrebom se mogu postići različita
rešenja na polju sigurnosti:

• Siguran komandni shell,


• Siguran prenos datoteka, i
• Prosleđivanje portova, tunelovanje (port forwarding, tunneling).

Siguran komandni shell omogućuje izvršavanje programa ili sistemskih


komandi, obično sa izlazom u karakter-režimu rada. Na ovaj način moguće je
menjati datoteke, pregledati sadržaje direktorijuma, ili pristupati aplikacijama
na udaljenom računaru. Administratori sistema mogu pokretati paketne obrade,
pokretati, kontrolisati ili zaustavljati servise i procese, kreirati korisničke
naloge, menjati prava pristupa datotekama i folderima itd. Pošto se na ovaj
način očigledno mogu pokrenuti i najkritičniji procesi (u zavisnosti od
korisnikovih prava na sistemu), bilo je neophodno da se ovakve sesije zaštite
od zlonamernih korisnika.

Prosleđivanje portova je način zaštite različitih TCP/IP aplikacija, uključujući


e-mail, aplikacije za rad sa bazama podataka, in-house aplikacije... Ovaj način
zaštite se često naziva tunelovanje (tunneling), jer se ostvaruje tako što se kroz
nebezbednu WAN mrežu (Internet) kreira virtuelni bezbedni (enkriptovani)
tunel kroz koji se vrši prenos podataka između klijenta i servera – takozvana
virtuelna privatna mreža (Virtual Private Network, VPN). Više aplikacija može
slati podatke kroz jedan multipleksirani kanal, otklanjajući na taj način potrebu
otvaranja dodatnih portova na zaštitnoj barijeri ili ruteru.

sigurni enkriptovani tunel

Internet
firewall
sa otvorenim SSH server
SSH klijent portom 22 mail server
(e-mail, database, VNC...) database server
VNC server

Slika 105: Ostvarivanje VPN-a SSH protokolom

Bezbedan protokol za prenos datoteka (Secure File Transfer Protocol, SFTP)


je podsistem SSH protokola. U pitanju je poseban protokol koji se oslanja na
SSH radi obavljanja transfera datoteka. SFTP ima nekoliko prednosti u odnosu
na klasični FTP. Najpre, SFTP enkriptuje i korisničko ime i lozinku, pored
podataka koji se prenose. Dalje, prilikom prenosa se koristi port SSH servera,
tako da nije potrebno otvarati dodatni port prema spoljnoj mreži. Korišćenjem
Zaštita računarskih mreža i sigurno st podataka 56

SFTP-a izbegavaju se i problemi koji obično nastaju kada se klasičan FTP


koristi preko NAT-a (Network Address Translator). Konačno, pomoću SSH je
moguće kreirati zaštićeni ekstranet, ili zaštititi pristup serverima koji su izvan
firewall-a, na primer u demilitarizovanoj zoni. Zaštićeni ekstranet je inače jedan
od najsigurnijih načina za omogućavanje pristupa osetljivim podacima
klijentima kompanije, partnerima ili zaposlenima izvan sedišta preduzeća.

partner 1
SSH klijent

Internet firewall
SSH server korporativni
server u unutrašnjoj
mreži preduzeća
DMZ
partner 2
SSH klijent

Slika 106: SSH zaštićeni ekstranet

Secure Shell protokol obezbeđuje četiri osnovne mogućnosti zaštite podataka:

• autentifikaciju korisnika,
• autentifikaciju računara (hosta),
• enkripciju podataka i
• integritet podataka.

Autentifikacija korisnika
Po definiciji, autentifikacija predstavlja proces u kojem sistem proverava da je
pristup resursima omogućen samo korisnicima koji su verifikovani, dok se
ostalima pristup ne dozvoljava. Postoje različite metode autentifikacije, od
unosa korisničkog imena i lozinke do znatno robusnijih zaštitnih mehanizama.
Većina SSH implementacija uključuje metode autentifikacije pomoću
korisničkog imena i lozinke, ali su i ostale (poput Kerberos-a, NTLM-a itd)
takođe dostupne. Fleksibilnost SSH protokola dozvoljava korišćenje i
novorazvijenih metoda autentifikacije.

Najstariji metod autentifikacije jeste dokazivanje identiteta udaljenom sistemu


preko korisničkog imena i lozinke. Neki protokoli, poput FTP-a ili telnet-a,
šalju ove podatke kao lako vidljiv ASCII tekst bez ikakve zaštite, omogućujući
na taj način bilo kome sa programom za analizu mrežnog saobraćaja da lako
dođe do tih osetljivih podataka. SSH se od ovakvih napada brani
enkriptovanjem svih podataka pre slanja, uključujući i korisnička imena i
Zaštita računarskih mreža i sigurno st podataka 57

lozinke. Iako je metod autentifikacije lozinkom veoma zgodan, jer ne zahteva


bilo kakva dodatna podešavanja što se korisnika tiče, on je i najranjiviji, jer se
imena i lozinke mogu pogoditi. Zato je mnogo sigurnije zameniti ovaj način
SSH autentifikacije metodom predstavljanja javnim ključem.

Prilikom ovakve autentifikacije mogu se takođe koristiti i korisničko ime i


lozinka (vrši se i njihova enkripcija), ali to nije neophodno. Tokom
uspostavljanja SSH sesije, razmena tajnog ključa za simetričnu kriptografiju
vrši se obično asimetričnim Diffie-Hellman postupkom, dok se kao algoritam
za simetričnu kriptografiju koristi Blowfish algoritam. Tajni ključ se obično
generiše i na osnovu dodatne lozinke (passphrase, ojačana lozinka, znatno duža
i kompleksnija od uobičajenih, štiti od dictionary napada), tako da poseduje
dodatnu zaštitu čak i u slučaju kompromitovanja ključa.

Korišćenjem SSH agenata moguća je autentifikacija na više Secure Shell


servera istovremeno, bez potrebe za dodatnim unosom lozinke. Uključivanjem
dodatne mogućnosti, tzv. prosleđivanjem agenata, možemo se konektovati na Commented [DK
mrežu SSH servera, bez potrebe za dodatnim ugrožavanjem integriteta
privatnog ključa korisnika.

autentifikacija autentifikacija

unesena pasfraza

SSH klijent SSH server A SSH server B...


privatni ključ

javni ključ javni ključ


SSH klijenta SSH klijenta
javni ključ

Slika 107: SSH agenti

Privatni ključ mora postojati samo na SSH klijentskom računaru, a lozinku je


neophodno uneti samo kada korisnik pristupa SSH serveru A. Bez uključenog
preusmeravanja agenata, a da bi izvršena uspešna autentifikacija SSH servera
A prema SSH serveru B, bilo bi neophodno da i SSH server A poseduje privatni
ključ klijenta, jer je on sada prema serveru B, u osnovi, klijent. Međutim,
podrška agentima eliminiše tu potrebu.
Zaštita računarskih mreža i sigurno st podataka 58

Autentifikacija računara (hosta)


Ključ hosta se koristi od strane servera radi dokazivanja identiteta klijentu.
Ključevi hostova se ne menjaju često (zovu se i perzistentnim ključevima) i
takođe su asimetrični (PKI). Ako se na računaru izvršava samo jedan SSH
serverski proces, dovoljan je samo jedan ključ za identifikaciju i računara i
servera, u suprotnom je moguće koristiti više ključeva ili ponovo jedan ključ za
višestruke serverske procese. Autentifikacija hosta brani od napada tipa Man-
in-the-middle. Ključevi hostova se često pogrešno smatraju sesijskim
ključevima koji služe za enkripciju podataka.

Enkripcija podataka
Enkripcija velikih količina podataka korišćenjem SSH protokola vrši se, kao i
kod SSL, pomoću hibridne kriptografije: najpre se asimetričnom kriptogra-
fijom reši problem distribucije ključa za simetričnu kriptografiju, nakon čega
se uspostavlja sesija koja koristi neki od algoritama za simetrično šifrovanje
(DES, 3DES, Blowfish, AES, Twofish). Prilikom uspostavljanja konekcije ka
SSH serveru klijent i server se najpre dogovaraju oko načina enkripcije, da bi
se nakon toga uspostavila sesija simetrične kriptografije. Ukoliko sesija traje
duže, vrši se periodična zamena sesijskih ključeva (na svakih sat ili dva).

Integritet podataka
Integritet podataka garantuje da se podaci poslati od strane jednog učesnika u
komunikaciji pojavljuju neizmenjeni na drugoj strani. Čak i sa SSH načinom
zaštite tehnički je moguće umetnuti neželjene podatke u tok podataka prilikom
prenosa. SSH2 koristi Message Authentication Code (MAC) algoritme za
kontrolu integriteta, što je veliki napredak u odnosu na 32-bitnu CRC proveru
integriteta ugrađenu u SSH1.

S/MIME
Iako je rođena u sam osvit Interneta, elektronska pošta je i danas jedan od
najpopularnijih Internet servisa. Standardi na kojima je bazirana "klasična"
elektronska pošta, osmišljeni su još 1982. godine. Iako su u to vreme bili
izuzetno napredni, ti standardi vrlo brzo počinju da sputavaju rast i primenu
ovog servisa. U najkraćem, standard za elektronsku poruku usvojen pre 23
godine propisao je da takva poruka mora biti jedinstvena, čitljiva od strane
čoveka, sa sledećim ograničenjima:

▪ poruka sadrži samo ASCII karaktere,


▪ poruka ne sadrži redove koji su duži od 1000 karaktera, i
▪ poruka ne sme da pređe određenu dužinu.
Zaštita računarskih mreža i sigurno st podataka 59

Vrlo brzo ova ograničenja postaju značajna, pogotovo za EDI poruke koje su
lako narušavale sve navedene restrikcije. Zbog toga je bilo neophodno doneti
novi Internet mail standard, što se i dogodilo u junu 1992. godine. Novi
standard je nazvan MIME (Multipurpose Internet Mail Extensions). On je
zasnovan na starom standardu, uz propisivanje dodatnih polja za zaglavlja mail
poruka, koja će opisivati nove tipove sadržaja i novu organizaciju poruke.

MIME standard ima sledeće osobine:

▪ moguće je poslati više objekata u jednoj poruci,


▪ tekst poruke ima neograničenu dužinu (u jednoj liniji, i uopšte),
▪ dozvoljeni su i drugi karakteri osim ASCII standarda, čime je omogućeno
slanje poruka na raznim jezicima, ne nužno zasnovanim na engleskom
alfabetu,
▪ uvedene su poruke koje mogu sadržati različite slovne oblike (fontove),
▪ omogućeno je slanje binarnih ili aplikativnih poruka, kao i slanje slika,
audio, video i multimedijalnih poruka.

Jasno je da MIME e-mail poruke koje se na ovaj način razmenjuju između


pošiljaoca i primaoca ni na koji način nisu zaštićene, i da mogu biti presretane
i menjane bez znanja korisnika. Takođe, problematična je i autorizacija
pošiljaoca, zbog nemogućnosti pouzdanog utvrđivanja identiteta druge strane.
Da bi se ovi problemi prevazišli, uveden je S/MIME standard – Secure
Multipurpose Internet Mail Extensions. Korišćenjem poznatih mehanizama
simetrične i asimetrične enkripcije, digitalnih potpisa i sertifikata, S/MIME
omogućuje tajnost i sigurnost e-mail prepiske. Ove tehnike mogu da se koriste
na tri načina: obezbeđivanje tajnosti poruke, postizanje pouzdane
autentifikacije ili, kombinacijom metoda zaštite, razmena autentifikovanih
tajnih poruka.

1. Samo tajnost: e-mail klijent sa S/MIME mogućnostima (većina klijenata


današnjice ih poseduje) kreira slučajan (random) sesijski ključ koji će biti
korišćen za simetričnu kriptografiju. Simetričnom kriptografijom pomoću
tog ključa štiti se poruka namenjena za slanje. Zatim se vrši zaštita
sesijskog ključa javnim ključem osobe koja treba da primi e-mail poruku
(dalje: primalac). Formira se paket podataka koji se sastoji iz enkriptovane
poruke, enkriptovanog sesijskog ključa, digitalnog sertifikata pošiljaoca (u
formi X.509 datoteke) i spiska algoritama za enkripciju koji su korišćeni u
ovim postupcima. Ovaj paket predstavlja S/MIME zaštićenu poruku, koja
se prenosi do primaoca. Kada poruka stigne do odredišta, e-mail klijent
primaoca koristi primaočev privatni ključ za dekripciju sesijskog ključa.
Nakon toga, pomoću sesijskog ključa i informacija o korišćenom
algoritmu, vrši se dekripcija poruke.
Zaštita računarskih mreža i sigurno st podataka 60

U S/MIME terminologiji zaštićena poruka se često naziva i kovertiranim


podacima (enveloped data), ili se za poruku kaže da ima digitalnu omotnicu
(digital envelope).

2. Samo autentifikacija: koristeći neku od hashing funkcija, e-mail klijent


pošiljaoca najpre kreira digest poruke. Vrši se zaštita digesta privatnim
ključem pošiljaoca. Zatim se formira paket podataka koji se sastoji iz
originalne poruke, enkriptovanog digesta poruke, digitalnog sertifikata
pošiljaoca i informacija o algoritmima za hashing. Paket se prenosi do
primaoca, koji proverava digitalni sertifikat pošiljaoca, uzima javni ključ
pošiljaoca iz skladišta javnih ključeva i dekriptuje message digest. Na
osnovu informacija o hashing algoritmu korišćenom na strani pošiljaoca, e-
mail klijent vrši nezavisno hash-ovanje originalne poruke, nakon čega se
vrši poređenje nove hash vrednosti sa digest-om koji je stigao sa porukom.
Ukoliko se ovi digest-i poklapaju, poruka nije izmenjena. Ovo je zapravo
dobro poznati mehanizam digitalnih potpisa.

3. I tajnost i autentifikacija se postiže kombinacijom ovih dveju metoda.


Poruka se najpre digitalno potpiše (autentifikuje), nakon čega se vrši zaštita
i slanje.

Algoritmi za enkripciju koji se koriste u S/MIME zaštiti su RC2 i TripleDES


(simetrična enkripcija), RSA (asimetrična enkripcija), i SHA-1 i MD5 (hash
funkcije).

PGP
Pretty Good Privacy (PGP) je hibridni kriptosistem razvijen kao potpuno
besplatan (freeware) proizvod od strane g-dina Phila Zimmermana, 1991.
godine. Verzije koje su danas u opticaju su uglavnom komercijalne (samu PGP
korporaciju je 2010. godine otkupio lider u bezbednosnim tehnologijama,
kompanija Symantec). Tehnologije koje su u osnovi ovog sistema već su
razmatrane u dosadašnjem tekstu, uz jednu fundamentalnu novinu koja se tiče
sistema razmene ključeva. Izvorno, ovaj sistem je razvijen za servis elektronske
pošte, mada se može koristiti za zaštitu bilo kojeg vida Internet komunikacije.

PGP sistem se sastoji iz četiri osnovna modula: simetričnog kriptografskog


algoritma IDEA za zaštitu samih poruka, asimetričnog kriptoalgoritma RSA za
razmenu simetričnih ključeva i enkripciju hash vrednosti, MD5 OWF hash
algoritma za dobijanje digest-a poruke i generatora slučajnih brojeva. Metod
zaštite i potpisivanja poruka hibridnom kriptografijom je već opisan u
odeljcima o SSL-u i S/MIME. Zanimljiv je metod generisanja slučajnih brojeva
koji služe kao sesijski ključevi u IDEA simetričnoj zaštiti podataka: kao seme
Zaštita računarskih mreža i sigurno st podataka 61

(seed) generatora slučajnih brojeva koristi se vreme proteklo između


pojedinačnih pritisaka na tastere tastature prilikom korišćenja računara od
strane korisnika, kao i koordinate pokazivača miša u određenom vremenu. Na
ovaj način se rešava problem pseudoslučajnih brojeva – bolji metodi od ovog
su daleko kompleksniji i zahtevniji. Još jedna odlika PGP sistema je
enkriptovanje privatnog ključa pomoću složene lozinke (passphrase), tako da
je do ovog ključa veoma teško doći, čak i u slučaju da nedobronamerni korisnik
pristupi resursima računara.

PGP koristi inteligentan, mada ujedno i veoma složen način za manipulisanje


javnim ključevima za asimetričnu kriptografiju, zasnovan na međusobnom
poverenju korisnika. Za razliku od digitalnih sertifikata u X.509 formatu, koje
digitalno potpisuje samo jedno sertifikaciono telo (Certificate Authority, CA) i
na taj način garantuje za javni ključ određenog korisnika, PGP sertifikati mogu
nositi potpise više različitih osoba/organizacija, koje garantuju za autentičnost
u PGP sistemu poverenja (mada je tehnički omogućeno da i PGP sertifikate
može potpisati CA). Svakom potpisu na PGP sertifikatu dodeljen je
odgovarajući nivo poverenja (level of trust) na osnovu kojeg se poverenje
prenosi na korisnike za koje nismo sigurni da su validni, ali za koje garantuje
neko u čiji identitet i namere nemamo sumnje ("njegova reč je za mene
dovoljna"). Da bismo ovo pojasnili, poslužićemo se sledećim primerom:

potpuno poverenje delimično poverenje nižeg nivoa

delimično poverenje x nema poverenja

Jovan

Boža Anja Relja Mila Nivo 1: Sertifikati koje je


potpisao Jovan

x Saša
Vlada Jasna x Vasa Mirko Nivo 2: Sertifikati koje su potpisale
osobe sa prvog nivoa

Nivo 3: Sertifikati koje su potpisale


Boris x Lena
osobe sa drugog nivoa

Slika 108: Model poverenja u PGP sistemu


Zaštita računarskih mreža i sigurno st podataka 62

Prvi nivo: Jovan je potpisao sertifikate Boži, Anji, Relji i Mili. Pri tome je
iskazao sledeće nivoe poverenja: Boži veruje najviše, a verovaće i onim ljudima
kojima Boža potpiše sertifikat. Uopšte ne veruje Anji, a Relji i Mili veruje, s
tim da Relji veruje više nego Mili.

Drugi nivo: Iako nije potpisao Vladin sertifikat, Jovan ipak ima poverenja u
Vladu zbog Božinog potpisa; čak mu veruje toliko da smatra uspešno
autentifikovanim sve osobe kojima je Vlada potpisao sertifikat (možda je u
pitanju lično poznanstvo). Pošto je Boža potpisao Jasnin sertifikat, ona je
autentifikovana, ali joj se ne veruje što se tiče daljeg potpisivanja. Iako su Vasin
sertifikat potpisali i Anja i Relja, Jovan još uvek nema dovoljno razloga da
veruje Vasi, jer ne veruje Anji, a poverenje u Relju je parcijalno. Konačno,
Mirko je uspešno autentifikovan jer za njegov identitet garantuju dve osobe od
delimičnog poverenja, što je i minimum.

Treći nivo: Borisu se veruje, jer je potpisnik njegovog sertifikata Vlada, u kojeg
Jovan ima apsolutno poverenje. Lena za sada kod Jovana nema nikakav
kredibilitet, zbog slabog rejtinga potpisnika njenog digitalnog sertifikata, Jasne
i Vase.

Saša je van ovog lanca poverenja i njemu, trenutno, niko nema razloga da
veruje.

Za PGP se takođe održavaju liste povučenih sertifikata (CRL), i metod rada sa


njima je sličan kao u SSL kriptosistemu.

Virtuelne privatne mreže (VPN)


VPN (Virtual Private Networks) su virtuelne privatne mreže. Nazivaju se i
enkriptovani tuneli. VPN može da omogući sigurnu komunikaciju za
povezivanje dve fizički odvojene mreže preko Interneta. Te mreže mogu
komunicirati bez izlaganja podataka neautorizovanom pristupu i eventualnom
prisluškivanju. U toku uspostavljanja tunela VPN mogu biti meta mnogih
napada. Ako se implementiraju kao deo firewall sistema, firewall može da
spreči ove napade.

Kada se tunel uspostavi, VPN mreže su bezbedne sve dok je enkripcija sigurna.
Privatne mreže mogu da razmenjuju saobraćaj kao da se radi o dva segmenta
iste mreže. VPN dozvoljava korisniku da pristupi hostu direktno unutar mreže,
preko njegove skrivene IP adrese.
Zaštita računarskih mreža i sigurno st podataka 63

Glavni sistem firme

ISP

VPN
Internet
VPN

VPN
ISP
Filijala

Slika 109: Povezivanje udaljenih lokacija preko VPN mreža

Postoji veći broj protokola koji se koristi za VPN mreže. Sa jednim rešenjem
(VPN preko SSH) smo se već upoznali, mada smo SSH tehnologiju ipak
svrstali u aplikativne protokole za zaštitu, zbog prvobitne namene Secure Shell-
a. Ostali protokoli za tunelovanje jesu: MPLS (Multi-Protocol Label
Switching), PPTP (Point-to-Point Tunneling Protocol), L2TP (Layer-2
Tunneling Protocol), IPSec (IP Security) protokol, GRE (Generic Routing
Encapsulation) itd. Linux distibucije imaju podršku za enkriptovane tunele uz
upotrebu PPP over SSL (Point-to-Point Protocol over Secure Socket Layer)
protokola.

Postavlja se pitanje kada treba koristiti VPN konekcije. Alternativa za


povezivanje udaljenih lokacija je povezivanje posredstvom iznajmljene linije
jednom od pomenutih WAN tehnologija. Kada je takvo rešenje dovoljno
ekonomično i ostvarivo, za povezivanje dve udaljene mreže iste kompanije,
preporučuje se upotreba i uspostavljanje iznajmljenih linija, pošto su one
mnogo sigurnije. Naravno, ovo je moguće kada se te dve lokacije nalaze u istom
gradu ili na relativno malim rastojanjima. Kada je potrebno povezati udaljene
lokacije na većim rastojanjima, takvo povezivanje postaje veoma skupo, pa se
moraju koristiti VPN mreže. VPN mreže su neophodne pošto se tada
povezivanje vrši preko Interneta, pa komunikacija mora biti sigurna.

U ovom slučaju, najbolje je koristiti isti ISP sistem, pošto se VPN saobraćaj ne
mora usmeravati međuprovajderskim linkovima. Interna komunikacija dve
mreže preko Interneta ne sme se obavljati kroz neenkriptovani kanal.
Neenkriptovani paketi sadrže korisne informacije za potencijalne napadače.

Treba napomenuti, da iznajmljene linije ipak nisu u potpunosti bezbedne od


Internet hakera. Ako je sigurnost podataka od izuzetno velike važnosti za
kompaniju, tada se preporučuje upotreba VPN-a i preko iznajmljenih linija, kao
dodatna mera sigurnosti.
LITERATURA
01. Financial Times, Mastering Management, Prentice Hall 2000.

02. Boarov, D., Bezgotovinsko poslovanje, Svemoguće kartice, nedeljnik


Vreme, 2. decembar, 2004., Beograd

03. Chaffey, D. E-busines and E-commerce Management, 2nd Edition,


Prentice Hall, 2004.

04. Curry, J..The Customer Marketing Method., The Customer Marketing


Institute BV, 2000.

05. Gamble, Stone and Woodcock, Up Close and Personal?, Kogan Page
Limited, 1999.

06. Haig, M., e-PR, The Essential Guide to Public Relations on the Internet,
2nd Edition, Kogan Page Limited, UK, 2001.

07. Kotler, P., Marketing Management, 11th Edition, Prentice Hall, 2003.

08. Laudon, K.C., Laudon, J.P., Managing the Digital Firm, 11th Edition,
Pearson Education Inc, USA, 2004.

09. Milošević, S., Modeli upravljanja elektronskim poslovanjem, doktroska


teza u izradi, Tehnički fakultet “Mihajlo Pupin“, Zrenjanin, 2004.

10. Oxford Dictionary of Business, Oxford University Press, 2003.

11. Smith, M.L., One to One: Put the Customer in the Information Driven
Seat and Building Better Relationsjips, DIRECT MARKETING, Hoke
Communication, Inc., 1998.

12. Zikmund, W.G, McLeod, R., Jr., Gilbert, F. W., Customer Relationship
Management, Integrated Marketing Strategy for Information Technology,
Leyh Publishing LLC, 2003.

13. Weisman, J., The Making of E-Commerce: 10 Key Moments August 22,
2000.

14. Miodrag Ivković, Božidar Radenković, grupa autora, Internet i savremeno


poslovanje, Tehnički fakultet "Mihajlo Pupin" Zrenjanin, 1998.
Literatura 65

15. Vladan Pantović, Slobodan Dimić, Dušan Starčević, Savremeno


poslovanje i Internet tehnologije, Energoprojekt – InGraf, Beograd, 2002.

16. prof. dr Veljko Milutinović, Frederic Patricelli and others, E-Business and
E-Challenges, IOS Press, Amsterdam, 2002

17. Grupa autora, Od početka... Active Server Pages 3.0, CET Beograd, 2001.

18. Grupa autora, Profesionalno programiranje: ASP.NET 1.0, CET Beograd,


2002.

19. David Hunter i grupa autora, Od početka... XML, CET Beograd, 2001.

20. Branko Milosavljević, Milan Vidaković, Java i Internet programiranje,


Grupa za informacione tehnologije, Novi Sad, 2002.

21. Douglas J. Railly, Designing Microsoft ASP.NET Applications, Microsoft


Press, Washington, 2002

22. Damien Watkins, Mark Hammond, Brad Abrams, Programming in the


.NET Environment, Addison Wesley, Boston, 2003.

23. Scott Short, Building Web services for the Microsoft .NET platform,
Microsoft Press, Redmond, 2002.

24. RogueWave Software, An introduction to Web services, white paper,


USA, 2004.

25. RSA Laboratories, Frequently Asked Questions about Today's


Cryptography, RSA Security Inc., 2000.

26. Rob Flickenge, Building Wireless Community Networks, O'Reilly, 2002.

27. Matthew Strebe, Charles Perkins, Firewalls 24Seven, Second Edition,


SYBEX Inc, 2002.

28. Werner Feibel, Encyclopedia of networking, Second edition, SYBEX


Inc.,1996.

29. Douglas E. Comer, Povezivanje mreža - TCP/IP: principi, protokoli i


arhitekture, Tom 1, CET Beograd, 2001.
Literatura 66

Web izvori

01. http://dotnet.dart.com
02. http://hoohoo.ncsa.uiuc.edu/cgi
03. http://jakarta.apache.org
04. http://java.sun.com
05. http://pcdoc.bibliothek.uni-halle.de
06. http://www.aberdeen.com
07. http://www.accenture.com
08. http://www.amazon.com
09. http://www.amrresearch.com
10. http://www.asponline.com
11. http://www.belsign.com
12. http://www.buypower.vauxhall.co.uk
13. http://www.cgey.com
14. http://www.commerce-database.com
15. http://www.community.com
16. http://www.crm2day.com
17. http://www.crmdaily.com
18. http://www.crmguru.com
19. http://www.dell.com
20. http://www.e-certify.com
21. http://www.equifaxsecure.com
22. http://www.ericsson.com
23. http://www.escrow.com
24. http://www.fedex.com
25. http://www.forester.com
26. http://www.ft.com
27. http://www.garther.com
28. http://www.gte.com/cybertrust
29. http://www.iana.org
30. http://www.ibm.com
31. http://www.idc.com
32. http://www.ifision.com
33. http://www.infogate.com
34. http://www.irt.org
35. http://www.isoc.org
36. http://www.kelkoo.com
37. http://www.knowledgespace.com
38. http://www.lastminute.com
39. http://www.match.com
40. http://www.mathworks.com
41. http://www.microsoft.com
42. http://www.monster.com
43. http://www.perl.com
44. http://www.personalization.com
45. http://www.peterindia.net
Literatura 67

46. http://www.php.net
47. http://www.priceline.com
48. http://www.python.org
49. http://www.respond.com
50. http://www.ripe.net
51. http://www.roguewave.com
52. http://www.rsa.com
53. http://www.tesco.com
54. http://www.thawte.com
55. http://www.theopensourcery.com
56. http://www.ups.com
57. http://www.verisign.com
58. http://www.w3c.org
59. http://www.wanadoo.com
60. http://www.wcpe.org
61. http://www.xmledi.com
62. http://www.yesmail.com
Spisak skraćenica
▪ ACH – Automated Clearing Houses
▪ ADSL – Asymmetric DSL
▪ AES – Advanced Encryption Standard
▪ AMA – American Marketing Association
▪ AOL – America On-line
▪ API – Application Programming Interface
▪ APNIC – Asia Pacific Network Information Centre
▪ ARIN – American Registry for Internet Numbers
▪ ARP – Address Resolution Protocol
▪ AS – Autonomous System
▪ ASCII – American Standard Code for Information Interchange
▪ ASP – Active Server Pages
▪ ATM – Asynchronous Transfer Mode
▪ ATM – Automated Teller Machines
▪ B2B – Business to Business
▪ B2C – Business to Customer
▪ BCG – Boston Consulting Group
▪ BGP – Border Gateway Protocol
▪ BIPS – Bank Internet Payment System
▪ BIS – Business Information System
▪ bps – bits per second
▪ BSS – Base Station Subsystem
▪ C2B – Customer to Business
▪ C2C – Customer to Customer
▪ CA – Certificate Authority
▪ CALS – Computer Assisted Lifecycle Support
▪ CBA – Customer-Base Accounting
▪ CDMA – Code Division Multiple Access
▪ CDPD – Cellular Digital Packet Data
▪ CEO – Chief Executive Officer
▪ CERT – Computer Emergensy Response Team
▪ CGI – Common Gateway Interface
▪ CIDR – Classless Inter-Domain Routing
▪ CLR – Common Language Runtime
▪ CLS – Common Language Specification
▪ COSMOS – Customer Operations Service Master On-line System
▪ CPAN – Comprehensive Perl Archive Network
▪ CRC – Cyclic Redundancy Check
▪ CRL – Certificate Revocation List
▪ CRM – Customer Relationship Management/Marketing
Spisak skraćenica 69

▪ CSD – Circuit Switched Data


▪ CSMA/CA – Carrier Sense Multiple Access/Collision Avoidance
▪ CSMA/CD – Carrier Sense Multiple Access/Collision Detect
▪ CSS – Cascading Style Sheets
▪ CTS – Common Type System
▪ DADS – Digital Assisted Dispatch System
▪ DHCP – Dynamic Host Configuration Protocol
▪ DECT – Digital Enhanced Cordless Telephony
▪ DES – Data Encryption Standard
▪ DLL – Document Link Library
▪ d-mail – direct mail
▪ DNA – Distributed Network Architecture
▪ DNS – Domain Name Service
▪ DOM – Document Object Model
▪ DoS – Denial Of Service
▪ DTD – Document Type Definition
▪ DTI – Department of Trade and Industry, Great Britain
▪ e-business – Electronic Business
▪ e-commerce – Electronic Commerce
▪ e-CRM – Electronic Customer Relationship Management
▪ EDI – Electronic Data Interchange
▪ EDIFACT – Electronic Data Internchange for Administraion, Commerce
and Transport
▪ EFF – Electronic Frontier Fondation
▪ EFT – Electronic Finds Transfer
▪ EIGRP – Enhanced Interior Gateway Routing Protocol
▪ EP – Elektronsko poslovanje
▪ EPF – Electronic Payment Forum
▪ ERP – Enterprise Resource Planning
▪ ET – Elektronska trgovina
▪ FDDI – Fiber Distributed Data Interface
▪ FTP – File Transfer Protocol
▪ FTSC – Financial Services Technology Consortium
▪ Gbps – Gigabits per second
▪ GE – General Electric
▪ GGSN – Gateway GPRS Support Node
▪ GIF – Graphic Interchange Format
▪ GMSC – Gateway Mobile Services Swtching Centre
▪ GPRS – General Packet Radio Service
▪ GRE – Generic Routing Encapsulation
▪ GSM – Global System (for) Mobile (Communications)
▪ HDSL – High bit-rate DSL
▪ HMAC – Hash Message Authentication Code
Spisak skraćenica 70

▪ HP – Hewlett-Packard
▪ HTML – HyperText Markup Language
▪ HTTP – Hypertext Transfer Protocol
▪ IAB – Internet Architecture Board
▪ IAHC – International Ad-Hoc Commitee
▪ IANA - Internet Assigned Number Authority
▪ ICMP – Internet Control Message Protocol
▪ ICT – Information and Communication Technologies
▪ IDEA – International Data Encryption Algorithm
▪ IDSL – ISDN DSL
▪ IEEE – Institute of Electrical and Electronics Engineers
▪ IETF – Internet Engieering Task Force
▪ IIS – Internet Information Server
▪ IMAP – Internet Message Access Protocol
▪ IMC – Integrated Marketing Communication
▪ IP – Internet Protocol
▪ IPSec – Internet Protocol Security
▪ IPX/SPX – Internetwork Packet Exchange / Sequenced Packet Exchange
▪ IRC – Internet Relay Chat
▪ ISAPI – Internet Server Application Programming Interface
▪ ISDN – Integrated Services Digital Network
▪ ISM – Industrial, Scientific, Medical
▪ ISO – The International Standards Organization
▪ ISOC – Internet Society
▪ ISP – Internet Service Provider
▪ IT – Information Techonogies
▪ ITU – International Telecommunication Union
▪ IWMSC - Interworking Mobile Services Swtching Centre
▪ JDBC – Java DataBase Connectivity
▪ JEPI – Joint Electronic Payment Initiative
▪ JIT – Just-in-Time
▪ JPEG – Joint Photographic Experts Group
▪ JSP – Java Server Pages
▪ Kbps – kilobits per second
▪ L2TP – Level 2 Transport Protocol
▪ LACNIC – Latin American and Caribbean IP address Regional Registry
▪ LAN – Local Area Network
▪ LLC – Logical Link Control
▪ LTV – Life Time Value
▪ MAC – Message Authentication Code
▪ MAC – Media Access Control
▪ MAN – Metropolitan Area Networks
▪ Mbps – Megabits per second
Spisak skraćenica 71

▪ MCSA – Managing Customers as Strategic Asset


▪ MD – Message Digest
▪ MFC – Microsoft Foundation Classes
▪ MIDI – Musical Instrument Digital Interface
▪ MIME – Multipurpose Internet Mail Extensions
▪ MPEG – Moving Picture Experts Group
▪ MPLS – Multi-Protocol Label Switching
▪ MSC – Mobile Services Swtching Centre
▪ MSIL – Microsoft Intermediate Language
▪ NACHA – National Association of Clearing House Association
▪ NAT – Network Address Translation
▪ NNTP – Network News Transfer Protocol
▪ OSI – Open Systems Interconnection
▪ OSPF – Open Shortest-Path First
▪ OWF – One-Way-Hash
▪ P&G – Procter and Gamble
▪ P2P – Peer-to-Peer
▪ PAN – Personal Area Network
▪ PCMCIA – Personal Computer Memory Card International Association
▪ PDA – Personal Digital Assistant
▪ PDN – Packet Data Network
▪ PEP – Protocol Extensions Protocol
▪ PERL – Practical Extraction and Report Language
▪ PGP – Pretty Good Privacy
▪ PHP – PHP: Hypertext Preprocessor
▪ PHS – Personal Handy-phone System
▪ PIN – Personal Identification Number
▪ PKCS – Public Key Cryptography Standards
▪ PKI – Public Key Infrastructure
▪ POP3 – Post Office Protocol
▪ PPP – Point-to-Point Protocol
▪ PPTP – Point-to-Point Tunnelling Protocol
▪ PSTN – Public Switched Telephone Network
▪ RAD – Rapid Application Development
▪ RADSL – Rate-Adaptive DSL
▪ RDP – Reliable Datagram Protocol
▪ RFC – Request For Comment
▪ RIP – Routing Information Protocol
▪ RIPE NCC – Réseaux IP Européens Network Coordination Centre
▪ ROI – Return On Investment
▪ RPC – Remote Procedure Call
▪ S/MIME – Secure Multipurpose Internet Mail Extensions
▪ SAT – Subscriber Identification Module Application Toolkit
Spisak skraćenica 72

▪ SCM – Supply Chain Management


▪ SDSL – Symmetric DSL
▪ SET – Secure Electronic Transaction
▪ SFTP – Secure File Transfer Protocol
▪ SGML – Standard Generalized Markup Language
▪ SGSN – Serving GPRS Support Node
▪ SHA – Secure Hash Algorithm
▪ SIM – Subscriber Identification Module
▪ SMART – Simple, Measurable, Actionable, Relevant, Time-Oriented
▪ SMDS – Switched Multimegabit Data Service
▪ SMS – Short Message Service
▪ SMS-C – Short Message Service Center
▪ SMS-MAP – Mobile Application Part
▪ SMTP – Simple Mail Transfer Protocol
▪ SNMP – Simple Netwok Management Protocol
▪ SOA – Service-Oriented Architecture
▪ SOAP – Simple Object Access Protocol
▪ SONET – Synchronous Optical NETwork
▪ SSH – Secure Shell
▪ SSL – Secure Sockets Layer
▪ STP – Shielded Twisted Pairs
▪ SWOT – Strenghts, Weaknesses, Opportunities, Threats
▪ TCP – Transmission Control Protocol
▪ TCP/IP – Transmission Control Protocol / Internet Protocol
▪ TDMA – Time Division Multiple Access
▪ TFTP – Trivial File Transfer Protocol
▪ TLS – Transport Layer Security
▪ UDDI – Universal Description, Discovery and Integration
▪ UDP – User Datagram Protocol
▪ UPP – Universal Payment Preamble
▪ URL – Uniform Resource Locator
▪ USSD – UnStructured Suplementary Data
▪ UTP – Unshielded Twisted Pairs
▪ VDSL – Very high data rate DSL
▪ VLAN – Virtual Local Area Network
▪ VPN – Virtual Private Networks
▪ WAN – Wide Area Network
▪ WAP – Wireless Application Protocol
▪ WLAN – Wireless Local Area Network
▪ WML – Wireless Markup Language
▪ WSDL – Web Services Definition Language
▪ WS-I – Web Services Interoperability Organization
▪ WSP – Wireless Session Protocol
Spisak skraćenica 73

▪ WTA – Wireless Telephony Applications


▪ WTLS – Wireless Transaction Layer Security
▪ WWW – World Wide Web
▪ xDSL – Digital Subscriber Line
▪ XHTML – eXtensible HyperText Markup Language
▪ XML – eXtensible Markup Language
▪ XSLT – eXtensible Style sheet Language for Transformations

You might also like