24
FAKULTET ORGANIZACIONIH NAUKA UNIVERZITETA U BEOGRADU SEMINARSKI RAD Arhitektura računara i operativni sistemi TEMA ZAŠTITA WEB SERVISA

Zaštita WEB servisa FINAL

Embed Size (px)

Citation preview

Page 1: Zaštita WEB servisa FINAL

FAKULTET ORGANIZACIONIH NAUKA

UNIVERZITETA U BEOGRADU

SEMINARSKI RADArhitektura računara i operativni sistemi

TEMA

ZAŠTITA WEB SERVISA

Profesor: Simić Dejan

Student: Stojanović Dušan 104/04

Page 2: Zaštita WEB servisa FINAL

Maj 2006.

2

Page 3: Zaštita WEB servisa FINAL

SADRŽAJ

UVOD …………………………………………………………………………………….3

ZAŠTITA …………………………………………………………………………………5

Autentikacija………………………………………………………………………5

Autorizacija………………………………………………………………………..6

Zaštita tajnosti……………………………………………………………………..6

Kriptografija...……………………………………………………………..7

Simetrično šifrovanje ……………………………………………………..7

Asimetrično šifrovanje ……………………………………………………8

Digitalni potpis ……………………………………………………………9

Digitalni sertifikat ……………………………………………………….10

SSL protokol …………………………………………………………………….12

XML Signature ………………………………………………………………….13

XML Encryption ………………………………………………………………...14

XML Key Management Specification (XKMS)…………………………………14

Security Assertions Markup Language (SAML)……………………………...…14

XML Access Control Markup Language (XACML) ...……………………….....14

WS-Security ……………………………………………………………………..15

ZAKLJUČAK …………………………………………………………………………...17

LITERATURA ………………………………………………………………………….18

3

Page 4: Zaštita WEB servisa FINAL

UVOD

Ono što verovatno stvara veliku konfuziju kod neupućenih u vezi sa web servisom je sam termin, koji i nije baš najbolje rešenje, jer reč “servisi” upućuje na pružanje neke usluge koja se najverovatnije naplaćuje. Ali, u svojoj osnovi, web servisi su samo nova revizija standardnih softverskih tehnologija koje pružaju mogućnost programerima da povezuju raznorodne informacione sisteme na novi način, preko Interneta, i to unutar jednog ili više poslovnih procesa.

Najjednostavniju i verovatno najpotpuniju definiciju web servisa možemo pronaći na poznatoj O’Reilly-jevoj edukativnoj web lokaciji, a ona kaže da: “Web servis predstavlja bilo koji servis dostupan u distribuiranim okruženjima kao što je Internet (ili intranet mreže), a koji koristi standardizovani XML1

sistem za razmenu poruka, te koji nije isključivo vezan za bilo koji operativni sistem ili programski jezik”. Web servisi su kreirani da rade “iza scene”, iskorišćavajući postojeću kompanijsku infrastrukturu, kako bi bio olakšan pristup podacima i informacijama. Prednost koju pruža upotreba web servisa je ujedno i evolutivna, ali i revolucionarna. Na zapadu, kompanije svih veličina sve više investiraju u web servise, jer oni obećavaju obezbeđenje praktične solucije za jedan od najvećih problema: kako rešiti nekompatibilnosti između različitih formata podataka i kompjuterskih sistema, koje čine poteškoće i uvećavaju troškove slanja informacija od tačke A do tačke B.

Praktično gledano, web servis predstavlja bilo koju softversku aplikaciju koja je dostupna preko mreže (Internet ili intranet) i koja koristi standardizovan XML sistem poruka. XML se koristi za formatiranje svih oblika komunikacije ka web servisima. Na primer, klijent poziva web servis slanjem poruke u XML formatu, zatim čeka na odgovarajući XML odgovor. Pošto se sva komunikacija formatira uz pomoć XML standarda, web servisi nisu vezani ni za jedan operativni sistem ili razvojno okruženje - jednostavno, Java aplikacije mogu da “komuniciraju” sa Perl aplikacijama, dok recimo Windows programi mogu da razmenjuju podatke sa programiram koji rade u Unix okruženju. Web servisi sasvim prevazilaze nekompatibilnosti skupom softverskih standarda kao što su XML (Extensible Markup Language), SOAP2 (Simple Object Access Protocol), WSDL3 (Web Services Description Language) i sl. Ovi standardi omogućuju definisanje, pakovanje, pristupanje i izvršavanje podataka i programa preko Interneta, bez potrebe za vođenjem računa o pojedinačnim implementiranim tehnologijama.

