Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Univerzitet u Novom Sadu
Tehnički fakultet »Mihajlo Pupin«
Zrenjanin
Bezbedonosni aspekti primene veb servisa u okviru
distribuiranih informacionih sistema
Security aspects of web services applications within
distributed information systems
MASTER RAD
Mentor: Student:
Prof. dr Ljubica Kazi Lidija Perišić, MIT 14/2017
ZRENJANIN, 2019.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
2
Univerzitet u Novom Sadu
Tehnički fakultet Mihajlo Pupin
Ključna dokumentacijska informacija
Redni br:
RBR
Identifikacioni broj:
IBR
Tip dokumentacije:
TD Monografska dokumentacija
Tip zapisa:
TZ Tekstualni štampani materijal
Vrsta rada (dipl.mag.dokt):
VR Master rad
Ime i prezime autora:
AU Lidija Perišić
Mentor (titula, ime, prezime, zvanje):
MN Doc.dr Ljubica Kazi
Naslov rada:
NS
Bezbedonosni aspekti primene veb servisa u
okviru distribuiranih informacionih sistema
Jezik publikacije:
JZ Srpski
Jezik izvoda:
JI Srpski/Engleski
Zemlja publikovanja:
ZP Republika Srbija
Uže geografsko područje:
UGP Zrenjanin, Vojvodina
Godina:
GO 2019.
Izdavač:
IZ Autorski reprint
Mesto i adresa:
MS
Tehnički fakultet „Mihajlo Pupin“ Đure
Đakovića bb, Zrenjanin
Fizički opis rada:
FO
Broj poglavlja 7/ Broj strana 114/
Broj slika 42/ Broj listinga 19/ Broj tabela 3
Naučna oblast:
OB Informacione tehnologije – master
Naučna disciplina:
ND Distribuirani informacioni sistemi
Predmetna odrednica, ključne reči:
PO
Distribuirani informacioni sistemi,
bezbednost, veb servisi, SOAP, XML,
WSDL, UDDI
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
3
UDK
Čuva se:
ČU
Biblioteka Tehničkog fakulteta „Mihajlo
Pupin“, Zrenjanin
Važna napomena:
VN
Izvod:
IZ
U ovom radu je opisana primena veb servisa, kao
osnova savremenih veb aplikacija. Rad se
fokusira na bezbedonosne aspekte veb servisa u
distibuiranim informacionim sistemima. Kao bilo
koji softver ili veb aplikacija i veb servisi su
takođe skloni sigurnosnim pretnjama vezanim za
autentifikaciju, dostupnost i integritet, tako da će
u radu biti opisane nove tehnike i metode u
oblasti bezbednosti veb servisa kao i zaštite
podataka i postojeća implentirana rešenja. Pored
toga kreiran je i poseban veb servis u
integrisanom razvojnom okruženju Visual Studio
2017, koji pokazuje kako autentificirati i ovlastiti
pozive da izvode operacije i kako pristupiti
resursima.
Datum prihvatanja teme od strane NN veća:
DP 28.03.2019
Datum odbrane:
DO
Članovi komisije:
ČK
Doc.dr Ljubica Kazi
Prof.dr Biljana Radulović
Prof.dr Dalibor Dobrilović
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
4
University of Novi Sad
Technical Faculty „Mihajlo Pupin“ Zrenjanin
Keyword documentation
Accession number:
ANO
Identification number:
INO
Document type:
DT Monograph documentation
Type of record:
TR Textual printed material
Contents code:
CC M.Sc.Thesis
Author:
AU Lidija Perišić
Menthor:
MN Doc.dr Ljubica Kazi
Title:
TI
Security aspects of web services applications
within distributed information systems
Language of text:
LT Serbian
Language of abstract:
LA Serbian/English
Country of publication:
CP Republic of Serbia
Locality of publication:
LP Zrenjanin, Vojvodina
Publication year:
PY 2019.
Publisher:
PU Author’s reprint
Publication place:
PP
Technical faculty “Mihajlo Pupin”
Đure Đakovića bb, Zrenjanin
Physical description:
PD
Chapter 7/ Pages 114 / Pictures 42/
Lists of code 19/ Tables 3
Scientific field:
SF
Computer science – M.Sc
Scientific discipline:
SD Distributed information systems
Subject, Keywords:
SKW
Distributed information systems,
Security, web services, SOAP, XML, WSDL,
UDDI
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
5
UDC
Holding data:
HD
Library of Technical Faculty “Mihajlo Pupin”,
Zrenjanin
Note:
N
Abstract:
AB
This paper describes the application of web
services as the basis for modern web
applications. The work focuses on the security
aspects of web services in distributed
information systems. Like any software or
web application and web services, they are
also prone to security threats related to
authentication, availability, and integrity, so
that new techniques and methods in the field
of Web service security and data protection
and existing implanted solutions will be
described. In addition, a special web service
has been created in the integrated
development environment Visual Studio
2017, which shows how to authenticate and
authorize calls to perform operations and how
to access resources.
Accepted on Scientific Board on:
AS 28.03.2019
Defended:
DE
Thesis defend board:
DB
Doc.dr Ljubica Kazi
Prof.dr Biljana Radulović
Prof.dr Dalibor Dobrilović
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
6
Sadržaj
1. METODOLOŠKI OKVIR ISTRAŽIVANJA ....................................................................... 11
1.1 Predmet i problem istraživanja ....................................................................................... 11
1.2 Vrsta istraživanja ............................................................................................................ 11
1.3 Cilj i zadaci istraživanja ................................................................................................. 11
1.4 Hipoteza ......................................................................................................................... 11
1.5 Očekivani rezultati ......................................................................................................... 11
1.6 Metodološki postupak .................................................................................................... 12
2. TEORIJSKO ISTRAŽIVANJE ............................................................................................. 13
2.1 Bezbednost u oblasti IT .................................................................................................. 13
2.1.1 Sigurnosni napadi i pretnje ......................................................................................... 14
2.1.2 Najčešći napadi i pretnje ............................................................................................. 17
2.1.2.1 Odbijanje usluge ..................................................................................................... 17
2.1.2.2 Spoofing .................................................................................................................. 18
2.1.2.3 Sniffing ................................................................................................................... 18
2.1.2.4 Programske pretnje ................................................................................................. 19
2.1.2.5 Sistemske pretnje .................................................................................................... 20
2.1.3 Mehanizmi bezbednosti .............................................................................................. 20
2.1.3.1 Autentifikacija......................................................................................................... 21
2.1.3.2 Autorizacija ............................................................................................................. 22
2.1.3.3 Audit trails .............................................................................................................. 22
2.1.3.4 Kriptografija ............................................................................................................ 23
2.1.3.4.1 Simetrični algoritmi ................................................................................................ 24
2.1.3.4.2 Asimetrični algoritmi .............................................................................................. 26
2.1.3.5 Firewalls .................................................................................................................. 27
2.1.4 Bezbednosna politika .................................................................................................. 28
2.1.5 Implementacija bezbednosti ....................................................................................... 29
2.2 Distribuirani sistemi ...................................................................................................... 30
2.2.1 Definicija i karakteristike distribuiranih sistema ........................................................ 30
2.2.2 Kategorizacija distribuiranih sistema ......................................................................... 32
2.2.2.1 Distribuirani računarski sistemi .............................................................................. 32
2.2.2.2 Distribuirani informacioni sistemi .......................................................................... 33
2.2.2.3 Distribuirani integrisani sistemi .............................................................................. 34
2.2.3 Klijent-server arhitektura ............................................................................................ 34
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
7
2.2.4 Višeslojna objektno orijentisana arhitektura .............................................................. 35
2.2.5 Servisno orijentisana arhitektura ................................................................................ 37
2.3 Veb servisi ...................................................................................................................... 37
2.3.1 Veb servis arhitektura ................................................................................................. 39
2.3.2 Tehnologije veb servisa .............................................................................................. 40
2.3.2.1 XML ........................................................................................................................ 41
2.3.2.2 SOAP ...................................................................................................................... 42
2.3.2.3 WSDL ..................................................................................................................... 44
2.3.2.4 UDDI....................................................................................................................... 44
3. STRUČNO ISTRAŽIVANJE – BEZBEDNOST VEB SERVISA ....................................... 46
3.1 Bezbednost veb servisa .................................................................................................. 46
3.1.1 Sigurnosni protokoli transportnog sloja ..................................................................... 47
3.1.2 XML enkripcija i XML potpis .................................................................................... 48
3.1.3 WS-Security................................................................................................................ 51
3.1.3.1 WS-Security tokeni ................................................................................................. 54
3.1.3.1.1 UserName tokeni .................................................................................................... 56
3.1.3.1.2 X.509 Certificate ..................................................................................................... 59
3.1.3.1.3 Kerberos tokeni ....................................................................................................... 60
3.1.3.1.4 SAML tokeni .......................................................................................................... 63
3.1.4 WS-Trust .................................................................................................................... 65
3.1.5 WS-Secure Conversation ............................................................................................ 67
3.1.6 WS-Addressing ........................................................................................................... 67
3.1.7 WS-Reliability ............................................................................................................ 71
3.1.8 WS-Reliable messaging .............................................................................................. 71
3.2 Analiza postojećih rešenja u oblasti ............................................................................... 72
3.2.1 Bezbednost veb servisa u poslovnim aplikacijama .................................................... 72
3.2.2 WS-BPEL ................................................................................................................... 73
3.2.3 Bezbednost WS-BPEL ............................................................................................... 75
3.2.4 ebXML........................................................................................................................ 76
4. EMPIRIJSKO ISTRAŽIVANJE POSTOJEĆIH REŠENJA ................................................ 80
4.1 Veb servisi Narodne Banke Srbije ................................................................................. 80
4.1.1 Način korišćenja veb servisa ...................................................................................... 82
4.2 Centralni registar obaveznog zdravstvenog osiguranja (elektronski potpis i korišćenje
veb aplikacije) ........................................................................................................................... 85
5. NAUČNO-STRUČNO ISTRAŽIVANJE ............................................................................. 90
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
8
5.1 Pregled sigurnosti poslovnih aplikacija i posledice slabih tačaka u sistemima ............. 90
5.2 Pregled studija sigurnosti veb servisa, sigurnosni rizici, pretnje i kontramere .............. 95
5.2.1 WSDL scanning .......................................................................................................... 96
5.2.2 XML injection ............................................................................................................ 96
5.2.3 XPath Injection ........................................................................................................... 97
5.2.4 SOAPAction spoofing ................................................................................................ 97
5.2.5 DoS napad................................................................................................................... 99
5.3 Primeri napada na veb servise ...................................................................................... 100
6. IMPLEMENTIRANO REŠENJE........................................................................................ 103
6.1 Opis poslovnog konteksta ............................................................................................ 103
6.2 Bezbedonosni aspekti implementacije veb servisa u veb aplikaciji ............................. 104
7. ZAKLJUČAK ...................................................................................................................... 108
Literatura: ................................................................................................................................ 109
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
9
Apstrakt
U ovom radu je opisana primena veb servisa, kao osnova savremenih veb aplikacija. Rad se
fokusira na bezbedonosne aspekte veb servisa u distibuiranim informacionim sistemima. Kao
bilo koji softver ili veb aplikacija i veb servisi su takođe skloni sigurnosnim pretnjama vezanim
za autentifikaciju, dostupnost i integritet, tako da će u radu biti opisane nove tehnike i metode u
oblasti bezbednosti veb servisa kao i zaštite podataka i postojeća implentirana rešenja. Pored
toga kreiran je i poseban veb servis u integrisanom razvojnom okruženju Visual Studio 2017,
koji pokazuje kako autentificirati i ovlastiti pozive da izvode operacije i kako pristupiti
resursima.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
10
Abstract
This paper describes the application of web services as the basis for modern web applications.
The work focuses on the security aspects of web services in distributed information systems.
Like any software or web application and web services, they are also prone to security threats
related to authentication, availability, and integrity, so that new techniques and methods in the
field of Web service security and data protection and existing implanted solutions will be
described. In addition, a special web service has been created in the integrated development
environment Visual Studio 2017, which shows how to authenticate and authorize calls to
perform operations and how to access resources.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
11
1. METODOLOŠKI OKVIR ISTRAŽIVANJA
1.1 Predmet i problem istraživanja
Predmet istraživanja jesu bezbedonosni aspekti, tehnike i metode primene veb servisa u
okviru distribuiranih informacionih sistema. Problem istraživanja jeste bezbednost poslovnih
aplikacija, tehnike i metode koje je moguće primeniti kako bi se obezbedila sigurna
implementacija veb servisa u poslovne aplikacije i na taj način ostvarila sigurna distribucija
podataka.
1.2 Vrsta istraživanja
U ovom radu, predmetu istraživanja se pristupa sa teorijskog, naučnog i empirijskog aspekta.
U okviru teorijskog i naučnog pristupa razmatra se problem bezbednosti softvera i
bezbednost podataka, veb servisi, distribuirani informacioni sistemi, postojeća stručna
rešenja u oblasti bezbednosti veb servisa. U empirijskom delu biće izvršena analiza
postojećih tehnika i metoda za bezbednost interakcije veb servisa sa veb aplikacijama, kao i
izrada prototipa softvera.
1.3 Cilj i zadaci istraživanja
Cilj istraživanja predstavlja teorijsko istraživanje bezbednosnih aspekata, tehnologija i
metoda veb servisa, istraživanje stručnih i naučnih rešenja u implementaciji veb servisa u
poslovne aplikacije. Konkretni procesi će biti ilustrovani praktično realizovanim primerom.
1.4 Hipoteza
Osnovna hipoteza:
Savremene tehnologije razvoja veb aplikacija omogućavaju interakciju sa veb servisima i
primenu bezbedonosnih elemenata.
1.5 Očekivani rezultati
- Teorijski prikaz osnovnih koncepata.
- Stručno-istaživački rezultati prikaza različitih tehnika i metoda za bezbednost interakcije
veb servisa sa veb aplikacijama.
- Naučno-istraživački rezultati prikaza aktuelnih istraživanja i rešenja u oblasti bezbednosti
veb servisa.
- Realizovan primer softverske aplikacije u kojoj su primenjene tehnike bezbednosti veb
servisa prilikom implementacije.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
12
1.6 Metodološki postupak
1. Metodološko koncipiranje istraživanja
2. Teorijsko istraživnje osnovnih koncepata i metoda
3. Istraživanje postojećih naučnih i stručnih rešenja
4. Istraživanje implementiranihn rešenja
5. Izrada prototipa softvera i testiranje rada
6. Dokumentovanje i analiza rada
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
13
2. TEORIJSKO ISTRAŽIVANJE
2.1 Bezbednost u oblasti IT
Ubrzani razvoj i sve veći značaj računarskih i komunkacionih tehnologija, neophodnih za
savremeno poslovanje, zahteva da se problemu sigurnosti posveti posebna pažnja.
Uvođenjem računara, pojavila se potreba za novim i automatizovanim alatima za zaštitu
podataka, softvera i hardvera. Ovo je posebno značajno za deljene sisteme, kao što su sistemi
za deljenje datoteka, kojima je omogućen pristup kroz javne računarske mreže. Važna
promena koja je uticala na sigurnost jeste širenje primene računarskih mreža, komunikacija i
distribuiranih sistema.
Informaciona bezbednost je deo upravljanja informacionim sistemima. Sa eksponencijalnom
rastućom zavisnošću od informacionih sistema u svim oblastima života, informacioni sistemi
utiču skoro na svakoga. Način na koji se grade i koriste informacioni sistemi utiču na
nacionalnu bezbednost, konkurentnost i na ekonomiju. Upravljanje informacionim sistemima
je osnova koja određuje da li su oni usklađeni sa ciljevima i da li služe potrebama. Prema
tome, dobre prakse upravljanja informacionim sistemima su od vitalnog značaja za svaku
organizaciju, a ove prakse ili njihovo odsustvo direktno utiču na bezbednost informacionih
sistema.
Računarska bezbednost je zaštita koja se pruža automatizovanom informacionom sistemu u
cilju postizanja primenljivih ciljeva očuvanja integriteta, dostupnosti i poverljivosti resursa
informacionog sistema uključujući hardver, softver i podatke.[1]
Ova definicija uvodi tri ključna pojma koja predstavljaju srž računarske sigurnosti:[1][4]
- Poverljivost (Confidentiality) – se odnosi na poverljivost podatka i omogućava da
privatne i poverljive informacije nisu dostupne ili otkrivene neovlašćenim osobama.
- Integritet (Integritety) – osigurava da se informacije i programi menjaju samo na
specificiran i ovlašćen način i da sistem izvršava svoju funkciju na neometan način,
bez namerne ili nenamerne neovlašćene manipulacije sistema.
- Dostupnost (Availability) – osigurava da sistemi rade brzo i da servis ne bude odbijen
ovlašćenim korisnicima. Sa operativnog stanovišta, ovaj zahtev se odnosi na
adekvatno vreme odziva i garantovani propusni opseg. Sa stanovišta bezbednosti,
predstavlja sposobnost da se zaštiti i da se oporavi od štetnog događaja.
Prema [2] Poverljivost znači očuvanje dozvoljenih ograničenja na pristup informacijama,
gubitak poverljivosti bi bilo neovlašćeno otkrivanje informacija. Integritet je čuvanje od
nepravilnog modifikovanja ili uništavanja informacija, a gubitak integriteta je neovlašćena
izmena ili uništavanje informacija. Dostupnost je obezbeđivanje pravovremenog i pouzdanog
pristupa, a gubitak dostupnosti je ometanje pristupa informacijama ili informacionom
sistemu.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
14
Alati za poverljivost: [5]
- Šifrovanje: transformacija informacija pomoću ključa za šifrovanje, tako da se
transformisana informacija može čitati samo pomoću ključa za dešifrovanje.
- Kontrola pristupa: pravila i politike koje ograničavaju pristup poverljivim
informacijama koja se može odrediti identitetom kao što je ime osobe ili serijski broj
računara.
- Autentifikacija: određivanje identiteta ili uloge koju neko ima. Ovo određivanje se
može izvršiti na više različitih načina, ali se obično zasniva na kombinaciji – nešto što
osoba ima (pametna kartica), nešto što osoba zna (lozinka) i nešto što osoba jeste
(otisak prsta).
- Autorizacija: određivanje da li je osobi ili sistemu dozvoljen pristup resursima, na
osnovu politike kontrole pristupa.
- Fizička bezbednost: uspostavljanje fizičkih prepreka za ograničavanje pristupa
zaštićenim računarskim resursima.
Alati za integritet: [5]
- Backup: periodično arhiviranje podataka.
- Pregledi: funkcija koja mapira sadržaj datoteke na numeričku vrednost (funkcija
kontrolnog zbira zavisi od celokupnog sadržaja datoteke i dizajnirana je tako da će
čak i mala promena ulazne datoteke rezultirati drugom izlaznom vrednošću).
- Kodovi za korekciju podataka: metode za pohranjivanje podataka na takav način da
se male promene mogu lako otkriti i automatski ispraviti.
Alati za dostupnost: [5]
- Fizička zaštita: infrastruktura namenjena održavanju dostupnih informacija čak i u
slučaju fizičkih izazova.
- Računarske redundancije: računari i uređaji za skladištenje koji služe za povratne
greške u slučaju kvarova.
2.1.1 Sigurnosni napadi i pretnje
Pretnja je mogućnost povrede bezbednosti, koja postoji kada postoji okolnost, sposobnost,
radnja ili događaj koji bi mogao da naruši bezbednost i nanese štetu tj. pretnja je moguća
opasnost koja može iskoristiti ranjivost.[2]
Ako je cilj informacione sigurnosti da dostigne i održi CIA trijadu (Confidentiality, Integrity,
Availability) informacione imovine na potrebnom nivou, pretnja je nešto što potencijalno
može da je ugrozi. To znači da se pretnja sastoji od potencijalne akcije ili pojave koja može
negativno uticiati na CIA trijadu informacija. Akcije i događaji se ne događaju sami, moraju
postojati uzroci koji leže iza, tako da bi u pojam pretnje trebalo uključiti i akcije, pojave i
osnovne uzroke. Pretnje su potencijalne neželjene radnje ili pojave, koje izvršavaju ili
uzrokuju akteri, ljudski stvoreni artefakti ili prirodni fenomeni koji bi trebalo da naruše CIA
trijadu trenutnih informacija i sredstava.[14]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
15
Terorizam, informacijski rat, sabotaže i upadi su primeri namernih pretnji, dok su nemarnost,
greške i neznanje nenamerne pretnje. Prirodni fenomeni mogu biti poplave, požari,
zemljotresi i oluje. Ljudi mogu konstruisati, implementirati, konfigurisati ili rukovati
artefaktima na neprikladne i destruktivne načine, na primer ljudi koji stvaraju destruktivne IT
artefakte kao što su virusi i crvi. [14]
Napad na sigurnost sistema proizilazi iz inteligentne pretnje tj. inteligentni čin koji je
adekvatan pokušaj u smislu metode ili tehnike da se izbegnu sigurnosne mere i da se ugrozi
sigurnosna politika sistema. U osnovi napadi su akcije koje su usmerene na kompromitaciju
sigurnosti informacija, računarskih sistema i mreža.
Pasivni napadi su po prirodi prisluškivanje ili nadgledanje prenosa, a cilj protivnika je da
dobije informacije koje se prenose. Pasivni napad pokušava da nauči ili da iskoristi
informacije iz sistema, ali ne utiče na sistemske resurse. Veoma teško ih je otkriti, jer ne
uključuju bilo kakvu promenu podataka. Prenos podataka se odvija normalno, a ni pošiljalac
ni primalac nisu svesni da je treća strana pročitala poruke ili posmatrala obrazac prenosa.
Međutim, moguće je sprečiti uspeh ovih napada, obično putem enkripcije. Kod pasivnih
napada naglasak je na prevenciji, a ne na otkrivanju.
Aktivni napadi uključuju određenu modifikaciju toka podataka, pokušavaju da promene
sistemske resurse ili da utiču na njihov rad.
Sigurnosni napadi se mogu klasifikovati u četiri osnovne kategorije:[3]
- Presecanje ili prekidanje (Interruption) – je napad na dostupnost, ovim napadom se
prekida tok informacija, onemogućava pružanje usluge ili funkcionisanje sistema.
- Hvatanje (Interception) – je napad na poverljivost. Hvatanje se sprovodi kao
prisluškivanje, nadziranje ili uvid u osetljive informacije.
- Izmena (Modification) – predstavlja napad na integritet. Ako se odvija na
komunikacionom putu prenosa podataka može se ispoljiti kao napad tipa “man in the
middle”, a unutar računarskih sistema se manifestuje kao izmena podataka, načina
funkcionisanja programa ili prava pristupa.
- Fabrikovanje (Fabrication) – je napad na autentičnost i sastoji se u generisanju lažnih
podataka, lažnog saobraćaja ili davanju neovlašćenih komandi.
Tabela 1. Primeri napada na računarske resurse [1]
Dostupnost Poverljivost Integritet
Hardver Oprema je ukradena ili
onemogućena, čime se
uskraćuje usluga.
Softver Programi su izbrisani i
korisnicima je
onemogućen pristup.
Napravljena je
neovlaščena kopija
softvera.
Program je modifikovan,
bilo da proizvede neuspeh
u izvršavanju ili da izvši
neplanirane funkcije.
Podaci Datoteke su izbrisane,
onemogućavajući pristup
korisnicima.
Izvršeno je neovlašćeno
čitanje podataka.
Postojeće datoteke su
modifikovane ili su
napravljene nove.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
16
Komunikacioni
putevi
Poruke su uništene ili
izbrisane, komunikacioni
kanali ili mreže su
nedostupne.
Poruke su pročitane i
uočen je obrazac prenosa
podataka.
Poruke su modifikovane,
odložene, reorganizovane
ili duplirane. Lažne poruke
su proizvedene.
Tabela br.1 prikazuje primere napada na računarske resurse i bezbednosne aspekte tih
napada.
Glavna pretnja hardveru računarskog sistema jeste pretnja dostupnosti, jer je hardver
najranjiviji za napad i najmanje podložan automatskim kontrolama. Pretnje uključuju
slučajno i namerno oštećenje opreme i krađu, a za zaštitu su potrebne fizičke i
administrativne sigurnosne mere.
Softver uključuje operativne sisteme, uslužne programe i aplikativne programe. Ključna
pretnja softveru je napad na dostupnost. Softver, posebno aplikativni se često lako briše,
može se izmeniti ili oštetiti kako bi bio beskoristan. Pažljivo upravljanje konfiguracijom
softvera, koja podrazumeva pravljenje rezervnih kopija može održati visok nivo dostupnosti.
Modifikacija softvera rezultira programom koji još uvek funkcioniše, ali se ponaša drugačije
i predstavlja pretnju integritetu. Primeri napada na integritet softvera jesu računarski virusi.
Sigurnost podataka uključuje datoteke i druge oblike podataka, a problem bezbednosti
podataka obuhvata dostupnost, poverljivost i integritet. U slučaju dostupnosti, problem
nastaje usled brisanja podataka, slučajnog ili zlonamernog, u pogledu poverljivosti problem
nastaje usled neovlašćenog čitanja datoteka ili baza podataka, najveći problem nastaje
narušavanjem integriteta podataka usled modifikacije postojećih podataka ili generisanja
novih.
Ranjivost (Vulnerability) – je slabost sredstva ili grupe sredstava koja se mogu iskoristiti
jednom ili više pretnji. Ranjivost je slabost, nešto što ako se iskoristi može izazvati neke
neželjene efekte. Odnosi se na manu u sistemu koja ga može ostaviti otvorenim za napad.
Može se odnositi i na bilo koji vid slabosti u samom kompjuterskom sistemu, skupu
procedura ili bilo čemu što sistem ostavlja izložen pretnjama. Smanjenje ranjivosti
obezbeđuje manje opcija za zlonamerne korisnike da dobiju pristup bezbednim
informacijama. Jedna od mogućih načina smanjivanja ranjivosti jeste ažuriranje softverskih
zakrpa koje mogu da otklone nedostatke ili sigurnosne rupe koje su pronađene u početnom
izdanju. [15]
Rizik (Risk) – je u kontekstu sigurnosti računarskih sistema i mreža, mera opasnosti, tj.
mogućnost da se desi oštećenje ili gubitak neke informacije, hardvera, intelektualne svojine,
prestiža ili ugleda. Na primer, rizik kompromitacije integriteta baze klijenata ili rizik
odbijanja servisa od strane on-line portala banke.[3]
Koncept rizika se sastoji od dva dela: verovatnoća ili očekivana frekvencija incidenta će se
dogoditi i potencijalni štetni incident može prouzrokvati štetu. Rizik se može predstaviti u
obliku jednačine:[14]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
17
R = L * P
R – rizik
L – potencijalni gubitak
P – verovatnoća ili očekivana učestalost gubitka
ili
Rizik = Pretnja * Ranjivost * Vrednost imovine [3]
U standardu ISO / IEC 17799 (2001, p8) rizik je definisan na sledeći način – “Rizik se sastoji
od verovatnoće incidenta kao i potencijalnih negativnih posledica”.[14]
2.1.2 Najčešći napadi i pretnje
Računarski sistemi i mreže se mogu napasti na mnoštvo načina, neki od njih će biti opisani u
narednom poglavlju.
2.1.2.1 Odbijanje usluge
Odbijanje usluge (Denial of services) – DoS napad izaziva prekid rada servisa ili programa,
čime lišava legitimne korisnike usluga ili resursa koje su očekivali, odnosno predstavlja
prekid ili degradaciju usluga prenosa podataka ili pristupa informacijama. DoS napadi obično
ne dovode do krađe ili gubitka značajnih informacija ili drugih sredstava, ali žrtvu mogu
mnogo koštati vremena i novca usled nedostupnosti servisa. [7]
DoS napadi se najlakše izvode:
Na transportnom sloju slanjem velikog broja sinhronizovanih paketa što dovodi do
usporavanja i na kraju zaustavljanja rada servisa.
Korišćenjem pogrešno konfigurisanih mrežnih uređaja, tako što se šalju lažni paketi
koji pinguju svaki računar u mreži, umesto samo jednog određenog uređaja.
Slanjem zahteva za povezivanje sa serverom sve dok svi otvoreni portovi ne budu
zasićeni zahtevima i nijedan od njih nije dostupan za legitimne korisnike sa kojima se
može povezati.[7][8]
Dodatni tip DoS napada je DDoS (Distributed Denial of services) je pokušaj da se usluga na
mreži učini nedostupnom tako što će je nadjačati sa saobraćajem iz više izvora.
Distribucija hostova koja definiše DDoS pruža napadu više koristi:
Može da iskoristi veći broj računara da izvrši ozbiljan razorni napad.
Lokaciju napada je teško detektovati zbog slučajne raspodele napadačkih sistema.[8]
Moderni DDoS napadi generišu ogromne količine saobraćaja pomoću botova (botnet) koji
predstavljaju mrežu računara koji su zaraženi malicioznim softverom tako da napadač ima
kontrolu nad njima sa udaljene lokacije, dizajnirani su da napadaju jedan server, mrežu ili
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
18
aplikaciju sa ogromnim brojem zahteva, paketa ili poruka, čime se uskraćuje usluga
legitimnim korisnicima.[10]
DDoS se najčešće koristi da dovede sistem u nestabilno stanje, da se zatim iskoristi neka
ranjivost i upadne u sam sistem. Tokom DDoS napada svi resursi su maksimalno opterećeni i
dolaze do svojih graničnih veličina, kada su moguće greške ili se ispoljavaju ranjivosti, pa je
moguće da se lakše upadne u sam sistem ili dođe do naloga sa većim privilegijama nego što
bi inače bilo moguće.[10]
2.1.2.2 Spoofing
Kada je u pitanju računarska bezbednost, spoofing je kada se neko ili nešto pretvara da je
nešto drugo u pokušaju da stekne poverenje, dobije pristup sistemu, krade podatke ili širi
malver.
Lažiranje IP adresa je metoda za zamenu IP adresa, koja dozvoljava nekom hostu da se
maskira kao drugi host. Omogućava slanje poruka na računar pomoću IP adrese koja čini da
izgleda kao da poruka dolazi iz pouzdanog izvora i modifikovanje DNS servera kako bi se
preusmerilo određeno ime domena na drugu IP adresu.[11]
Lažno slanje e-pošte je najlakše prepoznati jer direktno cilja korisnika. Svaka čudna e-pošta
koja zhateva poverljive informacije može biti lažna, posebno ako traži imena i lozinke.
Spoofing može da se koristi za dobijanje pristupa ličnim informacijama, širenje zlonamernog
softvera preko zaraženih veza ili priloga, zaobilaženje pristupa mreži ili redistribuciju
saobraćaja da bi se izvršio napad uskraćivanja usluge.
Spoofing se može sprečiti na sledeći način:
- Ne odgovarati na bilo koju e-poruku u kojoj se traže podaci o računu ili podaci za
prijavu,
- Proverom adrese pošiljaoca o sumnjivim e-porukama,
- Voditi računa ukoliko se bilo koji od pouzdanih sajtova počne ponašati
drugačije.[113]
2.1.2.3 Sniffing
Njuškanje (Sniffing) – je jedna od najčešće korišćenih metoda krađe podataka. To je proces
praćenja i hvatanja svih paketa podataka koji prolaze kroz datu mrežu. Napadač specijalnim
programom presreće TCP/IP pakete i na taj način može da uhvati i analizira sav mrežni
saobraćaj. Program se može instalirati na bilo koji računar povezan na lokalnu mrežu bez
potrebe za instalacijom na samom uređaju, tj. može ostati neotkriven za vreme trajanja veze.
Sniffing se obično koristi za nadgledanje i analizu mrežnog saobraćaja, kako bi se otkrili
problemi i omogućilo da se stvari odvijaju efikasno. Međutim, sniffing se može koristit i za
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
19
loše namere, jer prati sve što prolazi kroz mrežu, uključujući nešifrovane lozinke i korisnička
imena tako da napadači mogu pristupiti svim podacima koji prolaze kroz mrežu. [114]
Sniffing je napad koji se koristi za krađu podataka, špijuniranje mrežnih aktivnosti i
prikupljanje informacija o korisniku. Obično, krajnji cilj je da se dobiju lozinke i informacije
o nalogu za bankarske i trgovačke lokacije.
Sniffing se može sprečiti:
- Šifrovanjem celokupnog sadržaja koji se šalje ili prima,
- Skeniranjem mreže,
- Korišćenjem pouzdane mreže.
2.1.2.4 Programske pretnje
Posebne metode za izvođenje napada su programske pretnje. U njih se ubrajaju:
- Trojanski konj – je ilegalni segment koda podmentut u kod programa čiji je cilj da
promeni funkciju ili ponašanje originalnog programa. Specijalna varijanta trojanskog
konja je program koji oponaša proceduru prijavljivanja na sistem ili mrežu. Programi
ovakvog tipa presreću login proceduru i prikazuju odzivnik za prijavljivanje,
identitčan onom pravom, koji čeka da korisnik unese korisničko ime ili adresu.
Korisnik unosi korisničko ime i lozinku koje trojanski konj smešta u neku datoteku
dostupnu napadaču, a zatim obaveštava korisnika da je pogrešno uneo lozinku.
Trojanski konj, zatim, predaje kontrolu pravoj proceduri prijavljivanja na sistem.
Korisnik smatra da je uneo pogrešnu lozinku, unosi je ponovo i prijavljuje se na
sistem. Napadač proverava datoteku i prijavljuje se na sistem pod tuđim imenom. [3]
- Klopka (Trap Door) – je metoda zaobilaska autentičnosti, obezbeđivanja udaljenog
pristupa računaru, dobijanja pristupa kodu programa. Može se ostvariti kada autor
programa slučajno ili namerno ostavi prazna mesta u kodu, napadač može da
podmetne svoj kod u tom prostoru kako bi izvršio modifikaciju ili pristupio podacima
što je posledica lošeg dizajna programa.
- Prelivanje bafera (buffer overflow) – je najčešći napad sa mreže pri pokušaju
neautorizovanog pristupa. Po pravilu napadači koriste greške u programima, odnosno
nedovoljnu kontrolu razdvajanja steka, podataka i koda. Napadač šalje više ulaznih
podataka nego što program očekuje, preplavljuje ulazna polja, argumente komandne
linije ili ulazni bafer da bi došao do steka, prepisuje važeću adresu u steku adresom
svog koda, puni deo steka svojim kodom koji izvršava neku komandu. U slučaju
uspešnog napada, umesto nedovoljno zaštićenog programa, izvrši će se ilegalan kod
ubačen prekoračenjem bafera.[3]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
20
2.1.2.5 Sistemske pretnje
Mnogi operativni sistemi obezbeđuju mehanizam pomoću kojeg procesi mogu kreirati druge
procese. U takovoj okolini moguće je zlonamerno korišćenje datoteka i sistemskih resursa.
Pretnje ovog tipa nazivaju se sistemske pretnje. Dve metode kojima se to može postići su crvi
i virusi.
- Crvi (worms) – kompjuterski crv je vrsta malvera koji se širi od komjutera do
kompjutera. Crv se može replicirati bez ikakve ljudske interakcije i ne mora se
priključiti softverskom programu da bi prouzrokovao štetu. Mogu se prenositi putem
softverskih ranjivosti ili mogu doći kao prilozi u neželjenim e-porukama. Kada se
jednom otvore, ovi fajlovi mogu da obezbede vezu do zlonamernog sajta. Kada se
instalira, crv tiho prelazi u rad i inficira mašinu bez znanja korisnika. Crvi mogu da
menjaju i brišu datoteke ili da ubace dodatni zlonamerni softver. Ponekad je svrha
kompjuterskog crva samo da napravi kopiju samog sebe preko iscrpljujućih
sistemskih resursa, kao što su hard disk ili propusni opseg. Pored toga što uništavaju
sistemske resurse, crvi mogu da ukradu podatke, instaliraju backdoor i dozvole
napadačima da steknu kontrolu nad računarom i njegovim sistemskim
postavkama.[12]
- Virusi (virus) – računarski virusi su dizajnirani da se šire od domaćina do hosta i
imaju mogućnost da se repliciraju. Da bi se reprodukovao virus zahteva nosioca u
vidu izvršne datoteke. U tehničkom smislu, računarski virus je vrsta zlonamernog
koda ili programa koji je napisan tako da menja način na koji računar radi i dizajniran
je da se širi sa računara na računar. Virus funkcioniše tako što se ubacuje ili pripaja
legitimnom programu kako bi izvršio svoj kod i u tom procesu virus ima potencijal
da prouzorkuje neočekivane ili štetne efekte, kao što je oštećenje sistemskog softvera
kvarenjem ili uništavanjem podataka.[12]
2.1.3 Mehanizmi bezbednosti
Internet postaje sve važniji kanal za e-trgovinu, gde složene poslovne aplikacije uključuju
više strana. Jasno je da je sigurnost transakcija koje koriste elektronska sredstva od
kapitalnog značaja. Lista razloga zašto je sigurnost elektronskog poslovanja važna je
beskrajna, oni se kreću od održavanja pozitivnog imidža brenda do sprečavanja povreda
bezbednosti koje utiču na poverenje koji klijenti i potrošači imaju u njih. Aplikacije su
neophodan deo poslovanja u svetu gde se sve povezuje sa internetom. IOT, međusobna
hiperpovezanost i zahtevi kupaca, zahtevaju da preduzeća koriste aplikacije koje pomažu u
premošćavanju povezanosti poslovanja sa mobilnim, perifernim, mrežnim i žičanim
uređajima. One omogućavaju prikupljanje ogromne količine podataka, omogućavaju
korisnicima i zaposlenima jednostavnost korišćenja i daju prednost u konkuretnim tržištima.
Zato, poslovni ciljevi treba da budu: smanjenje rizika, zaštita imidža brenda, zaštita i
izgradnja poverenja potrošača, zaštita podataka.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
21
Mehanizmi bezbednosti su tehnički alati i tehnike koje se koriste za implementaciju
sigurnosnih usluga. Mehanizam može da funkcioniše sam, ili sa drugima da bi pružio
određenu uslugu.
2.1.3.1 Autentifikacija
Autentifikacija identifikuje ko zahteva mrežne usluge. Termin autentifikacija se obično
odnosi na autentifikaciju korisnika, ali se može odnositi i na uređaje ili softverske procese.
Na primer, neki protokoli za usmeravanje podržavaju autentifikaciju rute, pri čemu ruter
mora da prođe neke kriterijume, pre nego što drugi ruter prihvati ažuriranje rutiranja.
U fazi autentifikacije se dokazuje da je osoba zaista ta za koju tvrdi da jeste. Cilj
autentifikacije je da se dobije razumno uverenje da identitet koji je deklarisan u fazi
identifikacije pripada stranci u komunikaciji. Autentifikacione metode su lozinke, tajni
kodovi, lični identifikacioni brojevi (PIN-ovi), tokeni (pametna kartica ili USB token),
biometrijska autenfikacija (otisak prsta, mrežnice, prepoznavanje glasa, rukopisa).
Većina sigurnosnih politika navodi da za pristup mreži i njenim uslugama, korisnik mora
uneti ID za prijavu i lozinku koji su proverni od strane bezbednosnog softvera. Kako bi se
maksimizirala bezbednost, mogu se koristiti jednokratne (dinamičke) lozinke. Kod sistema za
jednokratnu lozinku, lozinka se uvek menja. Ovo se postiže korišćenjem sigurnosne karice,
koja se naziva smartcard. Sigurnosna kartica funkcioniše tako što korisnik unosi lični
identifikacioni broj (PIN) u karticu. PIN je početni nivo sigurnosti koji korisniku daje
dozvolu za korišćenje kartice, kartica obezbeđuje jednokratnu lozinku koja se koristi za
pristup korporativnoj mreži na ograničeno vreme. Lozinka je sinhronizovana sa centralnim
serverom za bezbednost kartice koji se nalazi na mreži.[17]
Autentifikacija je najčešće korišćena metoda zahvaljujući niskoj ceni i jednostavnoj
implementaciji u informacionim sistemima. Međutim, autentifikacija nije adekvatna za
sisteme koji zahtevaju visoku bezbednost.[7]
Neporicanje (non-repundation) se može smatrati proširenjem usluge identifikacije i
autentifikacije. Uopšteno, neporicanje se primenjuje kada se podaci prenose elektronskim
putem, na primer, nalog berzanskom posredniku za kupovinu ili prodaju akcija, ili nalog
banci za prenos sredstava sa jednog računa na drugi. Opšti cilj je da se dokaže da je određena
poruka povezana sa određenim pojedincem. Ukoliko pošiljalac poruke poriče da je poruku
poslao, usluga neporicanja sa dokazom o poreklu može dati primaocu neosprorne dokaze da
je poruku poslao taj pojedinac, ili ukoliko primalac poruke poriče da je primio poruku, usluga
neporicanja sa dokazom o isporuci može dostaviti pošiljaocu neosporne dokaze da je poruku
primio određeni pojedinac. Neporicanje je relevantan sigurnosna usluga koja može
obezbediti dokaze da je određena poruka poslata ili primljena od strane aplikacije koja je
povezana sa određenom osobom.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
22
2.1.3.2 Autorizacija
Autorizacija je sigurnosni mehanizam za određivanje nivoa prisutpa ili privilegija
korisnika/klijenta koji se odnose na sistemske resurse, uključujući datoteke, usluge,
računarske programe, podatke i funkcije aplikacije. Ovo je proces odobravanja ili odbijanja
pristupa mrežnom resursu koji omogućava korisniku pristup, na osnovu identiteta
korisnika.[111]
Autorizacija je određivanje da li je osobi ili sistemu dozvoljen pristup resursima, na osnovu
politike kontrole pristupa. Ovakva ovlašćenja treba da spreče napadača da prevari sistem da
mu dozvoli prisup zaštićenim resursima.
Većina veb sigurnosnih sistema je bazirana na procesu u dva koraka. Prvi korak je
autentifikaija, koja osigurava identitet korisnika, a druga faza je autorizacija, koja omogućava
korisniku pristup resursima na osnovu identiteta. Moderni operativni sistemi zavise od
efektivno dizajniranih procesa autorizacije kako bi se olakšala implementacija i upravljanje
aplikacijama. Ključni faktori sadrže tip korisnika, broj i akreditive, koji zahtevaju verifikaciju
i povezane radnje i uloge.[111]
Nakon identifikacije i dokazivanja u fazi autentifikacije, korisnicima se dodeljuje skup
autorizacija, odnosno prava, priveligija ili dozvola. Autorizacija je najčešće definisana
bezbednosnom politikom sistema i postavljena je od strane bezbednosnog i sistemskog
administratora. Cilj autorizacije je da se nametne kontrola pristupa i odgovornost.
Autorizacija je proces kojim se osigurava da korisnik ima dovoljno prava za obavljanje
tražene operacije i sprečavanje onih koji ih nemaju da urade isto.[7]
2.1.3.3 Audit trails
Kontrolni trag (Audit Trail), u kontekstu IT-a, je elektronski zapis koji hronološki evidentira
sve događaje ili procedure kako bi se osigurala dokumentacija i istorija koja se koristi za
proveru autentičnosti sigurnosnih i operativnih akcija. Ovi zapisi pružaju dokaz o
usklađenosti i operativnom integritetu. Zapisi o kontrolnim tragovima sadrže detalje koji
uključuju datum, vreme i korisničke informacije povezane sa transakcijom i na taj način
potvrđuju radnje i rezultate.
Kontrolni trag je pregled akcija, procesa, politika i procedura i predstavlja formalnu proveru
evidencije sistema kako bi se osiguralo da je aktivnost koja se očekivala i desila. Svrha
kontrolnog traga može uključivati identifikovanje nedostataka u funkciji sistema, uočavanje
trendova kako bi se pomoglo u rešavanju problema ili identifikaciji. Takođe može pomoći da
identifikuje zloupotrebu ili neadekvatnu upotrebu autorizacije i tako identifikuje neovlašćene
aktivnosti.
Usluge revizije prave i čuvaju evidenciju neophodnu za podršku odgovornosti, i obično su
blisko povezani sa autorizacijom i autentifikacijom, tako da se svaka autentifikacija snima,
kao i svaki pokušaj pristupa, bilo da je autorizovan ili ne.[4]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
23
Kontrolni tragovi obezbeđuju sistemski detaljan zapis o pristupu svim podacima u aplikaciji.
Oni mogu ponuditi ogromnu količinu proaktivne i reaktivne sigurnosti podataka. Sumnjive
aktivnosti, kada se otkriju, mogu se odmah adresirati, sprečavajući eksploataciju osetljivih
podataka. Značaj kontrolnog traga je u tome što je on neizbrisiv, kada se pravilno primenjuje
ne može se menjati ili brisati. Kontrolni trag dokumentuje ko, šta, kada, gde i zašto je imao
pristup aplikaciji. Zbog svoje nepromenljivosti, tragovi revizije mogu biti vrlo korisni za
forenzičko izveštavanje, pravne istrage i sl. Ovaj mehanizam se koristi kao osnovni alat za
analizu operacija i tehničkih kontrola računarskih sistema. Koristi se za validaciju i
nadgledanje aktivnosti i predstavlja alat za održavanje bezbednosti informacija i integriteta
sistema.[18][19]
Pošto potpuno sigurni sistemi još uvek nisu ostvariv cilj, potrebno je pratiti kršenje
bezbednosti do odgovorne strane. Sistemi moraju da vode evdenciju o svojim aktivnostima
kako bi omogućili kasniju analizu i pratili povrede bezbednosti ili da bi pomogli u sporovima
oko transkacija.
2.1.3.4 Kriptografija
Brzo rastući broj korisnika bežične komunikacije doveo je do povećane potražnje za
sigurnosnim merama za zaštitu podataka koji se prenose preko bežičnih kanala. U poslednjih
nekoliko godina razvijene su mnoge aplikacije zasnovane na internetu kao što su on-line
kupovina, internet bankarstvo i elektronsko plaćanje računa. Takve transakcije, preko
bežičnih javnih mreža, zahtevaju bezbednosne mehanizme kako bi se osigurala privatnost,
odgovornost, integritet i dostupnost.
Kriptografija je jedna od metoda čuvanja i prenosa podataka u određenom obliku tako da je
samo oni kojima je namenjena mogu čitati i obrađivati. Pošiljalac pretvara poruku čistog
teksta (plaintext) u šifrirani tekst (ciphertext) proces se naziva enkripcija, zatim se šifrirani
tekst prenosi do prijemnika, koji pretvara poruku šifriranog teksta u oblik čistog teksta, ovaj
deo procesa se naziva dešifrovanje. [16]
Konverzija podrazmeva niz matematičkih operacija koje menjaju izgled poruke tokom
prenosa, ali ne utiču na sadržaj. Kriptografske tehnike mogu osigurati poverljivost i zaštiti
poruke od neovlašćenog gledanja, jer šifrovana poruka nije razumljiva.
Kriptografske tehnike uključuju opšti algoritam, koji je određen upotrebom ključeva. Postoje
dve klase algoritama:
- Simetrični algoritmi – koji zahtevaju da obe strane koriste isti tajni ključ.
- Asimetrični algoritmi – koji koriste jedan ključ za šifrovanje, a drugi ključ za
dešifrovanje. Jedan od njih je tajni ključ, a drugi može biti javni.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
24
2.1.3.4.1 Simetrični algoritmi
Šema simetričnog šifrovanja se sastoji od:
- Plaintext – je originalna razumljiva poruka ili podaci koji se unose u algoritam kao
ulazi,
- Encryption algoritm – je algoritam šifrovanja koji izvodi različite supstitucije i
transformacije na čistom tekstu,
- Secret key – je tajni ključ koji se unosi u algoritam šifriranja, njegova vrednost je
nazavisna od čistog teksta i algoritma koji će proizvesti drugačiji izlaz u zavisnosti od
ključa koji se koristi u to vreme. Tačne zamene i transformacije koje izvodi algoritam
zavise od ključa,
- Ciphertext – je kodirana poruka proizvedena kao izlaz, koja zavisi od čistog teksta i
tajnog ključa. Za datu poruku dva različita ključa će proizvesti dva različita šifriranja.
Šifrirani tekst je naizgled nasumičan niz podataka koji je nerazumljiv.
- Decryption algoritm – je u suštini algoritam enkripcije koji se pokreće u suprotnom
smeru, on uzima šifrirani tekst i tajni ključ i proizvodi osnovni tekst.[2]
Slika br.1 prikazuje proces simetričnog šifrovanja.
Slika br.1 Šifrovanje pomoću sometričnog algoritma [13]
Najčešće korišćeni simterični algoritmi enkripcije su blok šifre. Blok šifre obrađuju unos
čistog čistog teksta u blokovima fiksne veličine i proizvode blok šifrovanog teksta jednake
veličine za svaki blok čistog teksta. Algoritam obrađuje duže tekstualne iznose kao niz
blokova fiksne veličine. Najvažniji simetirčni algoritmi su DES (Data Encryption Standard),
trostruki DES (Triple Data Encryption Standard) i AES (Advanced Encryption Standard) .
DES (Data Encryption Standard) – je simetrični blokovski šifarski algoritam, odobren od
strane Nacionalnog Instituta za standarde i Tehnologiju (NIST) kao jedan od federalnih
standarda za procesiranje informacija. Algoritam je projektovan za šifrovanje i dešifrovanje
podataka u blokovima dužine 64 bita. DES algoritam uzima blok teksta od 64 bita i ključ od
56 bita, da bi proizveo blok šifriranja od 64 bita. Postoji 16 inicijalnih iteracija, iz originalnog
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
25
56-bitnog ključa generiše se 16 potključeva, od kojih se po jedan koristi za svaki krug.
Proces dešifrovanja je u suštini isti kao i proces šifrovanja, stim što se potključevi uzimaju u
obrnutom redosledu, što znači da se K16 koristi u prvoj iteraciji, K15 u drugoj i tako dalje
dok se K1 ne iskoristi u poslednjoj iteraciji.[1]
Prvi korak u šifrovanju podatka kod DES algoritma podrazumeva inicijalnu permutaciju (Ip).
Nad rezultatom inicijalne permutacije se zatim vrše složene računske operacije f, u kojima
kao parametar učestvuje i ključ kojim se vrši šifrovanje. Nad rezultatom ovih operacija se
izvršava process reverzan inicijalnoj permitaciji (Ip-1
). Rezultat ovih operacija je šifrat, a
reverznim operacijama vrši se njegovo dešifrovanje, odnosno dobija se originalna poruka.[2]
Slika br.2 prikazuje proces šifrovanja pomoću DES algoritma.
Slika br.2 Šifrovanje DES algoritmom [2]
Trostruki DES (Triple DES) je proširen DES algoritam, koji podrazumeva ponavljanje
osnovnog DES algoritma tri puta, korišćenjem dva ili tri jedinstvena ključa veličine 112 ili
168 bita. Prvi put je standardizovan za upotrebu u finansijskim aplikacijama u ANSI
standardu. Prednost trostrukog DES-a je veća pouzdanost, obzirom da ima veću dužinu
ključa koja elminiše mnoge napade koji se mogu koristiti za smanjenje vremena koje je
potrebno za slamanje DES-a.[1]
AES (Advanced Encryption Standard) – je napredni enkripcijski standard koji može podržati
bilo koju kombinaciju podataka i dužinu ključa od 128, 192 i 256 bita. AES algoritam za
šifrovanje definiše broj transformacija koje treba izvršiti nad podacima koji se čuvaju u nizu.
Prvi korak je stavljanje podataka u niz, nakon čega se šifrirane transformacije ponavljaju
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
26
kroz brojne runde šifrovanja. Tokom procesa šifrovanja i dešifrovanja, AES prolazi kroz 10
rundi za 128-bitne ključeve, 12 rundi za 192-bitne ključeve i 14 rundi za 256-bitne ključeve.
Kod AES-a originalna poruka ili tekst se razdvaja u blokove koji predstavljaju nizove
bajtova i organizovani su u matrice reda 4x4. Prva tranformacija je zamena podataka
korišćenjem tabele za zamenu, druga transformacija pomera redove podataka, treća je
mešavina kolona koja podrazumeva izvršavanje posebne matematičke funkcije a, rezultat je
nova matrica koja se sastoji od 16 novih bajtova, i poslednja je XOR operacija koja se izvodi
na svakoj koloni koristeći drugačiji deo ključa za šifrovanje. [22][23]
Slika br.3 prikazuje šifrovanje pomoću AES algoritma.
Slika br.3 AES algoritam [23]
2.1.3.4.2 Asimetrični algoritmi
Kod asimetričnih algoritama tajni ključ se deli na dva dela, javni i privatni ključ. Javni ključ
se koristi za enkripciju podataka i on se distribuira javnosti i svako mu može pristupiti, dok
se privatni ključ mora čuvati u tajnosti. Kod asimetrične kriptografije neko sa javnim ključem
može da šifruje poruku, obezbeđujući poverljivost, a samo osoba koja poseduje privatni ključ
može da je dešifruje.
RSA koristi blok šifrovanja promenljive veličine i ključ promenljive veličine. To je
asimetrični kriptosistem zasnovan na teoriji brojeva, koji je sistem blok-šifre. Koristi dva
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
27
osnovna broja za generisanje javnih i privatnih ključeva, veličine 1024 do 4096 bita. Ova dva
različita ključa se koriste za šifrovanje i dešifrovanje. Pošiljalac šifruje poruku pomoću
javnog ključa, a kada poruka stigne do prijemnika on je dešifruje koristeći privatni ključ.
RSA enkripcija se često koristi u kombinaciji sa drugim šifrovanim šemama ili za digitalne
potpise koji mogu dokazati autentičnosti u integritet poruke. Uopšteno se ne koristi za
šifrovanje celih poruka ili datoteka, jer je manje efikasna i šira od simetričnog ključa.[25][23]
Digitalni potpis je tehnika koja se koristi za potvrđivanje autentičnosti poruke, softvera ili
digitalnog dokumenta. Digitalni potpis je prilog elektronskom dokumentu koji osigurava
izvor i njegov integritet. Baziraju se na tri algoritma: generisanje javnog i privatnog ključa,
algoritam za potpisivanje i algoritam za verifikaciju potpisa. Kada je dokument potpisan
digitalnim potpisom, on je označen kao siguran, zaštićen i ne može se menjati.
Digitalni potpis je elektronska verzija tradicionalnog potpisa, koji se poziva na kriptografske
tehnike kako bi se značajno povećala sigurnost i transparentnost, od kojih su oba ključna za
uspostavljanje poverenja. Kao primena kriptografije sa javnim ključem, digitalni potpisi se
mogu primeniti u mnogim različitim okruženjima, od fizičkih lica koji podnose on-line
poreske prijave, do službenika za nabavku koji izvršava ugovor sklopljen sa kupcem,
elektronske fakture.[27]
Digitalni sertifikat je medij kojim se dokazuje identitet vlasnika za određenu elektronsku
transkaciju. Službeno odobrava odnos između vlasnika sertifikata i određenog javnog ključa.
Treba da sadrži korisničko ime vlasnika sertifikata, serijski broj, datum isteka sertifikata,
kopiju javnog ključa i digitalne sertifikate sertifikacionog tela. [26]
Digitalni potpisi koriste standardni format nazvan Infrastruktura javnih ključeva (PKI) da bi
se obezbedio najviši nivo autentičnosti.
Infrastruktura javnog ključa (PKI) je skup hardvera, softvera, pravila, procesa i procedura
potrebnih za kreiranje, upravljanje, distribuciju, upotrebu, skladištenje i opoziv digitalnih
sertifikata i javnih ključeva. PKI je osnova koja omogućava korišćenje tehnologija, kao što
su digitalni potpisi i enkripcija, pružaju elemente neophodne za sigurno i pouzdano poslovno
okurženje, za e-trgovinu i rastući IOT (Internet of Things).
PKI pomažu u uspostavljanju identiteta ljudi, uređaja i usluga – omogućavajući kontrolisani
pristup sistemima i resursima, zaštitu podataka i odgovornost u transkacijama. Poslovne
aplikacije se sve više oslanjaju na infrastrukturu javnih ključeva kako bi garantovale visoku
sigurnost, jer novi poslovni modeli postaju sve više zavisni od elektronske interakcije koja
zahteva autentifikaciju na mreži i poštovanje strožijih propisa o bezbednosti podataka.[28]
2.1.3.5 Firewalls
U mrežnoj bezbednosti zaštitni zid je sistemski ili hardverski sistem koji funkioniše kao
čuvar pouzdanih i nepouzdanih mreža ili njenih delova. To postiže filtriranjem štetnog ili
potencijalno nepoželjnog sadržaja i komunikacije.[21]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
28
Zaštitni zidovi prve generacije radili su kao filteri paketa, upoređujući osnovne informacije
kao što su izvor i odredište paketa, port koji se koristi ili protokol prema unapred definisanoj
listi pravila. Kod druge generacije, dodat je još jedan parametar za podešavenje filtera, stanje
konekcije. Na osnovu ovih informacija, moglo bi se utvrditi da li je paket pokrenuo vezu, bio
deo postojeće veze ili uopšte nije bio uključen.
Zaštitni zidovi treće generacije izgrađeni su za filtriranje informacija na svim slojevima OSI
modela, uključujući aplikativni sloj, omogućavajući im da prepoznaju i razumeju aplikacije,
kao i neke od najčešće korišćenih protokola, kao što je protokol za prenos datoteka (FTP) i
protokol za prenos hiperteksta (HTTP). Na osnovu ovih informacija, zaštitni zid može da
otkrije napade pokušavajući da ih zaobiđe preko dozvoljenog porta ili zloupotrebe
protokola.[21]
Savremeni zaštitini zidovi sadrže:
- Standardne mogućnosti zaštitnog zida kao što je pregled stanja,
- Integrisanu zaštitu od upada,
- Kontrolu kako bi se videle i blokirale rizične aplikacije,
- Tehnike za rešavanje rastućih sigurnosnih pretnji.
Oni uključuju sve mogućnosti tradicionalnog zaštitnog zida i takođe pružaju naprednu
detekciju opasnosti i sanaciju.[20]
Korišćenjem zaštitnog zida postavlja se bezbednosni mehanizam koji može da pomogne u
zaštiti računara ili mreže od štetnog dolaznog saobraćaja, i na taj način smanjuje mogućnost
neotkrivene eksfiltracije podataka od strane zlonamernog insajdera, smanjuje rizik da će
uređaji iza zaštitnog zida postati deo botneta (velike grupe uređaja povezanih sa internetom
koje su zarobljene od strane napadača za zlonamerne svrhe).
Zaštitni zidovi su posebno korisni za kompanije sa mrežama koje se sastoje od nekoliko
krajnjih tačaka koje su povezane sa internetom. Ako je zaštitni zid pravilno postavljen na
ivici takve mreže, on stvara jedinstvenu tačku ulaska gde se neke od dolaznih pretnji mogu
identifikovati i ublažiti.
2.1.4 Bezbednosna politika
Prvi korak u osmišljavanju bezbednosnih strategija jeste razvoj politike bezbednosti.
Bezbednosna politika je neformalan opis željenog ponašanja sistema. Bezbednosna politika
je formalno stanje pravila i praksi koje određuju ili regulišu kako sistem ili organizacija
obezbeđuje bezbednosne usluge za zaštitu osetljivih i kritičnih sistemskih resursa. Takva
formalna bezbednosna politika se može primeniti na osnovu tehničkih kontrola sistema kao i
upravljanja i operativnih kontrola. U razvoju bezbednosne politike treba uzeti u obzir sledeće
faktore:
- Vrednost imovine koja je zaštićena.
- Ranjivost sistema
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
29
- Potencijalne pretenje i verovatnosća napada.[1]
Bezbednosna politika obezbeđuje način kako da se organizacija zaštiti od pretnji, uključujući
računarske sigurnosne pretnje i kako se nositi sa situacijama kada se dogode. Politika
bezbednosti treba da prikaže ključne stavke u organizaciji koje treba zaštititi, to može
uključivati mrežu kompanije, podatke, opremu. Takođe treba da skicira i potencijalne pretnje
tim stavkama. Zaposleni u kompaniji moraju stalno biti informisani o bezbednosnim
politikama kompanije i same politike se moraju redovno ažurirati.
Kada se identifikuju pretnje, mora se utvrditi verovatnoća da će se one zaista i dogoditi.
Kompanija takođe mora da odredi kako da spreči te pretnje. Uspostavljanje određenih
politika zaposlenih, kao i snažna fizička i mrežna sigurnost mogu biti neke od mera zaštite.
Takođe, mora postojati plan o tome šta da se radi kada se petnja materijalizuje.[112]
2.1.5 Implementacija bezbednosti
Implementacija bezbednosti uključuje četiri komplementarna pravca delovanja:
- Prevencija – je usmerena na pretnju, da utiče na agente pretnji u cilju smanjenja
opasnosti od pretnje, ili verovatnoće da će se pretnja pretvoriti u napad. Idelana
bezbednosna šema je ona u kojoj nijedan napad nije uspešan, iako to nije praktično u
svim slučajevima, postoji širok spektar pretnji u kojima je prevencija razuman cilj. Na
primer, prenos šifrovanih podataka. Ako se koristi bezbednosni algoritam za
šifrovanje, i ako postoje mere sprečavanja neovlašćenog pristupa ključevima za
šifrovanje, onda će se sprečiti napadi na poverljivost prenetih podataka.
- Detekcija – u mnogim slučajevima apsolutna zaštita nije izvodljiva, ali je praktično
detektovati sigurnosne napade. Na primer, postoje sistemi za detekciju upada koji su
dizajnirani da otkriju prisustvo neovlašćenih lica prijavljenih na sistem.
- Odgovor – ako sigurnosni mehanizmi otkriju tekući napad, kao što je napad
uskraćivanja usluge, sistem može biti u stanju da odgovori na takav način da se
zaustavi napad i spreči dalje oštećenje.
- Oporavak – je bezbednosni mehanizam koji bi trebao da obnovi oštećene resurse,
primer oporavka je upotreba rezervnih kopija, tako da ako je integritet podataka
ugrožen, prethodna, ispravna kopija podataka se može učitati ili antivirusni programi
koji poravljaju oštećene datoteke.[1][14]
Ako se ne preduzmu sigurnosne mere za zaštitu podatka i sigurnosti mrežne infrastrukture,
podaci ostaju podložni pretnjama i izloženi su riziku od kršenja politike sigurnosti i
nezakonitog pristupa.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
30
2.2 Distribuirani sistemi
2.2.1 Definicija i karakteristike distribuiranih sistema
Distribuirani sistem je onaj u kojem komponente koje se nalaze na umreženim računarima
komuniciraju i koordinaraju svoje akcije samo putem poruka. Ova definicija dovodi do
sledećih posebno značajnih karakteristika distribuiranih sistema: konkurentnost komponenti,
nepostojanje globalnog sata i nezavisni kvarovi komponenti.[53]
Distribuirani sistem je skup nezavisnih računara koji se korisnicima javlja kao jedan
jedinstven, koherentan sistem.[51]
Ova definicija ima nekoliko važnih pretpostavki a, to su da se distibuirani sistem sastoji od
komponenti koje su autonomne, korisnici imaju utisak da se bave jednim sistemom, to znači
da autonomne komponente međusobno sarađuju i nema pretpostavki kako su komponente
međusobno povezane. Kako uspostaviti ovu saradnju leži u srcu razvoja distribuiranih
sistema.
Jedna važna karakteristika distribuiranih sistema jeste da su razlike između različitih
računara i načina na koji oni komuniciraju uglavnom skriveni od korisnika, isto važi i za
unutrašnju organizaciju distribuiranih sistema. To je veoma bitno jer, korisnici i aplikacije
mogu da komuniciraju sa distribuiranim sistemom na konzistentan i ujednačen način, bez
obzira gde i kada se dešava interakcija. Takođe, distribuirani sistemi se mogu lako proširiti
što je direktna posledica postojanja nezavisnih računara, ali u isto vreme, skrivajući kako ovi
računari zaista učestvuju u celini. Distribuirani sistem će biti stalno dostupan, iako neki
delovi mogu biti privremeno van rada, što korisnici i aplikacije ne bi trebali primetiti i osetiti
u svom radu.[51]
Prema tome karakteristike distribuiranih sistema su:
- Distribuirani sistem je skup autonomnih računarskih elemenata – sastoji se od
komponenti koje su autonomne i sarađuju tako da je to skriveno od korisnika.
- Višeslojna arhitektura – distribuirani sistem je organizovan kroz slojeve, čime se
odvaja niži fizički nivo operativnih sistema i osnovnih komunikacionih funkcija od
višeg nivoa aplikacija i korisnika. Između ova dva sloja je srednji sloj middleware.
- Transparentnost – implementacija sistema je skrivena od korisnika, ne daje detalje o
tipovima računara kao komponenti niti o načinu kako su povezani i kako sarađuju.
- Skalabilnost – distribuirani sistemi se mogu lako proširiti novim komponentama.
- Pouzdanost – očekuje se da distribuirani sistem uvek bude raspoloživ i funkcionalan.
- Otvorenost – sistem nudi servise u skladu sa standardnim pravilima koje opisuju
sintaksu i semantiku tih servisa. Pravila se odnose na format, sadržaj i značenje
poruka koje se šalju i primaju.
- Fleksibilnost – sistem se lako konfiguriše od različitih komponenti. Da bi se postigla
fleksibilnost sistem treba da predstavlja kolekciju malih, lako zamenljivih i
adaptibilnih komponenti.
- Nepostojanje globalnog vremenskog usklađivanja događaja ili deljenje memorije.[52]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
31
Tabela br.2 prikazuje spektar ključnih komercijalnih ili socijalnih aplikacija, naglašavajući
neke od povezanih postojećih ili novih primena tehnologije distribuiranih sistema. Može se
videti da distribuirani sistemi obuhvataju mnoge od najznačajnijih tehnoloških dostignuća
poslednjih godina. Takođe pruža uvid u širok spektar aplikacija koje se danas koriste, od
relativno lokalizovanih sistema do globalnih sistema koji obuhvataju milione čvorova, od
sistema izgrađenih od veoma malih i relativno primitivnih senzora do onih koji uključuju
moćne računarske elemente, od ugrađenih sistema do onih koji puržaju sofisticarano
korisničko iskustvo. Dodatno ilustruje raznolikost i složenost primene distribuiranih sistema
danas.
Tabela br.2 Domeni aplikacija i povezane mrežne aplikacije [53] Finansije i trgovina E-commerce – kompanije Amazon i eBay; osnovne tehnologije plaćanja –
PayPal; povezano pojavljivanje on-line bankarstva i trgovine; složeni
sistemi za širenje informacija za finansijska tržišta.
Informaciono društvo Rast World Wide Web-a kao spremišta informacija i znanja; razvoj veb
pretraživača kao što su Google i Yahoo za pretragu ovog ogromnog
spremišta; pojava digitalnih biblioteka i digitalizacija velikih izvora kao što
su knjige (npr. Google Books); sve veći značaj sadržaja koji generišu
korisnici putem sajtova kao što su YouTube, Wikipedia, Flickr;
pojavljivanje društvenih mreža kroz usluge kao što su Facebook i MySpace.
Kreativna industrija i zabava Pojava on-line igara kao novog i interaktivnog oblika zabave; dostupnost
muzike i filma u kući putem umreženih medijskih centara i šire na Internetu
putem sadržaja koji se može preuzeti ili prenositi; uloga korisničkog
sadržaja kao novog oblika kreativnosti; stvaranje novih oblika umetnosti i
zabave uz pomoć novih tehnologija.
Zdravstvena zaštita Rast zdravstvene informatike kao discipline sa naglaskom na elektronske
evidencije pacijenta i pitanja vezana za privatnost;
uloga telemedicine u pružanju podrške daljinskoj dijagnostici i naprednim
uslugama kao što je daljinska operacija.
Obrazovanje Pojava elektronskog učenja kroz veb bazirane alate kao što su virtuelna
okruženja za učenje; povezana podrška za učenje na daljinu; podrška za
kolaborativno učenje ili učenje u zajednici.
Transport i logistika Korišćenje tehnologija lociranja kao što su GPS u sistemima za
pronalaženje rute i opštim sistemima za upravljanje saobraćajem; razvoj
veb mapiranih servisa kao što su MapQuest, Google Maps i Google Earth.
Nauka Pojava Grid-a kao osnovne tehnologije za eScience, uključujući korišćenje
složenih mreža kompjutera za podršku skladištenja, analize i obrade
naučnih podataka; povezano korišćenje Grid-a kao tehnologije koja
omogućava saradnju širom sveta između grupa naučnika.
Upravljanje zaštitom životne
sredine
Upotreba umrežene senzorske tehnologije za praćenje i upravljanje
prirodnim okruženjem, na primer za rano upozoravanje na prirodne
katastrofe kao što su zemljotresi, poplave i koordinacija raegovanja u
vanrednim situacijama; upoređivanje i analiza globalnih ekoloških
parametara kako bi se bolje razumeli složeni prirodni fenomeni kao što su
klimatske promene.
Google, tržišni lider u tehnologiji veb pretraživanja, uložio je značajne napore u dizajn
sofisticirane infrastrukture distribuiranog sistema za podršku pretraživanja, s obzirom da je
globalni broj pretraga porastao na preko 10 milijardi po kalendarskom mesecu. Zadatak veb
pretraživača je da indeksira čitav sadržaj World Wide Web-a, obuhvatajući širok spektar
stilova informacija, uključujući veb stranice, multimedijalne izvore i knjige. Ovo je veoma
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
32
složen zadatak, jer trenutne procene govore da se veb sastoji od preko 63 milijarde stranica i
jednog triliona jedinstvenih veb adresa. Većina pretraživača analizira ceo veb sadržaj, a zatim
vrši sofisticiranu obradu ove ogromne baze podataka.
Jedna od najvećih i najsloženijih instalacija distribuiranih sistema u istoriji računarstva je
Google Earth. Najvažniji elementi ove infrastrukture su: osnovna fizička infrastruktura koja
se sastoji od veoma velikog broja umreženih računara koji se nalaze u data centrima širom
sveta, distribuirani sistem datoteka dizajniran za podršku veoma velikih datoteka, pridruženi
strukturirani distribuirani sistem za skladištenje koji nudi brz pristup veoma velikim
skupovima podataka, programski model koji podržava upravljanje veoma velikim paralelnim
i distribuiranim operacijama u fizičkoj infrastrukturi.[53]
Finansijska industrija je dugo bila na samom vrhu tehnologije distribuiranih sistema sa
svojom potrebom, posebno za pristup u realanom vremenu širokom spektru izvora
informacija. Industrija koristi automatizovane aplikacije za praćenje i trgovanje. Naglasak u
takvim sistemima je na komunikaciji i obradi predmeta od interesa, poznatih kao događaji u
distribuiranim sistemima, sa potrebom da se događaji pouzdano i pravovremeno dostave
klijentima kojima su te informacije potrebne. Karakteristično za ovakve sisteme je da su
izvori obično u različitim formatima i iz različitih tehnologija, čime se ilustruje problem
heterogenosti koji se sreće u većini distribuiranih sistema. Trgovinski sistem mora da se bavi
različitim tokovima događaja i često zahtevaju obradu u realanom vremenu da bi se otkrili
obrasci koji ukazuju na mogućnosti trgovanja. Ovo je nekada bio manuelni process, ali
konkurentski pritisci doveli su do povećanja automatizacije u smislu onoga što je poznato
kao kompleksna obrada događaja, koja nudi način sastavljanja događaja u logičke,
vremenske ili prostorne obrasce. [53]
2.2.2 Kategorizacija distribuiranih sistema
Distribuirani sistemi se mogu podeliti na:
- Distibuirane računarske sisteme,
- Distribuirane informacione sisteme,
- Distribuirane integrisane sisteme.
2.2.2.1 Distribuirani računarski sistemi
Prema [54] Distribuirani računarski sistemi se bave pristupom i razmenom informacija preko
više platformi za obradu koje se povezuju računarskim mrežama. U svom naopštijem smislu
odnosi se na višestruke računarske sisteme koji rade na jednom problemu. U distribuiranom
računarstvu jedan problem je podeljen na više delova, a svaki deo je rešen različitim
računarima. Sve dok su računari umreženi, oni mogu međusobno komunicirati kako bi rešili
problem, jer se ponašaju kao jedan entitet. Krajnji cilj distribuiranog računarstva je
maksimiziranje performansi povezivanjem korisnika i IT resursa na ekonomičan,
transparentan i pouzdan način. On takođe obezbeđuje toleranciju na greške i omogućava
pristupačnost resursa u slučaju da jedna od komponenti otkaže.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
33
Prema [55] Distribuirani računarski sistem se sastoji od više softverskih komponenti koje se
nalaze na više računara, oni mogu biti blizu i povezani lokalnom mrežom ili mogu biti
geografski udaljeni i povezani širokom mrežom.
Distribuirani računarski sitemi nude mnoge prednosti u odnosu na centralizovane sisteme,
uključujući sledeće:
- Prilagodljivost – sistem se lako može proširiti dodavanjem više računara po potrebi.
- Suvišnost – nekoliko računara može da pruži iste uluge, tako da ako jedan nije
dostpuan posao se ne zaustavlja.
Distribuirani računarski sistemi mogu da rade na hardveru koji obezbeđuju različiti
proizvođači i mogu da koriste različite softverske komponente, mogu se koristiti na različitm
operativnim sistemima i mogu koristiti različite komunikacione protokole.
2.2.2.2 Distribuirani informacioni sistemi
Pod pojmom distribuirani informacioni sistem podrazumeva se informacioni sistem koji
podržava distribuiranu obradu podataka nad distribuiranom bazom podataka. [52]
Namera takvih sistema je da obezbede logički integrisani informacioni sistem, istovremeno
obezbeđujući fizičku distribuciju podataka preko dva ili više računarska objekta. Prema
tome, ovlašćeni korisnik može pristupiti podacima sa bilo kog računara u mreži, na isti način
kao i iz centralizovanog sistema. Distribuirani sistem povezuje više homogenih i heterogenih
čvorova razmene podataka, deljenje resursa i izvršavanja dobro definisanih i međusobno
povezanih softverskih komponenti.
Distribucija informacija naglašava određena tehnička i menadžerska razmatranja. Tehnička
razmatranja uključuju procenu sledećeg: komunikacione sisteme za prenos podataka i
direktorijuma za identifikaciju i lociranje podataka i sistema za upravljanje podacima kako bi
se obezbedila potrebna sinhronizacija podataka, integritet, konzistentnost, privatnost,
bezbednost i plasiranje podataka. Upravljačka razmatranja uključuju: formulisanje i analizu
efekata strategija održavanja, skrivenih troškova i rizika povezanih sa projektovanjem,
implementacijom, optimizacijom, pravnim aspektima, revizijom, sistemskom
administracijom, standardima i odgovornošću.[56]
Primarne razlike između distribuiranih i centralizovanih sistema su u distribuciji kontrole
unutar mreže i vezama između softverskih komponenti. Distribucija kontrole podrazumeva
alokaciju, pronalaženje i pristup mrežnim resursima i sinhronizaciju takvih usluga kao što su
ažuriranje i održavanje. Komunikacija između komponenti zahteva sofisticiranije protokole
kako bi se osigurao prenos podataka. Ako se ispituje proces komunikacije sa potprogramom
na udaljenoj lokaciji, povećanje proteklog vremena je očigledno. Ove razlike dovode do
novih pristupa kako bi se osiguralo adekvatno vreme odziva, dostupnost, integritet podataka,
podrška, oporavak, efikasno korišćenje resursa i sigurnost. Ovi pristupi takođe mogu
zahtevati nove procedure za obradu poslovnih transakcija, varijacije redundantnih podataka
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
34
distribuiranih kroz geografski distribuirani informacioni sistem i šeme za periodičnu
sinhronizaciju podataka. [56]
U distribuiranim informacionim sistemima, postoji nekoliko nivoa na kojima se može
ostvariti integracija. U mnogim slučajevima, umrežena aplikacija se jednostavno sastoji od
servera koji izvršava aplikaciju i čini je dostupnom za udaljene programe, nazvane
klijentima. Takvi klijenti šalju zahtev serveru za izvršenje specifične operacije, nakon čega se
šalje odgovor. Integracija na najnižem nivou omogućava klijentima da zaokruže broj zahteva,
možda za različite servere, u jedan zahtev i da se on izvrši kao distribuirana transakcija.
Ključna ideja je da se svi ili nijedna od zahteva ne izvrši. Kako su aplikacije postajale
sofisticiranije i postpeno se razdvajale u nezavisne komponente, postajalo je jasno da
integracija treba da zauzme mesto tako da aplikacije komuniciraju direktno između sebe. [57]
2.2.2.3 Distribuirani integrisani sistemi
Integrisani sistem je računarski sistem posebne namene koji je povezan sa širim mehaničkim
ili električnim sistemom, najčešće zasnovan na procesiranju podataka u realanom vremenu.
Integrisan sistem je integrisan zato što predstavlja deo komplentnog uređaja koji obično
sadrži hardverske i mehaničke komponente. Osnovne karakteristike integrisanih računara,
poredeći sa računarima opšte namene, su manji nivo potrošnje energije, manje dimenzije,
manji troškovi, grublji skup operacija zbog ograničenja procesnih resursa. Radi unapređenja
rada integrisanih sistema, uključuju se inteligentni mehanizmi uz postojeći hardver, senzore i
umrežavanje integrisanih elemenata. Integrisani sistemi se nalaze u malim portabilnim
uređajima, ali i u velikim stacionarnim instalacijama kao što su saobraćajna signalizacija,
kontroleri u fabrikama, složena hibridna vozila i slično.[52]
2.2.3 Klijent-server arhitektura
Klijent-server arhitektura je model distribuirane strukture aplikacije, gde se zadaci i
aktivnosti dele između servera koji obezbeđuje resurse ili servise i klijenata koji zhtevaju
resurse ili servise.[52]
Slika br.4 ilustruje jednostavnu strukturu u kojoj procesi pruzimaju uloge klijenata ili server.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
35
Slika br.4 Klijent-server arhitektura [53]
Konkretno, klijentski procesi stupaju u interakciju sa pojedinačnim procesima servera u
potencijalno odvojene host računare kako bi pristpili deljenim resursima kojima upravljaju.
Serveri mogu biti klijenti drugih servera, na primer veb server je često klijent lokalnog
servera datoteka koji upravlja datotekama u kojima se veb stranice čuvaju. Veb serveri i
internet servisi su klijenti DNS servisa, koji prevodi internet imena domena na mrežne
adrese.
Pretraživači omogućavaju korisnicima da pretražuju sažetke informacija dostupne na veb
stranicama na veb lokacijama širom interneta. Ovi sažeci su napravljeni od strane programa
koji se nazivaju veb pretraživači, koji se izvode u pozadini na veb lokaciji pretraživača
koristeći HTTP zahteve za pristup veb serverima širom interneta. Tako je pretraživač i server
i klijent, on odgovara na upite klijenata pretraživača i pokreće veb pretraživače koji deluju
kao klijenti drugih veb servera.[53]
2.2.4 Višeslojna objektno orijentisana arhitektura
Višeslojna arhitektura je klijent-server arhitekura gde su prezentacija, procesiranje aplikacije
i funkcije upravljanja podacima fizički odvojene. Najčešće korišćena višeslojna arhitektura je
troslojna gde razlikujemo prezentacioni sloj, sloj za obradu aplikacija i sloj za upravljanje
podacima. [52]
Prezentacioni sloj – sloj za prezentaciju rezultata korisnika računarskog sistema i
prikupljanje korisničkih inputa.
Sloj za obradu aplikacije – pružanje funkcionalnosti aplikacije, na primer u bankarskom
sistemu, bankarske funkcije kao što su otvaranje, zatvaranje računa i slično.
Sloj za upravljanje podacima – upravljanje sistemskim bazama podatka.
U višeslojnoj arhitekturi, kompleksan sistem je podeljen na slojeve, pri čemu određeni sloj
koristi usluge koje nudi sloj ispod. Zbog toga dati sloj nudi softversku apstrakciju, sa višim
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
36
slojevima koji nisu svesni detalja implementacije. Distribuirana usluga može biti obezbeđena
od strane jednog ili više serverskih procesa, interakcija međusobno i sa klijentovim
procesima kako bi se održao konzistentan sistemski prikaz resursa servisa.[53]
Višeslojna arhitektura u distribuiranim sistemima je organizovan kroz slojeve, čime se odvaja
niži fizički nivo operativnih sistema i osnovnih komunikacionih funkcija od višeg nivoa
aplikacija i korisnika. Između ova dva sloja je srednji sloj middleware.
Slika br.5 ilustruje softverske i hardverske slojeve u distribuiranim sistemima.
Slika br. 5 Višeslojna arhitektura [53]
Platforma za distribuirane sisteme i aplikacije sastoji se od hardverskih i softverskih slojeva
najnižeg nivoa, koji pružaju usluge slojevima iznad njih i implementiraju se nezavisno na
svakom računaru, dovodeći programski interfejs sistema do nivoa koji olakšava
komunikaciju i koordinaciju između procesa. Svrha middleware je da prikrije heterogenost.
Predstavljen je procesima ili objektima u skupu računara koji međusobno komuniciraju radi
implementacije komunikacije i podrške za deljenje resursa za distribuirane aplikacije. Bavi se
pružanjem korisnih gradivnih blokova za konstrukciju softverskih komponenti koje mogu
raditi jedna sa drugom u distribuiranom sistemu. Konkretno, on podiže nivo komunikacionih
aktivnosti aplikativnih programa kroz podršku apstrakcije kao što je udaljeno pozivanje
metoda, komunikacija između grupe procesa, obaveštavanje o događajima, particionisanje,
postavljanje i pronalaženje zajedničkih objekata podataka, replikaciju zajedničkih objekata i
prenos multimedijalnih podataka u realanom vremenu.[53]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
37
2.2.5 Servisno orijentisana arhitektura
Servisno orijentisana arhitektura je stil softverskog dizajna gde su servisi obezbeđeni
softverskim komponentama kojima se pristupa putem mrežnih komunikacionih protokola.
SOA (Service-Oriented Architecture) predstavlja novi metod za kreiranje distriburanih
aplikacija u kojima se osnovne usluge mogu objaviti, otkriti i povezati kako bi izgradile
složenije softverske aplikacije. Aplikacije sarađuju sa uslugama preko krajnje tačke
interfejsa, a ne na nivou implentacije.
SOA predstavlja implementaciju usluga, koje su jedinice logike koje rade u mreži. Usluge
upravljaju poslovnim procesima, obrađuju tehničke zadatke kao što je pristup bazi podataka,
ili daju poslovne podatke i tehničke detalje za izradu grafičkog interfejsa i nezavisne su od
drugih softvera.[58]
U okviru servisno orijentsane arhitekture, aplikacija se kreira integracijom distribuiranih,
nezavisno-održavanih i postavljenih softverskih komponenti. Servis predstavlja jednostavan
interfejs koji je pozvan od strane korisnika usluge servisa i koji sakriva implementaciju
samog servisa. U okviru SOA, servisi koriste protokole kojima se opisuje kako se prosleđuju
i tumače poruke, koristeći metapodatke – opisuju funkcionalne karakteristike i karakteristike
kvaliteta usluge.[52]
SOA ima nekoliko važnih implikacija za poslovanje. Kada je svaka komponenta relativno
samostalna jedinica, može se brže i sa manje troškova odgovoriti na poslovne ili tehnološke
promene. Sposobnost kompanije da brzo i efikasno reaguje na promene poznata je kao
agilnost, tako da dobro izrađena servisno-orijentisana arhitektura povećava agilnost. Dobro
dizajnirane usluge će verovatno biti ponovo upotrebljene. Kompanije mogu imati koristi od
ponovne upotrebe na najmanje dva načina: izbegavanjem troškova razvoja novog softvera i
povećavanjem pouzdanosti softvera tokom vremena. Postojeća usluga se može
implementirati u novu aplikaciju umesto implementacije softvera koji je napisan od početka.
SOA se može koristiti kako bi poslovni procesi i podaci bili dostupniji.[53]
2.3 Veb servisi
Prema W3C, “veb servis je softverski sistem identifikovan pomoću URI (Uniform Resourse
Identifier), čiji su javni interfejsi i vezivanja definisani i opisani pomoću XML-a. Njegovu
definiciju mogu otkriti drugi softverski sistemi. Ovi sistemi tada mogu da komuniciraju sa
veb uslugom na način propisan njegovom definicijom, koristeći poruke zasnovane na XML-u
koje prenose internet protokoli”.[61]
Veb servis obuhvata sve detalje potrebne za interakciju sa uslugom, uključujući formate
poruka, transportne protokole i lokaciju. Interfejs skriva detalje implementacije usluge,
dozvoljavajući joj da se koristi nezavisno od hardverske ili softverske platforme na kojoj je
implementiran i nezavisno od programskog jezika u kojem je napisan. Ovo dozvoljava
aplikacijama zasnovanim na veb uslugama da budu labavo povezane, komponentno
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
38
orijentisane, među-tehnološke implementacije. Veb usluge se mogu koristiti same ili sa
drugim veb uslugama za izvršavanje složene agregacije ili transakcije.[64]
Veb servis je interfejs pozicioniran između aplikacionog koda i korisnika tog koda. On služi
kao sloj apstrakcije, razdvajajući detalje specifične za programski jezik i jezik programiranja
kako se zapravo poziva kod aplikacije. Ovaj standardizovani sloj znači da svaki jezik koji
podržava veb servis može pristupiti funkcionalnisti aplikacije.[63]
Karakteristike veb servisa:
- Veb usluge komunicarju koristeći XML, platformski nezavisan i neutralan jezik.
- Mogu se razvijati na bilo kom programskom jeziku i mogu se koristiti na bilo kojoj
platformi.
- Komunikacija se vrši korišćenjem SOAP protokola preko HTTP/HTTPS i poruke se
mogu slati preko mreže u čistom i širovanom tekstu.
- Veb servisi se registruju u registrima veb servisa, koristeći UDDI standard,
platformski nezavisan okvir kao usluga kataloga gde se usluge mogu pretraživati i
pronaći.
- Veb uslugama se može pristupiti iz bilo kog tipa aplikacije ili druge usluge preko
propisanog interfejsa.[62]
Jedna od najznačajnih karakteristika veb servisa jeste interoperabilnost. Ključ međusobne
integracije preduzeća leži u interoperabilnosti, prikupljanju i zajedničkom korišćenju podatka
od strane različitih aplikacija. Naizgled neprimetno i glatko integrisanje IT aplikacija
omogućava efikasno međusobno povezivanje poslovnih preduzeća. Najveću prepreku za
interoperabilnost predstavljaju heterogene aplikacije. S obzirom na to da su ove aplikacije
projektovane od strane različitih organizacija, a često i u različitim vremenima, veoma je
teško u njima pronaći bilo kakve sličnosti sa aspekta dizajna i karakteristika koje pružaju.
Stoga se one nazivaju heterogenim aplikacijama, pri čemu se ta heterogenost može ogledati u
tome što su pisane različitim programskim jezicima, namenjene su korišćenju na različitim
operativnim sistemima ili u tome što koriste raznorodne komunikacione mreže i metode
prenosa podataka.[67]
Danas je postalo uobičajeno da preduzeća svoje poslovne sisteme povezuju sa
odgovarujućim IT aplikacijama u drugim preduzećima i da određeni deo svog poslovanja
otvaraju zajednici i čine ga dostupnim široj javnosti. Neki od primera su:
“Cisco Systems međusobno povezuje svoje dobavljače u jedan sistem”, ova moćna
kompanija, koja svoje poslovanje fokusira ka internetu, ostvarila je zavidan poslovni uspeh
integrisanjem svojih poslovnih sistema sa sistemima svojih ključnih proizvodnih
partnera.[67]
Osiguravajuće kuće ubrzavaju proces kvotacije novi polisa osiguranja, tako što za određeni
deo poslovanja koristi usluge drugih firmi, uključujući kreditni biro, kojem je kompanija
ugovorom poverila izvršavanje ovih usluga. Radi uvođenja novog procesa kvotacije,
kompanija je projektovala jedan, za veb osposobljen sistem, koji je interoperabilan sa IT
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
39
aplikacijom u kreditnom birou. Aplikacija savršeno funkcioniše, bez obzira što se prostire
preko granica više odvojenih kompanija.[67]
2.3.1 Veb servis arhitektura
Arhitektura veb usluga se zasniva na interakciji između tri uloge: davalac usluga, registar
usluga i zahtevalac. Interakcija uključuje objavljivanje, pronalaženje i povezivanje. Davalac
usluga ima softverski modul pristupačan mreži (implementacija veb servisa), definiše opis
usluge za veb servis i objavljuje ga u registru servisa. Zahtevalac koristi operaciju
pronalaženja kako bi pronašao opis usluge lokalno ili iz registra usluge i koristi opis usluge
da se veže sa davaocem usluga i pozove ili stupi u interakciju sa implementacijom veb
servisa. [64][63]
Iz poslovne perspektive, davalac usluga je vlasnik usluge. Iz perspektive arhitekture, ovo je
platforma koja hostuje pristup servisu. Zahtevalac usluga iz poslovne perspektive je posao
koji zahteva zadovoljavanje određenih funkcija, iz perspektive arhitekture je aplikacija koja
traži i poziva ili inicira interakciju sa uslugom. Registar usluga je registar opisa usluga koji se
može pretraživati i gde davaoci usluga objavljuju opise usluga. [64]
Da bi veb servis bio dostupan, opis usluge mora biti objavljen tako da ga zahtevaoci mogu
pronaći. U operaciji pronalaženja, servisni zahtevaoc dohvata opis usluge, ili upita servisni
registar za potrebnu vrstu usluge. Na kraju, usluga se mora pozvati. U operaciji povezivanja
servisni provajder poziva ili pokreće interakciju sa uslugom tokom izvršavanja koristeći
povezivanje detalja u opisu usluge da bi pronašao, kontaktirao i pozvao servis.[64]
Slika br.6 ilustruje arhitekturu veb servisa.
Slika br.6 Arhitektura veb servisa [64]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
40
Najbolji primer za razumevanje arhitektre veb servisa jeste Yahoo. Yahoo je jedan od
najpopularnijih internet portala. Na početnoj stranici se može uočiti širok asortiman
ponuđenih servisa, među kojima su vremenska prognoza, finansijski servisi, turističke
informacije, kompjuterske igre i slično. Prikladnom kombinacijom korisnih servisa Yahoo je
uspeo da postane jedan od najčešće posećivanih sajtova na internetu. Mada se svi ovi servisi
pripisuju Yahoo-u, većina njih je samo dostupna preko Yahoo-a, a ne kreirana od strane ove
kompanije. Naime, nezavisni projektanti kreiraju aplikativne module (koji su analogni
vremenskim, finansijskim i turističkim servisima), koje zatim čine dostupnim drugim
projektantima preko interneta. Zahtevaoci servisa inkorporiraju izabrane modularne
aplikacije i koriste ih kao sastavne komponente svojih aplikacija. Međutim, kao i kod
Yahoo-a, softverski kod ovih modula nije fizički umetnut u datu aplikaciju. Umesto toga, oni
su međusobno povezani, pri čemu se softver fizički nalazi na veb sajtu provajdera, odnosno
ponuđača servisa.[67]
2.3.2 Tehnologije veb servisa
XML, SOAP, WSDL I UDDI su osnovni standardi i tehnologije na kojima se zasnivaju veb
servisi koji se koriste u razvoju veb servisa i u aplikacijama koje koriste veb usluge. Uloga
sepcifikacije veb servisa je da se uspostavi interakcija između zahtevaoca veb servisa i
provajdera veb servisa.
Slika br.7 prikazuje osnovne standarde veb servisa i veze između njih.
Slika br.7 Osnovni standardi veb servisa i veze između njih [62]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
41
2.3.2.1 XML
XML (Extensible Markup Language) je standard za rezmenu podataka na vebu. XML je
jezik za označavanje, što podrazumeva korišćenje oznaka koje „označavaju“ sadržaj
dokumenta i na taj način opisuju sadržaj dokumenta. XML oznaka identifikuje informacije u
dokumentu i identifikuje strukturu informacija. Listing br.1 identifikuje informacije o
knjigama naslov, autora i cenu.[59]
Listing br.1
<book>
<title>My life and times</title>
<author>Felix Harrison</author>
<price>39,95</price>
</book>
XML je skup pravila za kreiranje tagova u cilju opisivanja podataka, čime se ujedno
obezbeđuje fleksibilnija i prilagodljivija upotreba veb podataka. Naziva se proiširiv zbog
toga što programeri mogu dizajnirati svoje sopstvene, prilagođene markup jezike za
opisivanje podatka. Strogo tehnički govoreći, XML je metajezik koji služi za opisivanje
drugih jezika. On je po svojoj prirodi neograničen, što znači da se bilo koji od podataka u
nekom veb sistemu može bez problema opisati pomoću XML-a.[67]
Za razliku od HTML koji označava podatke ukazujući na koji način bi oni trebalo da budu
prezentovani, pomoću XML-a podaci se označavaju tako da ukazuju šta oni predstavljaju,
opisivanjem njihovog sadržaja.
Prednosti XML-a se ogledaju u tome što je XML zasnovan na veb-u i ima mogućnost
proširenja, omogućava nezavisnim kompjuterskim sistemima da stupaju u međusobnu
interakciju, da razmenjuju, interpretiraju i obrađuju podatke čak i ukoliko se izvršavaju pod
potpuno različitim operativnim sistemima, omogućava integrisanje aplikacija kreiranih od
strane različitih projektanata, takozvano end-to-end integrisanje, XML je javni format, što
znači da nije u vlasništvu bilo koje kompanije i ima široku podršku proizvođača softvera.
XML u podjednakoj meri podržavaju i Microsoft i Netscape veb čitači. Proizvođači softvera
sve više inkorporiraju karakteristike XML-a u svoje baze podataka i najrazličitije aplikativne
programe.[67]
Aplikacije mogu međusobno slati XML dokumente i obrađivati informacije u tim
dokumentima, oslanjajući se na uobičajena značenja povezana sa XML oznakama. Aplikacije
koje mogu interpretirati ove oznake mogu obraditi informacije u skladu sa značenjem
informacije i njene organizacije. [59]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
42
2.3.2.2 SOAP
Iako usaglašavanje značenja i strukture XML oznaka čini korišćenje XML-a efikasnim
načinom razmene podataka, to nije dovoljno za razmenu podataka preko veb-a. Potreban je
neki dogovoreni protokol za formatiranje XML dokumenta tako da primalac razume šta je
glavni deo poruke i koji deo sadrži dodatna uputstva ili dopunski sadržaj. Za to se koristi
SOAP (Simple Object Access Protokol). SOAP je protokol zasnovan na XML-u za razmenu
informacija u distribuiranom okruženju. Obezbeđuje zajednički format poruke za razmenu
podataka između klijenata i usluga. Veb servisi kao SOA komponenta koriste SOAP protokol
kao mehanizam za prenos poruka između usluga opisanih WSDL interfejsima. Ovaj koncept
je prikazan na slici br.8
Slika br.8 Mreža veb servisa [62]
SOAP je internetski zasnovan protokol koji je nezavisan od platformi, koji omogućava
komunikaciju između aplikacija. Prethodni komunikacioni protokoli aplikacija, kao što su
poziv za daljinsku proceduru RPC, pokrenuli su neka pitanja vezana za sigurnost i
kompatibilnost. Stoga, zaštitni zidovi i proxy server obično blokiraju svoj saobraćaj. SOAP
poruke, s druge strane, šalju se preko HTTP-a, što je protokol za prenos koji podržavaju svi
internet pretraživači i server. Jednostavnost i proširivost su druge karakteristike ovog
protokola zasnovanog na XML-u. [66]
Uloga SOAP-a je da kodira podatke u XML format i omogući razmenu XML poruka između
aplikacija. Koristi se model zahtev-odgovor, gde je zahtev dat od strane “SOAP klijenta”, a
odgovor daje davalac usluga, nazvan “SOAP server”. Protokol se koristi za slanje i primanje
poruka od veb servisa. Jedna od prednosti je enkapsulirati funcionalnost RPC-a (Remote
Procedure Call) koristeći proširivost i funkcionalnost XML-a.[62]
Osnovna stavka prenosa u SOAP-u je SOAP poruka, koja se sastoji od obavezne omotnice,
opcionog SOAP zaglavlja i obaveznog SOAP tela. Slika br.9 prikazuje strukturu SOAP
poruke.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
43
Slika br.9 SOAP [59]
SOAP omotnica određuje dve stvari: imenski prostor i stil kodiranja. Zaglavlje proširuje
SOAP poruku na modularan način. SOAP poruka putuje od klijenta do servisa, ali može
proći kroz set srednjih čvorova duž putanje poruke. Svaki čvor je aplikacija koja može
primati i prosleđivati SOAP poruke. Srednji čvor može pružiti dodatne usluge kao što su
transformacija podataka u poruci ili obavljanje operacija veznih za sigurnost. SOAP zaglavlje
se koristi za prenošenje informacija koje se odnose na sigurnost i koje se obrađuju
komponentama izvršavanja. Zaglavlje sadrži opšte informacije u vezi bezbednosti –
autentifikaciju i sesiju i informacije koje se odnose na obradu poruke preko posrednih
čvorova. Telo sadrži glavni deo SOAP poruke, informacije koje se prenose između
aplikacija, odnosno deo namenjen krajnjem primaocu SOAP poruke.[59][62]
Listing br.2 pokazuje dve SOAP poruke: poruku zahteva i poruku odgovora.[62]
Listing br.2
Request: <s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing"
xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
<a:Action
s:mustUnderstand="1">http://tempuri.org/ICreditCard/GetCreditCardAmount</a:Action>
<a:MessageID>urn:uuid:c7e1cd17-cec4-43ba-a203-39d11ae37125</a:MessageID>
<a:ReplyTo>
<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
</a:ReplyTo>
</s:Header>
<s:Body>
<GetCreditCardAmount xmlns="http://tempuri.org/">
<creditCardNumber>4313786046892009</creditCardNumber>
</GetCreditCardAmount>
</s:Body>
</s:Envelope>
Response: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:a="http://www.w3.org/2005/08/addressing">
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
44
<s:Header>
<a:Action
s:mustUnderstand="1">http://tempuri.org/ICreditCard/GetCreditCardAmountResponse</a:
Action>
<a:RelatesTo>urn:uuid:e5434dfe-96c5-4398-b6c8-d2e27a50c813</a:RelatesTo>
</s:Header>
<s:Body>
<GetCreditCardAmountResponse xmlns="http://tempuri.org/">
<GetCreditCardAmountResult>550.00</GetCreditCardAmountResult> </GetCreditCardAmountResponse>
</s:Body>
</s:Envelope>
2.3.2.3 WSDL
WSDL je dokument koji se koristi za opisivanje veb usluga u smislu karakteristrika, funkcija
i mehanizama vezivanja u interakciji sa drugim softverskim komponentama.
Kada se veb usluga implementira, ona mora donositi odluke na svim nivoima o tome koji će
se protokoli mreže, transporta i pakovanja podržavati. Opis te usluge predstavlja te odluke na
takav način da korisnik usluga može kontaktirati i koristiti uslugu.[63]
WSDL se sastoji od dve komponente:
- Apstraktna komponenta koja opisuje operacije podržane od strane veb servisa i tipove
poruka koje parametriziraju ove operacije,
- Konkretna komponenta koja opisuje kako povezuje apstraktne operacije sa krajnjom
tačkom i kako mapira poruke na transportnim protokolima koje krajnja tačka
podržava.
Ove komponente koriste sledeće elemente u definisanju mrežnih usluga:
- Tip – definisanje tipova podataka koji koriste neki tipski sistem,
- Poruka – apstraktna, tipizirana definicija podataka,
- Operacija – sažetak opisa akcije koju podržava usluga,
- Port Type – apstraktni skup operacija koje podržava jedna ili više krajnjih tačaka,
- Vezivanje – specifikacija konkretnog protokola i formata podataka za određeni tip
podatka,
- Port – jedna krajnja tačka definisana kao kombinacija vezivanja i mrežne adrese,
- Usluga – zbirka povezanih krajnjih tačaka.[62]
2.3.2.4 UDDI
Specifikacije univerzalnog opisa, otkrivanja i integracije (UDDI) definišu kako se objavljuju
i otkrivaju informacije o uslugama u registru. UDDI registar pruža informacije o usluzi kao
što je ime usluge, kratak opis onoga što radi, adresu na kojoj se može pristupiti usluzi i opis
interfejsa za pristup servisu. UDDI je servis kataloga gde se preduzeća mogu registrovati i
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
45
tražiti veb usluge. Standard je predviđen da bude otvoren za preduzeća, omogućavajući im da
objavljuju i otkrivaju usluge i da otkriju interakciju između njih putem interneta. [59][62]
Specifikacija UDDI definiše:
- SOAP API-je koje aplikacije koriste za upit i objavljivanje informacija u UDDI
registru,
- XML šeme modela podataka registra i formata SOAP poruka,
- WSDL definicije SOAP API-ja.
UDDI se zasniva na zajedničkom skupu standarda, uključujući HTTP, XML, XML šemu i
SOAP. On obezbeđuje infrasturkturu za softversko okruženje zasnovano na veb uslugama za
javno dostupne usuge i usluge koje su interno izložene unutar organizacije.
UDDI obbezbeđuje definisanje skupa usluga koje podržavaju opis i otkrivanje:
- preduzeća, organizacija i drugih provajdera veb usluga,
- veb usluge koje stavljaju na raspolaganje,
- tehnička sredstva koja se mogu koristiti za pristup tim uslugama.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
46
3. STRUČNO ISTRAŽIVANJE – BEZBEDNOST VEB SERVISA
3.1 Bezbednost veb servisa
Model klijent-server obrada, specifičan za prve mrežne aplikacije, transformisan je u model
zasnovan na uslugama. Uloga veb servisa je da dele podatke i pristupaju raznim uslugama,
pružajući korisnicima jedinstven javni interfejs. Oni su organizovani u servisno orijentisanoj
arhitekturi, bazirani su na XML-u i koriste SOAP kao protokol za razmenu podatka između
aplikacija kroz dinamičke i ad hoc veze.
Veb usluge pružaju okvir za razvoj, integraciju i interoperabilnost distibuiranih softverskih
aplikacija. Široka primena tehnologija veb servisa u kritičnim poslovnim aplikacijama
zavisiće od izvodljivosti izgradnje visoko pouzdanih usluga. Veb servisi obećavaju ogromne
koristi u smislu produktivnosti, efikasnosti i tačnosti. Iako nude prednosti, veb servisi
predstavljaju zastrašujuće izazove u pogledu zaštite i bezbednosti. Takođe, oni mogu izložiti
vredne podatke, aplikacije i sisteme različitim pretnjama. Glavne prednosti veb servisa
povezane su sa fleksibilnošću i svestranošću, jer podržavaju različite arhitekture i nezavisne
su od platformi i modela. Veb usluge su izgrađene na višestrukim tehnologijama koje rade
zajedno sa razvojem standarda kako bi se osigurala sigurnost i kako bi se osiguralo da se oni
mogu kombinovati da rade nezavisno.
Najveće pretnje sa kojima se suočavaju veb servisi su:
- Promena poruke – napadač može da ubacuje, briše ili menja informacije u poruci sa
ciljem da zavara primaoca,
- Gubitak poverljivosti – informacije iz poruke otkriva neovlašćeno lice,
- Falisifikovanje poruke – napadač falsifikuje originalne poruke, tako da primalac
veruje da dolaze iz pouzdanih pošiljaoca,
- Man in the middle – pojavljuje se kada se u komunikaciji između pošiljaoca i
primaoca pojavi treća strana. Dva učesnika nisu svesna da li je poruka napadnuta,
dozvoljavajući napadačima da pregledaju i/ili menjaju poruke,
- Ponavljanje poruke – slanje poruka koje su već poslate,
- Odbijanje usluge – napadač uzrokuje da sistem troši resurse neproporcionalno, tako
da se ne mogu ispuniti validni zahtevi.[62]
Sve softverske aplikacije, uključujući i veb servise, moraju zadovoljiti zahteve u pogledu
performansi, troškova, upotrebljivosti i sigurnosti. Bezbednost veb servisa pruža sledeće
bezbednosne usluge: autentifikaciju, autorizaciju, reviziju, poverljivost, integritet,
neporečivost i dostupnost. Nekoliko organizacija, uključujući W3C, OASIS, Liberty Apliance
sastavilo je bazu nekoliko standarda i tehnika za sigurnost veb servisa. Različiti sigurnosni
mehanizmi zasnovani na XML-u izgrađeni su oko mehanizama enkripcije, autentikacije i
autorizacije. Standardi su prikazani od komunikacionog do aplikativnog sloja. Nivoi su
modelirani po referentnom modelu OSI.
- SSL (Secure Socket Layer) i TLS (Transport Layer Security) su sigurnosni protokoli
koji pružaju zaštitu SOAP poruka na komunikacionom nivou.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
47
- XML enkripcija (XML Encription) i XML potpis (XML Signature) su osnovni
standradi koji određuju kako se šifruje i kako se potpisuju XML podaci koristeći
različite podržane algoritme šifrovanja i potpisivanja.
- WS-Security i WS-Secure Conversation definišu kako se koriste XML potpisi i XML
enkripcija i bezbednosni akreditivi SOAP poruka (bezbednost na nivou poruka),
obezbeđivanje autentičnosti, integriteta i poverljivosti poruka. WS-Security standard
podržava tokene za sigurnosne mehanizme, kao što su Kerberos i X.509 sertifikati.
- WS-Reliability i WS-Reliable Messaging, su osnovni standardi koji se odnose na
pouzdanost poruka poslatih preko javne mreže. Oni su usredsređeni na garanciju za
isporuku poruka i definišu protokole koji su neophodni da se osigura neodbacivanje
poruka.
- SAML (Security Assertion Markup Language), je standard zasnovan na XML-u za
razmenu poruka o autorizaciji i autentifikaciji između provajdera servisa i zahtevaoca
usluga ili domena bezbednosti. SAML rešava problem jednostruke prijave
koriščenjem sigurnosnih tokena.
- WS-Policy, definiše zahteve politike za osiguranje veb usluga. WS-Policy Assertion,
specificira generičke tvrdnje o sigurnosti. WS-Policy Attachmen i WS-Security Policy
nude mehanizme za predstavljanje mogućnosti i zahteva SOAP poruka.
- XACML (Extesible Access Markup Language) i XACML profil za veb servise nude
sigurnosne politike i prava pristupa informacijama za veb servise i druge resurse.
- XKMS (XML Key Menagement Standard), određuje standardnu uslugu, interfejse i
protokole za upravljanje kriptografskim ključevima.
- WS-Trust definiše proširenja koja se temelje na WS-Security za zahtevanje i izdavanje
sigurnosnih tokena.
- Security Menagement Standard, definiše kako upravljati akreditivima korišćenjem
digitalnih sertifikata i PKI.
- Identity Menagement, definiše kako upravljati identitetom korisnika, pružajući
kontrolu pristupa resursima.[62]
Mnogi autori i stručnjaci za bezbednost smatraju da je veoma verovatno da će napadi na veb
usluge biti slični napadima na veb aplikacije, ali sofosticiraniji. Problem je u tome što XML
poruke sadrže informacije u tekstualnom obliku koje ih opisuju. Napadači dobijaju više
detaljnijih informacija preko WSDL datoteka i UDDI unosa. Veb usluge zahtevaju
bezbednost koja nudi konzistentnost. Otvorenost veb servisa protivreči sigurnosti, sa druge
strane doprinosi jednostavnoj i lakoj impementaciji i drastičnom smanjenju troškova.[43]
3.1.1 Sigurnosni protokoli transportnog sloja
SSL (Secure Socket Layer) i TLS (Transport Layer Security) je najčešće korišćen protokol za
prenos podataka u transportnom sloju. To su kriptografski bezbednosni protokoli koji se
koriste za obezbeđivanje sigurne mrežne komunikacije. Njihovi glavni ciljevi su da pruže
integritet podataka i privatnost u komunikaciji. SSL protokol je bio prvi protokol dizajniran
za ovu svrhu, a TLS je njegov naslednik.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
48
SSL pruža sledeće:
- Autentifikaciju – komunikacija se uspostavlja između dve pouzdane strane.
- Poverljivost – razmenjeni podaci su šifrovani.
- Integritet – podaci se proveraju za korupciju.
- Sigurna razmena ključeva između klijenta i servera.[71]
SSL se može koristiti u tri režima:
- Nema autentifikacije – ni klijent ni server se ne autentifikuju. Sertifikati se na šalju
niti razmenjuju. U ovom slučaju koristi se samo enkripcija/dešifrovanje.
- Jednosmerna autentifikacija ili autentifikacija servera – samo se server autentificira
klijentu. Server šalje klijentu sertifikat koji potvrđuje da je server autentičan. Ovo je
obično pristup koji se koristi za internet transakcije kao što je on-line bankarstvo.
- Dvosmerna autentifikacija ili bilateralna autentifikacija – i klijent i server se
međusobno autentifikuju slanjem sertifikata jedan drugom. Ovaj pristup je neophodan
da bi se sprečili napadi između proxy-ja i krajnje tačke veb servisa.[71]
SSL koristi kombinaciju tajnog ključa i kriptografije javnog ključa za bezbednu
komunikaciju. SSL saobraćaj koristi tajne ključeve za enkripciju i dešifrovanje, a razmena
javnih ključeva koristi se za međusobnu autentifikaciju strana uključenih u
komunikaciju.[71]
SSL se koristi:
- da bi osigurale transakcije kreditinim karticama na mreži,
- da bi se obezbedilo logovanje sistema i prenos osetljivih informacija,
- da bi se obezbedila veb pošta i aplikacije kao što su Outlook Veb Access, Excange i
Office Comunications Server,
- da bi se obezbedili radni procesi i aplikacije za virtuelizaciju kao što su Citrix
Delivery Platforms ili Cloud bazirane računarske platforme,
- da bi se osigurala veza između klijenta e-pošte kao što je Microsoft Outlook i server
e-pošte Microsot Excange,
- da bi se osigurao prenos datoteka preko HTTPS i FTP servisa, kao što su vlasnici veb
lokacija koji ažuriraju nove stranice ili ažuriraju velike datoteke,
- da bi se obezvbedilo logovanje i aktivnosti kao što su Parallels, cPanel i drugi,
- da bi se osigurao saobraćaj na intranetu kao što su interne mreže, deljenje datoteka,
ekstranet i veze sa bazama podataka,
- da bi se obezbedile mrežne prijave i drugi mrežni saobraćaj sa SSL, VPN-ovima kao
što us VPN Access server ili aplikacije kao što je Citrix Access Gatevay.[72]
3.1.2 XML enkripcija i XML potpis
Pošto se veb usluge mogu intenzivno primenjivati na rešenje aplikativnog programa, javlja se
sve veća integracija veb usluga u veb aplikacije. Veb usluge koriste metod poruke zasnovan
na XML-u za kreiranje i pristup uslugama, tako da je XML bezbednost osnova sigurnosti veb
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
49
usluga. Kako bi se garantovala sigurnost u korišćenju XML-a kao medija razmene
informacija, posebno osetljivih informacija opisnih u XML-u, koristi se kombinacija XML
potpisa i XML enkripcije.
XML enkripcija je specifikacija koju je razvio World Wide Web (W3C) konzorcijum 2002.
godine i koja sadrži korake za šifrovanje podataka, dešifrovanje podataka, XML sintaksu za
predstavljanje šifrovanih podataka, informacije koje će se koristiti za dešifrovanje podataka,
kao i listu algoritama za šifrovanje, kao šti su DES, AES i RSA. XML šifrovanje se može
primeniti na XML element, sadržaj XML elementa i proizvoljne podatke, uključujući i XML
dokument. Listing br.3 pokazuje XML dokument u kome je potrebno šifrovati element
<CreditCard>.[80]
Listing br.3
<PaymentInfo xmlns='http://example.org/paymentv2'>
<Name>John Smith</Name>
<CreditCard Limit='5,000' Currency='USD'>
<Number>4019 2445 0277 5567</Number>
<Issuer>Example Bank</Issuer>
<Expiration>04/02</Expiration>
</CreditCard>
</PaymentInfo>
Listing br.4 prikazuje XML dokument posle enkripcije. Element <EncryptedData>
predstavlja šifrovani <CreditCard> element. Element <EncryptionMethod> opisuje
primenjeni algoritam šifrovanja, koji je trstruki DES u ovom primeru. Element <KeyInfo>
sadrži informacije koje su potrebne za dohvatanje ključa za dešifrovanje, koji je element
<KeyName>. Element <CipherValue> sadrži tekst šifre koji se dobija serijalizacijom i
šifrovanjem elementa <CreditCard>.[80]
Listing br.4
<PaymentInfo xmlns='http://example.org/paymentv2'>
<Name>John Smith</Name>
<EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element'
xmlns='http://www.w3.org/2001/04/xmlenc#'>
<EncryptionMethod
Algorithm='http://www.w3.org/2001/04/xmlenc#tripledes-cbc'/>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyName>John Smith</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>ydUNqHkMrD...</CipherValue>
</CipherData>
</EncryptedData>
</PaymentInfo>
U listingu br.5 pretpostavlja se da i pošiljalac i primalac imaju zajednički tajni ključ. Ako
primalac ima par javnih i privatnih ključeva, što je obično slučaj, <CreditCard> element
može biti šifrovan kao što je prikazano u listingu 5. Element <EncryptedData> je isti kao
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
50
element <EncryptedData> koji se nalazi u listingu br.4. Međutim, element <KeyInfo> sadrži
element <EncryptedKey>.[80]
Listing br.5
<PaymentInfo xmlns='http://example.org/paymentv2'>
<Name>John Smith</Name>
<EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element'
xmlns='http://www.w3.org/2001/04/xmlenc#'>
<EncryptionMethod
Algorithm='http://www.w3.org/2001/04/xmlenc#tripledes-cbc'/>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<EncryptedKey xmlns='http://www.w3.org/2001/04/xmlenc#'>
<EncryptionMethod
Algorithm='http://www.w3.org/2001/04/xmlenc#rsa-1_5'/>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyName>Sally Doe</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>yMTEyOTA1M...</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>ydUNqHkMrD...</CipherValue>
</CipherData>
</EncryptedData>
</PaymentInfo>
XML potpisi su postali važan aspekt elektronske sigurnosti, jer se mogu koristiti za
osiguranje integriteta, autentičnosti i neporečivosti. XML potpis je preporuka W3C,
objavljena 12.februara 2002. godine, u kojoj su digitalni potpisi optimizovani za XML
dokumente, za obezbeđivanje integriteta XML podataka tokom procesa potpisivanje i/ili
verifikacije. Praktične prednosti XML potpisa uključuju parcijalno potpisivanje, koji
omogućava potpisivanje specifičnih oznaka sadržanih u XML podacima i višestruki potpis,
što omogućava potpisivanje više oznaka u XML dokumentu. Upotreba XML potpisa može
da reši bezbednosne problem, uključujići falsifikovanje, lažiranje i odbacivanje. XML potpis
podržava bilo koji tip šifrovanja digitalnog potpisa koristeći sve moguće standardne
algoritam šifrovanja. [81][82]
Za potpisivanje ili šifrovanje XML dokumenta, potreban je digitalni ID poznat kao digitalni
sertifikat. XML šifrovanje se koristi da bi se osiguralo da samo ovlašćeni primaoc može da
razume poruku, a XML potpis se koristi da bi se osiguralo da su podaci primljeni u istom
obliku kao što su bili poslati, bez modifikacija. XML enkripcija osigurava autentikaciju
korisnika, autorizaciju, integritet i poverljivost. Međutim, praktično je nevažno šifrovati
podatke ako se šalju grupi ljudi. Iz tog razloga, korišćenje XML potpisa još uvek obezbeđuje
integritet podataka zajedno sa autentifikacijom korisnika.[81]
- Autentifikacija – prilikom implementacije XML enkripcije, svako može šifrovati
dokument koristeći javni ključ, ali samo potpisnik može da potvrdi da je to u stvari
uradila prava osoba.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
51
- Verifikacija – Šifrovanje i potpis obezbeđuju verifikaciju šifrovanog/potpisanog
dokumenta kao i kodiranje, potreban je privatni ključ primaoca za dešifrovanje i
potpisivanje, a javni ključ za verifikaciju pravog pošiljaoca.
- Integritet – i enkripcija i potpis garantuju integritet dokumenta jer niko ne može da
manipuliše dokumentom nakon što je potpisan/enkriptovan.
- Poverljivost – XML potpis ne garantuje poverljivost podataka, jer su podaci još uvek
u običnom tekstu dok se u XML enkripciji podaci koji se prikazjuju šifrovani.
- Ne-odbacivanje – XML potpis osigurava da se dokument ne odbaci, jer pošiljalac ili
potpisnik ne može da porekne da nije potpisao dokument, zbog korišćenja ključeva za
potpisivanje.[81]
Može se koristiti kombinacija XML potpisa i XML enkripcije za obezbeđivanje sigurnosti u
veb servisima. Postoje dva pristupa:
- Prvo potpis, pa enkripcija. Ovo osigurava da potpis ostaje zaštićen, ali u isto vreme
podrazumeva veće opterećenje dešifrovanja poruke za svo vreme provere potpisa. U
ovoj metodi, algoritam enkripcije se može promeniti bez uticaja na potpis.
- Prvo enkripcija, pa potpisivanje. U ovoj metodi odmah se saznaje da li podaci
neovlašćeno promenjeni, ali identitet pošiljaoca se otkriva slanjem ključa za
dešifrovanje.[81]
3.1.3 WS-Security
WS-Security je specifikacija koja definiše kako se mere sigurnosti implementiraju u veb
uslugama kako bi ih zaštitili od spoljašnjih napada. Ovo je skup protokola koji obezbeđuje
bezbednost poruka zasnovanih na SOAP-u primenom principa poverljivosti, integriteta i
autentičnosti.
Budući da su veb servisi nezavisni od bilo koje hardverske i softverske implementacije,
WS-Security protokoli moraju biti dovoljno fleksibilni da se prilagode novim sigurnosnim
mehanizmima i obezbede alternativne mehanizme ako pristup nije prikladan. Pošto poruke
zasnovane na SOAP-u prolaze kroz više posrednika, bezbednosni protokoli moraju biti u
stanju da identifikuju lažne čvorove i spreče interpretaciju podataka u bilo kojim čvorovima,
WS-Security kombinuje najbolje pristupe za rešavanje bezbednosnih problema.[87]
WS-Security je standard koji je izdao OASIS, u njemu su opisana poboljšanja vezana za
bezbednost SOAP poruka koja obezbeđuju integritet i poverljivost poruka. WS-Security
koristi sigurnosne tokene kako bi omogućio sigurnost i integritet SOAP poruka. Sigurnosni
token je skup zahteva koje je poslao pošiljalac SOAP poruke, koji je autentifikovan
kombinovanjem sigurnosnog tokena sa digitalnim potpisom. Potpis se koristi kao dokaz da je
pošiljalac zaista povezan sa sigurnosnim tokenom.
WS-Security je standard na nivou poruka koji se zasniva na obezbeđivanju SOAP poruka
putem XML digitalnog potpisa, poverljivosti putem XML šifrovanja i propagacija akreditiva
preko sigurnosnih tokena. Specifikacija bezbednosti veb servisa definiše objekte za zaštitu
integriteta i poverljivosti poruke i obezbeđuje mehanizme za povezivanje zahteva vezanih za
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
52
bezbednost sa porukom. WS-Security ne zahteva poseban tip sigurnosnog tokena. Dizajniran
je da bude proširiv, kako bi podržao više formata bezbednosnoh tokena. WS-Security takođe
opisuje kako se šifriraju binarni sigurnosni tokeni i kako ih pripojiti sa SOAP porukama.
[68]
Ova specifikacija je fleksibilna i dizajnirana je da se koristi kao osnova za obezbeđivanje veb
usluga u širokom spektru sigurnosnih modela, uključujući PKI, Kerberos i SSL. Konkretno,
ova sepcifikacija obezbeđuje podršku za više formata bezbednosnih tokena, višestruke
domene poverenja, više formata potpisa i višestruke tehnologije šifrovanja.[69]
Prednosti korišćenja WS-Security-a:
- Različiti delovi poruke mogu biti osigurani na različite načine. Na primer, integritet
se može obezbediti bezbednosnim tokenom (korisničko ime i lozinka) i poverljivost
na telu SOAP poruke.
- WS-Security radi na više transportnih sistema i nezavisan je od transportnog
protokola.
- Mogu se koristiti posrednici, a preko posrednika se može obezbditi zaštita na nivou
poruke.
- Moguća je autentifikacija pojedinačnih korisnika i više korisničkih identiteta.[68]
Tradicionalni veb sigurnosni mehanizmi, kao što su HTTPS, mogu biti nedovoljni za
upravljanje sigurnosnim zahtevima veb servisa. Kada aplikacija šalje SOAP poruku koristeći
HTTPS, poruka je osigurana samo za HTTPS vezu, što znači tokom prenosa poruke između
klijenta i usluge. Međutim, aplikacija može zahtevati da se podaci poruke osiguraju izvan
HTTPS veze, ili čak i izvan transportnog sloja. Obezbeđivanje veb usluga na nivou poruka
može da ispuni ove proširene zahteve. Bezbednost na nivou poruka obuhvata: identitet,
autentifikaciju, autorizaciju, integritet, poverljivost, neporicanje. I tradicionalna veb
bezbednost i bezbednost na nivou poruka koriste iste mehanizme za upravljanje
bezbednošću, uključujući digitalne sertifikate, enkripciju i digitalne potpise. [68]
Sa sigurnošću na nivou poruka, sama SOAP poruka sadrži ili informacije koje su potrebne da
bi se obezbedila poruka ili sadrži informacije o tome gde da se dobiju te informacije da bi se
odgovorilo na bezbednosne potrebe. SOAP poruka takođe sadrži informacije relevantne za
protokole i procedure za obradu navedene bezbednosti na nivou poruke. Bezbednost na nivou
poruke nije vezana za bilo koji transportni mehanizam. Pošto su informacije o bezbednosti
deo poruke, one su nezavisne od transportnog protokola, kao što je HTTPS.[68]
Klijent dodaje u SOAP informacije o zaglavlju poruke koje se odnose na tu određenu poruku.
Kada je poruka primljena, krajnja tačka veb servisa, koristeći informacije o bezbednosti u
zaglavlju, proverava bezbednosnu poruku i potvrđuje je. Na primer, krajnja tačka usluge
može proveriti potpis poruke i proveriti da poruka nije menjana. Moguće je dodati
informacije o potpisivanju i šifrovanju u zaglavlja SOAP poruka, kao i druge informacije kao
što su sigurnosni tokeni za identitet (na primer, X.509 sertifikat) koji su vezani za sadržaj
SOAP poruka.[68]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
53
Element zaglavlja može sadržati sledeće informacije:
- Ako je poruka unutar SOAP tela potpisana bilo kojim bezbednosnim ključem, taj
ključ se može definisati u elementu zaglavlja.
- Ako je bilo koji element unutar tela SOAP poruke šifrovan, zaglavlje će sadržati
potreben ključeve šifrovanja, tako da se poruka može dešifrovati kada dođe do
odredišta.[70]
Kada je telo SOAP poruke šifrovano, moći će da bude dešifrovano samo preko veb servera
koji hostuje veb servis. Ako se poruka prosledi serveru baze podataka u HTTP zahtevu, ona
se ne može dešifrovati jer baza podataka nema odgovarajuće mehanizme. Samo kada zahtev
dođe do veb servera kao SOAP protokol, on će biti u stanju da dešifruje poruku i pošalje
odgovor klijentu.[70]
Bez bezbednosti na nivou poruke, SOAP poruka se šalje čistim tekstom, a lični podaci kao
što su korisnički ID ili broj računa nisu zaštićeni. Bez primene bezbednosti na nivou poruka,
u SOAP poruci postoji samo SOAP telo ispod SOAP omotnice. Primenon WS-Security
specifikcije, SOAP zaglavlje je umetnuto ispod SOAP omotnice u SOAP poruci kada je
SOAP telo potpisano i enkriptovano.[68]
Akreditivi u SOAP zaglavlju mogu sadržati specijalni element zvan UsernameToken, koji se
koristi za prosleđivanje korisničkog imena i lozinke veb servisu i binarni token preko
BinarySecurityToken, koji se koristi u situacijama u kojima se koriste tehnike šifrovanja kao
što su Kerberos ili X.509.[70]
Listing br.6 ilustruje upotrebu prilagođenog sigurnosnog tokena i pridruženog potpisa. Token
sadrži binarne podatke, koji prenose simetrični ključ koji može biti pravilno overen od strane
primaoca. [69]
Listing br.6
(001) <?xml version="1.0" encoding="utf-8"?>
(002) <S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="..."
xmlns:ds="..."> (003) <S11:Header>
(004) <wsse:Security
xmlns:wsse="..."> (005) <xxx:CustomToken wsu:Id="MyID"
xmlns:xxx="http://fabrikam123/token">
(006) FHUIORv...
(007) </xxx:CustomToken>
(008) <ds:Signature>
(009) <ds:SignedInfo>
(010) <ds:CanonicalizationMethod
Algorithm= "http://www.w3.org/2001/10/xml-exc-c14n#"/>
(011) <ds:SignatureMethod
Algorithm= "http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
(012) <ds:Reference URI="#MsgBody">
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
54
(013) <ds:DigestMethod
Algorithm=
"http://www.w3.org/2000/09/xmldsig#sha1"/>
(014) <ds:DigestValue>LyLsF0Pi4wPU...</ds:DigestValue>
(015) </ds:Reference>
(016) </ds:SignedInfo>
(017) <ds:SignatureValue>DJbchm5gK...</ds:SignatureValue>
(018) <ds:KeyInfo>
(019) <wsse:SecurityTokenReference>
(020) <wsse:Reference URI="#MyID"/>
(021) </wsse:SecurityTokenReference>
(022) </ds:KeyInfo>
(023) </ds:Signature>
(024) </wsse:Security>
(025) </S11:Header>
(026) <S11:Body wsu:Id="MsgBody">
(027) <tru:StockSymbol xmlns:tru="http://fabrikam123.com/payloads">
QQQ
</tru:StockSymbol> (028) </S11:Body>
(029) </S11:Envelope>
Prve dve linije pokreću SOAP omotnicu. Linija (003) je početak zaglavlja koji je povezan sa
ovom SOAP porukom. Linija (004) pokreće zaglavlje <wsse:Security> definisano u ovoj
specifikaciji. Zaglavlje sadrži informacije o bezbednosti za primaoca i nastavlja se do linije
(024). Linije (005) do (007) specificiraju prilagođeni token koji je povezan sa porukom. U
ovom slučaju koristi se eksterno definisan prilagođen format tokena. Linije (008) do (023)
određuju digitalni potpis. Ovaj potpis osigurava integritet potpisanog elementa. Potpis koristi
specifikaciju XML potpisa koju identifikuje prostor za imena ds deklaracije u liniji (002).
Linije (009) do (016) opisuju šta se potpisuje i tip kanonikalizacije koja se koristi. Linija
(010) određuje kako da se normalizuju podaci koji se potpisuju. Linija (012) označava da je
element <S11: body> potpisan. U ovom primeru samo je telo poruke potpisano. Linija (017)
određuje vrednost potpisa normalizovanog oblika podataka koji se potpisuju kako je
definisano u specifikaciji XML potpisa. Linije (018) do (022) pružaju informacije, delimične
ili potpune, o tome gde se nalazi bezbednosni token koji je povezan sa ovim potpisom.
Konkretno, linije (019) do (021) ukazuju da se sigurnosni token može naći na navedenom
URL-u. Linije (026) do (028) sadrže telo SOAP poruke.[69]
Blok zaglavlja <wsse: Security> obezbeđuje mehanizam za dodavanje informacija vezanih
za bezbednost koje su namenjene određenom primaocu. To može biti krajnji primalac poruke
ili posrednik. Prema tome, elementi ovog tipa mogu biti prisutni više puta u SOAP poruci.
Aktivni posrednik ne putanji poruka može dodati jedan ili više novih podelemenata u
postojeći blok zaglavlja <wsse: Security> ako su oni ciljani za njegov SOAP čvor ili može
dodati jedan ili više novih zaglavlja za dodatne ciljeve.[69]
3.1.3.1 WS-Security tokeni
WS-Security određuje SOAP bezbednosna proširenja koja obezbeđuju poverljivost koristeći
XML šiforvanje i integritet podataka koristeći XML potpis. WS-Security, takođe sadrži
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
55
profile koji sepcificiraju kako da se ubace različiti tipovi binarnih i XML sigurnosnih tokena
u WS-Security zaglavlja za svrhe autentifikacije i autorizacije.
Slika br.10 prikazuje arhitekturu zasnovanu na STS (Service Token Security), upotrebu
tokena za svrhu autentifikacije i autorizacije.
Slika br.10 STS Service Token Security
Gore predstavljena arhitektura zasnovana na tvrdnjama definiše sledeće aktere:
- Klijent – entitet koji želi da proveri autentičnost i pristup veb servisu. Entitet može
biti jednostavan korisnik ili aplikacioni kod.
- RP – je veb servis. Veb servis može koristiti tokene koje pruža IP (STS), izdvojiti
tvrdnje iz tokena i ovlastiti subjekat/pozivaoca za obavljanje operacija.
- IP Provajder identiteta ili STS je implementiran kao veb servis i vrši proveru
autentičnosti. STS gradi, potpisuje i izdaje sigurnosne oznake sa tvrdnjama koje
identifikuju subjekat/pozivaoca servisa.
- Identitet – opisuje skup atributa koji opisuju entitet.
- Tvrdnja – sadrži informacije o autentičnom entitetu kao što su: ime, e-pošta, datum
rođenja, dozvola itd. Na osnovu ovih tvrdnji RP donosi odluku da ovlasti subjekat da
pozove operacije RP.
- RST/RSTR tok sigurnosnog tokena je serijalozovani skup zahteva koji je digitalno
potpisan od strane izdavača. Sigurnosni token izdaje STS i prenosi se u zaglavlju
sigurnosti SOAP omotnice. Sigurnosni token može biti kombinacija korisničkog
imena i lozinke, SAML token u XML formatu ili binarno zasnovan, kao što su X.509
sertifikati i Kerberos.
- Autoritet izdavača (Authenticate Issue) – određuje kako STS izdaje tokene za
sigurnost, kao što su kontroleri domena koji izdaju Kerberos ili autoriteti sertifikata
koji izdaju X.509 sertifikate.[62]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
56
Proces autentifikacije i autorizacije koji koristi pristup ovlaščenja zasnovan na tvrdnjama i
prikazan na slici br.10 sledi korake:
1. Klijent inicijalizuje i šalje zahtev za potvrdu identiteta STS-u. Potvrda autentičnosti koja
se šalje STS-u sadrži poruku zahteva za sigurnosnim tokenom RST. RST sadrži
klijentske akreditive koji se mogu slati direktno u običnom/šifrovanom modu ili se mogu
poslati pomoću tokena izdatog od strane brokera za proveru autentičnosti, kao što je
Kerberos token ili X.509 sertifikat. Veoma je važno da RST i RSTR poruke budu
zaštićene. U ovom slučaju, akreditivi će biti poslani direktno u režimu šifrovanja.
2. STS prima RST token od klijenta i proverava akreditive. Ako su akreditivi validni, STS
izdaje sigurnsni token kao SAML tvrdnju i primenjuje pravila politike. Token se zatim
potpisuje sa X.509 sertifikatom.
3. STS šalje klijentu sigurnosni token. Sigurnosni token koji je izdat u prethodnoj tački biće
poslat klijentu kao SAML token u RSTR poruci. RSTR sadrži skup od tri tvrdnje:
korisničko ime, dozvolu za čitanje i dozvolu za ažuriranje.
4. Klijent inicira i šalje poruku zahteva servisu.
5. Servis proverava sigrnosni token koji je poslao klijent i izvršava autorizaciju. Servis
proverava da li je token izdat od strane STS-a i nije modifikovan nakon što je izdat
(verifikuje integritet – digitalni potpis). Servis koristi STS javni sertifikat uključen u
zahtev. Tada će se sigurnosni token dešifrovati i nakon provere skupa zahteva servis će
doneti odluku o autorizaciji klijenta.
6. Servis inicira i šalje odgovor klijentu kao poruku. Nakon što servis ovlasti klijenta, ona će
klijentu poslati opcionu poruku.[62]
Predloženi model za obezbeđenje veb servisa korišćenjem STS ima sledeće prednosti:
- Razdvajanje aplikacija i usluga od mehanizma autentifikacije. Model se sastoji od tri
strane: klijent koji emituje zahteve za veb servis, ali mora da se autentifikuje preko
STS,
- STS, veb servis koji potvrđuje verodostojnost, autentifikuje klijenta i izdaje SAML
sigurnosne tokene sa skupom zahteva za pozivanje operacija koje su izložene veb
servisom,
- RP, koji će primiti sigurnosni token od klijenta i koristiti zahteve da ovlasti pozivaoca
za obavljanje operacija i pristupa resursima.
3.1.3.1.1 UserName tokeni
Korisničko ime (UserName) definiše način na koji korisnik veb servisa može dati korisničko
ime kao akreditaciju za potvrdu identiteta. UserName token sadrži osnovne informacije o
autentifikaciji. Element korisničkog imena i token proširuje informacije o korisničkom imenu
i lozinku za autenfikaciju poruke.[71]
Korisničko ime i lozinka se koriste za autentifikaciju poruke. Element <UserName> koji
sadrži korisničko ime koristi se u tvrdnji identiteta. Listing br.7 pokazuje sintaksu elementa
<UserNameToken>:[76]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
57
Listing br.7
<UsernameToken Id="...">
<Username>...</Username>
<Password Type="...">...</Password>
</UsernameToken>
UserName token omogućava da se identitet krajnjeg korisnika prenese preko više čvorova
pre nego što stigne do odredišnog veb servisa. Korisnički identitet se ubacuje u poruku i
dostupan je za obradu u svakom čvoru na putu.[77]
Korisničko ime i lozinka klijenta su enkapsulirani u WS-Security <wsse: UsernameToken>.
Nakon prijema tokena može se izvršiti jedan od sledećih zahteva:
- Provera da je vremenska oznaka na tokenu važeća,
- Autentifikacija korisničkog imena,
- Autentifikacija korisničkog imena i lozinke.[77]
Element <wsse:UsernameToken> je uveden u WS-Security: SOAP poruka o bezbednosti kao
način obezbeđivanja korisničkog imena.
Unutar <wsse:UsernameToken> elementa, može se navesti <wsse:Password> element.
Lozinke tipa PasswordTekst i PasswordDigest. PasswordTekst samo implicira da su
informacije koje se nalaze u lozinki u „čistom obliku“ za razliku od digest informacija.
Lozinke tipa PasswordDigest su definisane kao Base64 [XML-schema], SHA-1 hash
vrednost, UTF-8 kodirane lozinke. Međutim, ako se ovakva lozinka ne pošalje na zaštićeni
kanal ili ako je token šifrovan, sažetak ne nudi nikakvu dodatnu sigurnost nad korišćenjem
PasswordTekst. [78]
Dva dodatna elementa su uvedena u elementu <wsse:UsernameToken> da bi se obezbedila
protivmera za ponavljanje napada: <wsse:Nonce> i <wsu:Created>. Nonce je slučajna
vrednost koju pošiljalac kreira da bi uključio u svako korisničko ime koje šalje. Iako je
korišćenje nonce efektivna protivmera protiv napada ponavljanja, potrebno je da server
održava keš korišćenih brojeva, trošeći serverske resurse. Kombinovanjem nonce sa
vremenskom oznakom ima prednost što dozvoljava serveru da ograniči keš nonce na
određeni period, uspostavljajući gornju granicu prema zahtevima resursa. Ako su prisutni
jedan ili oba <wsse:Nonce> i <wsu:Created> oni moraju biti uključeni u digest vrednost na
sledeći način:[78]
Password_Digest=Base64(SHA-1(nonce+created+password))
To znači, spojiti nonce, vremensku oznaku kreiranja, korisiti SHA-1 hash algoritam, zatim
uključiti Base64 kodiranje tog rezultata. Ovo bi omogućilo efikasno sprečavanje napada
ponavljanja.
Listing br.8 ilistruje primenu elementa UsernameTokena, gde se lozinka šalje kao „jasan
tekst“, tako da bi poruku trebalo poslati preko poverljivog kanala.[76]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
58
Lisitng br.8
<S:Envelope xmlns:S="http://www.w3.org/2001/12/soap-envelope"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
<S:Header>
...
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>Joe</wsse:Username>
<wsse:Password>ILoveJava</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</S:Header>
</S:Envelope>
Kako bi se sprečili napadi ponavljanja preporučuju se tri kontramere:
1. Da proizvođači veb servisa odbace sve UsernameToken-e koja ne koriste nonce i
vremensku oznaku.
2. Da proizvođači veb servisa obezbede ograničenje vremenske oznake, kao smernica,
vrednost od pet minuta može se koristiti kao minimum za otkrivanje, a time i
odbacivanje, ponavljanja.
3. Da se korišćene stavke keširaju tokom perioda barem onoliko dugo koliko je ograničeno
vremensko označavanje, i da se UsernameToken sa nonce-sima koji su već korišćeni
odbijaju.[79]
Obzirom da se prenos lozinke ne podrazumeva šifrovanje, postoji opasnost od napada, tako
da je potrebno šifrovati podatke pomoću SSL-a, ali to je dobro samo u scenariju point-to-
point i nije siguran u scenariju koji ima posrednike. Za pristup end-to-end, trebalo bi da se
šifruje UsernameToken sa XML enkripcijom u WS-Security. Bez svih ovih zaštitnih mera,
UsernameToken može biti potpuno neefikasan u postizanju svog cilja.[79]
Listing br.9 ilustruje upotrebu UsernameTokena sa elementima nonce i created.
Listing br.9
<wsse:UsernameToken wsu:Id="Example-1">
<wsse:Username> ... </wsse:Username>
<wsse:Password Type="..."> ... </wsse:Password>
<wsse:Nonce EncodingType="..."> ... </wsse:Nonce>
<wsu:Created> ... </wsu:Created>
</wsse:UsernameToken>
/ wsse:UsernameToken/wsse:Password
Ovaj element pruža informacije o lozinkama, preporučuje se da se ovaj element prenosi samo
kada se koristi siguran transport (npr. HTTPS) ili ako se sam token šifruje.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
59
/ wsse:UsernameToken/wsse:Password/@Type
Ovo je opcioni URI atribut koji određuje tip lozinke.
/wsse:UsernameToken/wsse:Nonce
Element koji specificira kriptografski nasumični nonce. Svaka poruka, koja uključuje
<wsse:nonce> mora koristiti novu nonce vrednost kako bi proizvođači veb servisa mogli
otkriti napade ponavljanja.
/wsse:UsernameToken/wsu:Created
Ovaj element specificira vremensku oznaku koja se koristi za označavanje vremena
kreiranja.[78]
Upotreba UsernameTokena omogućava zaštitu od napada ponavljanja koji se mogu adresirati
korišćenjem vremenskih oznaka poruka, nonces, keširanja kao i drugih mehanizama praćenja
specifičnih za aplikaciju. Vlasništvo tokena se verifikuje korišćenjem ključeva, man-in-the-
middle napadi su uglavnom ublaženi. Bezbednost na transportnom nivou može se koristiti za
obezbeđivanje poverljivosti i integriteta i korisničkog imena i celog tela poruke.
3.1.3.1.2 X.509 Certificate
Digitalni sertifikat X.509 je struktura podataka dizajnirana za slanje javnog ključa primaocu.
Sertifikat uključuje standardna polja kao što su ID sertifikata, datum do kada sertifikat važi,
podatke vlasnika, javni ključ. Sertifikat izdaju sertifikaciona tela, koji proveravaju identitet
entiteta i dodeljuju sertifikat, potpisujući ga privatnim ključem. Sertifikaciono telo objavljuje
svoj sertifikat koji uključuje i javni ključ.[71]
Struktura X.509 sertifikata:
- Verzija sertifikata – označava verziju sertifikata koji se upotrebljava.
- Serijski broj – jedinstveni broj koji izdaje CA. Pravi razliku između sertifikata.
- Identifikator algoritma – identifikuje algoritam kojim je CA potpisao sertifikat.
- Izdavač sertifikata – označava potpisnika sertifikata (CA).
- Validnost sertifikata – svaki sertifikat je validan u određenom vremenskom periodu.
Taj vremenski period je propisan datumom početka i datumom kraja validnosti
sertifikata.
- Naziv entiteta – povezuje privatni ključ sa javnim ključem iz sertifikata.
- Podaci o javnom ključu entiteta – sadrži javni ključ entiteta zajedno sa
identifikatorom kriptografskog algoritma.
- Identifikator izdavača – jedinstveno polje koje identifikuje ime izdavača prema X.509
standardu.
- Identifikator entiteta – jedinstveno polje koje identifikuje entitet.
- Digitalni potpis sertifikata – identifikuje potpis sertifikata privatnim ključem
sertifikacionog centra.[75]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
60
Da bi zaštitili XML poruku sa X.509 tokenom, mora postojati ugovor odnosno WS-Policy,
koji je naveden u jeziku opisa veb usluga (WSDL). Okvir WS-Policy omogućava da se
specificiraju informacije o politici koje mogu biti obrađene aplikacijama veb servisa. Politika
se izražava kao jedna ili više tvrdnji o politici koje predstavljaju mogućnosti ili zahteve veb
servisa. Na primer, tvrdnja o politici može propisati da se zahtev za veb uslugom šifrira. Isto
tako, tvrdnja politike može definisati maksimalnu veličinu poruke koju veb usluga može
prihvatiti. Veb servis mora imati WS-Policy uključenu u WSDL datoteku. Politika
Ws-Security može sadržati tvrdnje o asimetričnom vezivanju ili simetričnom vezivanju.
WS-Security Policy definiše set tvrdnji o sigurnosnoj politici koje se koriste u kontekstu
WS-Policy okvira. WS-Security Policy tvrdnje opisuju kako su poruke osigurane na
komunikacionom putu.[71][74]
Tabela br.3 prikazuje kako se tokeni inicijatora i primaoca koriste za svaki deo lanca
zahteva/odgovora.
Tabela br.3 Upotreba podnosioca zahteva i primaoca za svaki deo lanca zahtev/odgovor [74]
Podnosilac zahteva Primalac zahteva
Zahtev Potpisuje Šifrovanje
Zahtev (provajder) Poverava potpis Dešifruje
Odgovor (provajder) Šifruje Potpisuje
Odgovor (zahtevaoc) Dešifruje Proverava potpis
Privatni ključevi se koriste za potpisivanje i dešifrovanje poruka. Javni sertifikati se koriste
za šifrovanje poruka i proveru potpisa. Privatni ključevi pripadaju korisniku ključa. U
simetričnom vezivanju, tajni ključ koji je zaštićen za X.509 token dele i podnosilac zahteva i
primalac. Ključ se koristi za šifrovanje i dešiforvanje.
Format X.509 sertifikat određuje forma zapisa i definiše polja sertifikata. Ovaj standard
takođe predviđa načine povlačenja sertifikata kao i algoritme za šifrovanje. Prvi PKI projekat
je podrazumevao upotrebu upravo X.509 standarda. Mnoge kompanije u svetu svoje
poslovanje temelje na ovom standardu. VISA i MasterCard u svojim elektronskim
transkacijama primenjuju X.509 standard. [75]
3.1.3.1.3 Kerberos tokeni
Kerberos token je cross-platform autentifikacija i sistem jedinstvene prijave. Kerberos
protokol obezbeđuje međusobnu autentifikaciju između dva entiteta koji se oslanjaju na tajni
ključ. Kerberos uključuje klijenta, server i pouzdanu stranu za posredovanje između njih pod
nazivom Centar za distibuciju ključeva KDC (Key Distribution Center). Kerberos token
profil WS-Security omogućava poslovnim partnerima da koriste Kerberos tokene u
arhitekturi orijentisanoj ka servisu. [71]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
61
Kerberos protokol se definiše kao potpuno siguran, baziran na centralnom entitetu za
autentifikaciju kojem svi drugi entiteti veruju u potpunosti. KDC u sebi sadrži sve
autentifikacijske parametre svih entiteta u Kerberos sistemu i zasniva se na master/slave
arhitekturi. Korisničke lozinke nikada se ne šalju preko mreže u čistom tekstualnom obliku,
već u tu svrhu se koriste specijalne kriptovane poruke ograničenog trajanja (tickets). Njih
generiše KDC server na zahtev korisnika koji želi pristupiti određenom resursu u Kerberos
sistemu.
Single-sign-on funkcionalanost podrazumeva proces u kome se korisnik samo jednom
prijavljuje u sistem posle čega mu je dozvoljen pristup svim mrežnim servisima koji
podržavaju Kerberos protokol. Nakon početne prijave u sistem, korisnicima je pristup svim
mrežnim resursima u potpunosti transparentan, što znatno olakšava rad u distribuiranim
okruženjima. [91]
Svaki entitet Kerberos sistema, bez obzira da li se radi o korisniku, mrežom servisu ili nečem
trećem opisan je određenim imenom u bazi KDC servera, koji se naziva principal. Svaki
principal jedinstveno opisuje entitet u Kerberos sistemu i ima odgovarajuću strukturu
definisanu specifikacijom protokola. Takođe, svaki principal poseduje tajni ključ koji je
poznat KDC serveru i entitetu o čijem ključu se radi. Ovaj tajni ključ se koristi za enkripciju
poruka u postupku autentifikacije.
Opšti sadžaj principal je sledeći:
- Identity – opisuje ime Kerberos entiteta (korisničko ime, mrežni servis, računar). Ovo
polje je obavezno.
- Instance – ovo polje bliže opisuje Kerberos entitet i može se shvatiti kao opis grupe
kojoj odgovarajući entitet pripada. Za korisničke račune, može označavati grupu kojoj
korisnik pripada. Kod mrežnih servisa ovaj deo sadrži ime računara na kome je
pokrenut servis. Na ovaj način se razlikuju isti servisi pokrenuti na različitim
računarima.
- Realm – svaka posebna instalacija Kerberos sistema definiše jedinstveni realm koji
opisuje sistem i koji se razlikuje od bilo kog drugog Kerberos okruženja. Ovo polje
najčešće odgovara DNS imenu organizacije.[91]
KDC server predstavlja jezgro Kerberos sistema i njegova dostupnost je neophodna za
funkcionisanje celog sistema. Sastoji se od:
- Baze sa svim principalima unutar definisanog Kerberos realm-a sa svim pripadajućim
tajnim ključevima
- AS (Autentication Server)
- TGS (Ticket Granting Server)
Podaci koje sadrži svaka karta TGT:
- Ime principala koji zahteva pristup,
- Ime principala kojem se zahteva pristup,
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
62
- Vremenska oznaka,
- Vreme trajanja karte,
- Lista IP adresa sa kojih je moguća upotreba karte,
- Tajni ključ za komunikaciju sa traženim resursom.
Kerberos karte imaju dve osnovne funkcije, da se potvrdi identitet entiteta koji zahteva
pristup određenom resursu i da se uspostavi sesijski ključ koji će se koristiti za enkripciju
podataka tokom komunikacije. Vremenska oznaka i vreme trajanja karte štite sistem od
napada u kojem neovlašćeni korisnik koristi ranije zabeležen mrežni promet sa ciljem
neovlašćenog pristupa sistemu. Svaki zahtev korisnika sadrži vremensku oznaku koju
generiše računar klijenta prilikom formiranja zahteva. Nakon prihvatanja zahteva KDC
server upoređuje lokalno vreme sa vremenskom oznakom u primljenom zahtevu i proverava
vremensku razliku sa maksimalno dozvoljenom koja je pet minuta /inicijalno. Ukoliko nije,
zahtev se odbija. Sve karte izdate od Kerberos servera sadrže vreme trajanja karte u kojem se
ista može iskoristiti. Kada ovo vreme istekne karta više nije dostupna.[91][92]
Slika br.11 Prikazuje korake za autentifikaciju u Kerberos okruženju.
Slika br.11 Koraci za autentifikaciju u Kerberos okruženju [92]
1. Klijent zahteva kartu za potvrdu identiteta (TGT) iz centra za distribuciju ključeva
(KDC).
2. KDC proverava akreditive i šalje nazad enkriptovan TGT i ključ sesije.
3. TGT je šifrovan pomoću tajnog ključa usluge odobravanja karte (TGT).
4. Klijent skladišti TGT i kada istekne sesija tražiće novi TGT.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
63
Ako klijent traži pristup servisu ili drugom resursu na mreži:
5. Klijent šalje trenutni TGT u TGS sa nazivom usluga resursa SPN (Service Principal
Name), kojem klijent želi pristupiti.
6. KDC proverava TGT korisnika i da li korisnik ima pristup servisu.
7. TGS šalje klijentu važeći ključ sesije za uslugu.
8. Klijent šalje ključ sesije servisu da bi dokazao da korisnik ima pristup, a usluga odobrava
pristup.[92]
3.1.3.1.4 SAML tokeni
SML je otvoreni standard koji omogućava provajderima identiteta da proslede ovlašćenja za
autorizaciju serviserima. To znači da se može koristiti jedan set akreditiva za prijavljivanje
na mnogo različitih veb lokacija. SAML transakcije koriste XML za standardizovanu
komunikaciju između provajdera identiteta i pružaoca usluga. SAML je veza između
autentifikacije identiteta i ovlašćenja za korišćenje usluge. SAML omogućava jednostruku
prijavu, što znači da se korisnici mogu prijaviti jednom i te akreditive koristiti za prijavu na
druge veb servise.[73]
SAML pojednostavljuje process autentifikacije i autorizacije za korisnike, pružaoce usluga i
dobavljače usluga. SAML implementira siguran metod za prosleđivanje autentičnosti
korisnika i ovlašćenja između provajdera identiteta i pružaoca usluga. Kada se korisnik
prijavljuje u SAML omogućenu aplikaciju, servis provajder zahteva autorizaciju od
odgovarajućeg provajdera identiteta. Provajder identiteta autentificira korisničke akreditive, a
zatim vraća ovlašćenje za korisnika provajderu usluge i korisnik tada može da koristi
aplikaciju. SAML autentifikacija je proces verifikacije korisničkog identiteta i akreditiva.
SAML ovlašćenje obaveštava provajdera kakav pristup da dodeli ovlašćenim korisniku.[73]
SAML tvrdnja je XML dokument koji provajder identiteta šalje provajderu servisa koji
sadrži autorizaciju korisnika. Postoje tri vrste SAML tvrdnji:
- Autentifikacione tvrdnje dokazuju identifikaciju korisnika i pružaju vreme kada se
korisnik prijavio i koji je način autentifikacije koristio.
- Tvrdnja o atribuciji prenosi SAML atribute na provajdera – SAML atributi su
specifični delovi podataka koji pružaju informacije o korisniku.
- Tvrdnja o odluci o autorizaciji kaže da li je korisnik ovlašćen da koristi uslugu ili ako
je pružalac usluge identifikacije odbio njihov zahtev zbog neuspeha lozinke ili
nedostatka prava na uslugu.[73]
SAML funkcioniše tako što prosleđuje informaije o korisnicima, prijavama i atributima
između provajdera identiteta i pružaoca usluga. Svaki korisnik se prijavi jednom, zatim
provajder identiteta može da prosledi SAML atribute provajderu servisa kada korisnik
pokuša da pritupi tim uslugama. Dobavljač usluga traži autorizaciju i autentifikaciju od
provajdera identiteta. Svaki provajder identiteta i dobavljač usluga moraju da se slože oko
konfiguracije za SAML. Oba kraja moraju imati tačnu konfirguraciju za SAML
autentifikaciju.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
64
Slika br.12 prikazuje primer prijave korisnika. [73]
1. Korisnik se prijavljuje na sisitem.
2. Korisnik pokušava da otvori veb stranicu.
3. Porvajder servisa proverava korisnikove akreditive kod provajdera identiteta.
4. Davalac identiteta šalje poruke za autorizaciju i autentifikaciju nazad, provajderu servisa,
što omogućava korisniku da se prijavi.
5. Korisnik može koristiti servis i obaviti posao.
Slika br.12 Prijava pomoću SAML tokena[73]
SAML je dizajniran da adresira sledeće:
- Ograničenja kolačiča veb pregledača na jedan domen: SAML obezbeđuje standardni
način prenosa kolačića na više internet domena.
- Vlasnički veb single sign-on (SSO): SAML obezbeđuje standardni način za
implementacij SSO u okviru jednog domena ili na više domena. Ovu funkcionalnost
obezbeđuje proizvod Oracle Identity Federation.
- Federacija: SAML olakšava upravljanje identitetom (npr. Povezivanje naloga kada je
jedan korisnik poznat na više veb lokacija pod različitim identitetima).
- Sigurnost veb usluga: SAML pruža standardni sigurnosni token koji se može koristiti
sa standardnim sigurnosnim okvirima veb servisa.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
65
- Proširiv identiteta: SAML pruža standardni način predstavljanja sigurnosnog tokena
koji se može preneti kroz više koraka poslovnog procesa ili transakcije, od
pretraživača do portala do veb servisa.[71]
3.1.4 WS-Trust
WS-Trust definiše dodatne opcije i dodatke za razmenu tokena kako bi se omogućilo
razumevanje kroz više različitih domena poverenja. Kako bi se osigurala komunikacija
između dve strane one moraju razmeniti podatke i svaka strana mora odrediti može li
verovati podacima druge strane. Cilj specifikacije WS-Trust je da se aplikacijama i veb
servisima omogući izgradnja pouzdanih SOAP poruka. Poverenje se uspostavlja razmenom
sigurnosnih oznaka ili tokena, koje je moguće izdavati, obnavljati i proveriti nezavisno o
korišćenom protokolu razmene poruka.
Model bezbednosti veb servisa koji je definisan u WS-Trust-u zasniva se na procesu u kojem
veb usluga može zahtevati da dolazna poruka dokaže skup zahteva (npr. ime, ključ, dozvola).
Ako poruka stigne bez potrebnog dokaza o potraživanjima, uslugu treba ignorisati ili
odbaciti.
WS-Trust se odnosi na specifikaciju koja je definisana posebno za kontrolu izdavanja,
obnavljanja i validacije tokena za veb bezbednost. WS-Trust predstavlja proširenje
WS-Security i pruža okvir za sigurnu komunikaciju između različitih veb aplikacija. Takođe
je odgovoran za načine za stvaranje sigurnog kanala između učesnika pre nego što se može
obaviti razmena poruka. Ws-Trust opisuje glavne metode za olakšavanje sigurnog slanja
poruka. Dve strane koje komuniciraju moraju direktno ili indirekton da razmenjuju
bezbednosne akreditive kako bi pokrenule bezbedno slanje poruka. Svaka strana mora znati
da je druga strana verodostojna. [86]
WS-Trust je dizajniran da omogući aplikacijama da razmenjuju pozdane poruke preko
SOAP-a. Protokolom se predlaže da se to uradi putem razmene i posredovanja sigurnosnih
žetona. Tokeni sigurnosti su obično skup tvrdnji o klijentu, usluzi ili resursu od strane
izdavača tokena. Tokeni su predstavljeni aplikacijama koje su priložene SOAP zahtevima da
bi im se omogućio pristup uslugama.
Model direktnog brokiranog poverenja prikazan na slici br.13 pokazuje kako klijenti mogu
nabaviti sigurnosne tokene iz servisa sigurnosnog tokena (STS) putem SOAP-a u zamenu za
drugi sigurnosni token ili neku drugu vrstu akreditiva. Da bi dobio token iz STS-a klijent
mora da generiše RST (RequestSequrityToken) poruku. Ova poruka, u vezi sa priloženim
WS-Security zaglavljem, daje detalje o tokenu koji klijent traži od STS-a.[88]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
66
Client Security Token Service
1. RequestSecurityToken
2. RequestSecurityTokenResponse
Application
3. Use Authenticated Service
Slika br.13 Model direktno brokiranog poverenja [88]
Ako se prihvati, STS odgovara sa RSTR (RequestSecuriyTokenResponse) porukom. Ova
poruka sadrži tokene, ključeve i druge informacije koje će klijentu omogućiti da prikaže
kriptografski podržane tvrdnje koje je STS (izdavalac) dao u svoje ime drugim aplikacijama i
uslugama.
Korišćeni u kombinaciji, ovaj model može omogućiti organizacijama da se efikasno udruže
preko domena poverenja. Slika br.14 prikazuje primer indirektno brokiranog poverenja.
Ovde bezbednosni token od domena A može da se korist kao akreditacija za STS u domenu
B i razmeni za bezbednosni token da koristi autentifikovane uluge u domenu B. Ovaj model
omogućava da oba domena funkcionišu bezbedno bez potrebe za replikacijom informacija o
nalogu.[88]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
67
Client Domain A STS
1. RST
2. RSTR ( TokenA )
Service
5. Use Authenticated Service ( TokenB )
*
*
Domain A Domain B
Domain B STS
3. RST( TokenA)
4. RSTR ( TokenB )
Slika br.14 Model indirektnog brokerskog poverenja [88]
3.1.5 WS-Secure Conversation
WS-Secure Conversation, definiše i implementira ključ za šifrovanje koji se deli između svih
entiteta uključenih u komunikacionu sesiju. Izvorni entitet definiše algoritam šifrovanja i
generiše ključ koji je ugrađen u SOAP poruku. Kada odredišni entiteti primaju poruku, oni je
dešifruju i dohvataju ključ sesije, koji se zatim može koristiti za olakšavanje sigurne
komunikacije do kraja sesije.[89]
WS-Secure Conversation, obezbeđuje bezbednu sesiju za dugotrajnu razmenu poruka i
korišćenje simetričnog kriptografskog algoritma. Sigurnost zasnovana na sesiji optimizira
razmenu poruka, jer se simetrična kriptografija može koristiti za potpisivanje i šifrovanje
poruka. Tipično, simetrični kriptografski algoritam je manje intezivan za CPU od asimetrične
kriptografije. Simetrični kriptografski algoritmi treba da obezbede bolje performanse i
propusnost u poređenju sa asimetričnim kriptografskim algoritmima. Simetrični kriptografski
algoritam takođe obezbeđuje sredstva za obezbeđivanje drugih protokola zasnovanih na sesiji
i obrazaca razmene.[90]
3.1.6 WS-Addressing
WS-Addressing, adresiranje veb usluga definiše dva interoperabilna konstrukta koja prenose
infromacije koje se obično obezbeđuju transportnim protokolima i sistemima za razemnu
poruka. Ovi konstrukti normalizuju ovu osnovnu informaciju u jedinstven format koji se
može obraditi nezavisno od transporta ili primene. Dve konstrukcije su reference krajnje
tačke i zaglavlja informacija o poruci.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
68
WS-Addressing pruža tranportno neutralan mehanizam za adresiranje veb servisa i njihovih
povezanih poruka. Koristeći WS-Addressing, krajnje tačke su jedinstveno i nedvosmisleno
definisane u SOAP zaglavlju.[84]
WS-Addressing pruža dve ključne komponente koje omogućavaju neutralno adresiranje,
uključujući:
- ERP (Endpoint reference) – komunicira informacije potrebe za adresiranje krajnje
tačke veb servisa.
- Svojstva adresiranja poruka – komunicira karakteristike poruke od kraja do kraja,
uključujići adresiranje krajnje tačke izvora i odredišta i identitet poruke, što
omogućava jednoobrazno adresiranje poruka nezavisno od osnovnog transporta.[84]
Krajnja tačka veb usluge je entitet, procesor ili resurs na koji se mogu ciljati poruke veb
servisa. Reference krajnje tačke prenose informacije potrebne za identifikaciju /reference
krajnje tačke veb servisa. Reference krajnje tačke su pogodne za prenošenje informacija
potrebnih za pristup krajnjoj tački veb usluge, ali se takođe koriste za obezbeđivanje adresa
za pojedinačne poruke i od veb servisa. [83]
Listing br.10 prikazuje jednoobrazno adresiranje poruka nezavisno od osnovnog transporta,
gde su zaglavlja informacija o poruci prenose karakteristike poruke od kraja do kraja,
uključujući adresiranje krajnjih tačaka izvora i odredišta, kao i identitet poruke. Primer
ilustruje upotrebu ovih mehanizama u SOAP poruci koja se šalje sa
http://business456.example/client1 to http://fabrikam123.example/Purchasing:
Listing br.10 [83]
(001) <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
(002) <S:Header>
(003) <wsa:MessageID>
(004) uuid:6B29FC40-CA47-1067-B31D-00DD010662DA
(005) </wsa:MessageID>
(006) <wsa:ReplyTo>
(007) <wsa:Address>http://business456.example/client1</wsa:Address>
(008) </wsa:ReplyTo>
(009) <wsa:To>http://fabrikam123.example/Purchasing</wsa:To>
(010) <wsa:Action>http://fabrikam123.example/SubmitPO</wsa:Action>
(011) </S:Header>
(012) <S:Body>
(013) ...
(014) </S:Body>
(015) </S:Envelope>
Linija (002) do (011) predstavljaju zaglavlje SOAP poruke gde se koriste mehanizmi
definisani u specifikaciji. Telo je predstavljeno linijama (012) do (014). Linije (003) do (010)
sadrže blok zaglavlja informacija o poruci. Konkretno, linije (003) do (005) specificiraju
identifikator za ovu poruku i linije (006) do (008) specificiraju krajnju tačku kojoj odgovori
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
69
na ovu poruku treba da šalju kao endpoint reference. Linija (009) specificira URI adresa
krajnjeg primaoca ove poruke. Linija (010) određuje URI akcije koji identifikuje očekivanu
semantiku.
Da bi se ispravno obezbedile poruke, telo i elementi zaglavlja moraju biti uključeni u potpis.
Konkretno, zaglavlja informacija o poruci koja je opisana u prethodnom primeru, moraju biti
potpisana sa telom kako bi se vezali zajedno. Kad god je naveden adresa (npr.
<wsa:From>,<wsa:ReplyTo>....), procesor treba da osigura da su potpisu date tvrdnje koje
mu dozvoljavaju da govori za određeni cilj, kako bi se sprečile određene klase napada (npr.
preusmeravanje). Takođe, treba voditi računa da specificirana krajnja tačka sadrži svojstva
resursa ili parametre, jer nepotvrđene reference krajnje tačke mogu uzrokovati određene
klase napada ubacivanja zaglavlja.[83]
Koristeći WS-addressing, korisnici imaju sledeće pogodnosti:
- WS-Addressing pruža mehanizam za prenos poruka nezavisan od transporta, što
obezbeđuje interoperabilnost između veb servisa koji se izvode na različitim
platformama.
- WS-Addresing se može koristiti za promenu odredišta poruke odgovora ažuriranjem
EPR-a u <wsa:ReplyTo>. [85]
Slika br. 15 prikazuje infrastrukturu firme, gde usluge distribucije rade na različitim
platformama. Odredište poruke odgovora se modifikuje kada se odabere distributivni servis
na koji se poruka preusmerava. Kompanija ima nekoliko distributivnih centara u više
različitih zemalja, svaki od distributivnih centara je predstavljen u ovom primeru od strane
distributivnog servisa i registrovan je u konfiguracionom servisu. Usluga isporuke bira koji je
distributovni servis najprikladniji za obradu naloga na osnovu različitih faktora, koji mogu
uključivati dostupnost traženih stavki i udaljenost distributivnog centra kupca.[85]
Slika br.15 prikazuje način na koji usluge međusobno komuniciraju, takođe prikazuje i druge
usluge, koje su isključene iz zadatka, a koje mogu biti relevantne u poslovnoj aplikaciji:
- Usluga praćenja, koja može biti ažurirana od strane svake druge usluge sa statusom
naloga,
- Usluga rešavanja problema za obradu poruka o greškama,
- Usluga povratnog poziva naručioca klijenta za obradu svih poruka odgovora upućenih
klijentu naručiocu.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
70
Slika br.15 Primer distributivnog centra [85]
Sledeći koraci opisuju proces koji se odvija od trenutka kada klijent postavi porudžbinu do
tačke u kojoj se ta porudžbina obrađuje:
- Klijent postavlja narudžbinu na veb sajt kompanije.
- Naručilac uzima kontakt podatke kupca kao deo narudžbine.
- Naručilac vraća potvrdu i jedinstvenu referencu narudžbine klijentu putem veb
interfejsa.
- Naručilac šalje zahtev za narudžbinu Službi za izvršenje.
- Usluga izvršenja bira distributivni servis za obradu narudžbine i preusmerava poruku
odgovora na tu uslugu.
- Distributivni servis prima preusmerenu poruku odgovora i obrađuje narudžbinu.
Korišćenje konzistentnog modela adresiranja u više transportnih sistema može pojednostaviti
neke problem integracije i pomoći u implementaciji sistema u kojima dispečeri šalju zahteve
na jednu od nekoliko povezanih usluga koristeći reference krajnje tačke.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
71
3.1.7 WS-Reliability
WS-Reliability, pouzdanost veb usluga je generički i otvoreni model za obezbeđivanje
pouzdane isporuke poruka za veb usluge. Omogućava pouzdanu isporuku poruka kao
mogućnost da garantuje isporuku poruka softverskim aplikacijama, veb uslugama ili
klijentskim aplikacijama, sa izabranim nivoom kvaliteta usluge (QoS), koji je definisan kao
sposobnost da se odrede sledeći aspekti isporuke poruka: upornost poruke, potvrda poruke i
ponovno slanje, eliminacija duplikata poruka, uređeno slanje poruka, svesnost statusa
isporuke pošiljaoca i primaoca.[98]
Specifikacija WS-Reliability obezbeđuje WSDL defiinicije za pouzdane poruke i formate
poruka koji su navedeni kao SOAP zaglavlja i/ili sadržaj tela. On adresira zavisnost između
kapaciteta čvorova za razmenu poruka i nivoa QoS-a koji se može tražiti.[98]
WS-Reliability je specifikacija za otvorene, pouzdane veb servise za razmenu poruka,
uključujući garantovanu isporuku, ukljanjanje duplikata poruka i naručivanje poruka, što
omogućava pouzdanu komunikaciju između veb servisa. Funkcije pouzdanosti su zasnovane
na proširenjima SOAP poruka, umesto da budu vezane za osnovni transportni protokol.[100]
3.1.8 WS-Reliable messaging
Ključ WS-RM je koncept sekvence. Sekvenca u WS-RM je ugovor između klijenata veb
servisa i provajdera veb servisa, kroz koji se slažu da pouzdano šalju poruke između njih.
Sekvenca se koristi za održavanje stanja poruka koje su poslate i primljene. Sama sekvenca
je specifična za krajnju tačku provajdera. Kada klijent prvi put pošalje poruku krajnjoj tački
dobavljača veb servisa, kreira se sekvenca do krajnje tačke tog provajdera, a sve naredne
poruke tog klijenta do krajanje tačke tog provajdera se isporučuju u toj sekvenci. Sekvenca
dozvoljava WS-RM na strani klijenta i na strani provajdera da odluče da li je potrebno da se
poruke ponovo dostave, i da otkriju da li su dolazne poruke duplikati.[99]
Pouzdanost se obezbeđuje pouzdanim middleware-om za razmenu poruka koji se nalazi
između zahtevaoca veb servisa i provajdera veb servisa. Ovaj sloj middleware je prikazan na
slici br.16 ispod isprekidane linije i uključuje pouzdan izvor poruka i pouzdanu destinaciju za
razmenu poruka.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
72
Slika br. 16 Interakcije koje se koriste za pouzdanu razmenu poruka u veb servisima [101]
Na slici br.16 izvor aplikacije poziva veb servis. Redosled interakcija je sledeći:
- Poziv se prosleđuje pouzdanom izvoru podataka.
- Izvor pouzdanih poruka čuva poruku i zatim vraća kontrolu aplikaciji.
- Izvor pouzdanih poruka šalje poruku pouzdanom odredištu za razmenu poruka.
- Nakon što pouzdano odredište za poruke primi poruku, ona je pohranjuje lokalno i
šalje poruku potvrde natrag pouzdanom izvoru poruka.
- Izvor pouzdanih poruka sada može izbrisati svoju kopiju poruke.
- Odredište pouzdane razmene poruka može isporučiti poruku odredištu aplikacije u
bilo koje vreme, nakon što je primi od izvora pouzdanih poruka.[101]
3.2 Analiza postojećih rešenja u oblasti
3.2.1 Bezbednost veb servisa u poslovnim aplikacijama
Ono što je veb uradio za interakciju između programa i korisnika, veb usluge su spremne da
urade za interakciju između programa. Veb usluge omogućavaju kompanijama da smanje
troškove elektronskog poslovanja, brže implementiraju rešenja i otvaraju nove mogućnosti.
Ključna stvar je zajednički model komunikacije između programa, zasnovan na postojećim i
novim standardima kao što su HTTP, XML, SOAP, WSDL i UDDI. [64]
Širenje ideje o distribuiranoj obradi podataka i deljenju funkcionalnosti sa drugim
organizacijama dovelo je do ubrzanog razvoja Veb-a. Organizacije više nisu usmerene
isključivo na razvoj sopstvenih aplikacija kako bi unapredile poslovanje, već određeni deo
svog poslovanja otvaraju zajednici i čine ga dostupnim široj javnosti. Međutim, deljenje
funkcionalnosti znači i deljenje njenih nedostataka, odnosno sigurnosne slabosti jednog
servisa imaju uticaj i na poslovanje organizacija koje taj servis koriste. Porast upotrebe veb
servisa u svakodnevnom poslovanju povećava potrebu za konkretnijim sigurnosnim
metodologijama.
Veb usluge omogućavaju da se aplikacije integrišu brže, lakše i jeftinije. Integracija se odvija
na višem nivou u skupu protokola, na osnovu poruka koje su više usredređene na semantiku
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
73
servisa, a manje na semantiku mrežnog protokola, čime se omogućava integracija poslovnih
funkcija. Ove karakteristike su idealne za povezivanje poslovnih funkcija preko veb-a
između preduzeća i unutar preduzeća. Oni pružaju model ujedinjenog programiranja tako da
se integracija aplikacija unutar i izvan preduzeća može obaviti pomoću zajedničkog pristupa,
koristeći zajedničku infrastrukturu.[64]
Tehnologije veb servisa se sve više primenjuju u poslovnim organizacijama kako bi ostvarile
međusobnu saradnju. Veb servisi pružaju velike pogodnosti produktivnost, efikasnost i
tačnost. Uključeni u poslovne mreže, veb usluge mogu da podrže i unutrašnje i spoljašnje
poslovne operacije uključujući e-trgovinu, finansije, proizvodnju, upravljanje lancem
snabdevanja i odnose sa klijentima. Veb servisi su usmereni na distribuirane aplikacije koje
dozvoljavaju poslovanje preko interneta. Veb servise karakteriše otvorenost i
interoperabilnost što upravo može omogućiti napadačima da dobiju pristup podacima u
transakcijama i dobiti poverljive podatke, čak i ukrasti osetljive informacije kao što su podaci
o kreditnim karticama. Neovlašćeni pristup sadržaju, zlonamerna modifikacija, prihvatanje
pogrešnih informacija ili prekid može uzrokovati sigurnosnu pretnju informacionog sistema
organizacije.[43]
U distribuiranom sistemu, klijenti šalju zahteve za pristup podacima kojima upravljaju
provajderi, što uključuje slanje informacija u porukama preko mreže. Doktor može da zatraži
pristup podacima o bolničkim pacijentima ili da pošalje dopune tim podacima. U
elektronskoj trgovini i bankarstvu, korisnici šalju svoje brojeve kreditinih kartica preko
interneta. U oba primera izazov je slanje osetljivih informacija u poruci preko mreže na
siguran način. Ali bezbednost nije samo pitanje prikrivanja sadržaja poruka, ona takođe
podrazumeva da se sigurno zna identitet korisnika ili drugog korisnika u čije ime je poruka
poslata. U prvom primeru, server treba da zna da je korisnik zaista doktor, a u drugom,
korisnik treba da bude siguran u identitet prodavnice ili banke. Drugi izazov je ispravno
identifikovati udaljenog korisnika. Svi ovi izazovi se mogu zadovoljiti upotrebom šifrovanja
i drugih tehnika i specifikacija bezbednosti razvijenih u tu svrhu.
3.2.2 WS-BPEL
WS-BPEL (Web Services Business Process Execution Language) je jezik izvršavanja
poslovnih procesa. Procesi u WS-BPEL su zasnovani isključivo na upotrebi veb servisa.
Poslovni procesi se mogu opisati na dva načina. Izvršni poslovni procesi, modeliraju
aktuelno ponašanje učesnika u poslovnoj interakciji. Apstraktni poslovni procesi su
delimično specificirani procesi koji nisu predviđeni za izvršenje, mogu sakriti neke od
potrebnih konkretnih operativnih detalja. Oni služe deskriptivnoj ulozi, sa više od jednog
mogućeg slučaja upotrebe, uključujući vidljivo ponašanje i obrazac procesa. WS-BPEL
obezbeđuje jezik za specifikaciju izvršnih i apstraktnih poslovnih procesa. Na taj način se
proširuje model interakcije veb servisa i omogućava se podrška poslovnim transakcijama.
WS-BPEL definiše interoperabilni model integracije koji bi trebalo da olakša ekspanziju
automatizovane integracije procesa u modelu B2B (bisiness-to-business).[93]
WS-BPEL se zasniva na XML-u i definiše model i sredstva za opisivanje ponašanja procesa i
omogućava izvršavanje procesa, koji se sastoje od poziva veb servisa. BPEL jezik su razvili
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
74
Microsoft i IBM, a standardizovao ga je OASIS konzorcijum. BPEL jezik je savršeno
prilagođen jasnom opisu procesa kojim se procesi mogu mehanički koristiti. BPEL jezik
omogućava opis ponašanja poslovnih procesa kao niz aktivnosti, uključujući i njihove grane,
koje su uključene u proces, dok su aktivnosti predstavljene veb servisima.[94]
Cilj veb usluga je postizanje interoperabilnosti između aplikacija pomoću veb standarda. Veb
usluge koriste labavo povezani model integracije da bi omogućile fleksibilnu integraciju
heterogenih sistema u različitim domenima, uključujući integraciju između preduzeća i
potrošača, poslovne veze i poslovne aplikacije. Integracija sistema zahteva više od
sposobnosti da se sprovedu jednostavne interakcije korišćenjem standardnih protokola.
Potpuni potencijal veb suluga kao integracione platforme će se postići samo kada aplikacija i
poslovni procesi mogu da integrišu svoje složene interakcije koristeći standardni model
integracije procesa. [93]
Poslovni procesi uključuju ponašanje koje zavisi od podataka. Na primer, proces lanca
snabdevanja zavisi od podataka kao što su broj stavki u narudžbini, ukupna vrednost
porudžbine ili rok isporuke. Definisanje poslovne namere u tim slučajevima zahteva upotrebu
uslovnih i vremenskih konstrukcija. Dugotrajne interakcije uključujući višestruke, često
ugnježdene jedinice rada, od kojih svaka ima svoje potrebe za podacima. Poslovni procesi
često zahtevaju međusobnu koordinaciju rezultata jedinica rada na različitim nivoima
granularnosti.[93]
WS-BPEL definiše model i gramatiku za opisivanje ponašanja poslovnog procesa
zasnovanog na interakciji između procesa i njegovih partnera. Interakcija sa svakim
partnerom odvija se preko interfejsa veb servisa, a struktura odnosa na nivou interfejsa je
enkapsulirana u tzv. partnerLink. WS-BPEL proces definiše kako se višesturke interakcije
usluga s tim partnerima koordiniraju kako bi se postigao poslovni cilj, kao i stanje i logika
potrebna za ovu koordinaciju.[93]
BPEL je model za agregaciju veb servisa, što omogućava da skup veb servisa može biti
vezan u jedan ili više novih veb servisa pomoću modela poslovnog procesa, a ove nove
usluge se mogu ponovo povezati sa drugim veb servisima. Može se izgraditi skup korisnih
podprocesa koji se mogu ponovo koristiti kako bi se olakšao brz razvoj složenih BPEL
procesa. [95][97]
Slika br.17 prikazuje primer primene WS-BPEL kroz proces narudžbine. Tačkaste linije
predstavljaju sekvenciranje. Slobodno grupisanje sekvenci predstavlja paralelne sekvence.
Pune strelice predstavljaju upravljačke veze koje se koriste za sinhronizaciju preko
istovremenih aktivnosti. Po prijemu narudžbenice od kupca, proces pokreće tri puta
istovremeno: izračunavaje konačne cene za narudžbinu, odabir pošiljaoca i zakazivanje
proizvodnje i isporuke po narudžbini. Dok se neke obrade mogu odvijati istovremeno,
postoje tri zavisnosti kontrole i podataka. Cena dostave je potrebna da se finalizira
izračunavanje cene, a datum isporuke je potreban za kompletan rasprored izvršavanja. Kada
se završe tri istovremene aktivnosti obrada fakture se može nastaviti i faktura se šalje
klijentu.[93]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
75
Slika br.17 WS-BPEL- Proces narudžbine [93]
3.2.3 Bezbednost WS-BPEL
Od presudne važnosti je kontrolisati pristup BPEL procesima i veb uslugama koje se koriste.
Sprečavanje neovlašćenih korisnika da izvrše napad na poslovni sistem je neophodno kako bi
se zaštitio integritet poslovnih procesa i lične informacije klijenata.[96]
Impementacija bezbednosti se ostvaruje pomoću:
- WS-Security – obezbeđuje mehanizam za dodavanje tri nivoa bezbednosti SOAP
porukama. To su tokeni za proveru autentičnosti, koji se koriste za prosleđivanje
informacija o korisničkom imenu i lozinki, kao i X.509 sertifikata u zaglavlju SOAP
poruka. XML enkripcija, za poverljivost poruka i XML digitalni potpisi, za integritet
poruke, proveru valjanosti izvora poruka i porekla i za neporicanje.
- Autentifikacije – koja obezbeđuje dokazivanje identiteta korisnika. Podržavana je
osnovna autentifikacija (HTTP), autentifikacija zasnovana na sertifikatima (HTTPS) i
autentifikacija BPEL sigurnosnog proširenja.
- Autorizacije – procene sigurnosnih ograničenja za slanje poruke ili slanje zahteva.
Autorizacija koristi specifične kriterijume kako bi odredila da li da dozvoli zahtev.
Kriterijumi su autentifikacija i ograničenje.
- Enkripcije i dekripcije – šifrovanje podataka na takav način da samo određeni
primalac može dešifrovati i pročitati podatke.
- SSL – je standard za siguran prenos dokumenata preko interneta koristeći HTTP/S,
koristi digitalne potpise da bi sprečio kompromitovanje podataka.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
76
- Digitalnog potpisa za integritet i ne-odbacivanje – digitalni potpis je kod priložen
elektronskom dokumentu koji pouzdano identifikuje autora ili pošiljaoca i potvrđuje
da dokument nije ugrožen.
- BPEL Security Extension – su namenjene BPEL programerima za poboljšanje
sigurnosti, omogućavaju im da kreiraju prilagođenu bezbednost. Proširenja su
tehnička i uključuju različite tehnologije koje se koriste za pozivanje procesa (na
primer, SOAP i HTTP). [96]
3.2.4 ebXML
ebXML (The Electronic Business Extensible Markup Lanuage) je sveobuhvatni B2B
(bisiness to business) okvir koji uključuje registar, kao i druge informacije potrebne za
poslovnu saradnju na globalnom elektronskom tržištu. Okvir je razvijen kao zajednički napor
Organizacije za unapređenje strukturiranih informacionih standarda (OASIS) i Centra
Ujedinjenih nacija za olakšavanje trgovine i elektronskog poslovanja (UN/CEFACT).
Registar sadrži profil saradničkog protokola CPP (Collaboration Protocol Profile) i
sporazum o protokolu saradnje CPA (Collaboration Protocol Agreement). CPP je XML
dokument koji sadrži informacije o poslovanju i način na koji se razmenjuju informacije, a
CPA je XML dokument koji opisuje specifične mogućnosti koje su dve strane pristale da
koriste u poslovnoj saradnji.[59]
ebXML specifikacija omogućava elektronske trgovinske odnose između poslovnih partnera i
integraciju novih tehnologija:
- razmenu podataka, CCTS ( Core Components Technical Specification)
- registraciju i obezbeđivanje eBusiness proizvoda i usluga, ebXML (ebXML Registry
Services) i ebRIM (Registry Information Model ),
- konfigurisanje tehničkih ugovora između poslovnih partnera, CPP i CPA,
- siguran i pouzdan transport (ebXML Messaging Service),
- poslovne procese (ebXML Business Process Specification Schema)[60]
Heterogena priroda transakcija e-poslovanja zahteva fleksibilnu infrastrukturu koja podržava
jednostavne servisne pozive i složenu razmenu dokumenata. [60]
Slika br.18 prikazuje funkcionalnost skupa specifikacija ebXML-a.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
77
Slika br.18 Pregled visokog nivoa funkcionalnosti skupa specifikacija ebXML [60]
Tehnička specifikacija osnovnih komponenti ebXML-a predstavlja metodologiju za razvoj
semantičkih gradivnih blokova, kako bi se predstavili opšti poslovni tipovi podataka.
Omogućava ponovno korišćenje podataka. Razvijen je centru UN za olakšavanje trgovine i
e-poslovanje. Omogućava zajednički koncept modeliranja objekata, konvenciju o
imenovanju za definisanje generičkog semantičkog značenja, fiksni skup tipova podataka
koji se mogu ponovo koristiti za konzistentno predstavljanje poslovnih vrednosti.
ebXML messaging service definiše neutralnu metodu komunikacije za razmenu poruka u
e-poslovanju, funkcije za razmenu poruka, protokol i omotnicu namenju za rad preko
SOAP-a. Vezivanje za niže transportne slojeve oslanja se na standradne SOAP veze tamo
gde je potrebno. Ova usluga izražava kompatibilnost ili potrebu sa tehnologijama veb servisa.
Koristi specifikacije zasnovane na SOAP-u i postojeće implementacije koje upravljaju
kvalitetom usluge zbog pouzdanosti i bezbednosti. Mogućnosti uključuju:
- vezivanje sa poslovnim sistemima,
- bezbednost: provera autentičnosti, autorizacije i neporečivosti,
- pouzdano slanje poruka: garantovana isporuka, eliminacija duplikata i naručena
isporuka,
- digitalni potpis,
- delegiranje funkcija protokola standardima veb servisa,
- obrasce za razmenu poruka (za poslovne transakcije i praćenje),
- povlačenje poruka,
- kompatibilnost sa WS-I osnovnim profilom, jednostavnim SOAP vezivanjem i WS-
security.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
78
Poslovna primenljivost – ključne implementacije:
Nacionalna služba Ujedinjenog Kraljevstva je implementirala sisteme i usluge koje povezuju
zdravstvenu zaštitu. Usluga transakcija i poruka pruža komunkacionu infrastrukturu za
povezivanje klastera regionalnih mreža i nacionalnih usluga. Zasnovan je na naprednoj
tehničkim standardima kao što je OASIS SAML (Security Accertion Markup Language) i
ebMS. Koristi se u velikim kompanijama sa ogromnim transakcijama kao što su Deutche
Bank, Shel, Centar za razvoj infrastructure e-trgovine (CECID).[60]
Profil i sporazum o protokolu za saradnju sa ebXML-om obezbeđuje vezu između tehničkih
mogućnosti i očekivanja partnera za poslovnu saradanju. Profil sadrži tehničke mogućnosti
poslovnog partnera. Opisuje mogućnosti i preferencije karakteristika protokola i svojstva za
specifične uloge u komponentnim uslugama i aktivnostima koje se koriste u procesima.
Omogućava praćenje sesija i verifikaciju karakteristika kanala isporuke koji se koriste u
kolaborativnim procesima. Sporazum sadrži podatke za konfigurisanje zajedničkih aspekata
protokola poslovne saradnje. Nacrt CPP/CPA uključuje:
- Okvir proširenja za alternativno slanje poruka, poslovne procese i mogućnosti kao što
je ebBP,
- Proširenje mogućnosti prenosa za obrasce za razmenu poruka,
- Povećana kompozicija više izloženih usluga.
Poslovna primenljivost – u automobilskoj industriji – zastupništvu; lancu snabdevanja i
upravljanju zalihama. Veb pristup razvoju CPA-a preovladava u zajednicama sa ograničenim
pristupom za usluge slanja i konfigurisanja poruka. Američki CDC i PHIN i evropski projekti
zdravstvene zaštite i nekoliko telekomunikacionih mreža koriste ovu kombinaciju.[60]
ebBP šema specifikacije poslovnih procesa ebXML-a, definiše standardni jezik za
konfigurisanje sistema za izvršavanje poslovne saradnje između partnera. Definicija
poslovnih procesa, opisuje interoperabilne poslovne procese koji omogućavaju partnerima da
ostvare poslovne ciljeve: dizjan/opis procesa podrške, praćenje i validaciju saradnje,
upravljanje.
ebBP specificira transakcije, koreografiju za koriščenje u poslovnoj saradnji. Osnovne
mogućnosti su: standardni i proširivi uzorci poslovnih transakcija, poslovna saradnja za dve i
više stranki, omogućava vidljivost treće strane u poslovnoj transkaciji, kada ta definicija
procesa postoji negde drugde, omogućava upotrebu hibrida ebXML ili veb servisa,
kompleksna podrška za definiciju uloga, poboljšava povezivanje konstrukcija i prelaza za
procesni životni ciklus, koristi semantičke informacije za specijalizaciju procesa i
dokumenata.
Poslovna primenljivost – ebBP se koristi u ključnim domenima – zdravstvena zaštita,
e-uprava, krivično pravosuđe, e-poslovanje.[60]
Registri i repozitoriji pružaju usluge za registraciju, lociranje i pristup informacijama u
distribuiranom okruženju. Funkcije uključuju:
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
79
- Podršku registracije,
- Replicirani sadržaj/metapodaci,
- Sigurnosna poboljšanja:XACML, SAML,
- Proširiv servisni interfejs i protokole,
- Definiciju novih zahteva za uslugama i tipovima odgovora,
- HTTP povezivanje na ebXML usluge interfejsa,
- Upotreba REST arhitekture,
- Upravljanje sadržajem (validacija),
- Poboljšavanje upita.
Poslovna primenljivost – usvajanje je u porastu u vladinim i domenskim sektorima: Vlade
Norveške i Finske – implementacija za okruženje bazirano za sastavljanje XML šema i
elektronskih obrzaca, UN/CEFACT grupa za upravljanje sadržajem informacija ICG je
usvojila standardni XML registar za njihovu arhitekturu za upravljanje sadržajem. Korejski
centralni registar i repozitorijum ebXML povezao je nekoliko domena: gvožđe i čelik,
trgovinski sektor i softverske provajdere. NIST sarađuje sa Integracijom zdravstvenog
sistema na razvoju Cross-Enterprise sistema za razmenu dokumenata XDS.[60]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
80
4. EMPIRIJSKO ISTRAŽIVANJE POSTOJEĆIH REŠENJA
U okviru empirijskog istraživanja postojećih rešenja će biti analizirani primeri iz realne
prakse kroz prikaz načina korišćenja metoda i tehnika bezbednosti veb servisa, upotreba
UserName tokena prilikom poziva veb servisa u veb aplikaciji i upotreba elektronskog
sertifikata kao mehanizma provere elektronskog potpisa i identiteta potpisnika.
4.1 Veb servisi Narodne Banke Srbije
Narodna banka Srbije izvestan skup svojih podataka publikuje javnosti putem skupa
odgovarajućih javnih veb servisa. Na taj način je javnosti omogućen pristup podacima koji su
u posedu Narodne banke Srbije, upotrebom konzistentnih programskih interfejsa, zasnovanih
na usvojenim svetskim standardima.[102]
Putem sistema veb servisa, Narodna banka Srbije omogućava pravnim subjektima da
automatizuju pristup ponuđenim podacima i da ih koriste u svojim informacionim sistemima
na način koji najviše odgovara njihovim potrebama. Registrovani korisnici veb servisa
dobijaju mogućnost pristupa javnim podacima Narodne banke Srbije, putem konzistentnog
skupa programskih interfejsa. Na taj način im je omogućeno da ponuđene podatke integrišu u
svoje infromacione sisteme korišćenjem širokog spektra programskih tehnologija. Korisnici
razvijaju svoje aplikativne module i koriste podatke na način koji najviše odgovara njihovim
poslovnim potrebama.[102]
Veb servis Narodne banke Srbije se sastoji od dva skupa servisa:
1. Besplatni servisi:
- Servis za pristup osnovnim šifarnicima,
- Servis za pristup kursnim listama,
- Servis za pristup tekućoj kursnoj listi,
- Servis za prisup kursnim listama po menjačkim poslovima,
- Servis vrednosti investicionih jedinica dobrovoljnih penzionih fondova,
- Servis za pristup efektivnim prekonoćnim stopama,
- Servis za pristup registru imalaca računa,
- Servis za pristup registru primljenih neizvršenih rešenja u prinudnoj naplati,
- Servis za pristup registru učesnika na tržištu osiguranja,
- Servis statistike korišćenja usluge.
2. Servisi koji se tarifiraju:
- Servis za pristup registru dužnika u prinudoj naplati.
Prednosti korišćenja sistema:
- Jednostavna integracija javnih podataka NBS u softverske sisteme korisnika usluga,
- Stalan (24x7) pristup podacima sa svakog računara korisnika usluge koji ima pristup
internetu,
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
81
- Smanjenje rizika prouzrokovanih ljudskim faktorom,
- Smanjenje troškova (automatizacijom procesa pristupa podacima).
Pravo pristupa i korišćenja usluga sistema imaju pravna lica koja su uspešno izvršila proces
učlanjenja u sistem veb servisa Narodne banke Srbije. Učlanjenjem u sistem, korisnik
automatski stiče pravo korišćenja besplatnih usluga. Učlanjenje u sistem veb servisa se vrši
podnošenjem zahteva za učlanjenje na elektronsku adresu naznačenu na zahtevu za
učlanjenje, nakon čega korisnik dobija e-mail sa detaljnim uputstvom o daljim koracima
potrebnim za uspešno podnošenje prijave. Postupak se sastoji od sledećih koraka:
potvrđivanja zahteva za učlanjenje, štampanje zahteva i slanje odštampanog, overenog i
potpisanog zahteva na adresu Narodne banke Srbije.
Narodna banka Srbije na osnovu tog zahteva, otvara nalog za korišćenje usluga sistema sa
korisničkim imenom i lozinkom. Podaci od interesa za korišćenje usluga sistema veb servisa
(šifra licence) se dostavlja na elektronsku adresu, nakon otvaranja naloga za korišćenje
usluga sistema.
Slika br.19 prikazuje logovanje na veb servis sistem NBS prilikom procesa učlanjenja.
Slika br.19 Logovanje na veb servis sistem NBS
Ukoliko korisnik želi da koristi usluge koje se tarifiraju potrebno je da izvši procedure
aktiviranja usluga koje se tarifiraju. Postupak za aktiviranje usluga koje se tarifiraju se sastoji
iz sledećeg: logovanja na sistem čime se ulazi u zaštićenu zonu sajta, namenjenu samo
registrovanim korisnicima, popunjavanje i podnošenje zahteva i na osnovu tog zahteva
Narodna banka Srbije šalje elektronsku poštu sa obaveštenjem u kome su definisani podaci
za uplatu koju treba izvršiti odmah ili u roku od dva dana. Nakon prispeća uplate, Narodna
banka Srbije prosleđuje fakturu i registruje u korisničkom nalogu uplaćenu sumu i
omogućava korišćenje servisa prema uplaćenom iznosu.[102]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
82
4.1.1 Način korišćenja veb servisa
Implementacija veb servisa se sastoji iz sledećih koraka:
- Kreiranje veb servis klijenta na osnovu WSDL specifikacije servisa,
- Implementacija programskog koda, koji omogućava pozivanje metoda servisa.
Prilikom kreiranje veb servis klijenta biće generisana klasa AuthenticationHeader, koja
sadrži sledeća svojstva: UserName, Password, LicenceID. Ovi parametri služe za
autentifikaciju i autorizaciju korisnika prilikom poziva servisa i dobijaju se od Narodne
banke Srbije nakon učlanjenja. Prilikom poziva metoda servisa potrebno je proslediti
instance AuthenticationHeader klase sa postavljenim parametrima. Listing br.11 prikazuje
sve korake potrebne za implementaciju mehanizma autentikacije na veb servis klijentu.
Konkretan kod zavisi od tehnologije u kojoj se veb servis klijent implementira.[103]
Listing br.11 [103]
// instanciranje AutehenticationHeader klase i dodela vrednosti parametrima
AuthenticationHeader authHeader=new AuthenticationHeader();
authHeader.UserName="**********";
authHeader.Password="**********";
authHeader.LicenceID="00000000-0000-0000-0000-000000000000";
// prosleđivanje instance AuthenticationHeader klase
serviceClient.AuthenticationHeader=authHeader;
// pozivanje metode servisa
serviceClient.GetCurrentExchangeRate(1);
Slika br.20 prikazuje SOAP zaglavlje sa korisničkim imenom, lozinkom i šifrom licence.
Slika br.20 SOAP header [104]
U veb servis sistemu NBS, komunikacija između veb servis klijenta i servera se obavlja
preko HTTPS protokola. HTTPS protokol obezbeđuje da podaci koji se razmenjuju između
servera i klijenta, putuju kroz internet mrežu u zaštićenom obliku.
Zaštićena komunikacija preko HTTPS protokola, u sistemu veb servisa NBS, obezbeđena je
postavljanjem odgovarajućih serverskih sertifikata i konfiguracijom aplikacije. Serverski
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
83
sertifikat sa kojim radi veb servis sistem, izdat je Narodnoj banci Srbije od strane Pošte, koja
je zvanično autorizaciono telo, ovlašćeno za izdavanje sertifikata.
Pri uspostavljanju komunikacije sa veb servis sistemom, klijent može biti konfigurisan na
dva načina:
- Da ne proverava validnost serverskog sertifikata,
- Da proverava validnost serverskog sertifikata.
U prvom slučaju, biće uspostavljena komunikacija preko HTTPS protokola, ali klijent neće
proveravati validnost serverskog sertifikata. U drugom slučaju, kako je izdavalac serverskog
sertifikata Pošta, potrebna je instalacija Poštinih sertifikata na klijentskom računaru na
kojima rade veb servis aplikacije. Sertifikati su: Posta CA Root i Posta CA 1.
U sistemu veb servisa NBS postoje dva tipa servisa:
- Servis čije metode vraćaju objekte tipa DataSet,
- Servis čije metode vraćaju objekte tipa String.
Metode ova dva tipa servisa imaju ista imena i iste ulazne parametre, a razlikuju se u tipu
objekta koji vraćaju.
Slika br.21 prikazuje opis i metode servisa za pristup tekućim kursnim listama.
Slika br.21 Servis za pristup tekućim kursnim listama [105]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
84
Slika br.22 prikazuje veb lokaciju servisa za pristup tekućim kursnim listama.
Slika br.22 Lokacija veb servisa NBS za pristup tekućim kursnim listama [106]
Slika br.23 prikazuje metodu veb servisa za pristup tekućim kursnim listama
Slika br.23 Metoda GetCurrentExchangeRateList [107]
Slika br.24 prikazuje strukturu podataka koja odgovara XSD šemi.
Slika br.24 XSD Struktura podataka [108]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
85
4.2 Centralni registar obaveznog zdravstvenog osiguranja (elektronski potpis i
korišćenje veb aplikacije)
Na portalu Centralnog registra obaveznog zdravstvenog osiguranja, obveznik plaćanja
doprinosa, odnosno njegov ovlašćeni zakonski zastupnik ili ovlašćeno lice može:
- Uneti nove i izmeniti postojeće podatke koji se odnose na korisnički nalog,
- Vršiti podnošenje prijave, odjave, odnosno promene na obavezno socijalno osiguranje
za svoje zaposlene, kao i lica osigurana preko njih,
- Vršiti pregled podataka za svoje zaposlene samo za period osiguranja kod datog
obveznika plaćanja doprinosa.[109]
Uslov da bi se korisnici prijavili na sistem je da su prethodno registrovani na portalu
Centralnog registra. Registracija obveznika plaćanja doprinosa je operacija kojom se korisnik
registruje na portal. Preduslov za registraciju je da se korisnik nalazi u bazi Centralnog
registra. Takođe, je potrebno da na računaru bude instaliran čitač kartica i u čitač bude
ubačena odgovarajuča smart kartica koja poseduje kvalifikovani elektronski sertifikat.[109]
Elektronski sertifikat je elektronski dokument koji izdaje sertifikaciono telo. To je elktronska
potvrda kojom se potvrđuje veza između podataka za proveru elektronskog potpisa i
identiteta potpisnika. Može da se shvati kao digitalni identifikacioni dokument jer sadrži
podatke o korisniku sertifikata kao i podatke o njegovom izdavaocu. Sertiffikaciono telo je
pravno lice koje drugim pravnim i fizičkim licima pruža usuge izdavanja elektronskog
sertifikata, kao i druge usluge povezan se ovom delatnošću. U Republici Srbiji postoje četiri
registrovana Sertifikaciona tela, to su: Javno preduzeće PTT, Privredna komora Srbije, MUP
RS i Halcom.[109]
Slike br.25-27 prikazuju strukturu sertifikata (verziju, serijski broj, algoritam, sertifikaciono
telo, period važenja, javni ključ).
Slika br. 25 Struktura sertifikata
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
86
Slika br.26 Struktura sertifikata
Slika br.27 Struktura sertifikata
Izdavalac kvalifikovanih sertifikata, u obavezi je da proveri i identifikuje identitet osobe i
druge podatke vezane za naručioca sertifikata. Takvu identifikaciju može obaviti druga
služba u ime sertifikacionog tela, koja na isti način proverava identitet podnosioca zahteva i
originalnu dokumentaciju za izdavanje kvalifikovanog elektronskog sertifikata i na bezbedan
način ga isporučuje korisniku.
Da bi pravno lice dobilo sertifikat od sertifikaciong tela mora podneti zahtev u elektronskoj
formi zatim overene i potpisane obrasce dostaviti zajedno sa izvodom iz APR-a i kopijom
lične karte poštom ili lično, nakon čega se elektronski sertifikat izrađuje. Nakon toga, na
e-mail adresu korisnik dobija obaveštenje da pametnu karticu/USB ključ i PIN kod može
preuzeti.[110]
Slika br.28 prikazuje formu za registraciju obveznika plaćanja doprinosa pomoću PIB-a za
pravna lica ili JMBG za fizička lica.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
87
Slika br.28 Registracija obveznika plaćanja doprinosa [109]
Slika br.29 Unos PIN-a za validaciju podataka [109]
Nakon unosa PIN-a sistem validira unete podatke i proverava da li je korisnik zakonski
zastupnik ili ovlašćeno lice od strane obveznika plaćanja doprinosa za kog želi da se
registruje i ukoliko jeste, prikazuje se forma u koju korisnik unosi lične podatke, u suprotnom
se prikazuje obaveštenje da dati korisnik nema ovlašćenje da se registruje za izabranog
obveznika plaćanja doprinosa. Što je prikazano na slikama br.28 i 29.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
88
Slika br.30 Forma za unos ličnih podataka [109]
Nakon uspešne registracije korisnika u bazu Centralnog registra, korisnik unosi PIB pravnog
lica za kojeg je ovlašćen kako bi preduzeo radnje u granicama datog ovlašćenja, što je
prikazano slic br.31.
Slika br.31 Forma za unos PIB-a pravnog lica [109]
Lice se može ovlastiti za:
- Osnovni pregled – ovlašćenje koje dozvoljava pregled podataka o osiguranju
zaposlenih kod datog obveznika plaćanja doprinosa.
- Pregeld doprinosa – ovlašćenje koje dozvoljava pregled podataka o doprinosima
zaposlenih kod datog obveznika plaćanja doprinosa.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
89
- Podnošenje prijave – ovlašćenje koje dozvoljava podnošenje prijave/promene/odjave
za datog obveznika plaćanja doprinosa.
- Administratorsko ovlašćenje – ovlašćenje koje dozvoljava dodelu/ukidanje svih
ovlašćenja.
- Poslovna ovlašćenja – ovlašćenje kojim se dodeljuju ili ukidaju sledeća ovlašćenja:
osnovnog predloga, pregleda doprinosa i podnošenja prijave u sistem Centralnog
registra.[109]
Slika br.32 prikazuje tabelarni prikaz nivoa ovlašćenja.
Slika br.32 Tabelarni prikaz nivoa ovlašćenja [109]
Po uspešnoj prijavi u zaglavlju portala su ispisani podaci lica (korisničko ime i JMBG) koje
se prijavilo za rad, kao i PIB/JMBG obveznika plaćanja doprinosa za kojeg je ulogovan. Na
naslovnoj strani se u levom delu portala nalazi spisak funkcionalnosti koje korisnik može da
obavlja shodno obimu dodeljenih prava, odnosno obimu ovlaščenja koja su mu dodeljena za
rad, što je prikazano na slici br.33.
Slika br.33 Naslovna strana portala [109]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
90
5. NAUČNO-STRUČNO ISTRAŽIVANJE
5.1 Pregled sigurnosti poslovnih aplikacija i posledice slabih tačaka u sistemima
Sledeći statistički podaci sajber napada, pokazuju koliko je napada izazvano eksploatacijom
slabih tačaka u sistemima, pretnje sa kojima se suočavaju mala i srednja preduzeća i ogromni
gubici čak i najzaštićenijih preduzeća. Statistika uglavnom pokriva 2018. i 2019. godinu, sa
nekim podacima iz 3-4 protekle godine, kao reference koje će pružiti osećaj razmera.[29]
1. Prema istraživanju Clark School Univerziteta u Merilendu, u pogledu frekvencija sajber
napada, hakeri napadaju uređaje svakih 39 sekundi. Ovo je prvi pokušaj da se kvantificira
skoro konstantna stopa on-line napada.
2. Računari su napadnuti 2.244 puta dnevno, međutim većina njih je neuspešna.
3. Do 2022. godine biće oko 6 milijardi korisnika interneta (75% projektovane svetske
populacije).
4. Do 2020. godine biće oko 200 milijardi povezanih uređaja.
5. Samo 38% globalnih organizacija tvrdi da su adekvatno pripremljene da se nose sa
sofisticiranim sajber napadom. Ako se uzmu u obzir sledeće statistike sajber napada,
jasno je koliko je ovaj podatak obeshrabrujući: oko 54% organizacija doživelo je jedan ili
više značajnih napada u protekloj godini. Studija koju je naručio Microsoft otkrila je da
kompanije u azijsko-pacifičkoj regiji mogu izgubiti čak 1.745 triliona dolara za
kibernetički kriminal.
6. 82% ispitanika smatra da će nove pretnje 2019. godine dovesti do povećanog rizika od
krađe novca i podataka putem sajber napada. 80% takođe očekuje povećanje poremećaja
u poslovanju. Ovo nije iznenađenje ako se razmotre načini na koje uređaji koji se
povezuju postaju sve više integrisani u svakodnevni život.
7. 25. septembra 2018. godine kompromitovano je 50 miliona korisničkih naloga na
facebook-u. Ova ranjivost je omogućila pristup i preuzimanje naloga, što je bio problem
bez presedana za facebook.
8. Uobičajeni mrežni napadi 2018. godine bili su blokovi napada na serverske poruke
(52%), napadi na uskraćivanje usluga (13%), napadi pretraživača (13%) i napadi brutalne
sile (9%).
9. 43% napada cilja mala preduzeća.
10. Preko 140 međunarodnih avio-kompanija je pogođeno velikim kršenjem bezbednosti.
Amadeus sistem rezervacija karata, koji trenutno koristi 141 međunarodni avioprevoznik
i 44% globalnog on-line tržišta rezervacija, bio je kompromitovan. Glavni klijenti su bili
Air Canada, Lufthansa i United Airlines. Napad je omogućio pristup imenima putnika i
svim detaljima za let.
11. Curenje podatka kroz Vladu Oklahome otkrilo je 7-godišnju istragu FBI-a. Ovi napadi su
odličan primer zašto svaka kompanija treba više da uloži u zaštitu arhiviranih podataka.
Najstariji ukradeni podaci potiču iz 1986. godine, a najnoviji je izmenjen 2016. godine.
12. U 2018. godini otkriveno je 40.000 novih pretnji, prema izveštaju McAfee-a, ukupan broj
datoteka sa zlonamernim softverom je porastao za 86%
13. Samo 15% korisnika tvrdi da nije bilo izloženo sigurnosnim pretnjama zasnovanim na
elektronskoj pošti.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
91
14. 73% profesionalaca koji se bave internet bezbednošću tvrde da se učestalost napada
putem elektronske pošte povećava, a 80% organizacija se suočilo se nekom vrstom ovog
tipa napada u protekloj godini.
15. Veliki DDoS napadi su se povećali za 500%, prema izveštaju za drugi kvartal 2018.
godine. Većina DDoS napada koristi botnet-ove i na taj način povećava nivo napada na
više načina. 33% preduzeća je izjavilo da ih je jedan sat zastoja koštao od 1 do 5 miliona
dolara, tako da se može zamisliti koliko katastrofalni DDoS napadi mogu biti.
16. McAfee je otkrio da su vodeće zemlje u kojima su se nalazili botnet kontrolni serveri:
SAD 36%, Nemačka 14%, Rusija i Holandija 5% i sve ostale zemlje 24%.
17. Kibernetički kriminal bi mogao koštati kompanije do 5,2 triliona dolara u narednih pet
godina. Pre oko tri godine Wall Street Journal je procenio da je sajber kriminal koštao
oko 100 milijardi dolara. Juniper Research procenjuje da će globalni sajber kriminal
iznositi 2 triliona dolara. [29]
Prema [30] neki od najvećih sajber napada su:
- Adobe je u oktobru 2013. godine objavio masovni napad IT infrasturkture. Lične
informacije od 2,9 miliona naloga su ukradene (korisniča imena, lozinke, imena,
brojevi kreditinih kartica i datumi isteka). Drugi fajl otkriven na internetu je sadržao
podatke 150 miliona računa od toga 38 miliona aktivnih. Da bi pristupili ovim
informacijama, napadači su iskoristili sigurnosni propust vezan za lozinke. Ukradene
lozinke su šifrovane, umesto da budu podeljene kako je preporučeno. Srećom, ako je
to dovelo do krađe bankovnih podataka, bilo je neupotrebljivo zbog
visokokvalitetnog šifrovanja od strane Adobe-a. Kompanija je napadnuta ne samo
zbog informacija o klijentima, već i zbog podataka o proizvodima. Najveći problem
za Adobe je bila krađa preko 40GB izvornog koda. Ceo izvorni kod ColdFusion
proizvoda je ukraden, kao i delovi kodova za Acrobat Reader i PhotoShop.
- U aprilu 2011. godine napadnut je Sony PlayStation Network. Procurili su lični podaci
77 miliona korisnika. Bankarske informacije desetina hiljada korisnika su takođe
kompromitovane. Nakon otkrića napada, Sony Online Entertainment i Qriociti, bili su
zatvoreni mesec dana. Kako bi nadoknadio štetu korisnicima, Sony je platio 15
miliona dolara, plus nekoliko miliona dolara pravnih troškova. Ovaj sajber napad bi
mogao uveliko izbegnut, jer su napadači koristili poznatu mrežnu ranjivost koju je
Sony izabrao da ignoriše. Podaci su bili nešifrovani i lako se se mogli preuzeti
zahvaljujući veoma jednostavnoj SQL injekciji.
- Target, drugi po veličini američki diskontni maloprodajni lanac, bio je žrtva velikog
napada u decembru 2013. godine. Podaci 110 miliona klijenata su oteti, uključujući
bankarske podatke od 40 miliona korisnika i lične podatke 70 miliona korisnika.
Target nije otkrio napad, već su Američke tajne službe otkrile nenormalne transakcije
i upozorile kompaniju. Napad je izvršen tako što je instaliran zlonamerni softver u
blagajne koji je čitao informacije sa terminala kreditne kartice.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
92
Prema [32] Geografska mapa prikazana na slici br.34 prikazuje dolazne napade na Microsoft
Azure – posebno na IP adrese na kojima su nastali napadi koje je otkrio Azure Security
Center. Podaci su izraženi u procentima i odnose se na 2018. i 2019. godinu: SAD – 26,16%,
Rusija – 11,59%, Kina – 11,16%, Nemačka – 1,99% , a procenat napada usmeren na Srbiju je
0,15%.
Slika br.34 Geografska mapa dolaznih napada na Microsoft Azure[32]
Slika br.35 prikazuje geografsku mapu odlaznih komunkacija ka zlonamernim IP adresama
koje je otkrio Azure Security Center, gde se vidi da je najveći broj napada izvrešen iz
SAD – 59,83%, Holandije – 16,33%, Irske – 10,96%, Japana – 2,52% i Singapura – 2,10%.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
93
Slika br.35 Geografska mapa zemalja iz kojih je izvršen napad [32]
Prema [31] sledeći podaci su rezultati studije koja otkriva povećanu proliferaciju enkripcije
za zaštitu podataka i hardverskih sigurnosnih modula kako bi se ojačale aplikacije.
Slika br.36 pokazuje da se enkripcija najviše koristi u oblasti tehnologije i razvoja softvera,
komunikacionim sistemima i finansijskim servisima, zemlje koje najviše koriste enkripciju
su: Nemačka, SAD i Australija.
Slika br.36 Sektori i zemlje sa najvećom upotrebom enkripcije [31]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
94
Hardverski sigurnosni modul (HSM) je sertifikovana, pouzdana platforma za obavljanje
kriptografskih operacija i zaštitu ključeva. Prema [31] HSM se najviše koristi u oblasti
finansijskih servisa, prodaje, edukacije i istraživanja i razvoju softvera. Zemlje koje najviše
koriste HSM su SAD, Nemačka i Indija. Što je prikazano na slici br.37
Slika br.37 Upotreba HSM po sektorima i zemljama [31]
Prema [33] Svaki dan milioni širom sveta koriste Microsoft proizvode i usluge, tako da
Microsoft aktivno gradi siguran sistem putem otkrivanja i odbrana od ranjivosti softvera,
neovlašćene prijave i sumnjivih veb aktivnosti. Svrha je da se štite informacije o
preduzećima i klijentima koji se svakodnevno oslanjuju na Microsoft-ove alate. Izgradnja
napredne analitike i uvid u Microsoft platforme, osigurava da je sigurnost korisnika
sveobuhvatna, u potpusnosti integrisana i prilagodljiva potrebama korisnika. Microsoft
mesečno analizira:
- 450 biliona cloud autentikacija,
- 400 biliona e-mail-ova za malware i zlonamerne sajtove,
- 18 biliona veb stranica,
- 1 bilion windows uređaja se ažurira,
- 15 biliona dolara se ulaže u cloud infrastrukturu,
- 1 bilion godišnje se potrošni na bezbednost.
U septembru i oktobru 2018. godine, sprovedena je anketa kako bi stekao uvid u tekuću i
planiranu potrošnju po pitanju sigurnosti. U istraživanju je učestvovalo ukupno 480
ispitanika iz osam zemalja: Australije, Kanade, Francuske, Nemačke, Indije, Singapura,
Velike Britanije i SAD-a.[34]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
95
Slika br.38 ilustruje rezultate datog istraživanja.
Slika br.38 Tekuća i planirana potrošnja po pitanju sigurnosti [34]
5.2 Pregled studija sigurnosti veb servisa, sigurnosni rizici, pretnje i kontramere
Mnoge aplikacije i veb stranice zavise od veb servisa kako bi bez problema razmenile
informacije. Veb servisi omogućavaju prenos različitih podataka preko mreže, ponovno
iskorišćavanje funkionalnosti i stvaraju dinamičan odnos između korisnika. Zbog raznolikosti
protokola i okvira uključenih u razvoj veb servisa, oni postaju ranjivi i često podložni
napadima. Iako se saobraćaj veb sajta i veb servisa može tretirati na sličan način, potencijal
za propuste u bezbednosti je mnogo veći sa veb uslugama, jer izlažu kritične aplikacione
interfejse i operacije i čine ih pristupačnim putem HTTP saobraćaja.
Napadi na veb servise se mogu klasifikovati u tri glavne klase:
- Infrastrukturni napadi – napadi povezani sa veb serverima na kojima se nalaze veb
servisi, kao i napadi povezani sa transportnim protokolima koji se koriste za razmenu
zahteva veb servisa.
- Napadi na veb servise - koji su izvorno zasnovani na stvarnoj tehnologiji koja
pokreće veb servise, kao što je WSDL skeniranje.
- XML sadržajni napadi – koji mogu biti bilo koja vrsta pretnji zasnovanih na XML-u,
zasnovanih na sadržaju, koji koriste taktitku ugrađivanja zlonamernog sadržaja u
legitimne XML dokumente.[65]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
96
5.2.1 WSDL scanning
Većina implementacija veb servisa je javno dostupna kako bi se omogućilo njeno korišćenje
od strane partnera i drugih portala, kao takva WSDL datoteka je izložena javnosti. WSDL
datoteka je deskriptor implentacije veb servisa koji ocrtava ne samo funkcionalnost koju
pruža veb servis, već i očekivanu sintaksu, ulazne i izlazne tačke i lokaciju za pristup usluzi.
Drugim rečima, veb servis objavljuje svoju lokaciju, metode koje pruža i pretpostavke koje
donosi u vezi sa svojim ulaznim tačkama, što predstavlja idealnu metu za zlonamerne
napade. Napadi na veb servise se mogu izvesti dodavanjem WSDL ili .WSDL na kraj URL
adrese servisa, što će otkriti WSDL datoteku. Pretraživač će obično indeksirati WSDL
datoteke zajedno sa drugim datotekama unutar domena. Koristeći pametno kreirane upite
pretraživača, napadači mogu pronaći te datoteke.[40][41]
Ako je veb servis kreiran koristeći uobičajene alate za veb servis okvir, generisani kod sadrži
sve podatke: operacije servisa, uključujući parametre, tipove podataka i mrežne veze. U
ovom slučaju, korisnik dobija informacije o operacijama i može ih pozvati. Prvi korak u
izbegavanju takvih pristupa jeste obezbeđivanje odvojenog WSDL-a za spoljne klijente koji
sadrže samo spoljašne operacije. Međutim, pošto je krajnja tačka veb usuge eksterno
dostupna, napadač može pokušati da pogodi te operacije i pozove ih. Ovaj napad se zove
WSDL skeniranje. Na primer, sistem veb prodavnice zahteva metode za slanje porudžbine i
za administriranje porudzbine. Prva metoda se poziva samo iz prodavnice, međutim, ako i
jedna i druga veb usluga pružaju i operacije slanja i administriranja porudžbine, napadač sa
podacima iz porudžbine može lako pronaći i metod administriranja.[45]
Jedan od načina da se smanje sigurnosni rizici koji mogu proizaći iz korišćenja informacija o
WSDL datotekama je da se WSDL datoteke ne učine javno dostupnim. Umesto registracije
veb servisa i njegovog WSDL opisa sa javnim registrom kao što je univerzalni poslovni
registar UDDI ili ako SOAP server automatski generiše WSDL opise za sve korisnike, za
neke veb servise ima smisla kontrolisati distribuciju WSDL opisa koristeći funkcije kontrole
pristupa ugrađene u UDDI. Potencijal za napad se može znatno smanjiti jednostavnim
uklanjanjem bilo kakvih naznaka o tipu softverske infrastrukture koju koristi veb servis.
Potrebno je eliminisati ili prikriti informacije koje identifikuju bilo koji deo sistemske
infrastrukture kroz zaglavlja i kodove grešaka koje se vraćaju klijentskim
aplikacijama.[40][41]
5.2.2 XML injection
Budući da je XML format poruka korišćen od strane veb servisa i da se svako od polja
podataka opisuje samim sobom, napadačima predstavlja sredstvo za interakciju sa svakom
uslugom. Tokom XML ubrizgavanja, napadač pokušava da ubaci različite XML oznake u
SOAP poruku sa ciljem da modifikuje XML strukturu. U zavisnosti od izvršene operacije
mogu se narušiti razni sigurnosni ciljevi. Na primer:
- modifikacija podataka o plaćanju – prekršen sigurnosni cilj - integritet,
- neovlašćena prijava – prekršen sigurnosni cilj – kontrola pristupa.[42]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
97
Zaštita od XML injekcionog napada treba da obezbedi da se unosom korisnika pravilno
upravlja i kontroliše pre nego što se dozvoli da dođe do glavnog programskog koda. Najbolji
pristup je da se svi unosi korisnika smatraju nebezbednim i da se na odgovarajući način prate.
5.2.3 XPath Injection
XPath je standardni jezik, jednostavnog opisnog izraza koji omogućava XML upitu da locira
informacije. XPath Injection je tehnika napada koja se koristi za eksploataciju aplikacija koje
konstruišu XPath upite iz korisničkog unosa ili za navigaciju XML dokumenta. XPath
Injection napadi se dešavaju kada veb sajt koristi informacije koje je korisnik dostavio da bi
konstruisao XPath upit za XML podatke. Slanjem namerno deformisanih informacija na veb
stranicu, zlonamerni korisnik može saznati kako su strukturirani XML podaci ili pristupiti
ograničenim podacima iz XML izvora podataka, zaobilazeći proveru autentičnosti (ako se
koristi sistem za proveru autentičnosti zasnovan na XML-u). Na primer, ako aplikacija koristi
XML bazu podataka za autentifikaciju svojih korisnika, gde aplikacija preuzima ID korisnika
i lozinku i formira XPath izraz za upit baze podataka, napadač može uspešno zaobići proveru
autentičnosti i prijaviti se bez verodostojnih akreditiva putem XPath ubrizgavanja. U nekim
slučajevima parametri unutar SOAP tela se direktno koriste kao ulaz za XPath upit. Ako
korisnički unos nije validiran, napadač može modifikovati XPath upit onako kako on želi, u
najgorem slučaju napadač može da pročita čitav XML dokument koji se traži.[47][48][49]
Najčešći načini sprečavanja napada su jaka validacija i upotreba parametrizovanih XPath
upita, potrebno je osigurati da aplikacija prihvata samo legitiman ulaz. Presretanje upita
uključuje presretanje XPath izraza koji se generiše u vreme izvođenja, generisani izraz se
izvršava u XML skladištu podataka i dobijaju se rezultati. U cilju otkrivanja ranjivosti
ubrizgavanja, ovaj dinamičku generisan izraz mora biti presretnut. Pomoću skeniranja Xpath
izraza, upiti generisani za vreme izvođenja se mogu presresti pre nego što se izvrše. U ovom
modulu analizira se presretnuti XQuery i dobijaju se ulazni parametri kako bi se otkrile
moguća ubrizgavanja. Nakon presretanja upita, analizator dobija ulaze iz upita i smešta ih u
XML dokument. Ovaj dokument se dalje koristi za validaciju kako bi se otkrile ranjivosti.
Proces validacije identifikuje sva moguća ubrizgavanja u ulazne vrednosti. U slučaju da
provera valjanosti ne uspe, izvršenje željenje operacije se zaustavlja. [48]
5.2.4 SOAPAction spoofing
Svaki zahtev za veb servis sadrži neku vrstu operacije koja se kasnije izvršava logikom
aplikacije. Ova operacija se može naći u prvom podređenom element SOAP tela. Međutim,
ako se HTTP koristi za prenos SOAP poruke, SOAP standard dozvoljava upotrebu dodatnog
elementa HTTP zaglavlja nazvanog SOAPAction. Ovaj element zaglavlja sadrži ime izvršene
operacije. Trebalo bi da informiše o tome koja se operacija nalazi u SOAP telu, bez potrebe
da izvrši bilo koje XML parsiranje.[46]
Napad se može realizovati od strane napadača i pokušava da prizove operaciju različitu od
one koja je navedena u SOAP telu, budući da određeni okviri veb servisa određuju operaciju
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
98
koja će biti izvršena samo na informacijama sadržanim u SOAPAction atributu. Zasniva se na
modifikaciji HTTP zaglavlja.[45][46]
Drugi način je realizacija od strane klijenta veb servisa i pokušava da prođe HTTP mrežni
prolaz.
Listing br.11 predstavlja veb servis ranjiv na SOAPAction Spoofing sa dve operacije
createUser i deleteUser. Operaciju createUser može da izvrši bilo ko, a deleteUser samo
ovlašćeni korisnici koji su direktno povezani sa veb uslugom bez mrežnog prolaza.
Listing br.11
POST /service HTTP/1.1
Host: myHost
SOAPAction: "createUser"
<Envelope>
<Header />
<Body>
<createUser>
<login>johndoe</login>
<pwd>secret</pwd>
</createUser>
</Body>
</Envelope>
Lisitng br.12 prikazuje istu poruku koju je modifikovao napadač. SOAP poruka prolazi kroz
mrežni prolaz, jer proverava samo operacije unutar SOAP tela. Veb servis tada izvršava
operaciju deleteUsers jer svoju odluku zasniva isključivo na operaciji datoj u zaglavlju
SOAPAction-a.[46]
Listing br.12
POST /service HTTP/1.1
Host: myHost
SOAPAction: "deleteAllUsers"
<Envelope>
<Header />
<Body>
<createUser>
<login>johndoe</login>
<pwd>secret</pwd>
</createUser>
</Body>
</Envelope>
Kontramera je odrediti operaciju od strane sadržaja SOAP tela, pored toga operacije koje
odredi zaglavlje HTTP-a i sadržaj SOAP tela moraju biti kompatibilne i svaka razlika treba
da se smatra pretnjom i rezultatom odbijanja zahteva za veb servis.[45]
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
99
5.2.5 DoS napad
DoS napadi utiču na dostupnost servisa i njegovih resursa validnim korisnicima. Napadač
pokušava da spreči pristup ovlašćenog korisnika uslugama koje pruža provajder servisa,
slanjem velike količine zahteva na server, tako da se stvara više mrežnog saobraćaja i veza
između uređaja se prekida.[36]
Najčečešći tip DoS napada je prelivanje bafera. U napadu prelivanje bafera, klijentska
aplikacija šalje preveliku količinu podataka servisu i na taj način servis postaje nedostupan.
Ovaj napad je usmeren na krajnju tačku usluge. Jedan od primera jeste korisničko ime sa više
znakova nego što se očekivalo.
Slanje izuzetno velikih XML dokumenata veb servisu se takođe može smatrati vrstom DoS
napada. Parsiranje veoma dugog XML dokumenta od strane XML parsera tipa DOM
(Document Object Model) može dovesti do ogromnog memorijskog otiska i značajano
smanjiti resurse dostupne zahtevima za usluge. Parseri zasnovani na DOM-u učitavaju ceo
XML tok u memoriju stvarajući hijerarhijski objekat koji se referencira u logici aplikacije.
Koristeći ovaj model, XML dokument, kao SOAP poruka, se u potpunosti čita, analizira i
transformiše u objektni prikaz u memoriji, koji zauzima mnogo više memorisjkog prostora
od originalnog XML dokumenta. Očigledan vektor napada je unos velikih XML fajlova koji
troše resurse na strani servera tokom parsiranja, što dovodi do DoS napada. [40][43][45]
Listing br.13
<transaction>
<total>1000,00</total>
<credit_card_number>123456789</credit_card_number>
<credit_card_number>123456789</credit_card_number>
<credit_card_number>123456789</credit_card_number>
<credit_card_number>123456789</credit_card_number>
<credit_card_number>123456789</credit_card_number>
……
……
……
<expiration>01012021</expiration>
</transaction>
Kontramera za ovu vrstu napada se sastoji u ograničavanju ukupne veličine bafera za dolazne
SOAP poruke. U ovom slučaju, dovoljno je proveriti stvarnu veličinu poruke i odbaciti
poruku koja prelazi prethodno definisani limit. [45]
Još jedan primer DoS napada je ponovljen napad ili replay attacks. Ovaj napad se realizuje
tako što napadač snimi šifrovanu poruku i šalje je repetitivno, što rezultira preopterećenjem
servisa. S obzirom na to, da usluga može da radi samo sa određenim brojem zahteva u jednici
vremena, sposobnost servisa da postupa sa legitimnim zahtevima je ograničena ili
zaustavljena. Ovaj tip mrežne aktivnosti neće biti otkriven kao upad jer je izvorni IP valjan,
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
100
ponašanje mrežnog paketa ispravno i HTTP zahtev je dobro formiran. Međutim, poslovno
ponašanje nije legitimno i predstavlja upad zasnovan na XML-u. Na ovj način, potpuno
validna XML opterećenja mogu se koristiti za izdavanje napada na uskraćivenje usluge. U
ovom slučaju, veoma je važno da se autentifikuje podnoslilac zahteva pre nego što se počne
sa obradom zahteva. Ponovljeni napadi mogu biti ozbiljan problem za organizacije, jer
različiti procesi unutar organizacije mogu biti zloupotrebljeni ukoliko napad bude uspešan.
[41][43][44]
Inspekcija i validacija formata i sintakse, XML dokumenti moraju biti u skladu sa
protokolima i specifikacijama koje regulišu njihovu upotrebu. Uobičajeno je da napadači
pokušavaju da manipulišu dokumentima u odnosu na pravila da bi izvršili DoS napade.
Osnovni korak je provera ispravnosti XML dokumenta najpre na temelju pravila XML i
SOAP specifikacija. Zatim kontrola sadržaja i zaštita politike: savršeno oblikovan XML
dokument može i dalje biti neprikladan i nepoželjan u aplikaciji veb servisa. Potrebna je
dublja kontrola i razumevanje aplikacije kako bi se politika i filteri primenili na XML
dokumente koje prolaze nivo kontrole. To su prilagođene specifikacije za traženje kršenja
pravila kao što su preveliki dokumenti, neprikladne ili neočekivane vrednosti u poljima.[44]
5.3 Primeri napada na veb servise
- Account Hijacking - se događa usled krađe akreditiva, koja napadačima omogućava
pristup osetljivim informacijama i ugrožava poverljivost, integritet i dostupnost
isporučenih usluga. Na primer, prisluškivanje transakcija, manipulacija podacima koji
vraćaju falsifikovane podatke i preusmeravanje na nelegitimne lokacije. U julu 2012.
godine, usluga skladištenja u oblaku “Dropbox”, je obavestila korisnike da napadači
koriste korisnička imena i lozinke koje su ukradene sa drugih sajtova. Kompanija
veruje da korisnici koji koriste iste lozinke na višesturkim sajtovima olakšavaju
napadačima da pristupe njihovim nalozima na različitim sajtovima. Mnogi sajtovi,
koji žele da iskoriste popularnost fenomena društvenih mreža, dozvoljavaju
korisnicma da se prijave sa svojim facebook ili google nalozima, što je poznato kao
single sign-on autentifikacija. Organizacija je pokrenula nove automatizovane
mehanizme za identifikaciju sumnjivih aktivnosti i potpuno novu veb stranicu koja bi
pokazala sve prijave na servis. [37]
Žrtva ovakvog napada je bila i kompanija Amazon. Napadači su izvršili napad na više
sajtova (cross-site scripting XSS) i infiltrirali se u Amazon Relational Database
Service tako da su mogli da uhvate podatke za prijavu svakog ko je kliknuo na dugme
za prijavu na Amazonovoj početnoj stranici. Napadači su koristili svoje servere kako
bi zarazili uređaje sa Zeusovim trojanskim konjem, koji je deo malware-a
dizajniranog za krađu bankovnih informacija putem prikupljanja i zapisivanja lozinki.
Računari zaraženi zlonamernim softverom počeli su da se prijavljuju na Amazon EC2
za ažuriranja i uputstva, tako da su napadači mogli da prikupljaju podatke. Jedna od
činjenica je da u ovom slučaju nije bila greška Amazona, već su napadači dobili
pristup kroz neki drugi, ranjiviji domen, što otriva jednu istinu o cloud-u da čak i
jedan ranjiv sistem može dovesti do kompromitovanja cele mreže. Amazon je bio
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
101
samo jedan od sajtova koji su pretrpeli ovaj tip napada u periodu od nekoliko meseci,
Twitter, Facebook i Google app su iskusili slične napade.[39]
- Traffic Flooding – je napad koji nastaje kao rezultat ogromne količine saobraćaja i
rezultata u mreži ili uslugama. Kada je mreža ili usluga opterećena paketima, ona ne
može obraditi specifične zahteve iz razloga što pokreće nepotpune zahteve za
povezivanje, što dovodi do opterećenja tako da je ishod uskraćivanje servisa.
Kompanija za skladištenje i upravljanje lozinkama zasnovana na oblaku, LastPass,
objavila je da je njen server verovatno napadnut. Nije bilo nikakvih izveštaja o
curenju podataka, ali je kompanija insistirala na tome da klijenti budu oprezni, kako
bi osigurali da njihove informacije budu van rizika. Stručnjaci za bezbednost su
otkrili neuobičajeno ponašanje u okviru servera baza podataka sa izlazom dodatnog
saobraćaja u poređenju sa ulaznim podacima. Glavne lozinke koje štite liste lozinki za
pristup različitim sajtovima i on-line servisima u oblaku, su odmah zaštićene tako što
je LastPass poboljšao algoritam šifrovanja kako bi zaštitio podatke korisnika i
preduzeo dodatne mere za bezbednost na serverima, kako bi se sprečila slična
situacija. LastPass ne šalje niti čuva glavnu lozinku, šifrovanje se dešava isključivo
na nivou uređaja pre sinhronizacije sa LastPass-om za bezbedno skladištenje, tako da
samo korisnici mogu dešifrovati svoje podatke. LastPass koristi 256-bitnu AES
enkripciju, jer je to široko prihvaćen neprobojan algoritam.[37][38]
Slika br.39 prikazuje arhitekturu Last Pass-a.
Slika br.39 Arhitektura LassPass[38]
U razvoju određenog sigurnosnog mehanizma, uvek treba razmotriti potencijalne napade,
uspešni napadi su osmišljeni tako da se problem sagleda na potpuno drugačiji način, tako da
se iskorišćavaju neočekivane slabosti u mehanizmu. Tek kada se uzmu u obzir različiti
aspekti pretnje, razrađeni sigurnosni mehanizmi imaju smisla. Nakon što su dizajnirani
različiti sigurnosni mehanizmi, potrebno je odlučiti gde ih koristiti, u smislu fizičkog
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
102
rasporeda (u kojim tačkama u mreži su potrebni određeni sigurnosni mehanizmi) i u
logičkom (na kom sloju ili slojevima arhitekture, kao što je TCP/IP protokol).
Entitet koji obrađuje podatke treba da bude odgovoran za poštovanje standarda i
preduzimanje mera koje će sprovesti odredbe predviđene Zakonom o zaštiti podataka.
Princip odgovornosti je ključ za efikasan okvir zaštite podataka. On objedinjuje sve ostale
principe i stavlja teret na one koji obrađuju podatke (bilo kompanija, ustanova ili pojedinac)
da budu odgovorni i da dokažu da ispunjavaju svoje obaveze.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
103
6. IMPLEMENTIRANO REŠENJE
6.1 Opis poslovnog konteksta
Primer poslovnog konteksta koji je izabran za ilustovanje primera implementacije je
distributivni centar, odnosno poziv veb servisa u aplikaciji za realizaciju narudžbine preko
interneta. Veb servis je kreiran tako da za određenu šifru robe, prikaže magacine u kojima se
data roba nalazi na stanju, i na osnovu vraćenog rezultata poziva veb servisa se bira magacin
najbliži mestu isporuke. Cilj aplikacije jeste izbor najbližeg mesta isporuke kako bi se
smanjili troškovi transporta.
Slika br.40 ilustuje rezultat poziva veb servisa u aplikaciji.
Slika br.40 Rezultat poziva veb servisa u aplikaciji
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
104
6.2 Bezbedonosni aspekti implementacije veb servisa u veb aplikaciji
Bezbedonosni aspekti implementacije veb servisa u aplikaciji ostvareni su dodavanjem
bezbednosnog sloja u SOAP zaglavlju. Akreditivi u SOAP zaglavlju definišu specijalni
element koji se koristi za prosleđivanje korisničkog imena i lozinke veb servisu, koji se
koriste za autentifikaciju. Prilikom poziva veb servisa, potrebno je da se akreditivi dostave
servisu za pozivanje.
Lisitng br.14 predstavlja kreiranje klase nazvane AuthHeader, koja je tipa SoapHeader klase
i koja se koristi kada se želi promeniti ono što se prosleđuje u SOAP zaglavlju.
Prilagođavajući SoapHeader, omogućeno je prosleđivanje korisničkog imena i lozinke kada
se veb servis pozove. Zatim su definisane promenljive UserName i Password koje su tipa
string. One se koriste za čuvanje vrednosti korisničkog imena i lozinke koje se prosleđuju
veb servisu.
Listing br.14
public class AuthHeader : SoapHeader
{ public string UserName; public string Password;
}
Lisitng br.15 prikazuje kreiranje objekta klase AuthHeader koji je kreiran u prethodnom
koraku. Objekat Autentikacija će biti prosleđen metodi veb servisa u kojoj će se pregledati
korisničko ime i lozinka. Atribut [SoapHeader] se koristi da bi se odredilo da kada se pozove
veb servis, potrebno je da se prosledi korisničko ime i lozinka. U ovom bloku koda se ispituje
korisničko ime i lozinka, ako je korisničko ime jednako “lidija” i lozinka “lidija” onda je
rezultat veb servisa spisak magacina u kojima se nalazi roba sa datom šifrom.
Lisitng br.15
public AuthHeader Autentikacija;
[WebMethod]
[SoapHeader ("Autentikacija")] public string StanjeZalihaRobe(string SifraRobe) { string StanjeRobe = ""; DataSet dsStanje = new DataSet();
string putanjaXML = Server.MapPath("~/")+ "StanjeZalihaRobePoMagacinima.xml"; dsStanje.ReadXml(putanjaXML); if (Autentikacija.UserName == "lidija" && Autentikacija.Password == "lidija") { DataRow[] result = dsStanje.Tables[0].Select("SifraRobe='" + SifraRobe + "'"); StanjeRobe = result[0].ItemArray[1].ToString(); return StanjeRobe; } else {
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
105
return "Niste ovlasceni da koristite uslugu"; }
Slika br.41 ilustruje izvršenje prethodnog koda, odnosno lokaciju veb servisa.
Slika br.41 Veb servis stanje robe po magacinima
Lisitng br.16 prikazuje SOAP zaglavlje sa akreditivima, UserName i Password.
Lisitng br.16
POST /WSStanjeRobePoMagacinima.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/StanjeZalihaRobe"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<AuthHeader xmlns="http://tempuri.org/">
<UserName>string</UserName>
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
106
<Password>string</Password>
</AuthHeader>
</soap:Header>
<soap:Body>
<StanjeZalihaRobe xmlns="http://tempuri.org/">
<SifraRobe>string</SifraRobe>
</StanjeZalihaRobe>
</soap:Body>
</soap:Envelope>
U listingu br.17 je prikazan format dela za autentifikaciju koji je deo WSDL dokumenta.
SOAP poruka sadrži dva dodatna elementa, od kojih je jedan korisničko ime, a drugo
lozinka. Kada je SOAP poruka prosleđena između klijenta i servera, deo poruke koji sadrži
korisničke akreditive je prikazan u sledećem primeru.
Lisitng br.17
<s:element name="AuthHeader" type="tns:AuthHeader"/>
<s:complexType name="AuthHeader">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UserName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
</s:sequence>
<s:anyAttribute/>
</s:complexType>
Listing br.18 prikazuje kod za poziv veb servisa u aplikaciji sa prosleđivanjem parametara,
UserName i Password.
Listing br.18
ServiceReference1.WSStanjeRobePoMagacinimaSoapClient wSStanje = new ServiceReference1.WSStanjeRobePoMagacinimaSoapClient(); string magacini = wSStanje.StanjeZalihaRobe(new ServiceReference1.AuthHeader() { UserName = "lidija", Password = "lidija"},(txtSifraRobe.Text)); lblMagacini.Text = magacini.ToString();
U slučaju da se unese pogrešan parametar, korisničko ime ili lozinka, autentifikacija neće biti
moguća i korisnik će dobiti poruku da nije ovlašćen da koristi uslugu, što prikazuje slika
br.42 i listing br.19 gde je unet password “1234”.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
107
Listing br.19
protected void ProveraMagacina_Click(object sender, EventArgs e) { ServiceReference1.WSStanjeRobePoMagacinimaSoapClient wSStanje = new ServiceReference1.WSStanjeRobePoMagacinimaSoapClient(); string magacini = wSStanje.StanjeZalihaRobe(new ServiceReference1.AuthHeader() { UserName = "lidija", Password = "1234" },(txtSifraRobe.Text)); lblMagacini.Text = magacini.ToString(); }
Slika br.42 Poruka o grešci
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
108
7. ZAKLJUČAK
U ovom radu predmet istraživanja bili su bezbednosni aspekti, tehnike i metode primene veb
servisa u okviru distribuiranih informacionih sistema. Cilj istraživanja bio je teorijsko,
stručno i naučno istraživanje bezbednosti implementacije veb servisa u poslovnim
aplikacijama. Navedene su i objašnjenje konkretne tehnike i metode bezbednosti kako bi se
obezbedila sigurna implementacija veb servisa u poslovne aplikacije i kako bi se ostvarila
sigurna distribucija podataka.
Osnovna hipoteza je bila da savremene tehnologije razvoja veb aplikacija omogućavaju
interakciju sa veb servisima i primenu bezbednosnih elemenata, koja je i dokazana kroz
primere primene savremenih tehnologija i standarda bezbednosti koji su prikazani u okviru
poglavlja stručnog istraživanja, kao i konkretnim primerima koji u ovom poglavlju
objašnjeni. Zatim, kroz primere u okviru poglavlja postojeća rešenja u kojima su prikazani
konkretni primeri implementacije veb servisa Narodne banke Srbije u poslovne aplikacije
koristeći UserName tokene u zaglavlju SOAP poruka, kao i upotreba elektronskog sertifikata
za proveru elektronskog potpisa i identiteta potpisnika prilikom pristupanja portalu
Centralnog registra obaveznog zdravstvenog osiguranja. Realizivan je primer poziva veb
servisa u veb aplikaciji u poglavlju implementirano rešenje, gde je poziv veb servisa
omogućen samo ovlašćenim korisnicima, u suprotnom je veb usluga odbijena. Empirijskim
istraživanjem postojećih rešenja, kao i realizacijom konkretnog primera takođe je dokazana
osnovna hipoteza istraživanja.
Dalja istraživanja koja se odnose na bezbednost primene veb servisa u poslovnim
aplikacijama bi se mogla odnositi na nove metode i tehnike bezbednosti, kao i
implementacija sigurnosnih tokena, metoda šifrovanja i elektronskih sertifikata kao i alata i
metoda za ispitivanje bezbednosti veb servisa koja u ovom radu nisu realizovana.
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
109
Literatura:
[1] Computer Security Principles and Practice, William Stallings, Lawrie Brown, UNSW
Canberra at the Australian Defence Force Academy
[2] Cryptography and network security Principles and Practice, William Stallings
Dostupno na:
https://wanguolin.github.io/assets/cryptography_and_network_security.pdf
[3] Osnovni pojmovi zaštite i sigurnosti podatka i računarskih mreža, Prof. dr Dalibor
Dobrilović, Tehničku fakultet Mihajlo Pupin, Zrenjanin
[4] Computers at Risk: Safe Computing in the Information Age, National Research
Council,
Dostupno na: https://www.nap.edu/read/1581/chapter/4
[14] Information Security Fundamentals, Per Oscarson, Research Group VITS,
Department of Business Administration, Economics, Statistics and Informatics , Orebro
Universitz, Sweden
Dostupno na: https://www.google.com/search?client=firefox-b-d&q=sweden
[15] Information Security Management Principles, Andy Tailor, David Alexander, Amanda
Finch, David Sutton,
Dostupno na: https://www.bcs.org/upload/pdf/infosec-mgt-principles.pdf
[16] Network Security Mechanizm and Cryptography, Mohammad Tanveer Khan,
University of Kashmir, India, Internation Journal of Computer Science and Mobile
Copmuting
Dostupno na: https://ijcsmc.com/docs/papers/July2017/V6I7201732.pdf
[22] Efficient Implementation of AES, Ritu Pahal, Vikas Kumar
Dostupno na:
http://ijarcsse.com/Before_August_2017/docs/papers/Volume_3/7_July2013/V3I7-
0246.pdf
[33] Microsoft Security in Billions
Dostupno na:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=2ahU
KEwjvnIrVivXhAhWjl4sKHbwFCysQFjAAegQIBBAC&url=http%3A%2F%2Fdownl
oad.microsoft.com%2Fdownload%2F5%2FC%2F1%2F5C112B87-6C78-4510-AF70-
223154558004%2FMicrosoft_Security_in_Billions_EN_US.pdf&usg=AOvVaw2sRp8
a9b1pni0AiDfRwcq_
[36] Survey of real case studies of various network based attacks in different clouds,
Research Article, Lomte S, Poonam M.Rokade, Manza R.R
Dostupno na: http://recentscientific.com/sites/default/files/12058-A-2018.pdf
[37] Web Services attacks and security – A Systematic literature review, Varsha R. Mouli
[39] Cloud Security: Services, Risks and Case Study on Amazon Cloud Services, Patrick
Mosca, Yanping Zhang, Zhifeng Xiao, Yun Wang
[40] Web services vulnerabilities, Nishchal Bhalla, Sahba Kazerooni,
Dostupno na: https://www.blackhat.com/presentations/bh-europe-07/Bhalla-
Kazerooni/Whitepaper/bh-eu-07-bhalla-WP.pdf
[43] Possible attacks on XML Web Services, Esmiralda Moradian, Stockholm University,
Anne Hakansson KTH Royal Insitute od Technology
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
110
Dostupno na:
https://www.researchgate.net/publication/241442248_Possible_attacks_on_XML_Web
_Services
[44] Attacking and Defending Web Services, Pete Lindstrom
Dostupno na:
https://www.cse.iitb.ac.in/~madhumita/web%20services/Attacking%20and%20Defendi
ng%20Web%20Services.pdf
[45] A Survey of Attacks on Web Services, Classification and Countermeasures, Meiko
Jensen, Nils Gruschka, Ralph Herkenhoner,
Dostupno na: http://www.fim.uni-
passau.de/fileadmin/files/lehrstuhl/meer/publications/pdf/Jensen2009a.pdf
[48] Preventing XPath Injection Vulnerabilities in Web Applications, V.Shanmughaneethi,
National Institute of Technical Teachers Training and Research, Chennai, India
Dostupno na:
https://www.researchgate.net/publication/268352126_PXpathV_Preventing_XPath_Inj
ection_Vulnerabilities_in_Web_Applications
[50] Web services security, Overview, analysis and challenges, El Houssain Ben Messaoud
and Ouafaa Diouri
[51] Distributed Systems: Principles and Paradigms, Andrew S. Tanenbaum, Maarten Van
Steen
[52] Tehnologije distribuiranih informacionih sistema, Tehnički fakultet Mihajlo Pupin,
Ljubica Kazi, Biljana Radulović, Dalibor Dobrilović, Dragica Radosav, Branko
Markoski
[53] Distibuted systems Concepts and Design, George Coulouris, Jean Dollimore, Tim
Kindberg, Gordon Blair
[54] Distributed Comupting: Principles, Algorithms and Systems, Ajay D. Kshemkalyani,
Mukesh Singhal
[57] Distributed systems, Maarten Van Steen, Andrew S. Tanenbaum, third edition 2017
Dostupno na: https://komputasi.files.wordpress.com/2018/03/mvsteen-distributed-
systems-3rd-preliminary-version-3-01pre-2017-170215.pdf
[62] Securing Web Services using Service Token Security, Stelian Dumitra, Bogdan
Vasilciuc, Journal of Mobile, Embedded and Distributed Systems, vol.VI, no,2 2014
ISSN 2067-4074
Dostupno na:
http://www.jmeds.eu/index.php/jmeds/article/view/Securing_Web_Services_using_Ser
vice_Token_Security/pdf_7
[63] Programming Web Services with SOAP , Pavel Kulchenko, Doug Tidwell, James Snell
Dostupno na: https://www.oreilly.com/library/view/programming-web-
services/0596000952/ch01.html
[64] Web Service Conceptual Architecture (WSCA 1.0) IBM,
Dostupno na: https://www.csd.uoc.gr/~hy565/docs/pdfs/papers/wsca.pdf
[65] Intelligent security cycle: A rule based run time malicious code detection technique for
SOAP messages, Ahmad Mohsin, Sundas Asghar, Tariq Naeem
Dostupno na: https://www.researchgate.net/figure/An-overview-of-possible-attacks-on-
XML-Web-Services_tbl1_241442248
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
111
[66] Anomaly Detection in XML-Structured SOAP Messages Using Tree-Based
Association Rule Mining, Reyhaneh Ghassem, Mohammad Abadollahi Azgomi, Reza
Fathi, Trustworthy Computing Laboratory, School of Computer Engineering Iran
University of Science and Technology, Teheran, Iran
Dostupno na:
https://www.researchgate.net/publication/303409483_Anomaly_Detection_in_XML-
Structured_SOAP_Messages_Using_Tree-Based_Association_Rule_Mining/download
[69] Web Services Security: SOAP Message Security 1.0 WS-Security, OASIS Standard,
Dostupno na: https://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-
message-security-1.0.pdf
[75] Upravljanje X.509 serifikatima u PKI sistemima, Miloš Milenković, Saša Adamović,
Marko Šarac, Dalibor Radovanović, Univerzitet Singidunum
[78] Web services Security UsernameToken Profile 1.1, OASIS Public Review Draft
Dostupno na: https://www.oasis-open.org/committees/download.php/13392/wss-v1.1-
spec-pr-UsernameTokenProfile-01.htm
[81] Securing Web Services Using XML Signature and XML Encryption, Kannan
Saravanan, George Abraham, Krishnakumar Venkatasubramanian, Kiransinh Borasia
School of Computer Science and Engineering, VIT University, Vellore, India
Dostupno na:
https://www.researchgate.net/publication/235771975_Securing_Web_Services_Using_
XML_Signature_and_XML_Encryption
[82] Web Services Security Based on XML signature and XML encryption, Gu Yue-sheng
Henan, Institute of Scince and Technology, Xinxiang, China
Dostupno na:
https://pdfs.semanticscholar.org/40d8/189495e97827b984ed6ca7bd8458067e0ee2.pdf
[88] Overview of Web Services Trust Language, Chuk Reeves, University of Washington,
CSEP 590 Practical Aspects of Modern Cryptography Project
Korišćeni veb sajtovi:
[5] http://cs.armstrong.edu/rasheed/ITEC2010/Slides1.pdf 14.04.2019
[6] https://privacyinternational.org/sites/default/files/2018-09/Part%203%20-
%20Data%20Protection%20Principles.pdf 14.04.2019
[7] https://cryptome.org/2013/09/infosecurity-cert.pdf 14.04.2019
[8] https://www.paloaltonetworks.com/cyberpedia/what-is-a-denial-of-service-attack-dos
15.04.2019
[9] https://www.digitalattackmap.com/understanding-ddos/ 15.04.2019
[10] https://www.a10networks.com/resources/articles/5-most-famous-ddos-attacks
15.04.2019
[11] https://www.avast.com/c-spoofing 15.04.2019
[12] https://us.norton.com/internetsecurit y-malware-what-is-a-computer-worm.html
17.04.2019
[13]
https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.sec.doc
/q009730_.htm 14.04.2019
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
112
[17] http://www.ciscopress.com/articles/article.asp?p=1626588&seqNum=2 17.04.2019
[18] https://www.fairwarning.com/blog/power-audit-trail-data-security/ 18.04.2019
[19] https://www.smartsheet.com/audit-trails-and-logs 18.04.2019
[20] https://www.cisco.com/c/en/us/products/security/firewalls/what-is-a-firewall.html
18.04.2019
[21] https://www.eset.com/int/firewall/ 21.04.2019
[23] https://symbiosisonlinepublishing.com/computer-science-
technology/computerscience-information-technology32.php 20.04.2019
[24] https://www.tutorialspoint.com/cryptography/advanced_encryption_standard.htm
[25] https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ 20.04.2019
[26] https://www.quora.com/What-is-the-difference-between-a-digital-certificate-a-digital-
signature 20.04.2019
[27] https://www.ncipher.com/solutions/use-case/credentialing-and-pki-applications/digital-
signatures 21.04.2019
[28] https://www.thalesesecurity.com/faq/public-key-infrastructure-pki/what-public-key-
infrastructure-pki 23.04.2019
[29] https://safeatlast.co/blog/cyber-attack-statistics/ 29.04.2019
[30] https://outpost24.com/blog/top-10-of-the-world-biggest-cyberattacks 29.04.2019
[31] https://go.ncipher.com/rs/104-QOX-775/images/2019-Ponemon-Global-Encryption-
Trends-Study-in-ar.pdf?_ga=2.259593162.1171680971.1555922439-
64398786.1555922439 30.04.2019
[32] https://www.microsoft.com/securityinsights/ 30.04.2019
[34] https://www.gartner.com/en/newsroom/press-releases/2018-08-15-gartner-forecasts-
worldwide-information-security-spending-to-exceed-124-billion-in-2019 02.05.2019
[35] https://www.varonis.com/blog/cybersecurity-statistics/
[38] https://www.lastpass.com/enterprise/security 09.05.2019
[41] https://flylib.com/books/en/2.87.1.77/1/ 08.05.2019
[42] http://ws-attacks.org/XML_Injection 06.05.2019
[46] https://www.ws-attacks.org/SOAPAction_Spoofing 09.05.2019
[47] https://www.owasp.org/index.php/XPATH_Injection 09.05.2019
[49] http://ws-attacks.org/Xpath_Injection 05.05.2019
[55]
https://www.ibm.com/support/knowledgecenter/en/SSAL2T_8.1.0/com.ibm.cics.tx.doc/
concepts/c_wht_is_distd_comptg.html
[56] https://pdfs.semanticscholar.org/5205/0379d51bf50deb5ee11aca06c3fb9c3859f0.pdf
10.05.2019
[58]
https://www.ibm.com/support/knowledgecenter/en/SSMQ79_9.5.1/com.ibm.egl.pg.doc
/topics/pegl_serv_overview.html 10.05.2019
[59] https://www.oracle.com/technetwork/articles/javase/wsprotocols-136863.html
14.05.2019
[60] https://www.oasis-open.org/committees/download.php/17817/ebxmljc-WhitePaper-wd-
r02-en.pdf 14.05.2019
[61] http://www.w3.org/standards/webofservices/ 13.05.2019
[67] http://ttl.masfak.ni.ac.rs/21IT/Predavanje_4_INTERNET_WEB_aplikacije.pdf
13.05.2019
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
113
[68]
https://www.ibm.com/support/knowledgecenter/en/SSMKHH_10.0.0/com.ibm.etools.m
ft.doc/ac55630_.html 25.05.2019
[70] https://www.guru99.com/security-web-services.html 25.05.2019
[71] https://docs.oracle.com/cd/E17904_01/web.1111/b32511/standards.htm#WSSEC1117
18.05.2019
[72] https://www.globalsign.com/en-sg/ssl-information-center/what-is-ssl.html 18.05.2019
[73] https://www.varonis.com/blog/what-is-saml/ 25.05.2019
[74]
https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.webspher
e.wlp.doc/ae/cwlp_wssec_x509.html 27.05.2019
[76]
https://www.ibm.com/support/knowledgecenter/SSEQTP_9.0.0/com.ibm.websphere.ba
se.doc/ae/cwbs_usernametoken.html 27.05.2019
[77] https://docs.oracle.com/cd/E65459_01/dev.1112/e65461/content/authn_ws_user.html
27.05.2019
[79] http://www.setgetweb.com/p/WAS70/ws-security/part2.html
[80]
https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere
.nd.multiplatform.doc/ae/cwbs_encryptv6.html 21.05.2019
[83] https://www.w3.org/Submission/ws-addressing/ 29.05.2019
[84]
https://docs.oracle.com/cd/E24329_01/web.1211/e24965/wsaddressing.htm#WSADV6
64 29.05.2019
[85]
https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.2.0/com.ibm.cics.ts.we
bservices.doc/wsAddressing/example.html 30.05.2019
[86] https://www.techopedia.com/definition/13712/web-services-trust-language-ws-trust
29.05.2019
[87] https://www.techopedia.com/definition/24385/web-services-security-ws-security
25.05.2019
[89] https://searchsoftwarequality.techtarget.com/definition/WS-SecureConversation
29.05.2019
[90]
https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere
.nd.multiplatform.doc/ae/cwbs_wssecureconv.html 29.05.2019
[91] https://imi.pmf.kg.ac.rs/imi-blog/kerberos-autentifikacija-prvi-deo/ 27.05.2019
[92] https://www.varonis.com/blog/kerberos-authentication-explained/ 29.05.2019
[93] http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html 26.05.2019
[94] https://managementmania.com/en/ws-bpel-web-services-business-process-execution-
language 26.05.2019
[95] https://www.oasis-
open.org/committees/download.php/23070/The%20Business%20Value%20of%20WS-
BPEL%20for%20Business%20Analysts%20and%20Managers%20(Frank%20Leyman
n)%20-%20Part%201.pdf 26.05.2019
[96] https://docs.oracle.com/cd/E12483_01/integrate.1013/b28982/security.htm 27.05.2019
Bezbedonosni aspekti primene veb servisa u okviru distribuiranih informacionoh sistema
114
[97]
https://www.ibm.com/support/knowledgecenter/SS8JB4/com.ibm.wbpm.wid.bpel.doc/t
opics/tcallothbp.html 26.05.2019
[98] https://www.service-architecture.com/articles/web-
services/web_services_reliability_ws-reliability.html 30.05.2019
[99]
https://www.ibm.com/support/knowledgecenter/en/SSMKHH_9.0.0/com.ibm.etools.mf
t.samples.wssecsamp.doc/doc/ws_rm_introduction.htm 30.05.2019
[100] http://xml.coverpages.org/WS-ReliabilityAnn.html 30.05.2019
[101]
https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere
.nd.multiplatform.doc/ae/cwbs_wsrm_how.html 02.06.2019
[102] https://www.nbs.rs/internet/cirilica/16/index.html 01.06.2019
[103] https://webservices.nbs.rs/CommunicationOfficeSiteDoc/SerCyrl/default.html
01.06.2019
[104]
https://webservices.nbs.rs/CommunicationOfficeService1_0/ExchangeRateService.asm
x?op=GetCurrentExchangeRate 01.06.2019
[105] https://webservices.nbs.rs/CommunicationOfficeSiteDoc/SerCyrl/default.html
01.06.2019
[106]
https://webservices.nbs.rs/CommunicationOfficeService1_0/CurrentExchangeRateServ
ice.asmx 01.06.2019
[107] https://webservices.nbs.rs/CommunicationOfficeSiteDoc/SerCyrl/default.html
01.06.2019
[108]
https://webservices.nbs.rs/CommunicationOfficeSiteDoc/SerCyrl/CommunicationOffic
eService/CurrentExchangeRateService/XsdSchema/GetCurrentExchangeRateList.txt
01.06.2019
[109] http://www.croso.gov.rs/storage/files/euputstva/uputstvo_obveznik_13112013.pdf
01.06.2019
[110] https://ca.halcom.rs/RA/?mode=orderCorporate 01.06.2019
[111] https://economictimes.indiatimes.com/definition/authorization 16.06.2019
[112] https://www.techopedia.com/definition/4099/security-policy 16.06.2019
[113] https://www.avast.com/c-spoofing 16.06.2019
[114] https://www.avast.com/c-sniffer 16.06.2019
Slike koje nisu referencirane su delo autora realizovane za potrebe master rada.