Modeli autentifikacije i autorizacije korisnika u web

SVEUČILIŠTE U MOSTARU
FAKULTET PRIRODOSLOVNO – MATEMATIČKIH I ODGOJNIH ZNANOSTI
MATEMATIKA - INFORMATIKA
Marija Pervan
Modeli autentifikacije i autorizacije korisnika
u web aplikacijama
Diplomski rad
Mostar, rujan 2014.
SVEUČILIŠTE U MOSTARU
FAKULTET PRIRODOSLOVNO – MATEMATIČKIH I ODGOJNIH ZNANOSTI
MATEMATIKA - INFORMATIKA
Modeli autentifikacije i autorizacije korisnika
u web aplikacijama
Diplomski rad
Mentor:
Doc.dr.sc. Goran Kraljević
Student:
Marija Pervan
Mostar, rujan 2014.
SADRŽAJ:
SAŽETAK ............................................................................................................................ 1
1.
UVOD ............................................................................................................................ 2
2.
AUTENTIFIKACIJA .................................................................................................. 4
2.1.
Brute Force napadi ............................................................................................................. 4
2.1.1.
2.1.2.
2.1.3.
2.2.
2.3.
3.
Napad rječnikom ........................................................................................................ 7
Proboji kriptografskih algoritama ............................................................................. 8
Detekcija i zaštita od Brute Force napada ............................................................... 10
Nedovoljna razina autentifikacije..................................................................................... 12
Nedovoljna zaštita korisnikove lozinke ........................................................................... 13
AUTORIZACIJA ....................................................................................................... 15
3.1.
NagaĎanje vjerodajnog identifikacijskog broja ................................................................ 15
3.2.
3.3.
3.4.
Nedovoljna autorizacija.................................................................................................... 17
Nedovoljna kontrola trajanja korištenja usluge ................................................................ 18
Fiksacija usluge ................................................................................................................ 19
4.
PRIMJER WEB APLIKACIJE ................................................................................ 21
5.
SSO (SINGLE-SIGN-ON) ......................................................................................... 28
5.1.
Zahtjevi pred SSO ............................................................................................................ 28
5.2.
5.3.
5.4.
5.5.
5.6.
5.7.
Djelovanje SSO-a ............................................................................................................ 29
Sigurnost i SSO ................................................................................................................ 32
Sinkronizacija lozinki ....................................................................................................... 32
Automatizirana prijava ..................................................................................................... 33
Autentifikacija temeljena na oznakama ........................................................................... 33
SSO i Web ....................................................................................................................... 34
5.8.
Središnji autentifikacijski sustav za Web (CAS) ............................................................. 36
5.8.1.
CAS djelovanje ......................................................................................................... 37
5.9. Povezani pristup u SSO-u ................................................................................................ 38
5.9.1.
SAML i Web Single Sign On ..................................................................................... 38
5.10.
Autorizacija temeljena na atributima ........................................................................... 39
6.
ZAKLJUČAK ............................................................................................................. 40
7.
LITERATURA ........................................................................................................... 42
SAŽETAK
Napadi na proces autentifikacije korisnika su Brute Force napadi, nedovoljna razina
autentifikacije i nedovoljna zaštita korisnikove lozinke. Brute Force napadi se odnose na
metode pokušaja i pogrešaka, a nedovoljna razina autentifikacije omogućuje napadaču
pristup podacima bez da se propisno autenficirao. Nedovoljna zaštita lozinke dovodi do
lažnog prijavljivanja na sustav. Može se dogoditi putem tajnog pitanja ili druge metode
uključene u slučaju zaboravljanja lozinke.
Napadi na autorizaciju su: pogaĎanje vjerodajnog identifikacijskog broja, nedovoljna
autorizacija, nedovoljna kontrola trajanja korištenja usluge i fiksacija usluge. PogaĎanje
vjerodajnog identifikacijskog broja je važno jer taj broj ( Session ID) dovodi korisnika do
odreĎenih podataka i sadržaja. Nedovoljnom autorizacijom korisniku se dodjeljuju uloge
za koje nije ovlašten, a ne kontrolom trajanja korištenja usluge dolazi do zloupotrebe
korisničkog računa ukoliko se korisnik propisno ne odjavi i na njegovo mjesto doĎe druga
osoba. Fiksacija usluge podrazumjeva fiksiranje Session ID-a na eksplicitnu vrijednost
kako napadač ne bi mogao razviti tehniku za pogaĎanje sljedećeg Session ID-a. SSO
(Single-Sign-On) služi za autentifikaciju i autorizaciju korisnika putem jednostruke
prijave.
1
1. UVOD
Web aplikacije su programska rješenja kojima možemo pristupiti koristeći internet
preglednike preko interneta ili intraneta.1 Vrtoglavi rast i razvoj treba zahvaliti tome da su
dostupne u bilo koje doba i s bilo kojeg mjesta. Osim toga web programe nije potrebno s
vremenom nadograĎivati na svakom računalu, jer im se pristupa isto kao i ostalim web
stranicama, putem internet browsera.
Arhitektura Web aplikacija se sastoji od tri sloja, tzv. troslojna arhitektura. U nju su
uključeni: prezentacijski sloj (prikaz informacija korisniku putem preglednika),
aplikacijski sloj (upravljanje aktivnostima koje aplikacija treba izvršiti), podaktovni sloj
(upravljanje pohranjivanjem podataka u bazu i prikazom podataka iz baze poslužitelju).
Prednost Web aplikacija je i u tome što rade bez obzira na operacijski sustav računala s
kojeg joj se pristupa, a jedan od nedostataka je problem sa sigurnošću (zaštita protiv upada,
virusa i sl.). Upravo taj problem jedan je od najvažnijih elemenata kojim se svaki
administrator treba baviti. Naime, Web aplikacije koje omogućuju svojim korisnicima
prijavu na sustav putem odreĎenih podataka dužne su voditi računa o zaštiti kako svojih
korisnika tako i zaštiti same aplikacije. Prilikom prijave na sustav, korisnik unosi odreĎene
informacije na samu aplikaciju i aplikacija izvršava provjeru identiteta korisnika koji je
pristupio. Nakon uspješne prijave na aplikaciji se odvija proces koji utvrĎiva koja prava i
privilegije taj korisnik dobiva. Naime, različiti korisnici imaju različite prikaze. Npr.
administrator će dobiti mnogo više mogućnosti za rad na aplikaciji od „običnog korisnika“.
Postupak identificiranja korisnika naziva se proces autentifikacije, dok se proces dodjele
uloga, prava i privilegija nakon autentifikacije naziva autorizacija korisnika. Upravo
napadi na autentifikaciju i autorizaciju korisnika, jedan su od najčešćih napada s kojim se
možemo susresti na Web-u. Budući da često možemo naići na aplikacije koje stavljaju
funkcionalnost ispred sigurnosti, povećana je i mogućnost potencijalnog ulaza
zlonamjernim napadačima.
1
Internet: javna mreža temeljena na TCP/IP protokolu.
Intranet: privatna mreža neke tvrtke ili institucije kojom se podaci takoĎer prenose preko TCP/IPI protokola.
(zaštićen pristup samo korisnicima unutar tvrtke)
2
Osim kraĎe identifikacijskih podataka korisnika, neovlašteni pristup Web aplikacijama
može imati i mnoge druge posljedice. Pristup osjetljivim sadržajima kao i njihovo
mjenjanje dovodi do promjene rada same aplikacije, a sadržaji unutar nje mogu ugroziti i
administratore i aplikaciju i korisnike.
3
2. AUTENTIFIKACIJA
2.1.
Brute Force napadi
Brute Force je metoda pokušaja i pogrešaka koja se koristi za dobivanje informacija kao
što su korisničke lozinke, neki identifikacijski brojevi, brojevi kreditnih kartica itd. Koristi
automatizirani softver koji generira velik broj podataka i provjerava da li neki od tih
podataka odgovara odreĎenoj traženoj informaciji. Ova vrsta napada može biti korištena od
strane kriminalaca za razbijanje šifri ili od strane sigurnosnih analitičara za testiranje
sigurnosti.
Budući da danas mnogi sustavi omogućuju korisnicima korištenje kratkih lozinki i
jednostavnih kriptografskih ključeva brute force je vrlo česta i uspješna metoda iako
vrijeme napada može varirati od nekoliko minuta do nekoliko godina. Zbog toga zahtjeva
ili velike resurse za isprobavanje svih različitih kombinacija ili veliku količinu vremena
dovoljnu da se s malim resursima izvede isprobavanje svih kombinacija. U stvarnoj
primjeni to znači da je cijena resursa potrebnih za rješavanje nekog problema ovom
metodom često veća nego što vrijedi samo rješenje.
Brute Force napad isprobava sva moguća rješenja bez obzira na nelogičnost neke od njih.
Stoga ih ne treba mijenjati sa nekim sličnim metodama koje odreĎenim načinima
reduciraju broj mogućih rješenja za isprobavanje. Ukoliko korisnik za lozinku odabere
riječ jednostavnu za zapamtiti i koju je lako naći u rječniku, napadač može odabirom riječi
iz rječnika stvoriti na tisuće netočnih upita. Metoda će biti uspješna kada se pronaĎe
lozinka odreĎenog korisnika i pristupi njegovom korisničkom računu. 2
Primjer Brute force alata je Hydra, paralizirajući Web-cracker. Hydra posjeduje rječnik u
kojeg se mogu upisati riječi koje se najčešće koriste od strane korisnika, npr. Auta, Brzina,
Motori itd. Nakon što se odredi sadržaj rječnika, Hydra-i se zadaje put do tražene
aplikacije, te započinje izvoĎenje Brute force napada za traženo korisničko ime.
Uspješnost napada ovisi o veličini i sadržaju rječnika.
2
Brute Force napadi ( Carnet Cert i LS&S, CCERT-PUBDOC-2007-08-201)
4
Postoje dvije vrste brute force napada:

Normalni ( uobičajeni)

Reverzni
Normalni brute force napad koristi jedno korisničko ime i veliki skup lozinki, dok reverzni
brute force napad koristi velik broj korisničkih imena i samo jednu lozinku.
Reverzni napad se koristi u sustavima koji imaju jako velik broj korisnika i šansa da dvije
osobe imaju istu lozinku je vrlo velika.
Brute force napad je jednostavan za implementaciju i sastoji se od četiri osnovne
procedure:
1. prvi(P) – generiraj prvi kandidat k za problem P.
2. slijedeći(P, k) – generiraj slijedeći kandidat k za problem P nakon trenutnog
kandidata k.
3. važeći(P, k) – provjeri je li kandidat k važeće rješenje problema P.
4. izlaz(P, k) – upotrijebi rješenje k za problem P kao prikladno rješenje za aplikaciju.
Procedura slijedeći(P, k) trebala bi takoĎer detektirati situacije kad se iscrpe svi kandidati i
kao rezultat poslati neku vrijednost (npr. null) koja bi omogućila prekid daljnjeg izvoĎenja
algoritma. Jednako bi tako procedura prvi(P) trebala vratiti null vrijednost ako ne postoji
nijedan kandidat za rješenje problema. Algoritam se tako može prikazati slijedećim
pseudokodom:
prvi (P)
dok je k različito od null radi
ako je važeći (P, k) tada izlaz (P, k)
inače slijedeći (P, k)
Na primjer, ukoliko želimo naći djelitelja nekog broja n, P poprima vrijednost broja n.
Procedura prvi(P) vraća prvi važeći kandidat k, a to je broj 1 ako broj 1 nije veći od n ili
null ako je odabrani broj n = 1. Procedura slijedeći(P, k) vraća prvi slijedeći kandidat koji
ima vrijednost k + 1 ako je k + 1 < n ili null ako je k + 1 > n. Procedura važeći(P, k) vratit
će vrijednost ISTINA samo ako je k djelitelj broja n.
5
TakoĎer, algoritam možemo pojednostaviti ako se umjesto null koristimo vrijednost n+1.
Brute force algoritam će pozivati proceduru izlaz za svaki generirani kandidat, ali ga se
može lako modificirati da prestane s izvoĎenjem nakon što pronaĎe prvo rješenje ili
odreĎen broj rješenja. Moguće ga je modificirati tako da prestane s izvoĎenjem nakon
odreĎenog broja kandidata ili nakon što je izvoĎenjem potrošena odreĎena količina
procesorskog vremena.
Glavni nedostatak brute force metode je postojanje izrazito velikog broja mogućih
kandidata za veliku većinu stvarnih problema. Na primjer, ako ovim algoritmom tražimo
djelitelje broja n, algoritam će isprobati n kandidata. Ako je n šesnaesteroznamenkasti broj
isprobavanje zahtijeva izvršavanje najmanje 1015 instrukcija što bi na uobičajenom
računalu potrajalo nekoliko dana. Ako je n neki 64-bitni broj koji u prosjeku ima 19
decimalnih znamenki isprobavanje ovim algoritmom ispitivanje bi potrajalo oko 10
godina. Ovaj nagli porast broja kandidata s porastom veličine podataka se pojavljuje
prilikom rješavanja svih vrsta problema. Na primjer, ako se traži odreĎeni raspored 10
slova tada postoji 10! = 3,628,800 mogućih kandidata koje će tipično računalo isprobati
unutar jedne sekunde. MeĎutim ako dodamo još jedno slovo, što predstavlja samo 10%-no
povećanje veličine podataka, broj kandidata povećava se 11 puta ili 1000 %. Za 20 slova
broj kandidata iznosi 2,4 x 1018 i isprobavanje svih njih potrajalo bi oko 10,000 godina.
Ovaj fenomen drastičnog porasta broja mogućih kombinacija naziva se još i kombinatorna
eksplozija i glavni je razlog zbog kojeg je nužno optimizirati brute force metodu da bi ona
bila primjenjiva.
Budući da je glavni problem brute force metode prevelik broj mogućih kandidata pa je
prva logična optimizacija ona kojom se pokušava smanjiti broj kandidata korištenjem
heuristike ili mehanizama učenja. Na primjer ako pogledamo prije spomenuti problem s 8
kraljica koji ima 178,462,987,637,760 mogućih rješenja. Ako uzmemo u obzir činjenicu da
su sve kraljice identične i da dvije kraljice ne mogu biti postavljene na isto polje proizlazi
da su mogući kandidati sve kombinacije 8 polja na ploči od 64 polja ili ukupno 64! / 56! /
8! = 4,426,165,368 mogućih kandidata. Daljnjom upotrebom logike može se zaključiti da
nijedna kombinacija u kojoj se dvije kraljice nalaze u istom redu ili stupcu na ploči ne
može biti rješenje. To znači da je broj kandidata reduciran na sve kombinacije u kojima se
svaka kraljica nalazi u svom retku i u bilo kojem stupcu. Takve kombinacije mogu se
opisati poljem od 8 brojeva čije vrijednosti mogu biti u rasponu od 1 do 8 gdje vrijednost
6
broja predstavlja stupac, a redni broj člana polja redak u kojem se kraljica nalazi. Iz toga je
vidljivo da je broj mogućih kandidata jednak broju svih permutacija vrijednosti članova
polja ili brojkom 8! = 40,320 mogućih kandidata, tj. 1/100,000 izvornog broja mogućih
kandidata. Iz ovog je vidljivo da se čak i jednostavnom analizom može drastično smanjiti
broj mogućih kandidata i pretvoriti kompleksan problem u znatno jednostavniji.
TakoĎer, vidljivo je da procedure za odabir kandidata (prvi i slijedeći) čak i za ovakav
reducirani skup kandidata nisu složene, nego mogu biti i jednostavnije od izvornih. 3
2.1.1. Napad rječnikom
Napad rječnikom (eng. dictionary attack) je ciljana tehnika za probijanje šifri ili
mehanizam provjere autentičnosti kod koje se pokušava pronaći tražena zaporka ili tajni
ključ uzastopnim isprobavanjem velikog broja riječi ili kombinacija tih riječi.
Koristi stotine ili ponekad tisuće vjerojatnih mogućnosti iz sustava koji je prethodno
pripremljen i kojeg nazivamo rječnikom. Varijacija je brute force napada kod koje je izbor
mogućih kandidata sužen sa skupa svih mogućih kombinacija slova na one kombinacije
koje imaju neko značenje na odreĎenom jeziku. Veća je vjerojatnost da će osoba za
zaporku ili ključ uzeti neki skup slova koji ima značenje, nego neki niz znakova koji
korisniku ništa ne znači i zato mu je teško pamtljiv.
Moguća su dva načina provoĎenja napada: offline i online. Offline metoda testira riječi
pohranjene u rječniku, koje prethodno propusti kroz osnovne funkcije šifriranja, te
dobivene hash vrijednosti usporeĎuje s poznatom hash vrijednošću nepoznate lozinke.
Online napad koristi riječi iz rječnika za prijavu na željeni sustav pri čemu je potrebno
poznavati korisničko ime.
Riječi za ovaj napad se uzimaju iz rječnika koji su dostupni na Internetu i ne predstavljaju
potpun rječnik odreĎenog jezika već uključuju veći ili manji skup najvjerojatnijih riječi, tj.
riječi koje se najčešće koriste u zaporkama.
3
Brute Force napadi ( Carnet Cert i LS&S, CCERT-PUBDOC-2007-08-201)
7
Npr. može se naći hrvatski rječnik uz neke druge na stranici http://www.word-list.com/.
Jedna od poboljšanih inačica ovog napada je hybrid napad kod kojeg su dodani odreĎeni
simboli i brojevi u rječnik. Napadi rječnikom su prilično uspješni jer ljudi pokazuju
sklonost odabiru zaporki od 7 ili manje znakova koje su, još i riječi s nekim značenjem ili
neki predvidivi anagrami, skraćenice ili pak riječi nadopunjene jednoznamenkastim
brojem. Vjerojatnost razbijanja lozinki raste povećavanjem korištenja većeg ili više
rječnika ili na više stranih jezika. Obično koristi neki alat koji sadži ugraĎen rječnik i
implementiran algoritam pretraživanja.
Napadi rječnikom se uglavnom upotrebljavaju u dvije svrhe:
• U kriptografskoj analizi za otkrivanje ključa za deskripciju odreĎenog teksta
• Za probijanje autentifikacije, tj. otkrivanje zaporke nekog sustava sa svrhom ostvarenja
neovlaštenog pristupa.
TakoĎer, imamo i treću primjenu napada rječnikom koja se temelji na slanju e-mail
poruka. Autori tih poruka koriste rječnike za formiranje adresa elektroničke pošte koje
postaju potencijalni primaoci neželjenih poruka. Npr. mogu generirati poruke za adrese:
ana@example.com, ivan@example.com, josip@example.com, itd. Ukoliko na neku od tih
adresa bude dostavljena poruka, tj. ako se ne dobije poruka o nemogućnosti dostave, autor
će tu adresu označiti kao važeću i koristiti za daljnje slanje odreĎenih poruka.
2.1.2. Proboji kriptografskih algoritama
Kriptografski algoritmi su česta meta napada. Pri tome mnogi napadači koriste Brute Force
napade. Takav napad na kriptografski algoritam predstavlja dobavljanje ključa pomoću
kojeg će se iz nekog zaštićenog teksta dobiti njegov izvoran oblik. Uz pretpostavku da je
algoritam kriptiranja poznat, ako se ključevi biraju slučajno, tekst će biti probijen nakon
što je isprobano pola mogućih ključeva. I zapravo, možemo reći da je temelj kriptiranja
upravo u ključu jer je uglavnom algoritam poznat.
8
Važno je da se algoritmi dizajniraju na način da otežaju proboj brute force metodom,
odnosno oblik bi trebao biti takav da je potrebno mnogo vremena i resursa da bi se došlo
od njega.
Postavlja se i pitanje dužine ključeva koji mogu zaštiti proboj. Krajem 90-ih godina EFF
grupa je probila DES algoritam koj koristi 56-bitni ključ. Vrlo lako se moglo zaključiti da
će neka uspješnija i profitabilnija institucija zbog veće dostupnosti sredstava uspjeti
ponoviti taj napad. Preporuka stručnjaka je bila korištenje sigurnijeg algoritma i minimalno
128-bitnog ključa. Uz efektivnu dužinu ključa vrijeme potrebno za napad se jako puno
smanjuje.
Kada se govori o asimetričnim algoritmima, sve ovisi upravo o algoritmu o kojem se radi.
Sadašnja preporuka je korištenje ključeva koji imaju dužinu 128 bita za eliptične algoritme
i 1024 bita za RSA algoritme. Budući da mnogi algoritmi koriste složene matematičke
probleme, preporuča se uvijek upotreba dužih ključeva. Naime, uvijek je moguće u
izračunu pronaći neke prečice.
Dakle, općenito se smatra da je 128-bitni ključ dovoljno siguran od brute force napada kod
simetričnih algoritama. Vrijeme potrebno da se doĎe do ključa postavlja pitanje o
smislenosti takvog pokušaja. Ponekad izvorni tekst nije poznat,a treba provjerti smislenost
dobivenog rješenja. Tada se to rješenje usporeĎiva s riječima iz riječnika. Stoga, ukoliko
napadač i uspije dešifrirati tekst, rješenje neće biti nešto što nije smisleno, pa ga i neće
prepoznati. 4
4
Sigurnost Web aplikacija (Mario Kozina, Sveučilište u Zagrebu, Zagreb, 2006.g.)
9
2.1.3. Detekcija i zaštita od Brute Force napada
Brute Force napadi se najčešće provode sljedećim načinima:
1) pokušajima pogaĎanja korisničkih imena i lozinki unoseći podatke ručno
2) upotrebom posebno oblikovanih rječnika koji unose različite podatke crpeći ih iz
vlastite baze
3) kreiranje različitih korisničkih računa sa različitim korisničkim imenima i
lozinkama pomoću kojih se sustavu pristupa zlonamjerno
Mnogi sustavi imaju mogućnost zapisa svih pokušaja prijavljivanja. Za to služe dnevnički
zapisi računala. Upravo ti zapisi mogu pomoći u otkrivanju pokušaja napada brute force
metodom. Naime, ukoliko je došlo do takvog napada, u dnevniku će biti zabilježen svaki
pokušaj i ako ih ima više nego je uobičajeno velika je vjerojatnost da je na snazi upravo ta
tehnika napada.
Pregledom dnevnika potrebno je tražiti zapise slične ovom:
Apr 11 19:02:10 fox proftpd[6950]: poslužitelj
(usersip[usersip]) - USER korisničkoime (Login failed):
Incorrect password.
Postoji i nekoliko osnovnih metoda zaštite od ovakvih napada. One uključuju slijedeće
korake:
• ograničenje broja neuspješnih pokušaja pristupa sustavu,
• zabranu pristupa s IP adrese s koje su došli neuspjeli pokušaji pristupa,
• redovito traženje zapisa o neuspješnim pokušajima pristupa u dnevničkim zapisima,
• zatvaranje korisničkih računa za tzv. "gost" korisnike jer će oni biti prva točka upada za
potencijalne napadače te
• kreiranje samo jednog korisničkog računa s najvišim ovlastima.
10
Uz to postoje i alati za zaštitu od brute force napada koji se uglavnom temelje na prethodno
navedenim koracima. Njihova uloga svodi se na automatizaciju opisanih postupaka tj. na
analizu dnevničkih zapisa i onemogućavanje pristupa sustavu s napadajućih IP adresa.
Primjeri takvih alata koji se distribuiraju besplatno su:
• APF vatrozid & BFD skripta – rješenje temeljeno na IPtables vatrozidu koje nudi i tzv.
Antidos zaštitu i zaštitu od Brute Force napada (eng. Brute Force Detection- BFD) . Zaštita
se temelji na analizi dnevničkih zapisa ( podržana su dva formata zapisa- system kernel log
i snort portscan log) na osnovu kojih se poduzimaju odreĎene akcije. Konfiguracijom je
moguće odabrati sljedeće:
1) Dubinu analize dnevničkog zapisa, odnosno broja redaka za analizu
2) Prag tolerancije tj. broj neuspjelih pokušaja pristupa nakon kojih se detektira napad
3) Akcije nakon detekcije, odnosno izmjene vatrozidnih pravila kojim se
onemogućava daljnji pristup poslužiteljima ili IP adresama od kojih je došao napad.
• Log Watch – alat za praćenje i analizu dnevničkih zapisa koji kreira periodičke izvještaje
o aktivnosti poslužitelja. Izvještaji sadrže podatke o utrošenom diskovnom prostoru,
uspjelim i neuspjelim pokušajima pristupa poslužitelju i slične informacije. Neuspjeli
pokušaji se u izvještaju evidentiraju na slijedeći način:
anonymous/none from (IP HERE): 8 Time(s)
anonymous/password from (IP HERE): 8 Time(s)
guest/none from (IP HERE): 8 Time(s)
guest/password from (IP HERE): 8 Time(s)
root/password from (IP HERE): 24 Time(s)
Dodatna aktivnost koja neizravno pomaže u zaštiti od brute force napada je prijava
napadača. Naime nakon detekcije napada i provedbe zaštite blokadom izvorišne IP adrese
dobro je tu adresu prijaviti davatelju usluge pristupa Internetu. Web stranica
www.dnsstuff.com omogućava dobivanje podataka o davatelju usluge pristupa na osnovu
IP adrese.
11
MeĎu podacima o davatelju usluge Internet pristupa obično se nalaze i kontakt podaci
odgovorne osobe kojoj se može poslati poruka o počinjenom brute force napadu. U poruku
je dobro uključiti dijelove dnevničkog zapisa koji evidentiraju napad te podatke o IP adresi
s koje je napad došao i vremenu napada .
Osim izravno na poslužitelje brute force napadi mogu se usmjeriti i na web aplikacije. One
su obično zaštićene na dva načina:
• standardnom HTTP autentikacijom - u slučaju Windows web poslužitelja ona je vezana
uz SAM (eng. Security Account Database) bazu podataka u kojoj se nalaze podaci o
korisničkim računima, te
• autentifikacijom putem web forme - nešto je složenija jer zahtijeva razvijanje zasebne
web stranice koja služi za autentifikaciju kao i baze podataka u kojoj će se nalaziti
autentifikacijski podaci. 5
2.2.
Nedovoljna razina autentifikacije
Nedovoljna razina autentifikacije nastupa kada Web aplikacija omogućava potencijalnom
napadaču pristup osjetljivom sadržaju ili funkcionalnosti, a da se pritom napadač nije
propisno autentificirao. Ograničavanje pristupa osjetljivom sadržaju je uobičajeno za
većinu Web aplikacija, dok je pristup funkcionalnosti uobičajan uglavnom za
administratorske Web alate. Kako bi se Web aplikacija zaštitila procesom autentifikacije,
njeni resursi se najčešće štite skrivanjem lokacija, odnosno puta do njih (URL).
Iako potencijalni napadač ne zna o kojima se točno resursima radi, on im može direktno
pristupiti korištenjem URL-a. OdreĎeni URL se može otkriti korištenjem Brute Force alata
kojima se pronalaze lokacije mapa i datoteka, poruka s greškama i administratorskih zapisa
(engl. logs). Ove resurse je potrebno dodatno zaštititi dozvolama ili drugim metodama,
kako se ne bi zloupotrijebili.
5
Simson Garfinkel:Web Security & Commerce, O'Reilly, 1997.
Brute Force napadi ( Carnet Cert i LS&S, CCERT-PUBDOC-2007-08-201)
12
Primjer
nedovoljne
razine
autentifikacije
su
Web
aplikacije
koje
posjeduju
administratorsku mapu /admin/ direktno unutar osnovne mape Web aplikacije (root). Iako
ova mapa nije povezana (nema link) ni sa jednim dokumentom Web aplikacije koji se daje
na raspolaganje korisniku, korisnik može direktno pristupiti mapi korištenjem Web
preglednika i na taj način zaobići proces autentifikacije.6
Najčešći uzrok nedovoljne razine autentifikacije je previd administratora koji smatra da
pristup administratorskoj mapi nije moguć ukoliko ne postoji poveznica (link) na /admin/
mapu, i pritom ne postavi dozvole pristupa /admin/ mapi.
2.3.
Nedovoljna zaštita korisnikove lozinke
Nedovoljnom zaštitom korisnikove lozinke se omogućava napadaču da ilegalno dobije,
promijeni ili obnovi lozinku drugog korisnika. Proces autentifikacije odreĎene Web
aplikacije zahtjeva od korisnika pamćenje lozinke ili odreĎene fraze koja omogućava
pristup korisničkom računu. Korisnik bi trebao biti jedina osoba koja točno zna lozinku.
Kako vrijeme prolazi, korisnikova sposobnost pamćenja lozinke se smanjuje, pogotovo ako
se uzme u obzir da korisnik ima desetak i više korisničkih računa za različite Web
aplikacije. Ukoliko korisnik zaboravi lozinku, tada pristupa procesu za obnovu lozinke.
Najčešći primjer procesa za obnovu lozinke je proces koji koristi princip “tajnog pitanja”
(engl. secret question) koje korisnik definira prilikom registracije računa. Ukoliko korisnik
zaboravi lozinku, odgovorom na “tajno pitanje” može obnoviti svoju lozinku. Još jedan
primjer procesa za obnovu lozinke je specificiranje trika (engl. hint) koji pomaže korisniku
da se prisjeti svoje lozinke. Drugi mehanizmi obnove zahtijevaju od korisnika osobne
podatke kao što su e-mail, adresa, broj kartice, kako bi potvrdili svoj identitet.
Najveći problem procesa za obnovu je mogućnost prevare samog procesa od strane
napadača. To se najčešće dogaĎa kada su informacije potrebne za provjeru korisničkog
identiteta lako dostupne ili se daju naslutiti. Sustavi za obnovu se najčešće kompromitiraju
korištenjem brute force napada, naslijeĎenom ranjivošću sustava ili “tajnim pitanjima”
koja se daju naslutiti.
6
http://www.aquilonis.hr/acunetix/authentication_hacking.html
13
Primjeri napada:
● Napadač pošalje zahtjev s odreĎenim korisničkim imenom procesu za obnovu lozinke.
Proces odgovori na njegov zahtjev s “tajnim pitanjem” tipa “U kojem mjestu si roĎen?”.
Ukoliko napadač posjeduje brute force alat u čijem se rječniku zapisani svi gradovi u
Hrvatskoj, postoji velika mogućnost da će ponuditi točan odgovor, odnosno prevariti
proces za obnovu i saznati korisnikovu lozinku.
● Korisnik koristi trik kako bi upamtio svoju lozinku tipa “Ime+datum roĎenja”. Ukoliko
napadač sazna o kojem se triku radi (trik je najčešće dostupan) može značajno smanjiti
područje pretrage, odnosno smanjiti broj zapisa u rječniku brute force alata i povećati
mogućnost uspješnog napada.7
7
Sigurnost Web aplikacija (Mario Kozina, Sveučilište u Zagrebu, Zagreb, 2006.g.)
14
3. AUTORIZACIJA
Autorizaciju možemo definirati kao dodjelu uloga po nekim odreĎenim pravilima. Ako
promatramo sa strane Web aplikacija, ona je postupak koji služi za odreĎivanje
korisnikovih prava i privilegija. Naime, korisniku se na temelju njegovog identiteta
dodjeljuju odreĎene ovlasti i pristup pojedinim sadržajima. Većina Web aplikacija
postavlja ograničenja da bi zaštitila odreĎene elemente i sadržaje. Stoga, ukoliko korisnik
želi pristupiti tim sadržajima, mora imati već dodjeljena dopuštenja Postoje mnogobrojne
tehnike i metode kojima napadači zaobilaze ta dupuštenja i na taj način dolaze do resursa
za koje nisu ovlašteni. Tu se otvara velika mogućnost nanošenja štete samoj aplikaciji jer
se na raspolaganju daju povjerljivi i „osjetljivi “ sadržaji.8
3.1.
Nagađanje vjerodajnog identifikacijskog broja
Mnoge Web aplikacije su dizajnirane tako da se provodi autentifikacija korisnika i
praćenje rada korisnika nakon uspostave veze. Da bi se to ostvarilo, korisnici moraju
dokazati svoj identitet Web aplikaciji, i to najčešće upisivanjem vlastitog korisničkog
imena i lozinke. Prilikom posjete Web stranici korisnik je poslužitelju prikazan kao da prvi
put pristupa aplikaciji bez obzira koliko je puta ranije bio na toj stranici. Razlog toga je
korištenje HTTP protokola za izmjenu informacija. Budući da HTTP protokol spada u
grupu protokola bez stanja, poslužitelj će zaboraviti sve o korisniku nakon svakog
njegovog zahtjeva, osim ako na neki način ne označi samog korisnika. Označavanje je
potrebno ako želimo informacije o korisniku koji je trenutno na stranici iskoristiti za svaki
njegov sljedeći posjet toj stranici. Za označavanje se koristi vjerodajni identifikacijski broj.
Zove se još i Session ID i dodjeljivanjem korisniku omogućuje korisniku odreĎena stalna
prava. Session ID služi i da se spriječi unošenje povjerljvih korisničkih podataka tokom
svake sjednice prilikom autentifikacije. Zbog toga on mora biti jedinstven.
8
]http://en.wikibooks.org/wiki/Fundamentals_of_Information_Systems_Security/Access_Control_Systems
15
U današnjim Web preglednicima, tehnološki sinonim za Session ID je kolačić (eng.
Cookie). Cookie se dodjeljuje od strane Web aplikacije u obliku znakovnog niza koji se
čuva u memoriji Web preglednika.
Za cookie je postavljeno odreĎeno vrijeme za koje neki odreĎeni korisnik može koristiti
usluge Web aplikacije, a da se pred korisnika ne postavi zahtjev za ponovnom
idenitifikacijom kako bi se cookie obnovio.
Budući da je upravo Session ID odnosno cookie taj koji omogućava korištenje usluga Web
aplikacije, on je i česta meta napada. Jer, pogaĎanjem tog vjerodajnog identifikacijskog
broja omogućava se kraĎa identiteta drugog korisnika. Ako je napadač sposoban
pretpostaviti ili naslutiti Session ID odreĎenog korisnika, tada je moguća zloupotreba
korisničkih privilegija i povreda autorizacije. Saznanjem tog broja napadač može iskoristiti
korisnikove privilegije za kompromitirajuće radnje.
Za primjer ove vrste napada možemo uzeti Web aplikacije koje generiraju Session ID tako
što koriste jednostavne i predvidljive algoritme. Napad je još češći kod situacija gdje se
trenutni Session ID generira oslanjajući se na prethodno generirani Session ID. Session ID
se pohranjuje unutar Cookie-a ili URL-a, a takoĎer ga je moguće pohraniti i unutar
skrivenog polja ( eng. Hidden form.) . Ukoliko napada odredi algoritam pomoću kojeg se
generira Session ID, tada se napad može izvesti na sljedeći način:
1) Napadač pristupa Web aplikaciji kako bi dobio trenutni Session ID. Web aplikacija
mu vraća Session ID s nekom vrijednošće, npr. 1500.
2) Pošto napadač zna da se radi o algoritmu za generiranjem Session ID-a koji je
oslonjen na prethodni Session ID, može jednostavno izračunati vrijednost sljedećeg
Session ID-a (npr. 1501)
3) Napadač mjenja vrijednost Session ID-a unutar Cookie-a ili URL-a na vrijednost
1501 i šalje zahtjev Web aplikaciji sve dok se ne prijavi sljedeći korisnik. Nakon
što se korisnik prijavi, napadač može koristiti njegove privilegije koristeći
izračunati Session ID.9
9
Sigurnost Web aplikacija (Mario Kozina, Sveučilište u Zagrebu, Zagreb, 2006.g.)
16
Slika 1. Primjer baziran na Session ID-u
3.2.
Nedovoljna autorizacija
Svaka Web aplikacija mora voditi računa o što većoj razini sigurnosti svojih sadržaja. Ti
sadržaji su najčešće od velike važnosti za Web stranicu jer sadrže podatke koje služe
administratorima za kontrolu i voĎenje aplikacije. Ukoliko Web aplikacija posjeduje
mogućnost registracije korisnika, dodjeljuje im odreĎena prava na odreĎene sadržaje, Tj.
vrši autorizaciju svojih korisnika. Autorizacijska prava se dodjeljuju poslije procesa
autentifikacije i ureĎena su sigurnosnom politikom jer sama prijava ne znači da svaki
korisnik ima pristup svakom sadržaju.10 Ukoliko sigurnosni sustav nije dovoljno dobro
ureĎen napadaču se može omogućiti pristup „osjetljivom sadržaju“. Pod njima se
podrazumjevaju sadržaji i resursi namjenjeni isključivo administratorima i služe za
kontrolu i voĎenje Web aplikacije. Te funkcionalnosti treba dodatno zaštititi jer njihovo
neprikladno korištenje može dovesti do povrede prava ostalih korisnika i uništiti ugled
Web stranice.
Primjer nedovoljne autorizacije su aplikacije koje su administratorske podatke skrivali u
mapama s nazivima /admin/ ili /logs/, kojima je mogao pristupiti bilo koji autentificirani
korisnik i poduzeti neželjene radnje kao što su rekonfiguracija poslužitelja itd.
10
Sigurnost Web aplikacija (Mario Kozina, Sveučilište u Zagrebu, Zagreb, 2006.g.)
17
3.3.
Nedovoljna kontrola trajanja korištenja usluge
Kao što je već pojašnjeno Web aplikacije koriste HTTP stateless protokole, tj protokole
koje na pamte prethodni posjet korisnika Web stranici i koje dodjeljuju identifikacijske
brojeve (Session ID) da bi identificirali korisnika pri svakom posjetu. Zbog toga, Session
ID mora biti jedinstven i trajno čuvan jer njihovim gubljenjem i ne pamćenjem omogućava
se višekorisnički pristup istom korisničkom računu. Za svaku Web aplikaciju vrlo je važna
kontrola trajanja korištenja usluge. Ukoliko aplikacija ne vodi računa o vremenskom
trajanju usluge prema korisniku, otvara put napadima na nedozvoljeno korištenje tih
usluga. To nedozvoljeno korištenje usluga od strane „lažnih“ korisnika može dovesti prave
korisnike u neugodne situacije. Naime, napadač korištenjem starih vjerodajnih
identifikacijskih brojeva za autorizaciju koristi tuĎa prava i sadržaje i time ugrožava Web
aplikaciju.
Važnost ograničenja životnog vijeka Session ID-a može se vidjeti na primjeru u kojem
korisnik ne obavi propisnu odjavu sa aplikacije (logout). Tada, sljedeći korisnik računala
može putem back zahtjeva na Web pregledniku pregledati sve stranice koje su se koristile
prije njega. I ukoliko nije pravilno prekinuta sjednica, može posjetiti stranicu i sadržaje za
koje se prethodni korisnik autentificirao i time mu dodjeljena odreĎena autorizacija. Mjesta
na kojima najčešće dolazi do ovakve vrste napada su Internet kafići, knjižnice, računalne
učionice itd., tj. mjesta gdje je zastupljena višekorisnička računalna okolina.
Kontrola trajanja usluge, tj. trajanja Session ID-a ima i brojne druge uloge. Neke od njih su
smanjenje rizika za odreĎene vrste napada, sprečavanje trajnog korištenja prethodno
ukradenog Session ID-a, onemogućavanje napadaču da izračuna sljedeći korisnički Session
ID, smanjivanje broja korisničkih prijava na korisnički račun odreĎene Web aplikacije itd.
Danas su osmišljene brojne strategije preuzimanja Session ID-a. Tako npr. napadač može
prisluškivati mrežu i preuzimati pakete koji sadrže Session ID ili može koristiti Cross-site
scripting napad kako bi došao u posjed Session ID-a. Stoga administratori moraju biti u
hodu s tim načinima kako bi spriječili kraĎu i time zaštitili sebe i svoje korisnike.
18
3.4.
Fiksacija usluge
Vjerodajni identifikacijski brojevi se jedinstveno ( Session ID) korisniku dodjeljuju pri
svakoj posjeti Web aplikacije i trajno se čuvaju kako se prethodni Session ID ne bi
koristio za lažnu autorizaciju. Ukoliko bi se korisniku dodjeljivao Session ID kojeg može
koristiti pri ulasku u Web aplikaciju, a kojeg napadač poznaje, tada mi mogao jednostavno
otkiriti korisnikovo korisničko ime i lozinku i na taj način koristiti iste usluge i prava kao
on.
Upravo zbog takve mogućnosti, postoji mnoštvo napadačkih tehnika pomoću kojih se
Session ID može fiksirati na neku eksplicitnu vrijednost. Naime, fiksacijom usluge
napadač podvaljuje korisniku fiksni vjerodajni identifikacijski broj, koji napadač kasnije
koristi za autorizaciju.
Najčešće tehnike su Cross-site scripting napadi i posebno prilagoĎeni HTTP zahtjevi.
Princip ove tehnike je sljedeći: Nakon što napadač postavi Session ID na neku fiksnu
vrijednost, korisnik se prijavi na tu predefiniranu sjednicu s podvaljenim Session ID-om,
zatim napadač upotrebljava taj Session ID i pridobiva korisnikov identitet i koristi njegove
privilegije. Ukoliko nema stalne i aktivne borbe protiv fiksacije usluge, napad se može
izvršiti nad bilo kojom
Web aplikacijom koja koristi Session ID za identifikaciju
korisnika. Za Session ID koriste Cookie, URL i skrivena polja. Najčešća metoda je
korištenje Cookie-a i te Web aplikacije su najviše podložne napadima.
Za uobičajenu fiksaciju usluge vrijede sljedeće faze:
1. Postavljanje Session ID-a
Napadač postavlja klopku za odreĎenu Web aplikaciju koja služi da bi se pridobio
njen Session ID, ili se postavlja neki vlastiti skrojeni Session ID.
2. Fiksacija usluge
Postavljena klopka ili vlastiti skrojeni Session ID se predstavlja odreĎenom
korisniku i uvjerava ga se da ta usluga potječe od same Web aplikacije.
19
3. Ulazak i korištenje usluge
Čeka se na korisnikovo ulogiranje na traženu Web aplikaciju. Kada korisnik izvrsi
logiranje, tada napadač posjeduje Session ID i njime preuzima korisnička prava i
identitet.11
11
Sigurnost Web aplikacija (Mario Kozina, Sveučilište u Zagrebu, Zagreb, 2006.g.)
20
4. PRIMJER WEB APLIKACIJE
Za primjer je uzeta stranica napravljena za iznajmljivanje apartmana. Bit će prikazani i
objašnjeni pojedini elementi ovog diplomskog rada uz pojašnjene načine zaštite od napada
na autentifikaciju i autorizaciju korisnika.
Prilikom posjete stranici korisnik ima mogućnost pregledati općenite informacije o
hrvatskoj kao turističkoj zemlji, razne korisne linkove, ponuĎene apartmane za
iznajmljivanje kao i cijene i karakteristike svakog apartmana rasporeĎenih po regijama i
mjestima. (slika 2.) Najam željenog apartmana može samo registrirani korisnik te se
korisniku nudi i opcija registracije, a ukoliko je već registrirani član, ima opciju prijave na
stranicu. (slika 2).
Slika 2. Početna stranica aplikacije
Kada se korisnik želi registrirati klikne na opciju registracije i u ponuĎena polja unosi
potrebne podatke. Nakon unosa traženih podataka klikom na opciju prijava završava
postupak registracije.
TakoĎer, za registrirane korisnike za opciju logiranja potrebno je popuniti polja koja traže
korisničko ime i lozinku. (slika 3. i slika 4. )
21
Slika 3. Registracija korisnika
Slika 4. Autentifikacija korisnika
Prilikom registracije, ukoliko korisnik ne ispuni sva ponuĎena polja, otvara se prozor koji
ga upozorava na prazno polje te se time ograničava slanje nepotpunih podataka:
Slika 5. Poruka o greški prilikom autentifikacije
Ova postavka omogućuje administratoru posjedovanje svih potrebnih podataka o svakom
korisniku aplikacije i osigurava lakšu organizaciju i pretragu baze podataka.
To se postiže upotrebom Java Script forme:
22
Slika 6. Primjer JavaScript forme za provjeru korisničkih podataka
Primjer Brute-Force napada je generiranje rječnika koji će sadržavati ženska hrvatska
imena. Naime, u aplikaciji se dozvoljava odabir lozinke koja je jednaka korisničkom
imenu. U praksi se često dogaĎa da korisnici za korisnička imena biraju upravo vlastita
imena, te radi lakšeg pamćenja ista postavljaju kao lozinku za prijavu na aplikaciju.
Upravo se tu krije mogućnost napada, odnosno ne ovlaštenog pristupa tuĎim profilima.
(slika 7.)
Slika 7. Primjer uspješne prijave u aplikaciju
23
Nedovoljna razina autentifikacije se može očitovati u pristupu sadržajima za koje ovlasti
ima samo administrator, odnosno, korisnik sa razinom pristupa 2.
Ako napadač bez logiranja, odnosno bez propisne autentifikacije napiše URL adresu
http://localhost/apartmani/mjesto.php, dobiva pristup popisu svih mjesta u kojima se nalaze
ponuĎeni apartmani.
TakoĎer se isto dogaĎa unošenjem adrese http://localhost/apartmani/regija.php što dovodi
do popisa svih regija kojima pripadaju ta mjesta.
Slika 8. Primjer nedozvoljenog pristupa podacima
Iako pristup navedenim sadržajima može ugroziti aplikaciju, daleko veća šteta se može
načiniti pristupom spisku svih korisnika. Narušava se privatnost i povjerenje čime se
dovodi u pitanje daljnja posjeta i korištenje aplikacije.
Kao i kod spomenutog napada na popise mjesta i regija, popisu korisnika se pristupa URL
adresom http://localhost/apartmani/korisnik.php .
Slika 9. Primjer nedozvoljenog pristupa podacima o korisnicima aplikacije
24
Prilikom logiranja korisnik unosi korisničko ime i lozinku. Ukoliko napadač poznaje
korisnikovu lozinku može obaviti lažno autentificiranje, odnosno izvršiti kraĎu identiteta.
Vrlo je čest već spomenuti Brute-Force napad, stoga je administratorova obaveza voditi
računa o pravilnom kreiranju lozinke prilikom registracije na aplikaciju.
Kada korisnik unosi podatke za registraciju, provjerava se unos lozinke, tj. provjerava se
njena dužina. Ne dozvoljava se kreiranje lozinke koja ima manje od 6 znakova.
TakoĎer, da bi se smanjio broj nevažećih korisničkih računa, provjerava se i ispravnost
unosa e-mail adrese. (slika 10.)
Slika 10. Primjer programskog koda za provjeru korisničke lozinke
Da bi mjere zaštite bile veće potrebno je postaviti tzv. „mjerač jačine lozinke“ koji bi
upozoravao da se za lozinku odabire neki niz slova, znakova i brojeva kombinirano. Na
stranici je potrebno dodati i opciju mjenjanja lozinke za neregistrirane članove.
TakoĎer, zbog mogućnosti zaboravljanja lozinke, uz inpute za logiranje treba postaviti
opcije slanja lozinke na unešenu e-mail adresu ili opciju sigurnog pitanja.
25
Primjer o nedovoljnoj zaštiti lozinke je i već spomenuti Brute Force napad preko rječnika
osobnih hrvatskih imena.
Nedovoljna autorizacija podrazumijeva neovlašteno dodjeljivanje uloga korisnicima koji
time dobivaju pristup sadržajima i omogućuju im se odreĎene radnje nad tim sadržajima.
Naime, na stranici su dodjeljene tri uloge:
1) neregistrirani korisnik,
2) registrirani korisnik
3) administrator.
Neregistrirani korisnik ima mogućnost pregleda početne stranice i popratnih sadržaja na
njoj što se vidi na slici 1.
Registrirani korisnik ima još mogućnost objave novog oglasa i rezervacije željenog
smještaja.
Ukoliko se korisnik logira kao administrator dobiva puno veće ovlasti i mogućnosti.
Moguće je pregledati, mjenjati i brisati sve korisnike, oglase, smještaje, regije i mjesta.
Kada
napadač
pristupi
već
http://localhost/apartmani/korisnik.php,
spomenutim
načinom
stranicama
http://localhost/apartmani/mjesto.php,
ili
http://localhost/apartmani/regije.php, izravno preko URL adrese, dobiva mogućnost
djelovanja na odreĎene sadržaje. Omogućava mu se brisanje, mjenjanje i dodavanje
sadržaja kojima je pristupio (slika 11.) i upravo je to primjer nedovoljne autorizacije.
Napadač je na taj način sebi prisvojio prava i privilegije koje su dopuštene samo
administratoru aplikacije te time dobio i neovlaštenu ulogu.
26
Slika 11. Primjer neautoriziranog pristupa podacima
Mjesta za napad ima mnogo, stoga je prije puštanja u rad potrebna provjera svih
sigurnosnih aspekata aplikacije kako bi se postigla bolja zaštita podataka poboljšanjem
autentifikacije i autorizacije korisnika.
27
5. SSO (SINGLE-SIGN-ON)
SSO se po tradiciji smatra tehnologijom kojoj je temeljni zadatak autentifikacija i
autorizacija korisnika. Dakle, glavni naglasak ima sigurnosni dio. U kombinaciji s drugim
sigurnosnim tehnologijama pruža mogućnost izrade različitih sigurnosnih rješenja. No
danas se više ne smije gledati na SSO samo kroz autorizaciju i autentifikaciju. Zbog sve
veće količine informacija dostupnih oko nas, potrebno ih je razvrstati i organizirati na
način koji može pružiti bolju preglednost pojedinom korisniku. Dakle, prikaz podataka se
prilagoĎava pojedincu, prilagoĎava korisniku prema njegovim željama i potrebama. SSO
se razvija u smjeru da će se aplikacije pouzdati u SSO, da način na koji se podaci
prezentiraju ovisi o tome tko ih gleda. To se najviše odnosi na Internet, gdje je pojam
personalizacije već dugo poznat.
SSO ima svoje prednosti kao što su povećana produktivnost korisnika, jedna sigurnosna
baza, lakša administracija, ali i mane poput jedne točke napada, prilagodbe gotovih
aplikacija. Ovisno o željama korisnika potrebno je proučiti njihov omjer i ovisno o željama
upustiti se u ostvarenje SSO-a. Integracija u gotove aplikacije može biti skup i dugotrajan
proces, jer je potrebno mijenjati aplikacije u odreĎenoj mjeri. Mnogo je bolje i lakše
razvijati SSO paralelno s razvojem novih aplikacija. 12
5.1.
Zahtjevi pred SSO
Gledanje na SSO s raznih gledišta rezultiralo je različitim zahtjevima postavljenim pred
SSO. Provedene analize funkcionalnosti usmjerile su pažnju na primjene u raznim poljima
što je dovelo do klasifikacije i podjele djelovanja SSO. Pred SSO se postavljaju razni
zahtjevi iako je primarna realizacija jednokratne identifikacije korisnika. Pri tome se misli
na identifikaciju korisničkog procesa što može biti temeljeno na certifikatima ili
biometrijskim obilježjima. Poslije identifikacije se usmjerava pažnja na autentifikaciju i
autorizaciju korisnika na sustavu.
12
http://en.wikipedia.org/wiki/Single_sign-on
http://www.onelogin.com/single-sign-on-sso/
28
U radu kompleksnog informatičkog okruženja, pred SSO se postavljaju i drugi, ne manje
važni zahtjevi:
• upravljanje i kontrola korisničkih podataka, analiza tih podataka što se temelji na
definiranim ulogama
• premještanje aplikacija bez prekidanja usluge ( obavlja se automatski ukoliko doĎe do
prestanka rada)
• generiranje središnjeg sustava koji sadržava podatke o reviziji te promatranje ponašanja
korisnika u vremenu
• uvid nad cijelim sustavom i uslugama i upravljanje odgovarajućim specifičnim dojavama
o kvaru i ažuriranje alarma bez dodatnih troškova
• specifična autentifikacija za različite korisnike, tj različite uloge u aplikaciji ( npr.
administratori, oglašivači, unajmljivači itd. ) 13
5.2.
Djelovanje SSO-a
Danas se u svakodnevnom radu istovremeno koristi nekoliko sustava odnosno aplikacija.
Zbog te složenosti postoji administrator koji upravlja korisničkim podacima na svakom od
sustava jer je važno omogućiti korisnicima pristupanje uz visoku razinu očuvanja
integriteta i sigurnosti
Takvi sustavi koji se sastoje od različitih povezanih komponenti se nazivaju distribuirani
sustavi. Te povezane komponente se ponašaju kao zasebne i neovisne. Svaka od njih
podrazumjeva individualnu platformu s operacijskim sustavima i aplikacijama. Budući da
su neovisne, svaki korisnik se mora predstaviti i autentificirati na svakoj domeni na kojoj
želi raditi.
13
T. Pavić, “Diplomski rad: Autentifikacija i autorizacija korisnika na jednom mjestu”,
Fakultet elektrotehnike i računarstva, Zagreb, 2006
29
Takva situacija je opisana na sljedećoj slici:
Slika 12.: Višestruka prijava korisnika na višestruke sustave
Uspostavlja se komunikacija izmeĎu korisnika i primarne domene. S primarnom domenom
korisnik uspostavlja sjednicu i to je prikazano na slici u kvadratiću na kojem piše: „Prijava
na primarnu domenu“. Korisnik je tada dužan predočiti autentifikacijske podatke ako što
su korisničko ime i lozinka. S primarne domene je takoĎer moguće pozvati usluge i na
drugim domenama. Da bi se omogućio poziv druge domene potrebno je izvršiti prijavu na
toj željenoj domeni. TakoĎer, i nova pozvana domena će tražiti podatke o autentifikaciji
korisnika. Dakle, korisnik obavlja zasebne, neovisne dijaloge sa svakom sekundarnom
domenom kojoj želi pristupiti. To zahtjeva dobru koordinaciju i inegraciju te smanjuje i
odreĎene troškove kao što su:

vrijeme za prijavu

vrijeme za dodjelu dozvola

količina podataka za pamtiti
30
Upravo ta usluga koja omogučuje povezivanje funckija za prijavu svih domena, naziva se
Singl Sign-On.
Pristup ovakvoj prijavi je prikazan na sljedećoj slici:
Slika 13.: Jednostruka prijava na višestruke sustave
Sustav koji ima ulogu prikupljana svih korisničkih podataka koji su potrebni za
autentificiranje smješten je u primarni SSO. Prikupljaju se samo oni podaci koji su
potrebnu za prijavu sekundarnih domena za koju korisnik ima pravo tražiti pristup. Postoji
više načina za korištenje tih podataka:

izravno prosljeĎivanje sekundarnoj domeni

pribavljanje drugih podataka iz baze koji se koriste za prijavu na drugim domenama

trenutna uspostava sjednice sa sekundarnom domenom

korištenje podataka prilikom zahtjevanja usluge
31
Vrlo važne značajke SSO modela u pogledu sigurnosti su povjerenje sekundarne domene
primarnoj da će provjeriti identitet i zaštititi autentifikacijske podatke te briga o zaštiti
podataka tijekom prijenosa izmeĎu primarne i sekundarne domene.
• zaštita kod prijenosa podataka izmeĎu primarne i sekundarne domene14
5.3.
Sigurnost i SSO
U smislu sigurnosti možemo reći da SSO ide u dva pravca. Pri tom se misli na
autentifikaciju i autorizaciju. Procesom autentifikacije se korisnik identificira, dok
autorizacija služi za odreĎivanje prava i dodjelu uloga. Uloge se dodjeljuju na temelju
dozvola i time se ograničavaju i kontroliraju odreĎene radnje. Danas, mnoga SSO rješenja
za autentifikaciju koriste središnji sustav, a autorizacija se vrši na nekoj ciljanoj aplikaciji
do koje korisnik želi doći.
SSO je tradicionalno smatran sigurnosnom tehnologijom, no treba uvijek sagledati i malo
širu sliku. Mnoge tehnologije kao što su vatrozidi ( engl. firewalls), virtualne privatne
mreže (VPN), enkripcija itd. djeluju neovisno na različitim sigurnosnim sustavima. Sve te
tehnologji se mogu ujediniti u jednu cjelinu i oblikovati i dopunjavati po želji korisnika.
5.4.
Sinkronizacija lozinki
Sinkronizacija lozinki služi za lakše održavanje zaboravljenih ili izgubljenih lozinki.
Ukoliko se želi samo smanjiti trošak oko tog održavanja nije nužno koristiti SSO.
Sinkronizacija lozinki je manje kompleksna i osigurava istu lozinku za pojedinog korisnika
na svim sustavima. No, korisnik se mora prijaviti na svaki sustav koji želi koristiti, ali sada
pamti samo jednu lozinku.
14
http://www.authenticationworld.com/Single-Sign-On-Authentication/
32
Sinkronizacija lozinki se temelji na poslužiteljskim agentima. Kada se lozinka promjeni,
poslužiteljski agent dobiva informaciju o promjeni. Primljenu informaciju prosljeĎuje svim
drugim poslužiteljima za koje korisnik ima pravo pristupa. Dakle, kada se lozinka promjeni
na jednom sustavu, onda se mjenja na svim sustavima. Glavni nedostatak ovakvog rješenja
jest da ukoliko je lozinka ugrožena na jednom mjestu, tada su svi sustavi u opasnosti.
Upravo zbog toga, sinkronizacija lozinki nije SSO rješenje jer posjeta novoj aplikaciji
podrazumjeva novi postupak identifikacije a time i autorizacije. I naravno, takav česti
postupak zahtjeva dodatni trošak održavanja i vremena.
5.5.
Automatizirana prijava
Za automatiziranu prijavu možemo reći da je najjednostavnije SSO
rješenje. Ona
predstavlja pristup željenim elementima preko autentifikacijskog poslužitelja. Naime,
autentifikacijski poslužitelj služi za pohranu svih podataka koji su potrebni korisniku za
prijavu na sustav. Korisnik pristupa poslužitelju pomoću klijentskog programa, a zatim se
korisniku nudi popis svih resursa kojemu može pristupiti. Korisnik će izabrati željeni
resurs i pristupit mu preko poslužitelja.
Takav način pristupa čini pomak u sigurnosti. Zaista, za razliku od sinkronizacije lozinki
kod koje je ista lozinka pohranjena na svakom sustavu, kod automatizirane prijave to nije
slučaj. Autentifikacijski poslužitelj može održavati bazu različitih lozinki povezanih sa
svakim ciljanim resursom tj. sustavom što automatiziranu prijavu čini daleko efikasnijom.
5.6.
Autentifikacija temeljena na oznakama
U svijetu sve bržeg rasta tehnologija postavlja se potreba za boljim rješenjima sigurnosti, tj
sigurnijim načinima autentifikacije korisnika. Automatizirana prijava u SSO sustavu je
dovoljna ukoliko se SSO uvodi isključivo iz razloga smanjenja troškova i povećanja
efikasnosti. No, ako se želi dobiti na povećanju sigurnosti resursa potreban je sigurniji
mehanizam.
33
Naime, tada postoji mogućnost direktne prijave na pojedini resurs kao i bez SSO-a.
Poboljšanje mehanizma autentifikacije i autorizacije kontrolira korisničke privilegije i time
pruža veću sigrunost cijelog sustava.
Napredna autentifikacijska rješenja su bazirana na oznakama (engl. tokenima). Kada se
korisnik jednom autentificira generira se jedinstvena i jednom iskoristiva oznaka koja
predstavlja korisnika resursu za kojeg je autoriziran. Jedan od najpoznatijih sustava
temeljenih na oznakama je Kerberos razvijen na MIT-u. I danas skoro sva SSO rješenja su
bazirana na Kerberosu.
5.7.
SSO i Web
Za sve Web aplikacije koje nude svoje usluge, sigurnosne provjere čine jednu od važnijih
karika pri ostvarivanju kvalitete ponuda i time povoljnom proširivanju djelovanja. Tu svoju
ulogu imaju i SSO
rješenja jer imaju mogućnost jamstva sigurne autentifikacije i
autorizacije nad svim sustavima. Naravno, SSO na različitim mjestima ima i različite
uloge. Dok je na pojedinom poduzeću stavljen naglasak na smanjenju troškova i većoj
sigurnosti, na Web-u su ti zahtjevi u drugom planu. Web je više okrenut korisnicima
usluga stoga SSO dobro služi pri dopuni sigurnosnih mehanizama iako na mnogim Web
stranicama korisnici nisu ni svjesni da su u opticaju SSO rješenja. Web tehnologija
omogućava pristup i korištenje odreĎenih usluga i resursa preko zajedničkog korisničkog i
pristupnog sustava korištenjem višeslojne arhitekture. Pri oblikovanju pristupa odreĎenim
elementima preko više zahtjeva koji se postavljaju korisniku dolazi do slabljenja
posjećenosti Web stranice. Naime, zahtjevanje više unosa osim imena i lozinke korisnike
odvlači i djeluje zamorno.
Dakle, upotreba manjih količina informacija je jedno od prihvatljivijih rješenja. Poslužitelj
preko preglednika pohranjuje informacije na klijentsko računalo i ima mogućnost kasnijim
pristupima tim informacijama. Jedna takva informacija se naziva kolačić (cookie).
Prilikom prve prijave na sustav, cookie se zajedno sa korisničkim imenom pohranjuje na
klijentsko računalo. Poslije, kod svakog sljedećeg zahtjeva poslužitelj dohvaća korisničko
ime iz pohranjenog cookie i donosi odluke o sljedećim akcijama.
34
Danas svi internetski preglednici koriste cookie, stoga se s pravom može reći da je njihova
uloga u korištenju SSO-a jako velika. Kao i uvijek, može se postaviti pitanje sigurnosti.
Kako je cookie jako važan za privilegije koje se dodjeljuju odreĎenim korisnicima,
njegova kraĎa imala bi velike posljedice kako za samog korisnika, tako i za cijeli sustav.
Postoji više načina dolaska do cookie-a. Naime,cookie se može uhvatiti prisluškivanjem
paketa koje preglednik šalje poslužitelju. Može se djelovati na preglednik kako bi poslao
cookie lažnom poslužitelju. To se ostvaruje onesposobljavanjem DNS-a jer se preko njega
saznaje koji cookie pripada kojem poslužitelju. Ako se cookie trajno pohranjuje na
korisnikov disk, moguće ga je pročitati direktno s diska. No to nije slučaj kod SSO-a jer se
u primjeni cookie čuva isključivo u radnoj memoriji.
Prilikom aktiviranja i oblikovanja sustava potrebno je voditi računa o što boljoj zaštiti
cookie-a pogotovo na mjestima gdje služi za autentifikaciju korisnika. Poželjno je da
sadržava što manje informacija a one koje sadržava da nisu u čitkom tekstualnom obliku.
Neke od njih su korisničko ime i lozinka. No, važno je da sadrži informacije koje služe za
autorizaciju korisnika za njegovo korištenje. Preporuka je da cookie sadržava sljedeće:
1. ID (sjednički identifikator)
2. Vrijeme i datum kreiranja cookie-a
3. Vrijeme isteka valjanosti
4. IP adresa preglednika kojemu je cookie poslan
5. Poruku o potvrdi autentičnosti ( MAC)
Ove informacije su važne jer ograničavaju kraĎu cookie. Naime, ukoliko i doĎe do kraĎe,
cookie se neće moći trajno koristiti jer je postavljeno ograničeno trajanje valjanosti. Uz to,
IP adresa točno definira adresu s koje je poslan,a MAC poruka potvrĎuje da se ostala polja
nisu neovlašteno mjenjala. Najčešće se izračunava pomoću hash algoritama, npt. MD5 ili
SHA. TakoĎer, cookie se može zaštititi kriptiranjem, npr. DES algoritmom.
Za osjetljive aplikacije postoji mogućnost i kriptiranja cijelog komunikacijskog kanala
izmeĎu preglednika i polsužitelja. Za to služi SSL protokol. Tada će cookie biti kriptiran s
ostatkom podataka koji se šalju kroz kanal, pa da bi se došlo do cookie mora se presresti
cijeli kanal što zahtjeva dosta znanja i vremena.
35
5.8.
Središnji autentifikacijski sustav za Web (CAS)
Središnji autentifikacijski sustav za Web ( u daljnjem tekstu skraćeno CAS) je single-signon protokol za Web. Svrha mu je omogućiti korisniku pristup više aplikacija, a njima se
pristupa preko web preglednika. Razvijen je na Sveučilištu Yale i svoje akreditacije (poput
Session ID-a) dodjeljuje samo jedanput. TakoĎer omogućuje web aplikacijama
autentificiranje korisnika bez dobivanja pristupa korisnikovim sigurnosnim akreditacijama
kao što su lozinke.
CAS protokol je dostupan svima, a programski kod se može skinuti sa službenih stranica.
CAS se takoĎer odnosi na programski paket koji implementira ovaj protokol. Protokol
CAS uklučuje najmanje tri stranke: klijentski web preglednik, web aplikaciju koja traži
provjeru autentifikacije i CAS poslužitelj. TakoĎer može uključivati povrat usluge kao što
je poslužitelj baze podataka koji nema svoje vlastito HTTP sučelje, ali komunicira sa web
aplikacijama. Kada klijent posjećuje aplikaciju koja provjerava autentičnost, aplikacija ga
usmjerava na CAS. CAS potvrĎuje autentičnost korisnika, obično provjerom korisničkog
imena i lozinke na osnovu baze podataka (kao što su Kerberos, LDAP ili Active
Directory). Ako autentičnost uspije, CAS vraća klijenta do aplikacije prolazeći sigurnosni
ulaz. Zahtjev zatim potvrĎuje ulaz kontaktiranjem CAS-a preko preko sigurne veze i
pružanjem vlastitog identifikatora ulaza. CAS tada daje aplikaciji povjerljive informacije o
tome da li je prijava odreĎenog korisnika uspješno dovršena. CAS omogućuje tzv. „multitier“ provjeru autentičnosti putem proxy adrese. Koristeći povrat usluge kao što su baze
podataka ili mail poslužitelj, može se sudjelovati u CAS-u, potvrdom autentičnosti
korisnika putem informacija koje prima od web aplikacija. Dakle, kod webmail klijenta i
webmail poslužitelja može sve provoditi CAS.
Usluge koje dobivamo od CAS-a su:

Nesigurne i nepouzdane aplikacije imaju mogućnost autentifikacije korisnika bez
pristupa njihovim lozinkama.

Proces autentifikacije korisnika koji
svaka aplikacija mora slijediti je
pojednostavljen.

Olakšava SSO na višestrukim Web aplikacijama.
36

Lakši rad sa jezgrom za servise koja nije nužno temeljena na Web-u, ali sadržava
grafičko sučelje.

Autentifikacija se odvija na jednoj Web aplikaciji, čime se pojednostavljuje
čuvanje i promjena lozinki, bez izmjena ostalih aplikacija.15
5.8.1. CAS djelovanje
Za CAS se kaže da djeluje kao samostalna Web aplikacija. Koristi HTTPS protokol
kojemu pristupa kroz tri URL-a. To su : URL za prijavu, URL za validaciju i opcionalni
URL za odjavu. Ostvaren je kao nekoliko Java servleta.
Pristup korisnika Web aplikacijama kod kojih se autentifikacija i SSO vrši preko CAS-a
rezultira presumjeravanjem korisnika na URL prijavu. URL će za potrebe prijave obaviti
osnovnu autentifikaciju, odnosno, od korisnika će se tražiti unos imena i lozinke. Dobiveni
podaci se provjeravaju i dobiva se informacija o njihovoj valjanosti. URL-u za prijavu
možemo pristupiti i direktno ukoliko se želimo autentificirati bez pozivanja bilo koje
aplikacije. CAS sustav se može oblikovati da obavlja provjeru korisničkog imena i lozinke
korištenjem nekih poznatih sustava:
1. obična datoteka s lozinkama
2. Kriptirana datoteka s lozinkama
3. baza podataka
4. LDAP server
5. ostalo
Za automatiziranu ponovnu autentifikaciju koristi se memory cookie. šalje se pregledniku i
briše se čim se preglednik ugasi. Naziva se još i cookie za dodjelu ulaznica i identificira
korisnika koji se već prije prijavio na sustav. Automatizirana autentifikacija olakšava
prijavu postojećih korisnika jer smanjuje vrijeme potrebno da korisnik pristupi željenoj
aplikaciji. Dakle, korisnik neće morati unosti ime i lozinku svaki put kada ga aplikacija
preusmjeri na CAS, tj. dobiva se single-sign-on za više Web aplikacija.
15
http://en.wikipedia.org/wiki/Central_Authentication_Service
37
Jednom unešeni podaci omogućuju pristup svim aplikacijama koje koriste CAS.
Zahtjevom za odjavu, cookie za dodjelu ulaznica se uništava i tada je potrebna ponovna
prijava ako se želi pristup aplikaciji. Odjava se obavlja odlaskom na URL za odjavulogout URL.
Budući da aplikacije prilikom preusmjeravanja korisnika predaju svoj identifikator, CAS
pamti i aplikaciju kojoj je korisnik htio pristupiti i s koje je preusmjeren. Ukoliko je
autentifikacija uspješno obavljena, generira se ulaznica od strane CAS-a koja se povezuje
sa korisnikom i aplikacijom kojoj pristupa. Dakle, ta ulaznica je iskoristiva samo za tog
korisnika i za tu odreĎenu aplikaciju. Na završetku te primarne autentifikacije, CAS šalje
korisnika na mjesto s kojeg je došao, tj na aplikaciju za koju je slao zahtjev. Identifikator
zapravo predstavlja URL aplikacije pa će CAS dodati kreiranu ulaznicu na taj URL kao
jedan dodatni element.
5.9.
Povezani pristup u SSO-u
Federativnim pristupom se naziva pristup koji obuhvaća povezivanje različitih sustava i
aplikacija. Danas postoji velika potreba za ovakvim sustavom. Naime, korisnici za različite
Web aplikacije koriste različite identifikacijske podatke što zbog zaboravljanja može
rezultirati mnogim nepotrebnim korisničkim računima. Način da se to riješi je uvoĎenje
sustava jedinstvene autentifikacije na Web-u. Taj sustav koristi standardizirane protokole
kako bi jedna aplikacija dokazala identitet korisnika drugoj aplikaciji. U isto vrijeme,
svaka aplikacija ne mora znati način ostvarenja autentifikacije i autorizacije u ostalim
aplikacijama. Temelji se na standardnim mehanizmima i sustavima razmjene korisničkih
informacija. Jedan od takvih sustava naziva se SAML (Security Assertion Markup
Language).
5.9.1. SAML i Web Single Sign On
SAML predstavlja XML standard koji služi za sigurnu razmjenu informacija o identitetu
korisnika. Razvila ga je Organizacija za napredak standarda strukturiranih podataka
(Organization for the Advencement of Structured Information Standards-OASIS).
38
Osnovni razlozi za njegov nastanak su: uvoĎenje standarda za razmjenu infromacija
izmeĎu različitih domena, povezanost različitih sustava, smanjivanje troškova oko rada sa
korisničkim računima i jednostavnija usluga za korisnike. Rad SAML standarda se temelji
na razmjeni izjava preko poruka. U toj razmjeni sudjeluje korisnik i pružatelj usluge. Za
izražavanje elemenata u SAML jeziku koriste se poveznice, izjave, protokoli i profili.
Protokoli se bave onim što se prenosi, dok poveznice načinom na koji se prenosi. Profili
služe za definiranje točno odreĎenog slučaja korištenja tih komponenti. Izjava je osnova
SAML-a jer se prenosi izmeĎu izmeĎu pužatelja usluga i daje informacije koje utječu na
odluku o pristupu nekoj aplikaciji. SAML je fleksibilan i proširljiv protokol dizajniran da
ga koriste i mijenjaju drugi protokoli. Najviše je u upotrebi upravo u razvijanju SSO-a.
Korisnik se prijavljuje na jednu stranicu i nakon toga može pristupati drugim stranicama
bez dodatne prijave. SAML omogućava SSO kroz komunikaciju izjavama (engl.
assertions). Stranica na kojoj se korisnik prijavio, šalje izjavu drugoj stranici koja tada
može korisnika propustiti kao da se direktno prijavio. 16
5.10. Autorizacija temeljena na atributima
Kod autorizacije korištenjem atruibuta osnova je da se podaci prenose preko atributa. Ti
podaci sadrže informacije o ulogama i pravima koje korisnik dobiva nakon uspješne
prijave. U toj komunikaciji sudjeluju dvije Web stranice i kod jedne od njih korisnik je
prethodno obavio identifikaciju. Slanje preko mreža ponekad može biti rizično u
sigurnosnom smislu pa se u tim slučajevima preporučuje autorizacija preko atributa. No,
treba voditi računa o informacijama koje nam govore o mjestu i vremenu prijave korisnika,
jer atributi ne sadržavaju takvu vrstu podataka.
16
http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language
39
6. ZAKLJUČAK
Kako smo svjedoci sve bržeg rasta i razvoja tehnologija, interneta i Web aplikacija, to je i
teže biti u koraku sa raznim napadima na osjetljive podatke kao što su korisnička imena i
lozinke. Napadi na resurse aplikacija orijentirani su na slabosti sustava koje se uz trud i
uloženo vrijeme mogu lako iskoristiti. Problem slabosti web aplikacija i sustava koji
održavaju web aplikacije su veliki problem ako se ne uspiju riješiti odmah nakon njihovog
otkrivanja ili u vrlo brzom vremenskom razdoblju nakon toga. Ako se radi o složenim
problemima neke slabosti bi se mogle iskoristiti za stvaranje novih koje u tom trenutku
nisu uočene, pa bi problem bio jednak ili možda čak i veći u odnosu na prethodnu situaciju.
Zbog toga je brzo djelovanje jedan od najvažnijih čimbenika u tom procesu. Stoga, razvoj
raznih tehnika i metoda proboja zaštite, tjeraju na neprestano traganje za modelima
zaustavljanja tih napada. Danas su korisnici sve veća meta prilikom prijave na odreĎene
Web aplikacije. Osiguravanje zaštite u Web aplikacijama može se ostvariti na mnoge
načine. Početak svega je dobro poznavanje tehnika i metoda napada.
Za procese autentifikacije i autorizacije korisnika važno je postavljanje zapreka
prilagoĎavajući modele provjere identiteta, a time i provjere dodjeljenih uloga i prava.
Sprječavanje kraĎe podataka o korisničkim imenima i lozinkama jedna je od važnijih stvari
za svaku Web aplikaciju.
Korisnike prilikom registracije treba uputiti na sigurniji način kreiranja lozinke. To se
postiže postavljanjem mjerača jačine lozinke. Lozinke ne bi trebale sadržavati osobna
imena, datume ili neke druge osobne podatke koje napadač može lako otkriti. TakoĎer,
treba općenito izbjegavati smislene riječi i rečenice jer npr. upotrebom Brute Force
metode, moguće je pogoditi odreĎenu riječ koja je karakteristična za samog korisnika.
Osim, lozinke, treba voditi računa i o korisničkom imenu. Za njega vrijede slična pravila
kao i za lozinke s tim da se izbjegaje kreiranje računa s istim korisničikm imenom i
lozinkom. Korisnika se treba upozoriti i na mnoge druge elemente koje pomažu u
sigurnosti Web aplikacije. Upravo je na administratoru glavni naglasak, jer pravilno i
dovoljno postavljena ograničenja jedina mogu zaštititi kako administratore, tako i
korisnike, jer administrator ima veća ovlaštenja i mogućnost djelovanja na aplikaciju.
40
Zbog sve većeg korištenja različitih Web stranica sa opcijom registracije korisniku se treba
omogućiti i sinkronizacija lozinki. Ukoliko se donose odluka za njenu provedbu potrebno
je osigurati visoku razinu sigurnosti. Napad na lozinku može učiniti veliku štetu za samog
korisnika jer napadač ima pristup svim sadržajima kojima je korisnik pristupao. Na taj
način napadnut je i sam korisnik i svaka aplikacija za koju vrijedi dobavljena lozinka. Iako
smanjenje ne važećih korisničkih računa olakšava održavanje Web stranica, ipak bi
naglasak trebao biti na zaštiti korisnika.
41
7. LITERATURA
[1] Simson Garfinkel: Web Security & Commerce, O'Reilly, 1997.
[2] T. Pavić, “Diplomski rad: Autentifikacija i autorizacija korisnika na jednom mjestu”,
Fakultet elektrotehnike i računarstva, Zagreb, 2006.
[3] http://en.wikipedia.org/wiki/Single_sign-on ( zadnji pristup rujan 2014.g.)
[4] http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language (zadnji pristup
rujan 2014.g.)
[5] Brute Force napadi ( Carnet Cert i LS&S, CCERT-PUBDOC-2007-08-201)
[6] http://www.aquilonis.hr/acunetix/authentication_hacking.html (zadnji pristup rujan
2014.g.)
[7] http://en.wikipedia.org/wiki/Central_Authentication_Service (zadnji pristup rujan
2014.g.)
[8] http://www.authenticationworld.com/Single-Sign-On-Authentication/ (zadnji pristup
rujan 2014.g.)
[9] http://www.onelogin.com/single-sign-on-sso/ ( zadnji pristup rujan 2014.g.)
[10]http://en.wikibooks.org/wiki/Fundamentals_of_Information_Systems_Security/Access
_Control_Systems (zadnji pristup rujan 2014.g.)
[11] Sigurnost Web aplikacija (Mario Kozina, Sveučilište u Zagrebu, Zagreb, 2006.g.)
42