1 XML (Extensible Markup Language) - standardizovani jezik za opis podataka; omogućava programerima razvoj sopstvenih tipova podataka, u cilju identifikacije informacija u dokumentima, te njihovom stavljanju u odgovarajući kontekst.2 SOAP (Simple Object Access Protocol) - protokol koji opisuje način na koji jedan aplikacija treba da komunicira sa web servisom. SOAP omogućava korišćenje web servisa za finansijske transakcije na Internetu, kao što je recimo autorizacija kreditnih kartica.3 WSDL (Web Services Description Language) - jezik koji služi za definisanje pojedinačnih web servisa. WSDL jezikom opisuju se sve vrste aktivnosti koje može da odradi neki web servis.

4

Page 5: Zaštita WEB servisa FINAL

Standardna arhitektura web servisa (Web Services Architecture - WSA) je definisana od strane W3C konzorcijuma4. Web servisi omogućavaju globalnu integraciju informacionih sistema. Oni se sastoje od seta internet-baziranih tehnologija i omogućavaju da različite aplikacije, pisane različitim programskim jezicima, koje se izvršavaju na raznovrsnim platformama (hardware i operativni sistemi) mogu nesmetano da vrše interakciju. Kao takvi, web servisi se mogu implementirati u bilo koji informacioni sistem.

Kao jedan od najjednostavnijih primera upotrebe web servisa je aukcijski endžin poznate Interneta aukcijske kuće eBay (www.ebay.com). Zainteresovane firme i pojedinci mogu se jednostavno pretplatiti na korišćenje eBay-evih web servisa, tako da ne moraju investirati u razvoj sopstvenih. Sve što je potrebno je da u svoje web aplikacije implementiraju nekoliko redova programskog kôda kako bi inkorporirali eksterne web servise. Na taj način je praktično omogućeno da druge kompanije (koje u osnovi nisu aukcijske kuće) imaju funkcionalnost jedne aukcijske kuće, te mogu da organizuju privatne instant-aukcije na sopstvenim web sajtovima. Dodatno, ovaj web servis može biti potpomognut servisima drugih kompanija koje se bave procesiranjem plaćanja, isporuke i logistike, tako da zainteresovane firme (pojedinci) mogu da kreiraju aukcijske portale bez sopstvenih resursa, u saradnji sa brojnim provajderima web servisa.

Što se tiče same primene, web servisi, njihov razvoj i upotreba, mogu biti najzanimljiviji finansijskom sektoru, tj. bankama, štedionicama, kreditorima, brokerskim kućama i sličnim ustanovama. Upotreba ove nove tehnologije još više dobija na značaju prelaskom platnog prometa u poslovne banke. Kreiranjem odgovarajućih web servisa i usaglašavanjem komunikacije između poslovnih partnera, shodno XML standardima, povećava se efikasnost i operativnost, smanjuju se troškovi i ojačava se veza između poslovnih partnera i klijenata.

Sa web servisima, poslovanje se premešta sa mreže koja je oslonjena na ljudski faktor, na mrežu koja se oslanja na aplikacije (aplikativno-orijentisane mreže gde međusobno komuniciraju aplikacije). Ovo ne znači da se iz priče izbacuje ljudski faktor, već da se samo omogućava direktna konverzacija između aplikacija, kao što to sada imamo u pojednostavljenom obliku između web browser-a i web servera (zahtev-odgovor).

4 W3C (The World Wide Web Consortium) konzorcijum - razvija tehnologije (specifikacije, vodiče, softver i alate) u cilju usmeravanja Web-a ka ispunjavanju njegovog punog potencijala. W3C je forum za informacije, trgovinu, komunikacije i kolektivno razumevanje.

5

Page 6: Zaštita WEB servisa FINAL

ZAŠTITA

Web-servis zaštita se ogleda u obezbedjivanju autorizacije poruka, njihove tajnosti, kao i ’’single mesage’’ autentikacije. Ovi mehanizmi mogu biti iskorišćeni da prilagide i približe širok spektar modela zaštite.

Današnja moderna preduzeća se u ogromnoj meri oslanjaju na IT-infratrukture u obavljanju svojih aktivnosti. Verovatno najveća prednost oslanjanja na IT-infrastrukturu je u tome što ona omogućava integraciju aplikacija izvan granica preduzeća, koja omogućava brzu i laku saradnju sa partnerima, mušterijama i dobavljačima.

Medjutim, ova razmena podataka i informacija je često vrlo nesigurna i podložna napadima profesionalnih ili amaterskih upada. Upravo zbog toga je neophodna dobra integracija sistema zaštite kroz gore navedena tri osnovna aspekta u dizajniranju zaštite.

Autentikacija:

Autentikacija je proces utvrdjivanja identiteta korisnika. Autentikacij se u distribuiranim sistemima realizuje kroz dva osnovna koncepta (modela):

Model predstavljanja / delegiranja Model poverljivog servera

Oba modela podrazumevaju višeslojnu arhitekturu aplikativnog rešenja. Autentikacija korisnika vrši se na srednjem sloju (WEB ili aplikativni server) a razlika između ova dva koncepta odnosi se na “security account” kojim se pristupa podacima (data sloj).

U modelu predstavljanja/delegiranja korisnik se predstavlja aplikaciji srednjeg sloja prezentujući svoje akreditive (engl. Credentials) koji se dalje koriste za pristup podacima (slika 1).

6

Page 7: Zaštita WEB servisa FINAL

Slika1. Model predstavljanja/delegiranja

U modelu poverljivog servera, aplikacija srednjeg sloja autentikuje korisnika, a komunikaciju sa “data” serverom ostvaruje koristeći svoj vlastiti “security account”. Korisnik nema ovlašćenja za direktan pristup podacima već se to ostvaruje isključivo kroz aplikaciju srednjeg sloja. U ovom slučaju autentikacija se obavlja u dva koraka:

- aplikacija na srednjem sloju autentikuje korisnika- server podataka autentikuje aplikaciju (slika 2).

Slika2. Model poverljivog servera

Autorizacija:

Autorizacija omogućava određenim korisnicima ili servisima kontrolisan pristup resursima. Jednom, kada je korisnik autentikovan, on biva autorizovan za izvršenje samo onih zadataka koji su mu autorizacijom omogućeni. Sa stanovišta sigurnosti, veoma je značajno da su nivoi pristupa ograničeni na isključivo autorizovane korisnike.

Zaštita tajnosti:

Zaštita tajnosti podrazumeva šifrovanje podataka u cilju sprečavanja neovlašćenog uvida u osetljive informacije. Implementira se na nivou međuserverske komunikacije (npr. server e-commerce provajdera – server banke/provajdera plaćanja), kao i na nivou komunikacije klijent – server provajdera. U prvom slučaju najčešće se koriste sigurnosni zaštićeni kanali,  dok se u drugom slučaju koristi SSL protokol5, o kome će biti više reči u delu o digitalnim sertifikatima.

5 SSL (Secure Socket Layer) protokol - koji je razvila firma Netscape, je trenutno najčešće korišćen metod za obavljanje sigurnih transakcija na mreži. Podržava ga većina Web servera kao i klijenata uključujući Microsoft Internet Explorer i Netscape Navigator.

7

Page 8: Zaštita WEB servisa FINAL

Kriptografija, kao nauka koja se bavi metodama očuvanja tajnosti informacija, pruža rešenje ovog problema.

Pre nego što se predje na prikaz i objašnjenje različitih sistema šifrovanja podataka koji su danas u upotrebi, potrebno je objasniti osnovne elemente kriptografije:

1. šifrovanje - postupak transformacije čitljivog teksta u oblik nečitljiv za

onoga kome taj tekst nije namenjen

2. dešifrovanje - postupak vraćanja šifrovanog teksta u čitljiv oblik

3. ključ - početna vrednost algoritma kojim se vrši šifrovanje.

Što se tiče same kriptografije, njene osnove čine:

Simetrični algoritmi

Asimetrični algoritmi

Digitalni potpisi.

Šifrovanje tajnim ključem (Simetrično šifrovanje) jeste šifarski sistem kod koga je ključ za šifrovanje identičan ključu za dešifrovanje, što znači da i pošiljalac i primalac poruke koriste isti tajni ključ.

Ako npr. KorisnikA želi da pošalje KorisnikuB poruku (fakturu, račun, podatke o kreditnoj kartici) on će je šifrovati svojim tajnim ključem. Kada primi poruku, KorisnikB je može dešifrovati samo ako poseduje kopiju tog ključa.

Tajnost i autentičnost poruke kod ovog sistema zasnivaju se na tajnosti ključa.

8

Page 9: Zaštita WEB servisa FINAL

Ako se KorisnikA i KorisnikB nalaze na fizički udaljenim lokacijama javlja se problem obezbeđenja sigurnog kanala za distribuciju tajnog ključa. Svako ko na bilo koji način sazna njegovu vrednost mogao bi da čita i modifikuje sve poruke koje međusobno razmenjuju KorisnikA i KorisnikB, a da to ostane neprimećeno.

Postoji još jedan problem, ako KorisnikA želi da komunicira sa više poslovnih partnera mora da obezbedi različit ključ za svakog primaoca, kako bi se izbegla mogućnost da bilo koji primalac čita poruke koje mu nisu namenjene.

Rešenje ovih problema je pronađeno u vidu sistema šifrovanja javnim ključem (Asimetrični šifarski sistem).

U njemu svaki učesnik u komunikaciji koristi dva ključa. Jedan ključ je javni i može se slobodno distribuirati, dok je drugi tajni i dostupan je samo njegovom vlasniku.

Iako su različiti, ključevi su međusobno povezani određenim transformacijama. Poznavanje jednog ključa i algoritma transformacije ne omogućava dobijanje drugog ključa.

Najbitnije je da se tajni ključ u celom postupku komunikacije nigde ne šalje jer ne postoji potreba da bilo ko sem njegovog vlasnika bude upoznat s njim, što znači da možete bilo kome da pošaljete šifrovanu poruku ako znate javni ključ osobe kojoj šaljete, a samo primalac svojim tajnim ključem može da dešifruje poruku.

Najpoznatiji predstavnik asimetričnih algoritama je RSA6.

6 RSA (Rivest, Shamir & Adleman) – algoritam koji se zasniva na matematičkom problemu faktorisanja velikih prirodnih brojeva i radi kao blok šifra, jer uzima blokove podataka koji se žele šifrovati, i nad njima primenjuje odredjene operacije.

9

Page 10: Zaštita WEB servisa FINAL

Ako ponovo pogledamo prethodni primer, sada je situacija bitno drugačija:

KorisnikA šifruje poruku KorisnikuB upotrebom njegovog javnog ključa koji je svima dostupan. Mogao ga je dobiti putem email-a, preuzeti sa njegovog web sajta i sl. Bilo ko ko presretne ovu komunikaciju i pored toga što poznaje javni ključ KorisnikaB ne može otkriti sadržaj poruke. Poruku može dešifrovati samo KorisnikB korišćenjem svog tajnog ključa.

Ovaj sistem predstavlja rešenje za dva uslova postavljenih na početku ovog teksta - zaštitu tajnosti informacija i očuvanje njihovog integriteta.

Ostaje otvoreno pitanje kako da KorisnikB bude siguran da je poruku koju je primio zaista poslao KorisnikA.

Obezbeđenje autentičnosti informacija tj. definisanje i provera identiteta pošiljaoca postiže se upotrebom digitalnih potpisa i digitalnih sertifikata.

Svrha digitalnog potpisa je da potvrdi autentičnost sadržaja poruke (dokaz da poruka nije promenjena na putu od pošiljaoca do primaoca ), kao i da obezbedi garantovanje identiteta pošiljaoca poruke.

Osnovu digitalnog potpisa čini sadržaj same poruke.

10

Page 11: Zaštita WEB servisa FINAL

Pošiljalac primenom odredjenih kriptografskih algoritama prvo od svoje poruke koja je proizvoljne dužine stvara zapis fiksne dužine (npr. 512 ili 1024 bita) koji u potpunosti oslikava sadržaj poruke. To prakticno znači da svaka promena u sadržaju poruke dovodi do promene potpisa.

Ovako dobijen zapis on dalje šifruje svojim tajnim ključem i tako formira digitalni potpis koje se šalje zajedno sa porukom.

Na primeru:

KorisnikA kreira digitalni potpis na osnovu poruke koju želi da pošalje KorisnikuB. Šifruje ga svojim tajnim ključem i šalje zajedno sa porukom. KorisnikB po prijemu poruke dešifruje potpis KorisnikaA njegovim javnim ključem. Zatim primenom istog postupka kao i KorisnikA, i KorisnikB kreira potpis na osnovu poruke koju je primio i upoređuje ga sa primljenim potpisom.

Ako su potpisi identični, KorisnikB može biti siguran da je poruku zaista poslao KorisnikA (jer je njegovim javnim ključem uspešno dešifrovao potpis) i da je ona stigla do njega nepromenjena (jer je utvrdio da su potpisi identični).

I pored velike sigurnosti koje pruža ovaj metod zaštite, i dalje postoji mogućnost prevare. Neko je mogao poslati KorisnikuB svoj javni ključ tvrdeći da je to ključ KorisnikaA, a zatim mu slati poruke za koje bi KorisnikB mislio da ih šalje KorisnikA.

Rešenje ovog problema pruža upotreba digitalnih sertifikata. Sertifikati obezbeđuju mehanizam za uspostavljanje poverenja u odnosima između javnih ključeva i entiteta koji poseduju odgovarajuće tajne ključeve u svrhu pružanja garancije da određeni javni ključ pripada određenom entitetu.

Najčešće korišćeni standard za digitalne sertifikate je X.509.

11

Page 12: Zaštita WEB servisa FINAL

Sertifikate možemo nazvati i digitalnom Ličnom kartom, jer oni zaista to i jesu - digitalna lična karta u syber prostoru, sredstvo kojim ćete vi ili osoba sa kojom komunicirate dokazati identitet na Internetu.

Pošto na Internetu nema policije koja bi proverila vaše podatke i izdala vam Ličnu kartu, pojavile su se kompanije koje imaju ulogu ‘treće strane’, - CA  Certificate Authority7 čija je uloga da provere i utvrde nečiji identitet i nakon toga mu izdaju digitalni sertifikat. U zavisnosti od domena primene, to može biti neka državna institucija od poverenja, ali i bilo koja institucija ili pojedinac za svoje komintente.

Kako to funkcioniše u praksi?

Npr. KorisnikA podnosi zahtev za izdavanje sertifikata CA kompaniji. CA proverava njegov identitet na osnovu ličnih dokumenata koje im je prikazao pri podnošenju zahteva. Ako je sve u redu, KorisnikA im prosleđuje svoj javni ključ za koji CA kreira digitalni potpis i nakon toga izdaje sertifikat kojim se potvrđuje da taj javni ključ zaista pripada KorisnikuA.

Ako KorisnikA kasnije želi da komunicira sa nekim, pri prvom kontaktu mu šalje digitalni sertifikat i svoj javni ključ. S obzirom da svi poznatiji komunikacioni programi u sebi več imaju uključene javne ključeve CA kompanija kojima se veruje, primalac po prijemu ove poruke lako utvrđuje validnost sertifikata KorisnikaA.

7 CA  Certificate Authority - sertifikaciono telo; izdaje sertifikate podnosiocima zahteva na osnovu uspostavljenih kriterijuma. CA se pojavljuje u ulozi garanta prilikom uspostavljanja korelacije između javnog ključa subjekta i ostalih identifikacionih podataka o tom subjektu koji su sadržani u izdatom sertifikatu.

12

Page 13: Zaštita WEB servisa FINAL

Digitalni sertifikat vašeg servera izdat od strane CA mora da sadrži sledeće:

Naziv vaše organizacije Dodatne podatke za identifikaciju Vaš javni ključ Datum do koga važi vaš javni ključ Ime CA koji je izdao digitalni sertifikat Jedinstveni serijski broj.

Svi ovi podaci formiraju sertifikat koji se na kraju šifruje koristeći tajni ključ CA. Ako korisnik ima poverenja u CA i ima CA javni ključ, može biti siguran u ispravnost sertifikata.

Velika je verovatnoća da Web browser koji korisnik poseduje već sadrži javni ključ CA jer su Netscape i Microsoft procenili kojim se CA može najviše verovati, pa su njihove javne ključeve uključili u svoje browsere.

Sertifikaciono telo izdaje sertifikate podnosiocima zahteva na osnovu uspostavljenih kriterijuma. CA se pojavljuje u ulozi garanta prilikom uspostavljanja korelacije između javnog ključa subjekta i ostalih identifikacionih podataka o tom subjektu koji su sadržani u izdatom sertifikatu.

CA se mogu organizovati po hijerarhijskom modelu. To omogućava veću funkcionalnost i jednostavniju administraciju. Generalno, hijerarhija CA sadrži više CA sa strogo definisanim odnosom roditelj-dete. CA koji je najviši u hijerarhiji se generalno naziva korenski CA (root CA) čiji sertifikat je potpisan samim sobom (self-signed). To je sertifikat u kome su naziv subjekta i naziv izdavaoca sertifikata identični i čiji javni ključ se može direktno uzeti za verifikaciju potpisa pridruženog uz sertifikat. Ukoliko postoji više od jednog CA u hijerarhiji vrši se validacija sertifikata od nižeg ka višem hijerarhijskom nivou.

Na primeru:

Centralna banka izdaje sertifikate za komercijalne banke. Ona se pojavljuje u ulozi korenskog CA. Komercijalne banke izdaju sertifikate za svoje klijente. Klijent jedne banke ne mora da veruje sertifikatu izdatom od druge banke ali veruje centralnoj banci. Provera validnosti sertifikata deponenta druge banke vrši se tako što se proveri digitalni potpis njegovog sertifikata pomoću javnog ključa uzetog iz sertifikata banke koja je izdala taj sertifikat. Potom se proveri potpis na sertifikatu banke pomoću javnog ključa centralne banke. Po definiciji, korenskom sertifikatu se veruje (u ovom slučaju centralnoj banci). Time je dokazana validnost sertifikata klijenta. Na isti način se vrši provera i kada je u lancu više CA.

Kao što je već navedeno trenutno najčešće korišćen metod za obavljanje sigurnih transakcija na mreži, a koji koristi digitalni sertifikat je SSL protokol. SSL obezbeđuje privatnost, integritet podataka i autentičnost pošiljalaca korišćenjem kombinacije šifrovanja javnim ključem, simetričnog šifrovanja, i digitalnih sertifikata.

13

Page 14: Zaštita WEB servisa FINAL

Transakcija korišćenjem SSL protokola uključuje sledeće aktivnosti:

Server šalje svoj digitalni sertifikat klijentu Klijent proverava da li je sertifikat izdat od strane CA Klijent i server razmenjuju javne ključeve Klijent generiše tajni ključ koji se koristi samo u

započetoj transakciji Klijent šifruje generisani tajni ključ korišćenjem

serverovog javnog ključa i šalje ga serveru U daljem toku transakcije server i klijent koriste isti tajni ključ metodom simetričnog

kriptovanja.

U verziji 2.0 SSL podržava samo proveru autentičnosti servera, dok je u novoj SSL v3.0 uključena i podrška za proveru autentičnosti klijenta.

Medjutim, SSL, iako je najčešće korišćen standard zaštite u e-commerce transakcijama, ipak ne može biti korišćen za zaštitu web servisa u globalu. To je zbog toga što web servisi preferiraju end-to-end zaštitu nad point-to-point zaštitom (koju omogućava SSL).

14

Page 15: Zaštita WEB servisa FINAL

Zapravo, mnogi web servisi mogu biti razvijeni tako da korisnik prvo pristupa web sajtu, a sajt poziva udaljeni web servis (indirektni pristup korisnika web servisu). U ovom slučaju postoje dva konteksta zaštite:

1. Izmedju korisnika i web sajta2. Izmedju korisnika i web servisa.

Drugi kontekst zaštite, koji upućuje na stalnu i istrajnu zaštitu, zahteva sigurnost SOAP request/reply poruke (izmedju web sajta i web servisa) da bi se osigurao na više od jedne klijent/server konekcije. Drugim rečima, postoji potreba za istrajnom zaštitom poruke za SOAP dokumente. SSL je neadekvatan za ovaj tip zaštite. SSL ostavlja “nebranjene” podatke izmedju web sajta i web servis provajdera.

Iz ovih razloga su u poslednjih nekoliko godina u velikoj meri razvijeni mnogobrojni mehanizmi i standardi koji omogućavaju end-to-end sigurnost web servisa. U njihovom razvoju najveću ulogu imaju giganti kakvi su W3C, OASIS8 i Liberty Alliance9, koji razvijaju standarde i specifikacije da bi obezbedili obimne šeme zaštite za web servise. Najznačajniji mehanizmi i standardi biće ukrako objašnjeni.

● XML Signature je XML sintaksa kojom se predstavlja digitalni potpis bilo kog digitalnog sadržaja. Omogućava proveru originalnosti poruke (da li je menjana u transportu). Ova standardna specifikacija je razvijena zajedničkim naporima W3C i IETF (Internet Engineering Task Force). Ekvivalentna je digitalnom potpisu, s tom razlikom što štiti SOAP poruke.

XML signature šema

8 OASIS (Organization for the Advancement of Structured Information Standards) – neprofitni, globalni konzorcijum koji se bavi razvojem, konvergencijom i usvajanjem e-biznis standarda.9 Liberty Aliance – konzorcijum 150 globalnih (komercijalnih i nekomercijalnih) ogranizacija koje zajedno rade radi stvaranja “digitalnog ekosistema od poverenja”.

15

Page 16: Zaštita WEB servisa FINAL

● XML Encryption podržava enkripciju određenih delova XML dokumenta ili poruke. Podržava simetrične i asimetrične algoritme. Razvijena je od strane W3C-a. Ova specifikacija može biti korišćena da osigura poverljivost u slučaju da je zaštitni kontekst rangiran preko nekoliko SOAP posrednika. Delovi SOAP poruke su zaštićeni od SOAP posrednika u toku tranzicije poruke.

XML encryption šema

● XML Key Management Specification (XKMS), razvijen takodje od strane W3C-a. Dozvoljava klijentima da dobiju key-informacije (kao što su ključevi i sertifikati). Takodje opisuje protokol za key-menadžment, kao što je registracija i opoziv, koji je podoban za korišćenje sa XML Signatre i XML Encryption.

● Security Assertions Markup Language (SAML) je definisan od strane OASIS-a. Ocrtava kostur za razmenu autentikacijskih i autorizacijskih informacija.

● XML Access Control Markup Language (XACML) je specifikacija čiji je osnovni cilj da standardizuje pristup kontrolnom jeziku u XML sintaksi. Ovaj jezik može da izriče kontrolne polise, kao što je na primer “ko može šta da uradi i kada”. The Web Services Policy Language (WSPL) je baziran na XACML-u.

16

Page 17: Zaštita WEB servisa FINAL

● WS-Security je zapravo specifikacija predloženih proširenja SOAP protokola za izgradnju sigurnih Web servisa. Ovo je zajednički poduhvat Microsoft-a, IBM-a i Verisign-a. Oslanja se na XML DIGSIG, XML Encryption, XML Schema, SOAP… Definiše SOAP ekstenziju koja obezbedjuje kvalitet zaštite kroz autorizaciju poruka, tajnost, kao i ’’single mesage’’ autentikaciju.

Ovo je, po mnogima, do sada najuspešniji vid zaštite web servisa. Opšte je prihvaćena tvrdnja da je zaštita zapravo ključna stavka (ali i mogući kamen spoticanja) u razvijanju same pojave web servisa koji bi trebalo da zadovolje trenutne potrebe tržišta. Upravo iz ovog razloga će biti obraćena nešto veća pažnja na WS-Security.

WS-Security šema

U ovm delu ćemo dati pregled istorijata WS-Security razvoja:

U oktobru 2001, Microsoft je objavio da je puštena u distribuciju WS-Security specifikacija koja definiše poboljšanja u SOAP messaging-u koja bi trebalo da obezbede tri sposobnosti: razmenu akreditiva, integritet poruke i poverljivost poruke.

U aprilu 2002, Microsoft, IBM, VeriSign su objavili publikaciju Web Services Security (WS-Security) specifikacije i dokument koji opisuje predložene strategije za zaštitu addressing-a u okviru web servis okruženja.

U julu 2002, Web Services Security (WS-Security) specifikacija je bila potčinjena OASIS-u.

17

Page 18: Zaštita WEB servisa FINAL

Takodje u julu 2002, formiran je OASIS-ov Web Services Security Technical Committee (WSS TC) koji bi trebalo da nastavi sa radom na temeljima WS-Security specifikacije.

U aprilu 2004, predsedništvo OASIS-ovog Web Services Security Technical Committee-ja (WSS TC) je objavilo da je pet specifikacija, stvorenih od strane tehničkog komiteta, odobreno kao OASIS-ovi standardi. Ovaj polazni set specifikacija obuhvatao je glavni Web Services Security dokument: SOAP Message Security 1.0 (WS-Security 2004), Web Services Security UsernameToken Profile 1.0, Web Services Security X.509 Certificate Token Profile, i dve relevantne XML šeme.

U februaru 2006, OASIS je objavio da su njegovi članovi “odobrili WS-Security verziju 1.1 kao OASIS-ov standard. Razvijen kroz otvoren postupak od strane OASIS-ovog Web Services Security Technical Committee-ja (WSS TC), WS-Security daje tehničku osnovu za implementiranje zaštitnih funkcija kao što su integritet i poverljivost u implementaciji poruka na višem nivou web servis aplikacija… WSS specifikacije opisuju mehanizam za zaštitu web servis razmene poruka, uz korišćenje velikog broja postojećih tehnologija i metodologija zaštite.“

“Set dokumenata iz februara 2006 je zapravo 1.1 revizija originalnog WS-Security 2004 OASIS standarda. Dodato je nekoliko token profila. Uz to je uključen i 1.0 Errata10 standard. Osim toga, uključen je i feed-back (povratna veza) sa tržištem i načinjeni su značajni koraci u povećavanju dostupnosti i korisnosti specifikacije. Dodata je i 1.1 šema kao i nekoliko XML elemenata za sam jezik.”

U bliskoj budućnosti se planira i spajanje WS-Security specifikacija sa još jednim pristupom zaštiti web servisa, a to je SAML, koji je opisan u prethodnom poglavlju.

Bez obzira na to da li će biti spajanja sa SAML specifikacijama ili nekim drugim, nema sumnje da se budućnost zaštite web servisa zasniva na velikom broju prilagodjavanja radi ostvarenja zajedničkog cilja – što bezbednijeg digitalnog ekosistema.

101.0 Errata – dokument koji navodi spisak grešaka u verziji 1.1 i njihove ispravke

18

Page 19: Zaštita WEB servisa FINAL

ZAKLJUČAK

Web servisi su danas od velikog značaja za tržište. Oni u velikoj meri mogu da umanje kompleksnost pravljenja poslovnih aplikacija, da značajno smanje troškove, kao i da omoguće stvaranje novih poslovnih modela. Vrlo je značajno obezbediti sigurno korišćenje web servisa, pre svega iz finansijskih i pravnih razloga, ali i radi očuvanja privatnosti i poverenja.

Zbog svega navedenog, potrebno je obratiti naročitu pažnju na same sisteme zaštite, posebno na implementaciju najsavremenijih i najsavršenijih.

WS-Security je trenutno najbolje rešenje, ali nije panaceja (ne leči sve rane). Dosta posla treba još obaviti da bi se došlo do savršenstva.

Ohrabrujuća je činjenica da ovoga puta giganti sede za istim stolom i ulažu velike napore u ostvarivanju cilja. Pored IBM-a, Microsoft-a, VeriSign-a i Sun-a, tu su još i vodeći “trgovci zaštitom”: Baltimore Technologies, Entrust, Netegrity, Oblix, RSA Security i Novell – zajedno ka velikom cilju!

Maksimalna sigurnost web servisa ima dobrih potencijala.

19

Page 20: Zaštita WEB servisa FINAL

LITERATURA

Organizacija računara i operativni sistemi / Dejan Simić. Beograd : FON, 2004

http://www.oreilly.com

http://www.w3.org

http://www.oasis-open.org

http://www.projectliberty.org

http://www.pctv.co.yu

http://www.elitesecurity.org

http://www.personalmag.co.yu

http://www.techweb.com

http://www.internetweek.cmp.com

http://www.webopedia.com

http://en.wikipedia.org

http://www.microsoft.co.yu

20