Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
Zavod za telekomunikacije
DIPLOMSKI RAD br. 3040
IMPLEMENTACIJA SUSTAVA ZA VALIDACIJU
MOBILNIH ULAZNICA Matko Kvesić
Zagreb, listopad 2008.
2
Sadržaj
Sadržaj ...................................................................................................................................... 2
1. Uvod ..................................................................................................................................... 4
2. Mobilno poslovanje ............................................................................................................. 5
2.1. Kratka povijesna nota................................................................................................... 5
2.2. Definiranje mobilnog poslovanja ................................................................................ 6
2.3. Usluga mobilnih ulaznica ............................................................................................ 8
2.3.1. Mobilna ulaznica ................................................................................................. 10
2.3.2. Barkod forma ulaznice ........................................................................................ 12
2.3.3. Validacija mobilne ulaznice ............................................................................... 15
3. Sustav e-Portir ................................................................................................................... 20
3.1. Zahtjevi izvedbe sustava ............................................................................................ 22
3.1.1. Inicijalni zahtjevi izvedbe................................................................................... 22
3.1.2. Funkcijski zahtjevi .............................................................................................. 22
3.2. Arhitektura sustava..................................................................................................... 23
3.3. Tehnologija sustava .................................................................................................... 26
3.2.1. Prezentacijski sloj ............................................................................................... 26
3.2.2. Aplikacijski sloj .................................................................................................. 27
3.2.3. Podatkovni sloj .................................................................................................... 28
3.4. Izvedba i implementacija ........................................................................................... 29
3.4.1. Mobilna ulaznica ................................................................................................. 31
3.4.2. QR Code barkod.................................................................................................. 36
3.4.3. Ulaznični poslužitelj ........................................................................................... 43
3.4.4. Validacijski klijent .............................................................................................. 47
3.4.5. Validacijski poslužitelj ....................................................................................... 52
3.5. Modeliranje sigurnosnih rizika validacijske komponente ....................................... 58
3.5.1 Razine pristupa ..................................................................................................... 59
3.5.2. Ulazne i izlazne točke ......................................................................................... 59
3
3.5.3. Točke napada....................................................................................................... 61
3.5.4. Prijetnje i ranjivosti sustava ............................................................................... 62
4. Instalacija i korištenje e-Portira ....................................................................................... 65
4.1. Instalacija .................................................................................................................... 65
4.1.1. Softverski i hardverski zahtjevi .......................................................................... 65
4.1.2. Tijek instalacije ................................................................................................... 66
4.2. Korištenje e-Portira ................................................................................................... 69
4.2.1. Ulaznični poslužitelj ........................................................................................... 69
4.2.2. Validacijski klijent .............................................................................................. 71
4.2.3. Validacijski poslužitelj ....................................................................................... 72
4.2.4. Validacija ulaznica .............................................................................................. 75
5. Zaključak ............................................................................................................................ 78
6. Literatura ............................................................................................................................ 79
7. Kratice ................................................................................................................................ 80
8. Dodaci ................................................................................................................................ 81
4
1. Uvod
Moderna znanost i tehnologije današnjice uvele su nas u digitalno doba.
Obavljanje komercijalnih djelatnosti pomoću računala ili mobilnog uređaja danas je jedna
od svakodnevnih ljudskih aktivnosti. Uzrok tome su učinkovitost i jednostavnost
poslovnih modela po kojemu se takve aktivnosti obavljaju. Tko je npr. papirnati novac
već odavno zamijenjen digitalnim objektima i bitovima, elektroničkim novcem u
elektroničkom poslovanju. Slično tome, usluga mobilnog poslovanja koja određuje
procese upravljanja mobilnim ulaznicama – usluga mobilnih ulaznica (engl. mobile
ticketing), danas može u potpunosti zamijeniti uporabu konvencionalnih papirnatih
ulaznica digitalnim mobilnim ulaznicama.
U ovom radu opisani su opći elementi potrebne infrastrukture, poslovni procesi i
tehnologije koje ostvaruju uslugu mobilnih ulaznica. Time je dan i okvir za izvedbu
praktičnog dijela rada; programsku implementaciju prototipnog sustava za validaciju
mobilnih ulaznica. Prije same implementacije sustava izvršeno je modeliranje
sigurnosnih rizika prema dizajnu sustava za validaciju, a nakon implementacije model je
revidiran i dopunjen.
Kako bi se ostvario potpuni životni ciklus usluge mobilnih ulaznica, dodatno je
izveden i sustav koji vrši izdavanje mobilnih ulaznica. Dvije spomenute cjeline, sustav za
validaciju mobilnih ulaznica (validacijska komponenta) i sustav za izdavanje mobilnih
ulaznica (ulaznična komponenta), čine programski sustav za simulaciju usluge mobilnih
ulaznica - e-Portir.
Diplomskom radu priloženo je programsko rješenje sustava e-Portir na CD
mediju.
5
2. Mobilno poslovanje
2.1. Kratka povijesna nota
Godine 1897. Talijan Guiliemo Marconni je prvi uspio proizvesti kontinuirani
bežični zvučni kontakt na velikoj udaljenosti (otprilike šest kilometara) putem radio
valova. Eksperiment se dogodio na brodu u Bristolskom kanalu, a Marconni je uspješno
poslao poruku „jeste li spremni“ u signalima Morseovog kôda prema primateljskoj radio
stanici na obali. Od tada pa do danas, bežične telekomunikacije evoluirale su od relativno
jednostavnih analognih tehnologija prve generacije, pa do modernih digitalnih
tehnologija treće i četvrte generacije. Krajem 2001. godine 14% svjetske populacije
posjedovalo je mobilne uređaje. U zadnjem desetljeću mobilni uređaji su evoluirali od
luksuza probranih do uređaja dostupnih svakome i gotovo neophodnih u svakodnevici.
Najveći prodor mobilnih uređaja i tehnologija dogodio se u Europi devedesetih godina
prošlog stoljeća prihvaćanjem globalnog standardnog sustava za mobilnu telefoniju –
GSM. Kako su tada mobilni telefoni (mobiteli) dominirali bežičnom glasovnom
komunikacijom, tako su ostali uređaji koji koriste bežičnu komunikaciju, kao npr. PDA i
prijenosna računala, doprinosili razvoju mobilnog poslovanja. S vremenom i razvojem
industrije, razlika u funkcionalnostima mobitela, PDA uređaja i prijenosnog računala
postajala je sve manja, a ta se tendencija nastavlja i danas. Procvat mobilnog poslovanja
dogodio se pojavom WAP tehnologije za mobilni pristup Internetu u drugoj generaciji
mobilne tehnologije. S 2000. godinom javlja se GPRS tehnologija, mogućnost paketskog
prijenosa podataka i stalne mrežne konekcije. Nekoliko godina nakon, javlja se treća
generacija mobilne tehnologije koja omogućava širokopojasni pristup Internetu,
mogućnosti mobilnog prijenosa različitog višemedijskog sadržaja, usluge temeljene na
geografskoj poziciji mobilnog korisnika, usluge ovisne o vremenskoj domeni, itd.
6
2.2. Definiranje mobilnog poslovanja
Izraz „mobilno poslovanje“ (engl. mobile commerce, m-commerce) označava
model trgovanja koji uključuje prijenos vlasništva ili prava na korištenje dobara i usluga,
a koji je iniciran i / ili završen korištenjem mobilnog pristupa uz pomoć komunikacijskog
uređaja. Misli se na model u kojem nema fizičkog transfera novca ili monetarnog
ekvivalenta.
Izraz „mobilno poslovanje“ se kroz izvore i literaturu opisuje različito, a
nedosljednost definicija uzrokuje dvojba je li mobilno poslovanje ograničeno samo na
telekomunikacijsku bežičnu mrežu ili se ono odnosi i na poslovanje kroz bežični pristup
bilo kojoj računalno posredovanoj mreži. U ovom radu prikloniti ćemo se proširenoj
definiciji koja podrazumijeva usluge mobilnog poslovanja usvojene kroz različite vrste
bežičnih i mobilnih mreža, te različite vrste mobilnih uređaja1. Konkretnije, misli se na
telekomunikacijske mreže; generacija 2G, 2.5G, 3G, 4G, dalje bežične WLAN i Wi-Fi2
mreže, WAP, Bluetooth, IrDA i dr., te mobilne uređaje kao što su mobitel, smartphone,
PDA, IP telefoni, Pocket PC i dr.
Možemo reći da mobilno poslovanje danas, zbog napretka tehnologije mobilnih
uređaja i mreža, u potpunosti ostvaruje i elektroničko poslovanje3 (kraće „e-poslovanje“,
engl. electronic commerce, e-commerce). No, postoji nekoliko karakteristika koje
određuju mobilno poslovanje i razlikuju ga od e-poslovanja4:
1. Mobilnost
a. Sloboda kretanja: mogućnost ostvarivanja mobilne usluge „u pokretu“
b. Sveprisutnost: mogućnost ostvarivanja mobilne usluge bilo gdje
c. Dostupnost: mogućnost ostvarivanja mobilne usluge bilo kada
2. Personalizacija: usluga se može prilagoditi za individualnog korisnika jer je
mobilni uređaj tipično vezan za samo jednu osobu
1 JONKER J., M-Commerce and M-Payment, Bedrijfswiskunde en informatica, 2003. 2 Wi-Fi – bežična tehnologija koja implementira više vrsta tehnologija IEEE 802.11 standarda 3 Elektroničko poslovanje – označava model trgovanja koji uključuje prijenos vlasništva ili prava na korištenje dobara i usluga putem Interrneta 4 E-COMMERCE WORKING PARTY, Considering the implications of M-commerce – A Consumer Perspective, Consumer Affairs Victoria, 2004.
7
3. Lokacijska svjesnost: lokacija korisnika je su svakom trenutku poznata
(ovisno o pristupnoj mreži)
S obzirom na komunikacijske tehnologije, mobilno poslovanje se ostvaruje kroz
osnovne usluge i kroz usluge s dodanom vrijednošću (engl. value-added services, kraće
VAS). VAS označava usluge koje temeljnim uslugama i infrastrukturi dodaju vrijednost
gledajući tehnološke i komercijalne čimbenike. Primjerice, u mobilnoj
telekomunikacijskog mreži glasovni poziv je osnovna usluga, a VAS usluge poput SMS-a
i MMS-a koriste istu infrastrukturu mreže, tehnološki i funkcionalno se razlikuju, te
imaju različit sustav naplate usluge od osnovne usluge. Također, sve usluge koje dodatno
proširuju postojeću uslugu s dodanom vrijednošću smatramo VAS uslugom (primjerice
usluga u kojoj SMS porukom plaćamo parkirno mjesto je VAS usluga u odnosu na
osnovnu SMS uslugu).
Spomenimo neke od danas dostupnih usluga mobilnog poslovanja podijeljenih u
nekoliko tematskih kategorija:
- Informacijske usluge (npr. novosti, vremenska prognoza, itd.)
- Mobilno bankarstvo (engl. m-banking): banke i ostale financijske institucije
pružaju mogućnosti integriranja svojih usluga u mobilno poslovanje
- Lokacijski svjesne usluge (npr. GPS, praćenje vozila, praćenje ljudi, itd.)
- Mobilna kupovina digitalnih sadržaja
- Mobilna kupovina
- Multimedijske usluge
- Zabavne usluge
- Peer-to peer usluge
- Mobilni marketing i oglašavanje
- Usluge mobilnih ulaznica (engl. mobile ticketing, kraće m-ticketing)
8
2.3. Usluga mobilnih ulaznica
Pojam „ulaznica“ – predstavlja dokument ili certifikat koji svojem vlasniku daje
neka određena prava5.
„Usluga mobilnih ulaznica“ naziv je za uslugu u mobilnom poslovanju koja
uključuje procese (kronološkim redom izvršavanja): 1. izdavanja, 2. transformacije i 3.
validacije ulaznica izvršavane korištenjem mobilnog uređaja:
1. Izdavanje ulaznice: Korisnik komunicira s komponentom za izdavanje
ulaznica i izvršava potrebne operacije (npr. plaćanje i sl.) nakon kojih mu se
izdaje ulaznica
2. Transformacija ulaznice: Korisnik dobiva ulaznicu u digitalnom formatu i
pohranjuje ju na mobilni uređaj.
3. Validacija ulaznice: Korisnik izlaže ulaznicu mehanizmima za provjeru
valjanosti ulaznice i ostvaruje prava i / ili usluge koja nosi valjana ulaznica.
Ulaznica koja sudjeluje u procesima usluge mobilnih ulaznica jest mobilna
ulaznica. Usluga mobilnih ulaznica reducira proizvodne i distribucijske troškove
klasičnih papirnih ulaznica, te pruža i korisniku i pružatelju usluge praktičnije načine
upravljanja ulaznicama. Prilagođavanjem usluge korisniku empirijski je pokazano da se
povećava zadovoljstvo korisnikova korištenja usluge, a povećanje dostupnosti usluge
preko područja mobilnog i elektroničkog poslovanja pružateljima usluge donosi veću
potencijalnu komercijalnu dobit.
Životni ciklus usluge mobilnih ulaznica čine događaji:
1. Pokretanje usluge
2. Konkurentno izvršavanje skupa iterativnih sljedova procesa usluge: izdavanje,
transformacija i validacija ulaznice
3. Zaustavljanje usluge
Akteri u životnom ciklusu usluge mobilnih ulaznica su:
1. Pružatelj usluge
2. Korisnik usluge
5 Prema Oxford Advanced Learners Dictionary, Oxford University Press 1995.
9
3. Mobilna ulaznica
4. Sustav: ulaznična komponenta, validacijska komponenta
Primjer 2.1.: Radi bolje ilustracije, opisan je tipični slijed događaja u životnom ciklusu
konkretne, pojednostavljene usluge mobilnih ulaznica. Pretpostavimo da mobilnu
ulaznicu predstavlja SMS poruka:
1. Korisnik se informira o načinu kupovine mobilne ulaznice za koncert
2. Korisnik prema uputama mobitelom šalje potrebne podatke (šifru događaja – ID, broj
željenih ulaznica - Q) za izdavanje ulaznice u posebno formatiranoj SMS poruci:
„ID:777, Q:1“.
3. Pružatelj usluge prima korisnikove podatke, tereti njegov pretplatnički račun iznosom
koji odgovara cijeni jedne ulaznice za koncert, te šalje na njegov broj SMS poruku s
tekstualnim kodom: 123456789. Ta SMS poruka je mobilna ulaznica za koncert.
4. Korisnik na dan koncerta odlazi do koncertne dvorane i pruža svoj mobitel prema
uređaju s optičkim skenerom. Skener detektira broj 123456789 u otvorenoj SMS
poruci i povezuje se sa centralnom bazom podataka u kojoj pronalazi podatke o
mobilnoj ulaznici sa šifrom 123456789. Uređaj prepoznaje mobilnu ulaznicu kao
valjanu.
5. Korisnik ulazi u koncertnu dvoranu
Tehnološka i funkcionalna realizacija procesa usluge mobilnih ulaznica je
raznovrsna i njihova izvedba često interferira s elementima procesa drugih usluga
elektroničkog poslovanja; svi procesi i artifakti usluge mobilnih ulaznica ne moraju
nužno biti realizirani preko mobilnog uređaja (opisano u primjeru 2.2.).
Primjer 2.2.: U procesu nabave mobilne ulaznice, pružatelj usluge mobilnih ulaznica
omogućio je i nabavu ulaznica preko svoje Internet stranice. Korisnik upisuje
pretplatnički mobilni broj u formular na stranici i po plaćanju mu se njegova mobilna
ulaznica šalje na broj kao SMS poruka (Sl. 2.1.). U navedenom primjeru nabava mobilne
ulaznice odvija se preko Interneta, pa se cijela usluga ne odvija u potpunosti preko
mobilnog uređaja (kako je spomenuto u definiciji usluge mobilnih ulaznica).
10
Sl. 2.1. Ilustracija uz primjer 2.2.
2.3.1. Mobilna ulaznica
Mobilna ulaznica je ulaznica koja sudjeluje u procesima usluge mobilnih
ulaznica. Trojka parametara koji određuju mobilnu ulaznicu su:
1. Informacija ulaznice
2. Forma: digitalni format u kojemu je oblikovna informacija ulaznice
3. Način dostave: tehnologija medija u kojemu je sadržana forma ulaznice
Entitet mobilne ulaznice ima karakteristike mobilnog poslovanja: mobilnost (u
procesima usluge) i mogućnost personalizacije prema korisniku usluge. Mobilna ulaznica
nije tehnološki standard, no elementi njezine forme i načina dostave najčešće jesu
standardizirane veličine. Iz danas dostupnih komercijalnih usluga mobilnih ulaznica i
standarda mobilnog poslovanja prepoznajemo moguće kombinacije konstrukcije mobilne
ulaznice prema parametrima:
11
Sl. 2.2. Prikaz mogućih konstrukcija mobilne ulaznice prema parametrima
Žutom bojom (Sl. 2.2.) označene su moguće forme ulaznice, dok su sivom
označeni mogući načini dostave ulaznice. Svaka mobilna ulaznica sadržava samo jedan
par forma - način dostave. Linijama na slici prikazane su moguće kombinacije parova
[forma, način dostave]. Slaganje parova ovisi o tehnološkoj izvedbi forme i načina
dostave. Tako npr. obična SMS poruka ne može sadržavati grafičke elemente već samo
niz znakova. Informacija ulaznice prikazana je formom ulaznice. U formalnom opisu,
informacija ulaznice je zapravo niz bitova raspoređenih po nekom pravilu unutar forme
ulaznice, forma ulaznice je prezentacijski sloj informacije ulaznice koji bitove prikazuje
na određeni način, a način dostave je transportna jedinica koja sadržava formu.
Sl. 2.3. Shema mobilne ulaznice izgrađene prema određenim parametrima
Forma ulaznice
Razlikujemo tri forme ulaznice: 1. znakovna, 2. grafička, 3. kombinacija
znakovne i grafičke. Forma bitove u mobilnoj ulaznici prikazuje kao niz znakova ili, ako
Informacija ulaznice – niz bitova (heksadecimalni prikaz): 55 4C 41 5A 4E 49 43 41 Forma ulaznice – niz znakova (ASCII kodirani znakovi): „ULAZNICA“ Način dostave – SMS poruka koja sadržava formu ulaznice
12
su tako formatirani, kao grafičke elemente. U grafičkoj izvedbi forme mobilnih ulaznica,
najčešće korišten grafički element ulaznice je barkod (poglavlje 2.3.2.).
Načini dostave
- SMS: Podržava znakovnu formu i to maksimalno do 160 znakova u nizu. Ulaznica je
sadržana u SMS tekstualnoj poruci.
- RFID: Podržava znakovnu formu. Informacija ulaznice pohranjuje se na RFID čipu
(RFID tagu) ugrađenom u mobilni uređaj. Prijenos informacije na čip vrši se posebno
namijenjenim aplikacijama instaliranim na mobilni uređaj.
- Smart messaging (SM): Podržava monokromatsku grafičku formu ulaznice. Ulaznica
je sadržana u nekoliko povezanih SMS poruka koje tvore grafički element.
- EMS: Podržava tekstualnu i monokromatsku grafičku formu ulaznice. Ulaznica je
sadržana u EMS grafičkoj poruci.
- MMS: Podržava obje forme. Ulaznica je sadržana u MMS poruci.
- WAP push: Podržava obje forme. Ulaznica je sadržana unutar WAP Internet stranice.
- WAP: Podržava obje forme. Ulaznica je sadržana unutar WAP Internet stranice.
- E-mail: Podržava obje forme. Ulaznica je sadržana u e-mail poruci.
2.3.2. Barkod forma ulaznice
Barkod je vizualna reprezentacija podataka. Grafički element prvih barkodova
koji su se pojavili na tržištu, tvore paralelne vertikalne tamne i svijetle linije različitih
debljina. Informacija koju nosi takav barkod čita se iz jedne plošne dimenzije
(horizontalne), te je takav barkod retrospektivno nazvan 1D (jednodimenzionalan)
barkod.
Sl. 2.4. 1D (lijevo) i 2D (desno) barkod. Kodirani tekst je: "DIPLOMSKI RAD"
13
Danas su, osim 1D barkodova, u upotrebi i 2D barkodovi, te 3D barkodovi. 2D
barkodovi informaciju nose u dvije dimenzije plošne ravnine, a 3D barkodovi, osim
pohrane informacije u dvije dimenzije, nose informaciju predstavljenu bojom koja čini
treću dimenziju. 2D i 3D barkodovi tako konstruirani mogu nositi znatno veću količinu
informacija od 1D kodova. 1D, 2D i 3D barkodova ima više vrsta i konstrukcije
pojedinih često se u potpunosti razlikuju.
Barkod je optički, strojno čitljiv kod i to ga čini pogodnim formatom za prikaz
podataka koji se prenose s jednog medija na drugi metodama optičkog raspoznavanja
uzorka. Barkod slika nastaje kodiranjem ulaznih podataka prema određenom algoritmu.
Podaci dobiveni optičkim raspoznavanjem barkoda (dekodiranjem) trebaju biti jednaki
ulaznima. 1D barkodovi (linearni barkodovi) konstruirani su za lasersko optičko čitanje,
dok je za čitanje 2D i 3D barkodova potrebno fotografsko skeniranje slike barkoda.
Kako se usluga mobilnih ulaznica odvija preko mobilnog uređaja, konstrukcija i
izgled ulaznice u mnogome ovisi i treba se prilagoditi samom mobilnom uređaju u
kojemu će ulaznica biti pohranjena. Teži se konstrukciji univerzalne ulaznice, opet
pogodne za prikaz na što više različitih vrsta mobilnih uređaja na tržištu. Karakteristike
koji određuju mobilne uređaje, a utječu konstrukciju ulaznice su:
- Memorijski kapacitet
- Podrška za pohranu određenog formata podataka
- Vrsta, veličina, kvaliteta ekrana
- Procesorske mogućnosti uređaja
Zbog tih karakteristika, uvodi se barkod kao forma mobilne ulaznice jer su se,
zbog svojih značajki, pokazali kao odgovarajuća forma za prikaz podataka na mobilnim
uređajima:
- Moguće je pohraniti veliku količinu podataka u grafiku veličine optimalne za
mobilni uređaj
- Format grafike barkoda može se prikazati na većini mobilnih uređaja
dostupnih na tržištu
- Zbog jednostavne izvedbe pogodni su za prikaz na ekranima mobilnih uređaja
- Prikaz barkodova ne zahtjeva instaliranje nekih dodatnih aplikacija na
mobilne uređaje
14
Svrha barkoda kao grafičkog elementa ulaznice, je povećanje učinkovitosti čitanja
informacije ulaznice, kao i unapređenje tehnološke izvedbe mobilne ulaznice:
- izvedba 2D barkodova, zbog mogućnosti pohrane velikih količina podataka,
uključuje i podatke generirane posebnim algoritmima, potrebne za ispravljanje
potencijalnih pogrešaka pri čitanju informacije barkoda optičkim uređajem
- zbog mogućnosti pohrane velikih količina podataka informacija ulaznice
može sadržavati potpune podatke o ulaznici (suprotno izvedbi u kojoj je
informacija zapravo referenca na potpune podatke izvan ulaznice, u nekom
vanjskom spremištu podataka)
Pregled nekih 2D barkodova
U tablici 2.1. dan je pregled 2D barkodova koji se koriste za prikaz mobilne
ulaznice u danas dostupnim komercijalnim uslugama mobilnih ulaznica. Dani su i podaci
maksimalnog kapaciteta kodiranih podataka ovisno o njihovoj vrsti; kodirani samo
numerički znakovi (brojevi), kodirani samo alfanumerički znakovi, te kodirani binarni
podaci. Tablica 2.1. Pregled nekih 2D barkodova korištenih uslugama mobilnih ulaznica
Naziv Primjer simbola Maksimalni kapacitet pohranjenih podataka
Proizvodnja Binarni [byte]
Alfanumerički [broj znakova]
Numerički [broj znakova]
Maxi Code
93 138 1987. Omniplanar
DataMatrix
1556 2335 3116 1989.
International Data Matrix
PDF417
1108 1850 2710 1992.
Symbol Technologies
QR Code
2953 4296 7089 1994. Denso Wave
Aztec
1914 3067 3832 1995. Welch Allyn
15
2.3.3. Validacija mobilne ulaznice
Validacija mobilne ulaznice je završni proces usluge mobilnih ulaznica i izvršava
ga validacijska komponenta. Validacijom se utvrđuje valjanost mobilne ulaznice.
Validacija mobilne ulaznice sastoji se od slijednih procesa:
1. provjera ulaznice po logici validacije
2. provjera stanja ulaznice
Kriterij valjanosti ulaznice definira se na početku životnog ciklusa usluge
mobilnih ulaznica.
Izdavanje ulaznice vrši ulaznična komponenta. Ona formulira informaciju
ulaznice tako da validacijska komponenta „može zaključiti“ je li ulaznica valjana.
Poslovna logika, po kojoj validacijska komponenta određuje je li ulaznica valjana –
logika validacije, treba biti usklađena na razini cijelog sustava (trebaju ju „poznavati“ i
ulaznična i validacijska komponenta). Drugim riječima, ulaznična komponenta
informaciju ulaznice izvodi prema pravilima logike validacije, tako da ju validacijska
komponenta može validirati.
Primjer 2.3.: U pojednostavljenom sustavu mobilnih ulaznica, logika validacije
izvedena je tako da validacijska komponenta označava valjanima one ulaznice koje nose
informaciju kao brojčanu šifru s nizom početnih brojeva: "123". Ulaznična komponenta
izdaje mobilne ulaznice s šiframa: "12355417" i druga "12384517". Potom validacijska
komponenta validacijom utvrđuje da su obje ulaznice valjane. (primjer ne opisuje
provjeru stanja ulaznica)
Centralizirana i neovisna validacija
Validacija mobilnih ulaznica zahtjeva posebne mehanizme za praćenje trenutnog
stanja ulaznice kako ne bi došlo do zloporabe ulaznica (iskorištavanja iste ulaznice više
puta). Mobilna ulaznica, s obzirom na kriterij valjanosti, ima dva osnovna stanja: valjana
ulaznica i ne valjana ulaznica. Valjanu ulaznicu još je k tome moguće općenito odrediti
kao jednokratno, višekratno i permanentno (stalno) valjanu, te ulaznicu koja je valjana uz
neke posebno definirane uvjete. Validacijom valjanih ulaznica stanje se mijenja, dok
16
validacijom ne valjane i permanentno valjane ulaznice stanje ostaje isto. U tablici 2.2.
prikazana su stanja ulaznica s obzirnom na broj izvršenih procesa validacije.
Tablica 2.2. Moguća stanja ulaznica u odnosu na izvršen process validacije
Početno stanje ulaznice
Stanje ulaznice nakon jedne validacije
Stanje ulaznice nakon N-te validacije (N>0)
Jednokratno valjana Ne valjana Ne valjana Višekratno valjana (X puta valjana, X>0)
X-1 puta valjana X-N puta valjana za N<X Ne valjana za N>=X
Permanentno valjana Permanentno valjana Permanentno valjana Posebno stanje - - Ne valjana Ne valjana Ne valjana
Karakteristika sustava mobilnih ulaznica je namjena velikom broju korisnika,
dakle, postavljaju se zahtjevi skalabilnosti i raspoloživosti za funkcionalnosti
komponenata sustava koje opslužuju korisnike – ulazničnu i validacijsku. Kod procesa
validacije ulaznica, velika je vjerojatnost da će validacijska komponenta sustava u
kratkom vremenskom okviru biti opterećena zahtjevima za validacijom ulaznica velikog
broja korisnika. Slijedni događaji; izdavanje ulaznice i validacija te iste ulaznice, također
se mogu odviti u vrlo kratkom vremenskom razmaku. Zbog toga je potrebno izvesti
sustav takav da validacijska komponenta u svakom trenutku od izdavanja ulaznice može
ispravno odrediti stanje ulaznice. Bazu stanja izdanih ulaznica validacijska komponenta
dohvaća implicitno ili eksplicitno s ulaznične komponente. Informaciju s mobilne
ulaznice dohvaća dio validacijske komponente - validacijski klijent.
Validacijskom klijentu informaciju ulaznice je moguće prenijeti:
- vizualnom inspekcijom ulaznice i ručnim unosom informacije ulaznice
- optičkim računalnim skeniranjem
- bežičnim prijenosom s mobilnog uređaja validacijskom klijentu (Bluetooth,
IrDA, RFID, itd.).
17
Postoje dva načina izvedbe validacije ulaznica u sustavu mobilnih ulaznica6:
1. Centralizirana validacija: baza stanja ulaznica nalazi se u centraliziranoj komponenti
u sustavu (validacijska ili ulaznična komponenta)
Sl. 2.5. Shema centralizirane validacije ulaznica
Validacijski poslužitelj je dio validacijske komponente sa zadaćom dohvaćanja i
praćenja stanja ulaznica. Mogući načini na koje validacijski poslužitelj može
dohvaćati podatke o ulaznicama za koje se trenutno zahtijeva validacija jesu:
a) Prosljeđivanje svakog zahtjeva za validacijom jedinstvene ulaznice izravno prema
ulazničnoj komponenti, koja sadrži bazu svih izdanih ulaznica: takvom izvedbom
osigurano je da se za svaku ulaznicu u svakom trenutku može ispravno utvrditi
početno stanje (tj. je li uopće izdana). Negativna posljedica izvedbe je stroga
centralizacija sustava – validacijska komponenta je strogo ovisna o ulazničnoj
komponenti i postaje kritična komponenta sustava. Zahtijeva se postojanje
pouzdane, sigurne i skalabilne komunikacijske veze između validacijske i
ulaznične komponente.
b) Jednokratno osvježavanje baze stanja ulaznica: baza stanja ulaznica na
validacijskom poslužitelju se osvježava samo jednom, te se nakon tog trenutka ne
mogu validirati ulaznice izdane nakon osvježavanja. Prednost ovog načina je
jednostavnost izvedbe, dok je mana nemogućnost validacije ulaznica izdanih od
određenog vremenskog trenutka. (npr. sve ulaznice za koncert se trebaju prodati
prije nego što posjetitelji počnu ulaziti u koncertnu dvoranu)
6 Masabi – Secure Mobile Applications, http://www.masabi.com/
18
c) Periodičko osvježavanje baze stanja ulaznica: baza stanja ulaznica na
validacijskom poslužitelju se osvježava svaki određeni period vremena kako bi se
prikupljali podaci o novoizdanim ulaznicama. Negativna posljedica izvedbe je,
kao i u prvom načinu, stroga centralizacija sustava. Također, ne može se egzaktno
odrediti vremenski interval osvježavanja baze kod kojeg bi validacijska
komponenta u svakom trenutku mogla odrediti stanje svake novoizdane ulaznice.
2. Neovisna validacija: kod ovakve izvedbe validacije komunikacijska veza između
validacijske i ulaznične komponente tijekom procesa validacije nije potrebna. Svi
podaci potrebni za validaciju sadržani su u informaciji izdane mobilne ulaznice koja
se validira, a zadaća validacijskog poslužitelja je održavanje baze stanja validiranih
ulaznica. U koraku pokretanja usluge mobilnih ulaznica s neovisnom validacijom
ulaznična komponenta treba definirati i razmijeniti (pregovarati) s validacijskom
komponentom potrebne sigurnosne postavke koje omogućuju neovisnu validaciju
(objašnjeno u nastavku).
Sl. 2.6. Shema neovisne validacije ulaznica
Za izvedbu neovisne validacije potrebno je u ulazničnu i validacijsku komponentu
implementirati sigurnosne mehanizme koji će se koristiti za izdavanje odnosno
validaciju ulaznice. Kod neovisne validacije, prije provjere stanja ulaznice, potrebno
je izvršiti verifikaciju ulaznice. Verifikacija je proces neovisne validacije kojim se
određuje je li ulaznica autentična tj. je li (upravo) ulaznična komponenta sustava
(uopće) izdala ulaznicu. Informaciju mobilne ulaznice treba oblikovati tako da
validacijska komponenta može izvršiti verifikaciju ulaznice bez prethodne
komunikacije sa ulazničnom komponentom.
19
Autentičnost mobilne ulaznice osigurava se umetanjem sigurnosne
informacije u informaciju ulaznice. Taj proces zovemo zaštita ulaznice i izvršava ga
ulaznična komponenta. Sigurnosnu informaciju čine podaci šifrirani simetričnom ili
asimetričnom kriptografijom.
1. Zaštita ulaznice simetričnom kriptografijom:
a. Šifriranje cijele informacije ulaznice: ulaznična komponenta šifrira
simetričnim ključem cijelu informaciju ulaznice. Verifikaciju validacijska
komponenta izvodi dešifriranjem šifriranog istim simetričnim ključem. Nakon
uspješne verifikacije nastavljaju se procesi validacije.
b. Potpisivanje ulaznice: ulaznična komponenta izvodi šifriranje cijele
informacije ili samo nekog njezinog dijela simetričnim ključem. Potom se
dobivena sigurnosna informacija (potpis) dodaje originalnoj informaciji
ulaznice. Verifikaciju validacijska komponenta izvodi provjerom potpisa
ulaznice. Nakon uspješne verifikacije nastavljaju se procesi validacije.
Razmjena sigurnosnih postavki prilikom pokretanja usluge uključuje razmjenu
istog simetričnog ključa između ulaznične i validacijske komponente.
2. Zaštita ulaznice asimetričnom kriptografijom (digitalno potpisivanje ulaznice):
koristi se PKI infrastruktura za ostvarivanje sigurnosnih mehanizama. Ulaznična
komponenta šifrira informaciju ulaznice privatnim ključem i dodaje sigurnosnu
informaciju originalnoj informaciji ulaznice (digitalni potpis). Verifikaciju
validacijska komponenta izvodi provjerom digitalnog potpisa ulaznice koristeći
javni ključ. Nakon uspješne verifikacije nastavljaju se procesi validacije.
Razmjena sigurnosnih postavki prilikom pokretanja usluge uključuje distribuciju
javnog ključa validacijskim komponentama.
Osim centralizirane i neovisne validacije, moguće je izvesti sustave koji
kombiniraju navedena dva osnovna načina validacije.
20
3. Sustav e-Portir
Svrha e-Portir prototipnog programskog sustava jest simulacija usluge mobilnih
ulaznica kroz sve faze životnog ciklusa usluge. Sustav čine tri programske cjeline:
validacijski klijent i validacijski poslužitelj koji čine validacijsku komponentu, te
ulaznični poslužitelj koji čini ulazničnu komponentu. Sustav koristi izvedbu neovisne
validacije sa zaštitom ulaznice asimetričnom kriptografijom. Korištena forma mobilne
ulaznice je dvodimenzionalni barkod. Nakon početne inicijalizacije pokreću se
programske cjeline sustava i sustav je spreman za izvršavanje procesa usluge mobilnih
ulaznica.
U sustavu e-Portir sve procese usluge mobilnih ulaznica korisnik ne obavlja
izričito pomoću mobilnog uređaja. Tako korisnik mobilnu ulaznicu pribavlja preko web
sučelja ulazničnog poslužitelja. Opseg ovog rada ne obuhvaća realizaciju poslovnih
procesa elektroničkog plaćanja za izdanu ulaznicu, kao ni procese prijenosa ulaznice na
mobilni uređaj. Prijenos ulaznice na medij vrši se ručno. Ulaznicu e-Portira predstavlja
svaki medij koji sadržava formu ulaznice (npr. mobilni uređaj, prijenosna memorijska
jedinica, itd.). Uzmimo za primjer korisnika koji želi pribaviti ulaznicu za koncert. On
preko web sučelja ulazničnog poslužitelja predaje potrebne podatke za koje mu ulaznični
poslužitelj izdaje jednokratnu ulaznicu za koncert. Potom se vrši prijenos na medij;
korisnik ručno prebacuje ulaznicu na svoj mobilni uređaj (pohranjuje ju u memoriju
uređaja). Korisnik po ulaznicu nije trebao fizički doći na kakav terminal, već su jedini
preduvjeti u ovom slučaju bili omogućen pristup web sučelju ulazničnog poslužitelja i
posjedovanje odgovarajućeg medija za ulaznicu. Sljedeći korak je validacija ulaznice.
Kako se radi o ulaznici zaštićenoj asimetričnom kriptografijom, kroz validaciju je
potrebno izvršiti verifikaciju i provjeru stanja ulaznice. Korisnik odlazi do koncertne
dvorane kako bi poslušao koncert. Svoj mobitel, koji sadrži ulaznicu prikazanu na
ekranu, prinosi uređaju koji skenira barkod ulaznice, dekodira ga i obavlja verifikaciju
nad dobivenim podacima (validacijski klijent). Nakon verifikacije validacijski klijent
prosljeđuje ulaznicu validacijskom poslužitelju kako bi se utvrdilo trenutno stanje
21
ulaznice. Validacijski poslužitelj utvrđuje da u bazi stanja nema zapisa o ulaznici, pa
upisuje ulaznicu u bazu podataka i šalje validacijskom klijentu odgovor da je ulaznica
valjana. Korisnik ulazi u koncertnu dvoranu i (još jednom) prepušta svoje uho notama
violine i orkestra.
U scenariju gdje korisnik pokuša krivotvoriti ulaznicu ili iskoristiti već korištenu
jednokratnu ulaznicu, ulaz u koncertnu dvoranu biti će mu odbijen po verifikaciji,
odnosno provjeri stanja ulaznice.
22
3.1. Zahtjevi izvedbe sustava
3.1.1. Inicijalni zahtjevi izvedbe
1. Izgraditi ulazničnu i validacijsku komponentu sustava mobilnih ulaznica
2. Izvesti administratorska sučelja za komponente sustava
3. Napraviti model sigurnosnih rizika validacijske komponente sustava
3.1.2. Funkcijski zahtjevi
Funkcijski zahtjevi koji trebaju biti zadovoljeni u izvedbi prototipnog sustava
mobilnih ulaznica e-Portir su:
1. Omogućiti generiranje forme ulaznice kao niz znakova
2. Omogućiti generiranje forme ulaznice kao 2D barkod
3. Ostvariti praktičnu sigurnosnu zaštitu visokog stupnja za ulaznice prema
sigurnosnim zahtjevima cjelovitosti i autentičnosti
4. Mobilnu ulaznicu realizirati tako da bude prenosiva, ne vezana za jedinstvenog
korisnika ili medij ulaznice (npr. mobitel)
5. Omogućiti neovisnu validaciju ulaznica (validacijska i ulaznična komponenta
moraju biti neovisni entiteti)
6. Omogućiti validaciju mobilnih ulaznica s više validacijskih klijenata za isti
događaj istovremeno
7. Omogućiti validaciju ulaznice za obje forme ulaznice
23
3.2. Arhitektura sustava
Troslojna arhitektura (engl. three-tier) sustava e-Portir izgrađena je u tri logički
odvojena glavna sloja sustava; prezentacijski, aplikacijski i podatkovni sloj. U tako
raslojenom sustavu olakšan je neovisan, komponentni razvoj svakog sloja posebno.
Prezentacijski sloj jest samo grafičko korisničko sučelje sustava (engl. graphical user
interface - GUI). Aplikacijski sloj vrši procesiranje ulaznih parametara sa prezentacijskog
sloja i izvodi cijelu poslovnu logiku sustava (drugi naziv je sloj poslovne logike, engl.
bussiness logic layer - BLL), te pristupa podatkovnom sloju. Podatkovni sloj čine
mehanizmi upravljanja i pohrane podataka.
e-Portir se sastoji od tri komponente:
1. Ulaznični poslužitelj
2. Validacijski klijent
3. Validacijski poslužitelj
Ulazničnu komponentu u sustavu čini ulaznični poslužitelj. Validacijsku
komponentu čine validacijski poslužitelj i jedna ili više instanci validacijskih klijenata sa
ostvarenom komunikacijskom vezom prema validacijskom poslužitelju. Međusobnu
konekciju validacijskih klijenata nije potrebno ostvariti.
Prezentacijski sloj komponenata čini grafičko korisničko sučelje aplikacija (GUI)
prema korisniku. Vezu GUI-a i aplikacijskog sloja realizira komunikacijski među-sloj
(GUI-BLL) u aplikacijskom sloju.
25
Ulaznični poslužitelj
Funkcionalnosti ulazničnog poslužitelja izložene su korisniku usluge u životnom
ciklusu usluge mobilnih ulaznica:
- Prihvat korisnikovih podataka: GUI komponenta vrši prihvat unesenih korisnikovih
podataka potrebnih za generiranje mobilne ulaznice
- Generiranje koda ulaznice: koder ulaznice generira kod ulaznice ili znakovnu formu
ulaznice na temelju unešenih podataka korisnika po definiranoj logici validacije
- Kodiranje barkoda ulaznice: koder barkoda na temelju koda ulaznice generira barkod
formu ulaznice
Validacijski klijent
Funkcionalnosti validacijskog klijenta izložene su pružatelju usluge u životnom
ciklusu usluge mobilnih ulaznica:
- Skeniranje mobilne ulaznice: video adapter GUI sloja upravlja hardverskim optičkim
uređajem za skeniranje mobilne ulaznice
- Dekodiranje barkoda: digitalnu formu barkoda dekodira dekoder barkoda u znakovnu
formu ulaznice
- Verifikacija ulaznice: verifikaciju izvršava verifikator ulaznice
- Komunikacija s validacijskim poslužiteljem: konekcijski sloj ostvaruje komunikaciju
s komponentom validacijskog poslužitelja
Validacijski poslužitelj
Funkcionalnosti validacijskog poslužitelja izložene su validacijskim klijentima u
životnom ciklusu usluge mobilnih ulaznica:
- Komunikacija s validacijskim klijentima: klijentski poslužitelj ostvaruje
komunikacijsku vezu s validacijskim klijentima
- Provjera stanja ulaznice: provjeru stanja ulaznice izvršava validator ulaznice
- Pristup podatkovnom sloju: sloj pristupa podacima ostvaruje komunikaciju s
RDBMS-om i vrši operacije nad podacima u bazi podataka.
26
3.3. Tehnologija sustava
Sustav e-Portir izgrađen je i povezan u cjelinu pomoću nekoliko tehnologija.
Sl. 3.2. Shema tehnologija sustava e-Portir kroz troslojni model arhitekture
Horizontalni presjeci na slici 3.2. prikazuju korištene tehnologije u izvedbi
sustava kroz troslojnu arhitekturu sustava. Vertikalni presjeci „Validacijski poslužitelj“,
„Validacijski klijent“ i „Ulaznični poslužitelj“ prikazuju tehnologije korištene u
implementaciji pojedinih komponenata sustava.
3.2.1. Prezentacijski sloj
Tehnologije kojima je izveden prezentacijski sloj su Adobe Flex (ulaznični
poslužitelj), te Adobe AIR (validacijski klijenti i validacijski poslužitelj).
Adobe Flex
Adobe Flex je programska razvojna okolina koja obuhvaća nekoliko tehnologija:
Flash, MXML, ActionScript. Aplikacije u Flexu razvijene su pomoću MXML i
ActionScript jezika. Bogata biblioteka klasa Flex razvojne okoline napisana je u
ActionScriptu i sadržana u „mx“ paketu klasa koje su, u procesu prevođenja Flex
aplikacije, uključene u izvršnu „.swf“ Flash datoteku koja nastaje prevođenjem. Kod
prevođenja, Flex aplikacija se, točnije kolekcija ActionScript datoteka, prevodi u
27
ActionScript bytecode. Ona se može izvršavati samo u okolini s instaliranim Flash
runtimeom. To je datoteka s .swf ekstenzijom, koju izvršava Adobe Flash virtualni stroj
(Flash virtual machine - FVM) unutar aplikacije Flash Player. Prevedeni ActionScript
kod (ActionScript bytecode) izvršava ActionScript virtualni stroj (ActionScript virtual
machine - AVM) koji je ugrađen u FVM.
U razvoju e-Portira korištena je Flex 3 inačica Flexa koja koristi ActionScript 3.0
jezik (kraće AS3, definiran ECMA-2627 standardom). Za pokretanje AS3 potreban je
ActionScript virtual machine 2 (AVM2) kojega podržava inačica 9 Flash virtualnog stroja
(Flash 9.0) ili inačice više od te.
Adobe AIR
Adobe AIR (engl. Adobe integrated runtime) je višeplatformni runtime koji omogućava
izvršavanje aplikacija prevedenih u AIR bytecode. Nadalje, AIR aplikacije mogu biti
kreirane i prevođenjem koda nastalog u Flex razvojnoj okolini. Ono što razlikuje AIR
aplikaciju od Flash aplikacije je to da za AIR aplikaciju, po instaliranju AIR runtimea,
nije potrebna nikakva dodatna aplikacija za pokretanje (aplikacija se pokreće samostalno
unutar AIR virtualnog stroja), što nije slučaj s Flash aplikacijama (moraju biti pokrenute
Flash playerom). AIR aplikacija se instalira i pokreće lokalno unutar operacijskog sustava
i nema sigurnosne restrikcije Flash sandboxa koje ima Flash aplikacija, poput pisanja na
lokalni disk, među-aplikacijske komunikacije, pristupa nekim funkcijama operativnog
sustava itd.
3.2.2. Aplikacijski sloj
Aplikacijski sloj validacijske komponente sustava izveden je u programskom
jeziku Java. Kako su prezentacijski i aplikacijski sloj izvedeni u različitim tehnologijama
bilo je potrebno uspostaviti pouzdani komunikacijski kanal između ta dva sloja.
Komunikacijski kanal izveden je pozivima udaljenih procedura (engl. remote procedure
call, kraće RPC), s prezentacijskog sloja (Flexa i AIR-a) prema aplikacijskom (Java).
Tehnologija kojom je ostvaren most je Adobe BlazeDS (engl. Blaze data services).
7 http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
28
Ulaznična komponenta izvedena je također u svim prethodno navedenim tehnologijama
uz dodatak dijela komponente izvedene u skriptnom jeziku PHP.
Java
Java je programski jezik neovisan o platformi. Java programski kod prevodi se u
Java bytecode, a interpretira ga Java virtualni stroj (engl. Java virtual machine). Sustav e-
Portir koristi 1.6. inačicu virtualnog stroja tvrtke Sun (JDK 1.6.)
Adobe BlazeDS
BlazeDS je poslužiteljska aplikacija izvedena u Javi i pokrenuta unutar J2EE
(engl. Java 2 Platform Enterprise Edition) kompatibilnog web poslužitelja koja
omogućava komunikaciju Java i Flex/AIR/Flash klijentskih aplikacija. Klijentske
aplikacije preko BlazeDS-a komuniciraju sa Java aplikacijama pokrenutima na
poslužitelju koristeći pozive udaljenih procedura (RPC). Za prijenos poziva i odgovora
koristi se protokol AMF3 (engl. Action message format version 3) preko transportnog
protokola HTTP. AMF je binarni protokol i njegove poruke su binarni objekti
serijalizirani na klijentskoj (ActionScript objekti) odnosno poslužiteljskoj strani (Java
objekti). Prednost korištenja BlazeDS naspram drugih tehnologija (npr. SOAP, XML-
RPC, itd.) je velika brzina protokola AMF postignuta binarnom serijalizacijom i malom
veličinom AMF paketa, te mogućnost mapiranja ActionScript i Java objekata. BlazeDS je
besplatna aplikacija otvorenog koda (engl. open source).
PHP
PHP je skriptni objektno orijentirani programski jezik. U e-Portir sustavu PHP je
korišten u sprezi sa HTTP poslužiteljem koji upravlja zahtjevima za izvršavanjem skripti
prema PHP interpreteru, te odgovorima PHP interpretera.
3.2.3. Podatkovni sloj
Podatkovni sloj validacijske komponente čini sustav za upravljanje bazom
podataka MySQL.
29
3.4. Izvedba i implementacija
Sustav e-Portir izveden je trima aplikacijama:
1. Ulaznični poslužitelj
2. Validacijski klijent
3. Validacijski poslužitelj
Aplikacije su programske realizacije komponenata sustava mobilnih ulaznica
predstavljenih u poglavlju o arhitekturi sustava (poglavlje 3.2.).
U sustavu e-Portir sve procese usluge mobilnih ulaznica korisnik ne obavlja
izričito pomoću mobilnog uređaja. Prezentacijski sloj aplikacije ulazničnog poslužitelja
izveden je kao web sjedište preko kojega se korisniku izdaje ulaznica. Podržana je
znakovna i grafička forma ulaznice (barkod forma). Korisnik ulazničnom poslužitelju
može pristupiti pomoću bilo kojeg uređaja s pristupom Internetu, a koji podržava prikaz
tehnologija Internet stranice u kojemu je izvedeno web sjedište. Za izdanu ulaznicu
korisnik samostalno vrši prijenos mobilne ulaznice na uređaj pogodan za fizički transfer
ulaznice do validacijske komponente. Optički uređaj povezan s validacijskim klijentom
vrši skeniranje ulaznice i prijenos digitalne slike barkoda validacijskom klijentu poradi
dekodiranja barkoda i validacije ulaznice. Kako je prijenos ulaznice validacijskom
klijentu moguće ostvariti optičkim skeniranjem, u e-Portiru moguća je i uporaba
„običnih“ papirnatih ulaznica sa sadržanom barkod formom ulaznice. Prijenos znakovne i
barkod ulaznice također je moguće je ostvariti svim ostalim tehnologijama za prijenos
podržanim od računala koje pokreće aplikaciju validacijskog klijenta. Sustav e-Portir
koristi neovisnu validaciju mobilnih ulaznica, pa su ulaznična komponenta (ulaznični
poslužitelj) i validacijska komponenta (validacijski poslužitelj, validacijski klijent)
neovisne aplikacije – ne postoji komunikacijska veza između ulaznične i validacijske
komponente.
31
3.4.1. Mobilna ulaznica
Za ostvarenje neovisne validacije ulaznica potrebno je zaštiti ulaznicu s obzirom
na sigurnosni zahtjev autentičnosti. Način osiguravanja autentičnosti ulaznice u e-Portiru
je digitalno potpisivanje ulaznice. Ulaznična komponenta koristi infrastrukturu za
asimetričnu kriptografiju i generira par ključeva; privatni i javni. Korišteni algoritam za
kreiranje ključeva je 512-bitni SHA1RSA algoritam. Ulaznična komponenta također
generira i certifikat koji sadrži podatke o izdavatelju te prethodno generirani javni ključ.
Takav certifikat ulaznična komponenta može javno publicirati. Svaki entitet, koji ima
odgovarajuće mehanizme, pomoću certifikata može odrediti je li ulaznica autentična
provjerom digitalnog potpisa ulaznice. Validacijski klijent validacijske komponente
pribavlja certifikat i koristi ga upravo za provjeru autentičnosti ulaznice (verifikaciju).
Logika validacije i informacija ulaznice
Logika validacije određuje informaciju mobilne ulaznice. Po pravilima logike
validacije ulaznična komponenta generira informaciju ulaznice i izdaje ulaznicu.
Mehanizmi za validaciju validacijske komponente poznaju logiku validacije, tj. način na
koji je konstruirana informacija ulaznice, te shodno tome, analiziraju ulaznicu i
pripremaju je za validaciju.
Na slici 3.4. prikazan je dijagram toka validacije iz perspektive ulaznične
(izdavanje ulaznice) i validacijske komponente (validacija ulaznice).
33
• Perspektiva ulaznične komponente:
Opisuje redoslijed i postupke za generiranje informacije ulaznice. Blok „Ulazni
podaci“ predstavljaju podatke koje korisnik unosi preko web sučelja ulaznične
komponente, na temelju kojih mu se izdaje ulaznica. U e-Portir prototipnom sustavu
definirano je da ispravne ulazne podatke koje korisnik mora predati za izdavanje
ulaznice predstavlja bilo koji, proizvoljan niz ASCII znakova.
1. Računanje sažetka8 ulaznih podataka: računa se sažetak ulaznih podataka
koristeći 128-bitni MD5 hash algoritam. Rezultat računanja sažetka je podatkovni
niz od 128 bita.
2. Base329 kodiranje sažetka: sažetak ulaznih podataka kodira se u base32 zapis.
Rezultat kodiranja je 26-ero znamenkasti broj u base32 zapisu koji predstavlja
„Identifikator ulaznice“.
3. Digitalno potpisivanje sažetka: sažetak ulaznih podataka šifrira se privatnim
ključem ulazničnog poslužitelja.
4. Base32 kodiranje potpisa: digitalni potpis sažetka kodira se u base32 zapis.
Rezultat kodiranja je broj sa točno 103 znamenke u base32 zapisu koji predstavlja
„Digitalni potpis identifikatora ulaznice“.
5. Konkatenacija: vrši se spajanje base32 zapisa „Identifikator ulaznice“ i „Digitalni
potpis identifikatora ulaznice“. Tako formirani zapis čini informaciju ulaznice.
8 Sažetak poruke (engl. message digest, message hash) – jednosmjerna ne inverzna funkcija za pretvorbu niza bitova proizvoljne duljine u jedinstven niz bitova fiksne duljine 9 Base32 zapis – numerički zapis broja koji koristi bazu 32 (RFC-4648)
34
Sl. 3.5. Primjer logike validacije gledane iz perspektive ulaznične komponente
• Perspektiva validacijske komponente:
Opisuje redoslijed i postupke za validaciju informacije ulaznice.
1. Raščlamba informacije ulaznice: vrši se raščlamba informacije ulaznice na
segmente: „Identifikator ulaznice“ i „Digitalni potpis identifikatora ulaznice“
2. Dekodiranje identifikatora iz base32: „Identifikator ulaznice“ se dekodira iz
base32 zapisa, dobiveni rezultat je sažetak ulaznih podataka.
3. Dekodiranje potpisa iz base32: „Digitalni potpis identifikatora ulaznice“ se
dekodira iz base32 zapisa, dobiveni rezultat je digitalni potpis sažetka ulaznih
podataka.
4. Verifikacija digitalnog potpisa: validacijska komponenta verificira digitalni potpis
sažetka ulaznih podataka. Ako je potpis valjan ulaznica se prosljeđuje
mehanizmima za provjeru stanja ulaznice. Ako potpis nije valjan zaključuje se da
ulaznica nije valjana.
5. Provjera stanja ulaznice: validacijska komponenta vrši provjeru stanja ulaznice, te
određuje ulaznicu valjanom odnosno ne valjanom.
35
Sl. 3.6. Primjer logike validacije gledane iz perspektive validacijske komponente
Forma ulaznice
Podržane su dvije forme ulaznice: znakovna i barkod forma. Znakovnu formu
ulaznice čini informacija ulaznice u zapisu base32 broja kao ASCII string (informacija
dobivena u petom koraku provedbe logike validacije iz perspektive ulaznične
komponente). Barkod formu ulaznice čini zapis znakovne forme ulaznice u QRCode
barkodu.
Sl. 3.7. Shema primjera mobilne ulaznice u znakovnoj i barkod formi
36
3.4.2. QR Code barkod
QR Code (QR – engl. quick response) je dvodimenzionalni barkod definiran
ISO/IEC18004 industrijskim standardom. U e-Portiru on predstavlja barkod formu
ulaznice. Razlozi za uporabu upravo ovog barkoda u su: veliki kapacitet pohrane
podataka, dobra dokumentiranost barkoda od strane standardizacijskog tijela, dostupnost
besplatne programske podrške za kodiranje i dekodiranje barkoda, te činjenica da je sam
QR Code barkod besplatan za korištenje. Danas je QR Code jedan od najraširenijih 2D
barkodova na tržištu.
QR Code barkodom moguće je kodirati slijedeće vrste ulaznih podataka:
1. Brojevi: znamenke 0-9 (izraženo u bitovima 30HEX-39HEX) – tri znaka su kodirana sa
ukupno 10 bitova
2. Alfanumerički podaci: brojevi 0-9 (30HEX-39HEX), velika slova A-Z (41HEX-5AHEX), te
posebni znakovi: space % $ * + - . , / : (20HEX 24HEX 25HEX 2AHEX 2BHEX 2DHEX 2FHEX
3AHEX 24HEX 24HEX) – dva znaka su kodirana sa ukupno 11 bitova
3. Binarni podaci (definirani ISO/IEC 8859-1 standardom): svaki bajt znak se kodira sa
8 bitova
4. Kanji10
Veliki kapacitet za pohranu podataka QR Code barkoda te mogućnost optimalnog
kodiranja alfanumeričkih podataka omogućava izvedbu mobilne ulaznice e-Portira. Na
koji način? Glavni problem u izvedbi ulaznice bio je prikaz podataka nastalih zaštitom
ulaznice 512-bitnom asimetričnom kriptografijom, nužnom za ostvarivanje neovisne
validacije. Dakle, uz ostale podatke unutar informacije ulaznice, bilo je potrebno
prikazati i još najmanje 512 bitova podataka nastalih zaštitom. Kako se kod izvedbe
mobilne ulaznice teži smanjivanju veličine grafičke forme ulaznice, zbog ograničenih
mogućnosti ekrana mobilnih uređaja, bilo je nužno pronaći način prikaza podataka za
koji će konačni simbol barkoda biti minimalan. Prebacivanjem binarne informacije
ulaznice u base32 bazu za prikaz brojeva dobiva se zapis čiji tekstualni prikaz sadrži
znakove koji su brojevi 0-9 i velika slova A-Z. Osim znakova koji pripadaju jednoj od te
10 Format koji podržava prikaz kineskih znakova.
37
dvije skupine, u base32 zapisu ne pojavljuju se drugi znakovi. Base32 kodira pet binarnih
znamenki jednom znamenkom, pa tako smanjuje veličinu informacije ulaznice.
Smanjivanjem veličine informacije ulaznice prebacivanjem iz binarnog u base32 zapis i s
mogućnošću optimalnog kodiranja alfanumeričkih znakova kod QR Code barkoda
dobivena je minimalna veličina simbola QR Code barkoda.
QR Code simbol
Svaki QR Code simbol strukturiran je od tamnih i svijetlih kvadratnih modula
pravilno raspoređenih unutar kvadratne mreže polja veličine jednake veličini jednog
modula. Tamni modul predstavlja binarnu jedinicu a svijetli modul binarnu nulu. Svaki
simbol se sastoji od funkcijskih uzoraka i uzoraka kodiranja. Funkcijski uzorci ne sadrže
kodirane podatke.
Sl. 3.8. Shema strukture QR Code barkod simbola
- Pozicijski uzorak: postoje tri jednaka pozicijska uzorka u svakom simbolu. On se
sastoji od tri koncentrična kvadrata duljine stranice 7, 5 i 3 modula. Odnos duljima
modula je 1:1:3:1:1 kako je i ilustrirano na slici. Simbol pozicijskog uzorka
konstruiran je tako da postoji vrlo mala vjerojatnost pojavljivanja sličnog oblika u
prostoru kodiranih podataka. Pronalazak tri pozicijska uzorka nedvosmisleno
određuje poziciju i orjentaciju simbola barkoda u vidnom polju.
38
Sl. 3.9. Shema pozicijskog uzorka
- Razmak: između svakog pozicijskog uzorka i ostalog simbola postoji razmak debljine
jednog modula
- Alternirajući uzorak: postoji jedan horizontalni i jedan vertikalni alternirajući uzorak.
Oni su građeni od retka ili stupca debljine jednog modula sa alternirajućim tamnim i
svijetlim modulima. Oni omogućavaju određivanje gustoće i verzije simbola, te služe
kao koordinatne osi za određivanje pozicije svakog modula u simbolu. Horizontalni
uzorak proteže se šestim retkom od razmaka lijevog do razmaka desnog pozicijskog
uzorka. Vertikalni uzorak proteže se šestim stupcem od razmaka lijevog do razmaka
donjeg pozicijskog uzorka (prema orijentaciji simbola kao na slici 3.8.). Oba uzorka
počinju i završavaju tamnim modulom.
- Uzorci za poravnavanje: svaki uzorak sastoji se od koncentričnih kvadrata duljina
stranica 5, 3 i 1 modul. Broj uzoraka za poravnavanje u simbolu ovisi o korištenoj
verziji QR Code simbola.
- Tiha zona: prostor oko simbola debljine četiri modula sa jednakom vizualnom
refleksijom kao i svijetli moduli u simbolu.
- Uzorci kodiranja: oni uključuju uzorke koji predstavljaju kodne riječi podataka,
kodne riječi za ispravljanje pogrešaka, informaciju o verziji i formatu simbola.
Postoji četrdeset verzija QR Code barkoda (verzija 1, verzija 2, itd.). Verzija 1
sastavljena je od kvadrata veličine 21x21 modula, a svaka slijedeća ima četiri modula
više po stranici kvadrata. Najveća verzija je verzija 40 koja je sastavljena od kvadrata
veličine 177x177 modula.
39
Sl. 3.10. Shema simbola verzije 1
QR Code implementira Reed-Solomon11 algoritam za generiranje kodnih riječi za
ispravljanje pogrešaka i za ispravljanje pogrešaka. Pogreške u barkodu mogu se javiti
prilikom optičkog čitanja barkoda uslijed oštećenja slike barkoda (ako je slika barkoda
sadržana na npr. papirnom mediju) ili npr. zbog neusklađenosti rezolucije čitača i veličine
slike barkoda, distorzije slike zbog kuta snimanja, svjetlosti itd. Postoje četiri razine
zaštite od pogrešaka u QR Code simbolu. Razinu zaštite proizvoljno odabire korisnik.
Tablica 3.1. Razine zaštite od pogrešaka kod QR Code simbola
Razina zaštite Približna količina potencijalno ispravljenih podataka (%)
L 7 M 15 Q 25 H 30
Kodiranje QR Code simbola
Koraci pri kodiranju ulaznih podataka u QR Code simbol su slijedeći:
1. Analiza podataka: vrši se analiza ulaznih podataka kako bi se odredili najefikasniji
načini kodiranja podataka u binarno kodirani tekst (string) gledajući veličinu
dobivenih podataka. Detektira se odabrana verzija simbola i razina ispravljanja
pogrešaka u simbolu. Ako verzija simbola nije izabrana, odabire se najmanja verzija
simbola koja može sadržati sve kodirane ulazne podatke.
2. Kodiranje podataka: vrši se konverzija ulaznih podataka u struju bitova prema
odabranim načinima kodiranja. Podržano je kombiniranje više načina kodiranja
podataka u jednom simbolu. Dobiveni niz bitova raščlanjuje se u segmente 8-bitnih
11 http://en.wikipedia.org/wiki/Reed-Solomon_error_correction
40
kodnih riječi, te se dodaju redundantne kodne riječi kako bi se popunio broj kodnih
riječi koji zahtjeva verzija simbola.
3. Kodiranje informacije za ispravljanje pogrešaka: slijed kodnih riječi podataka
raščlanjuje se na pojedinačne blokove kodnih riječi određene veličine (veličina ovisi
o verziji simbola i odabranoj razini ispravljanja pogrešaka) za koje se generiraju
kodne riječi za ispravljanje pogrešaka.
4. Formiranje završnog slijeda kodnih riječi: algoritam kojim se formira završni slijed
kodnih riječi za simbol objašnjen je na primjeru simbola verzije 5 sa H razinom
ispravljanje pogrešaka u simbolu (5-H).
Sl. 3.11. Formiranje završnog slijeda kodnih riječi za simbol 5-H
Verzija 5-H obuhvaća po četiri bloka kodnih riječi podataka i kodnih riječi za
ispravljanje pogrešaka. Prva dva bloka sadrže po 11 kodnih riječi podataka i 22 kodne
riječi za ispravljanje pogrešaka. Druga dva bloka sadrže po 12 kodnih riječi podataka
i 22 kodne riječi za ispravljanje pogrešaka. Završni slijed kodnih riječi formira se
čitanjem vertikalnih stupaca kodnih riječi podataka, pa potom kodnih riječi za
ispravljanje pogrešaka. Kod 5-H simbola slijed je: D1, D12, D23, D35, D2, D13, D24,
D36, ... D11, D22, D33, D45, D34, D46, E1, E23, E45, E67, E2, E24, E46, E68, ... E22, E44, E66,
E88.
5. Formiranje grafičkih elemenata barkoda: formiraju se dijelovi strukture barkoda;
pozicijski uzorak, razmak, alternirajući uzorak, uzorci za poravnavanje te blokovi
modula koji sadrže završni slijed kodnih riječi. Svaka kodna riječ završnog slijeda
prikazana je s jednim blokom od 8 modula. Većina kodnih riječi prikazana je tzv.
regularnim 2x4 blokovima sa horizontalnom ili vertikalnom orijentacijom. Ne
regularni blokovi koriste se kada se mijenja orijentacija bloka ili kada je pozicija
bloka u neposrednoj blizini s funkcijskim uzorkom. Blokovi u simbolu su raspoređeni
u stupce širine dva modula s alternirajućim vertikalnim smjerovima slaganja blokova.
41
Slaganje blokova u simbolu počinje od desnog donjeg kuta simbola s početnim
vertikalnim smjerom slaganja prema gore, pa na lijevu stranu. Najznačajniji bit
(oznaka 7) kodne riječi unutar bloka uvijek zauzima prvo slobodno mjesto u bloku.
Ostali bitovi popunjavaju se horizontalno u smjeru s desna na lijevo i vertikalno u
smjeru identičnom sa smjerom slaganja blokova.
Sl. 3.12. Prikaz nekih orjentacija i pozicija blokova kodnih riječi
Sl. 3.13. Formiranje završnog slijeda kodnih riječi u simbolu 2-M
6. Formiranje informacije o verziji i formatu: generiraju se blokovi informacija o verziji
i formatu simbola
a) Regularni blok sa smjerom popunjavanja bitova prema gore b) Regularni blok sa smjerom popunjavanja bitova prema dolje c) Neregularni blok sa smjerom popunjavanja prvo gore pa prema dolje (npr. pozicija gornjeg ruba simbola) d) Primjer postavljanja bitova u blokovima koji priliježu na uzorak za poravnavanje
42
Dekodiranje QR Code simbola
Postupak dekodiranja QR Code simbola prikazan je grafom na slici 3.14:
Sl. 3.14. Dijagram toka dekodiranja QR Code barkoda
43
3.4.3. Ulaznični poslužitelj
Ulaznični poslužitelj je programska cjelina izgrađena od nekoliko povezanih
programskih komponenti prikazanih na slici 3.15.
Prezentacijski sloj ulazničnog poslužitelja čini web sjedište kojega pokreće HTTP
poslužitelj. Ono je namijenjeno korisniku usluge mobilnih ulaznica i pokrenuto je unutar
mreže preko koje korisnik pristupa poslužitelju (npr. Internet, intranet, itd.).
Datotečna struktura web sjedišta sadrži slijedeće: - TicketingServer.html - TicketingServer.swf - TicketingServer.xml - history/ - playerProductInstall.swf
Glavna datoteka sjedišta je HTML datoteka TicketingServer.html. To je takozvana
omatajuća (engl. wrapper) datoteka za TicketingServer.swf Flash aplikaciju izvedenu u
Adobe Flex tehnologiji koja obavlja sve funkcionalnosti weba. TicketingServer.xml je
konfiguracijska datoteka ulazničnog poslužitelja koja sadrži nužne podatke za
inicijalizaciju dijelova sustava. Ostale datoteke unutar strukture su datoteke koje
osiguravaju ispravan prikaz i ponašanje TicketingServer.swf aplikacije pokrenute unutar
web preglednika.
45
Prezentacijski sloj
Elementi weba ulazničnog poslužitelja su:
1. Tekstualno polje za korisnički unos podataka ulaznice: prostor u koji korisnik usluge
upisuje potrebne ulazne podatke prema kojima mu sustav generira kod i barkod
ulaznice
2. Polje koda ulaznice: tekstualno polje u kojemu se prikazuje kod izdane ulaznice
3. Grafički prikaz barkoda ulaznice
4. Postavke barkoda: skup opcija koje koristi korisnik kako bi prilagodio simbol
barkoda. Moguće je odabirati razinu zaštite od pogrešaka, te veličinu modula QR
Code barkod simbola.
Sl. 3.16. Prezentacijski sloj ulazničnog poslužitelja
Aplikacijski sloj
Aplikacijski sloj aplikacije čine koder barkoda i koder ulaznice. Koder barkoda je
izveden kao web aplikacija koju pokreće HTTP poslužitelj povezan sa PHP interpreterom
46
koda. Koder barkoda čini biblioteka PHP skripti. Koder ulaznice sadržan je unutar
aplikacije TicketingComponent.jar koju pokreće J2EE poslužitelj.
Koder barkoda
Koder barkoda čini "QRcode ver.0.50g"12 PHP biblioteka skripti sa
implementiranim algoritmom za kodiranje QR Code barkoda. TicketingServer.swf
aplikacija s koderom barkoda komunicira putem HTTP protokola, te šalje zahtjeve s
parametrima za koje joj koder vraća sliku QR Code barkoda u JPEG ili PNG formatu.
Dobivenu sliku barkoda TicketingServer.swf prikazuje u polju grafičkog prikaza barkoda
ulaznice.
Koder ulaznice
Komponenta kodera ulaznice izvedena je u programskom jeziku Java, a
prevedene *.class datoteke komponente sažete su u TicketingComponent.jar arhivu.
Zadaća kodera ulaznice je formiranje informacije ulaznice prema logici validacije za
dane ulazne podatke.
Za kriptografske operacije zahtijevane u izvedbi informacije ulaznice (računanje
sažetka podataka, digitalno potpisivanje) koder koristi JCA (engl. Java cryptography
architecture) sigurnosni API.
TicketingServer.swf za komunikaciju s koderom ulaznice, tj. komunikacijskom
klasom unutar TicketingComponent.jar-a koristi RPC pozive procedura putem AMF
protokola. Kako bi TicketingComponent.jar mogao izložiti javne metode svojih klasa
RPC pozivima, potrebno ga je pokrenuti unutar J2EE web poslužitelja i povezati s Adobe
BlazeDS AMF komunikacijskim među-slojem. Komunikacijska klasa
TicketingComponent.jar-a je TicketingServer sadržana u paketu
hr.fer.dipl.ticketingserver.
12 Biblioteka je dostupna na http://www.swetake.com/qr/qr_cgi_e.html
47
Sl. 3.17. Dijagram slučaja uporabe ulazničnog poslužitelja
3.4.4. Validacijski klijent
Programska cjelina validacijskog klijenta izgrađena je od programskih
komponenti prikazanih na slici 3.18.
Korištenje programske cjeline validacijskog klijenta namijenjeno je pružatelju
usluge mobilnih ulaznica (aplikacijom upravlja administrator validacijskog klijenta).
Administrator pomoću sustava validacijskog klijenta vrši optičko skeniranje ulaznica i
dekodiranje barkoda, verifikaciju ulaznice, te zahtijeva provjeru stanja ulaznica od
validacijskog poslužitelja.
48
AMFEndpoint
MessageBroker
RemotingService
RemotingDestination
JavaAdapter
Sl. 3.18. Implementacijska shema validacijskog klijenta
49
Prezentacijski sloj
Prezentacijski sloj validacijskog klijenta čini korisničko sučelje; Adobe AIR
aplikacija ValidationClient.exe. Aplikacija ima dva pogleda: „Scanning“ i
„Configuration“.
Elementi korisničkog sučelja prikazanog na slici 3.19. su:
1. Prikaz video ulaza
2. Prikaz uhvaćenih slika s video ulaza
3. Polje koda ulaznice
4. Status dekodiranja i validacije ulaznice
5. Status sustava validacijskog klijenta
6. Status izvršenih operacija u sustavu
7. Opcije povezivanja s validacijskim poslužiteljem
8. Konfiguracija sigurnosnih postavki verifikatora
51
Aplikacijski sloj
Aplikacijski sloj validacijskog klijenta čine komponente: dekoder barkoda,
verifikator ulaznice i konekcijski sloj. Sve navedene komponente izvedene su
programskom jeziku Java i sažete u ValidationClient.jar arhivu. Za pokretanje Java
komponenti i uspostave njihove komunikacije sa korisničkim sučeljem klijenta
(ValidationClient.exe), potrebno je izvršiti postupke sukladne onima već navedenima u
opisu ulazničnog poslužitelja: pokretanje ValidationClient.jar-a unutar J2EE web
poslužitelja i povezivanje s Adobe BlazeDS AMF komunikacijskim među-slojem.
Komunikacijska klasa ValidationClient.jar-a je ValidationClient.class sadržana u paketu
hr.fer.dipl.validationclient.
Sl. 3.20. Prikaz komponenata ValidationClient.jar arhive
Dekoder barkoda
Dekoder QR Code barkoda u validacijskom klijentu čini biblioteka Java klasa
"Open Source QR Code Library"13 unutar ValidationClient.jar-a sadržana u
jp.sourceforge.qrcode paketu. Zadaća dekodera je dekodiranje barkoda ulaznice.
Nakon što administrator skenira mobilnu ulaznicu koristeći funkcije korisničkog
sučelja dekoderu barkoda šalje se slika barkoda, te on izvršava postupke njegovog
dekodiranja. Uslijed uspješnog dekodiranja povratna vrijednost korisničkom sučelju biti
će kod mobilne ulaznice.
Verifikator ulaznice
Verifikator ulaznice čini biblioteka klasa unutar ValidationClient.jar-a sadržana u
hr.fer.dipl.validationclient.verify paketu. Verifikator kao ulazni parametar prihvaća kod
13 Biblioteka je dostupna na http://qrcode.sourceforge.jp/
52
ulaznice, vrši potrebne kriptografske operacije verifikacije digitalnog potpisa ulaznice
(koristi se JCA sigurnosni API), te vraća rezultate verifikacije.
Konekcijski sloj
Konekcijski sloj čini biblioteka klasa unutar ValidationClient.jar-a sadržana u
hr.fer.dipl.validationclient.conn paketu. Zadaća konekcijskog sloja je povezivanje
klijenta s validacijskim poslužiteljem, te prijenos i prihvat podataka poslužitelja. Za
realizaciju komunikacije korištene su funkcionalnosti java.net.Socket Java klase, a
implementirana je komunikacija preko TCP protokola.
Sl. 3.21. Dijagram slučaja uporabe validacijskog klijenta
3.4.5. Validacijski poslužitelj
Programska cjelina validacijskog poslužitelja izgrađena je od programskih
komponenti prikazanih na slici 3.22.
53
Bla
zeD
S R
emot
eObj
ect
Val
idat
ionS
erve
r.exe
AMFC
hann
elVa
lidat
ionS
erve
r.xm
l
J2E
E p
oslu
žite
lj
Ser
vlet
kon
tenj
er
AM
F pr
eko
HTT
P-a
Val
idat
ionS
erve
r.jar
Kom
unik
acijs
ki m
eđus
loj (
GU
I-BLL
)TC
P/IP
loka
lno
MyS
QL
RD
BM
S
"val
idat
ion_
serv
er" b
aza
poda
taka
Blaz
eDS
Mes
sage
Bro
kerS
ervl
et
Kom
unik
acijs
ki m
eđus
loj (
GU
I-BLL
)
rem
otin
g-co
nfig
.xm
l
loka
lno
Valid
acijs
ki p
oslu
žite
lj
Val
idac
ijski
klij
ent
11.
.*
Sl. 3.22. Implementacijska shema validacijskog poslužitelja
54
Korištenje programske cjeline validacijskog poslužitelja namijenjeno je pružatelju
usluge mobilnih ulaznica (aplikacijom upravlja administrator validacijskog poslužitelja).
Validacijski poslužitelj u zajedno sa povezanim validacijskim klijentima čini validacijsku
komponentu u sustavu.
Prezentacijski sloj
Prezentacijski sloj validacijskog poslužitelja čini korisničko sučelje; Adobe AIR
aplikacija ValidationServer.exe. Aplikacija ima dva pogleda: "Server" i "Server
Database".
Elementi korisničkog sučelja prikazanog na slici 3.23. su:
1. Opcije pokretanja klijentskog poslužitelja
2. Opcije povezivanja s bazom podataka
3. Opcije odabira tablice baze podataka za čuvanje stanja ulaznica (tablice
ciklusa)
4. Prikaz podataka o povezanim validacijskim klijentima
5. Prikaz stanja tablice ciklusa
6. Status sustava validacijskog poslužitelja
7. Status izvršenih operacija u sustavu
8. Prikaz tablica baze podataka i operacije za manipulaciju bazom podataka
56
Aplikacijski sloj
Aplikacijski sloj validacijskog poslužitelja čine komponente: klijentski
poslužitelj, validator ulaznica, sloj pristupa podacima.
Sl. 3.24. Prikaz komponenata ValidationServer.jar arhive
Sve navedene komponente izvedene su programskom jeziku Java i sadržane u
ValidationClient.jar arhivi. Komunikacijska klasa koja sudjeluje u uspostavi AMF
komunikacijskog kanala, za pozive sa korisničkog sučelja prema ValidationServer.jar-u,
je ValidationServer.class koja se nalazi u hr.fer.dipl.validationserver paketu.
Klijentski poslužitelj
Klijentski poslužitelj je zadužen za ostvarivanje veze prema validacijskim
klijentima. Izveden je kao višedretveni poslužitelj pa može održavati komunikacijsku
vezu sa više klijenata istovremeno. Za realizaciju poslužitelja korištene su
funkcionalnosti java.net.ServerSocket Java klase, a implementirana je komunikacija
preko TCP protokola.
Validator ulaznica
Validator je svojevrsna komunikacijska spona između validacijskih klijenata i
sloja pristupa podacima validacijskog poslužitelja. Klijentski poslužitelj, svakom
validacijskom klijentu koji se povezuje, dodjeljuje validatora ulaznica. Validator ulaznica
prihvaća zahtjeve klijenata za validacijom ulaznica, formatira ih u upit za dohvat
trenutnog stanja ulaznice prema sloju pristupa podacima, te dobiveni odgovor o stanju
ulaznice prosljeđuje natrag validacijskom klijentu.
Sloj pristupa podacima
57
Sloj pristupa podacima vrši svu komunikaciju s podatkovnim slojem. Za
realizaciju sloja korištena je MySQL Connector/J14 Java biblioteka.
Podatkovni sloj
Podatkovni sloj validacijskog poslužitelja čini MySQL baza podataka koju pogoni
MySQL RDBMS. Baza podataka predstavlja bazu zapisa o iskorištenim ulaznicama.
Zapisi o iskorištenim ulaznicama nalaze se unutar tablica baze podataka koje
predstavljaju jedan životni ciklus usluge mobilnih ulaznica. Drugim riječima, za svaki
novi životni ciklus usluge predviđen je odabir nove tablice koja će održavati podatke o
iskorištenim ulaznicama. U e-Portiru nije nužno stvaranje nove tablice za svaki ciklus,
već je moguć i nastavak prethodno definiranih ciklusa.
Sl. 3.15. Dijagram slučaja uporabe validacijskog poslužitelja s akterom
administratorom validacijskog poslužitelja
Sl. 3.16. Dijagram slučaja uporabe validacijskog poslužitelja s akterom
komponentom sustava validacijskog klijenta 14 http://dev.mysql.com/downloads/connector/j/5.1.html
58
3.5. Modeliranje sigurnosnih rizika validacijske komponente
Sigurnosni rizik definira se kao mogućnost realizacije nekog neželjenog događaja,
koji može negativno utjecati na povjerljivost (engl. confidentiality), cjelovitost ili
integritet (engl. integrity) i raspoloživost (engl. availability) informacijskih resursa. U
proširenoj definiciji sigurnosnog rizika uključen je i akter, korisnik resursa, te se ističu
zahtjevi za njegovom autorizacijom (engl. authorization), provjerom vjerodostojnosti ili
autentifikacijom (engl. authentication) i neporecivošću izvršenih operacija nad resursom
(engl. nonrepudiation).
Sigurnosna prijetnja (engl. security threat) definira se kao potencijal za povredu
sigurnosti uslijed takvih okolnosti, mogućnosti, akcija ili događaja u sustavu koji bi mogli
narušiti sigurnost sustava i uzrokovati štetu. Sigurnosna ranjivost (engl. security
vulnerability) je nedostatak ili slabost u dizajnu, implementaciji ili funkcionalnosti
sustava koja se može iskoristiti (realizacija sigurnosne prijetnje, napad na sustav) da bi se
narušila sigurnosna politika sustava. Izvor prijetnje (engl. threat source) je namjera i
metoda usmjerena zloupotrebi ranjivosti ili situacija i metoda koja slučajno može
aktivirati neku ranjivost. Izvor prijetnje ne predstavlja nikakvu opasnost ukoliko nema
ranjivosti koja se može iskoristiti. Da bi se utvrdila vjerojatnost neke prijetnje mora se
uzeti u obzir izvor prijetnje, potencijalne ranjivosti i postojeće sigurnosne kontrole.
Jedan od načina strukturiranog i detaljnijeg razvoja sigurnosnih funkcionalnosti
sustava je stvaranje modela sigurnosnih rizika. Model sigurnosnih rizika je svojevrsna
analiza koja pomaže u određivanju sigurnosno najrizičnijih područja programskog
sustava, te posljedica koje bi mogle uslijediti ako se ona sigurnosno ugroze. Cilj
modeliranja sigurnosnih rizika je određivanje sigurnosnih prijetnji kojima je sustav
izložen, pronalazak nedostataka u sustavu koje omogućuju njihovu realizaciju, te razrada
uvođenja sigurnosnih mehanizama u sustav kojima će prijetnje biti uspješno uklonjene.
Tijekom modeliranja sigurnosnih rizika sustav je razložen na funkcionalne
komponente i svaka se komponenta proučava s obzirom na svoje ulazne točke, te tok
podataka kroz sve funkcionalnosti, sa svrhom nalaženja sigurnosno ranjivih područja
59
sustava. Rezultat procesa modeliranja sigurnosnih rizika je dokument model sigurnosnih
rizika (engl. Threat model document).
Ograničenja koja sprečavaju napadačevo kompromitiranje sigurnosti komponente
su konačan skup ulaznih točaka (engl. entry points) sustava i razina pristupa dodijeljena
korisniku koji koristi ulazne točke.
3.5.1 Razine pristupa
Razine pristupa predstavljaju skup prava dodijeljenih entitetu (npr. korisnici),
kojima se oni raščlanjuju u logičke kategorije sa dozvolom, odnosno sa zabranom
pristupa određenom dijelu sustava.
Skup informacija o razinama pristupa u dokumentu modela čine:
• ID: jedinstvena oznaka dodijeljena razini pristupa, referenca za ulazne točke
• Ime: opisno ime razine pristupa
• Opis: opis razine pristupa
Tablica 3.2. Razine pristupa (RP) validacijske komponente
ID Ime Opis 1 Korisnik s pristupom
validacijskom klijentu Korisnik koji ima fizički pristup računalu koje validacijskog klijenta
2 Korisnik s pristupom validacijskom poslužitelju
Korisnik koji ima fizički pristup računalu koje pogoni validacijski poslužitelj
3 Korisnik usluge Korisnik koji zahtjeva validaciju ulaznice od validacijskog klijenta 4 Validacijski poslužitelj Programska komponenta validacijskog poslužitelja 5 Validacijski klijent Programska komponenta validacijskog klijenta
3.5.2. Ulazne i izlazne točke
Ulazne točke predstavljaju sredstvo interakcije napadača (točke potencijalnog
napada na sustav) tj. svaku lokaciju u sustavu gdje se podaci prenose između
modeliranog sustava i drugog aktera. Izlazne točke su isto tako uključene u sigurnosni
model zbog kontrole izlaznih informacija koje potencijalno mogu naštetiti sustavu.
Skup informacija o ulaznim točkama i izlaznim u dokumentu modela sigurnosnih
rizika čine:
• ID (identifikator): jedinstvena oznaka dodijeljena ulaznoj točki, referenca za
sigurnosne prijetnje i ranjivosti u procesu modeliranja
60
• Ime: opisno ime ulazne točke
• Opis: opis načina procesiranja ulazne točke u sustavu
• Razina pristupa: sigurnosna razina za ulaznu točku pristupa dodijeljena korisniku
(nije prikazano)
Tablica 3.3. Ulazne točke prezentacijskog sloja validacijskog klijenta
ID Ime Opis RP 1 ValidationClient.xml konfiguracijska
datoteka Datoteka za konfiguraciju po kojoj se validacijski klijent inicijalizira pri svom pokretanju
1
2 Polje za unos staze certifikata ulazničnog poslužitelja
Služi za lociranje certifikata ulazničnog poslužitelja i inicijalizaciju odabranog na aplikacijskom sloju
1
3 Polja za unos parametara poslužitelja (IP adresa, port)
Služe za formiranje TCP veze prema validacijskom poslužitelju
1
4 Polje za unos koda ulaznice Služi za unos koda ulaznice za verifikaciju ulaznice prema kodu
1
5 Video ulaz Video ulaz uređaja za skeniranje ulaznica 3 6 Krajnja točka AMF kanala AIR
aplikacije Krajnja točka AMF kanala prezentacijskog sloja koja prima podatke
5
Tablica 3.4. Ulazne točke aplikacijskog sloja validacijskog klijenta
ID Ime Opis RP 7 Krajnja točka AMF kanala BlazeDS
aplikacije Krajnja točka AMF kanala aplikacijskog sloja koja prima podatke
5
8 TCP socket veze prema poslužitelju TCP socket preko kojega klijent prima podatke od poslužitelja
4
Tablica 3.5. Ulazne točke prezentacijskog sloja validacijskog poslužitelja
ID Ime Opis RP 9 ValidationServer.xml konfiguracijska
datoteka Datoteka za konfiguraciju po kojoj se validacijski poslužitelj inicijalizira pri svom pokretanju
2
10 Polja za unos parametara poslužitelja (port)
Služi za pokretanje klijentskog TCP poslužitelja 2
11 Polje za unos parametara baze podataka Služi za ostvarivanje veze prema RDBMS-u 2 12 Polje za odabir tablice ulaznica Služi za odabir aktivne tablice ulaznica za ciklus
usluge mobilnih ulaznica 2
13 Polje za unos parametara za stvaranje tablice ulaznica
Služi za kreiranje tablice ulaznica u bazi podataka 2
14 Krajnja točka AMF kanala AIR aplikacije
Krajnja točka AMF kanala prezentacijskog sloja koja prima podatke
5
Tablica 3.6. Ulazne točke aplikacijskog sloja validacijskog poslužitelja
ID Ime Opis RP 15 Krajnja točka AMF kanala BlazeDS Krajnja točka AMF kanala aplikacijskog sloja 4
61
aplikacije koja prima podatke 16 TCP socket veze prema klijentu TCP socket preko kojega poslužitelj prima
podatke od klijenta 5
Tablica 3.7. Izlazne točke prezentacijskog sloja validacijskog klijenta
ID Ime Opis RP 1 Krajnja točka AMF kanala AIR
aplikacije Krajnja točka AMF kanala prezentacijskog sloja koja šalje podatke
5
Tablica 3.8. Izlazne točke aplikacijskog sloja validacijskog klijenta
ID Ime Opis RP 2 Krajnja točka AMF kanala BlazeDS
aplikacije Krajnja točka AMF kanala aplikacijskog sloja koja šalje podatke
5
3 TCP socket veze prema poslužitelju TCP socket preko kojega klijent šalje podatke poslužitelju
5
Tablica 3.9. Izlazne točke prezentacijskog sloja validacijskog poslužitelja
ID Ime Opis RP 4 Krajnja točka AMF kanala AIR
aplikacije Krajnja točka AMF kanala prezentacijskog sloja koja šalje podatke
4
Tablica 3.10. Izlazne točke aplikacijskog sloja validacijskog poslužitelja
ID Ime Opis RP 5 Krajnja točka AMF kanala BlazeDS
aplikacije Krajnja točka AMF kanala aplikacijskog sloja koja šalje podatke
4
6 TCP socket veze prema klijentu TCP socket preko kojega poslužitelj šalje podatke klijentu
4
3.5.3. Točke napada
Točke napada (engl. attack points) su sve vrste resursa ili komponenti sustava
kojima prijeti potencijalni napad. Točke napada su ciljevi prijetnji sustavu.
Skup informacija o točkama napada u dokumentu modela čine:
• ID: jedinstvena oznaka dodijeljena točki napada, referenca za sigurnosne prijetnje
i ranjivosti u procesu modeliranja
• Ime: opisno ime točke napada
• Opis: opis točke napada, potrebne zaštite, itd.
62
• Razina pristupa: sigurnosna razina za točku napada pristupa dodijeljena korisniku
Tablica 3.11. Točke napada validacijske komponente
ID Ime Opis 1 Korisničko sučelje komponenata
(GUI) Napadač izvršava štetne operacije koristeći GUI komponenata
2 AMF komunikacijski most Napadač kompromitira komunikacijsku vezu prezentacijskog i aplikacijskog sloja komponenata
3 TCP veza validacijskog poslužitelja i klijenata
Napadač kompromitira komunikacijsku vezu validacijskog poslužitelja i klijenata
4 RDBMS koji koristi validacijski poslužitelj
Napadač vrši štetne operacije unutar RDBMS sustava koji koristi validacijski poslužitelj
5 Konfiguracijske datoteke komponenata
Napadač modificira konfiguracijske datoteke štetnim podacima
6 J2EE poslužitelj Napadač kompromitira funkcionalnosti J2EE poslužitelja koji pogone aplikacijski sloj komponenata
3.5.4. Prijetnje i ranjivosti sustava
Skup informacija o prijetnjama i ranjivostima u dokumentu modela čine:
• ID: jedinstvena oznaka dodijeljena prijetnji
• Ime prijetnje: opisno ime prijetnje
• Opis prijetnje: opis prijetnje
• Opis ranjivosti: opis ranjivosti
• Uklanjanje prijetnje: informacija o stanju prijetnje i procesima za njezino
uklanjanje
• Ulazne i izlazne točke: reference ulaznih i izlaznih točaka koje koristi prijetnja
• Točke napada: reference točaka napada na koje prijetnja djeluje
63
ID 1
Ime prijetnje Napadač presreće komunikaciju validacijskog klijenta i poslužitelja
Opis prijetnje Napadač presreće komunikaciju klijenta i poslužitelja, te prikuplja podatke o valjanim ulaznicama koje procesira validacijski klijent. Ugrožena je povjerljivost podataka koji se prenose između klijenta i poslužitelja.
Opis ranjivosti Komunikacijska veza klijenta i poslužitelja izvedena je TCP protokolom korištenjem TCP socketa koji ne maskiraju sadržaj unutar transportnih jedinica prijenosa.
Uklanjanje prijetnje
Komunikaciju klijenta i poslužitelja potrebno je kriptirati. Kao moguće rješenje predlaže se uporaba TLS protokola.
Izlazne točke 6, 3 Točke napada 3
ID 2
Ime prijetnje Napadač „glumi“ validacijskog klijenta i ostvaruje vezu s validacijskim poslužiteljem
Opis prijetnje Napadač s ostvarenjem neovlaštene konekcije s poslužiteljem može izvršavati DoS (engl denial of service) napade i tako ugroziti raspoloživost poslužitelja
Opis ranjivosti Na validacijskom poslužitelju ne postoje implementirani mehanizmi za autorizaciju klijenata
Uklanjanje prijetnje
Potrebno je implementirati mehanizme za autorizaciju validacijskih klijenata prilikom spajanja na validacijski poslužitelj
Izlazne točke 16 Točke napada 6
ID 3
Ime prijetnje Baza podataka validacijskog poslužitelja nije raspoloživa
Opis prijetnje Kako logika validacije sustava ovisi o provjeri stanja ulaznica koja se čuvaju u bazi podataka ugroženo je ispravno izvođenje procesa validacije ulaznica.
Opis ranjivosti Validacijski server nema mehanizme za povezivanje s više RDBMS-ova između kojih bi mogao replicirati bazu podataka i napraviti oporavak u slučaju ne raspoloživosti jednog od njih
Uklanjanje prijetnje
Implementirati mehanizme za replikaciju baze podataka
Točke napada 4
64
ID 4
Ime prijetnje Napadač presreće komunikacijsku vezu prezentacijskog i aplikacijskog sloja komponenata
Opis prijetnje Ukoliko su prezentacijski i aplikacijski sloj pojedine komponente instalirani na različitim domenama, npr. dva različita računala povezana u lokalnu bežičnu mrežu, korisnik priključen na istu mrežu može neovlašteno iskorištavati RPC mehanizme aplikacijskog sloja
Opis ranjivosti Na aplikacijskom sloju komponenata nisu implementirani mehanizmi autorizacije za klijente koji prema njemu izvršavaju RPC pozive
Uklanjanje prijetnje
Komponente je potrebno konfigurirati tako da koriste siguran kanal SecureAMFChannel za međusobnu komunikaciju. Također je potrebno izvesti autorizaciju klijenata za BlazeDS RPC poslužiteljske mehanizme na razini J2EE poslužitelja u kojemu je pokrenut.
Ulazne točke 6, 7, 14, 15 Izlazne točke 1, 2, 4, 5
Točke napada 2
ID 5
Ime prijetnje Napadač zadobiva neovlašteni pristup GUI-u i konfiguracijskim datotekama validacijskog poslužitelja ili klijenta
Opis prijetnje Napadač koji ima pristup GUI-u i konfiguracijskim datotekama komponenata ima pristup i svim ulaznim točkama u sustavu
Opis ranjivosti Sustav nema implementirane mehanizme za autorizaciju korisnika
Uklanjanje prijetnje
Implementirati mehanizme za autorizaciju korisnika sustava na razini korisničkog sučelja sustava, te povezati mehanizme s prezentacijskim slojem - izvesti autorizaciju klijenata za BlazeDS RPC poslužiteljske mehanizme na razini J2EE poslužitelja u kojemu je pokrenut. Uvesti inicijalizaciju komponenata pomoću kriptiranih konfiguracijskih datoteka ili primijeniti druge mehanizme za preuzimanje konfiguracijskih postavki.
Ulazne točke * Izlazne točke *
Točke napada *
65
4. Instalacija i korištenje e-Portira
4.1. Instalacija
4.1.1. Softverski i hardverski zahtjevi
Prije instalacije sustava e-Portir potrebno je instalirati vanjske programske
komponente prema tablici 4.1.:
Tablica 4.1. Vanjske programske komponente potrebne za pokretanje sustava e-Portir
e-Portir Ulaznični
poslužitelj Validacijski
klijent Validacijski poslužitelj
Java Development Kit (verzije 6 ili veće) ● ● ● J2EE web poslužitelj ● ● ● Adobe BlazeDS aplikacija ● ● ● HTTP poslužitelj ● PHP interpreter (verzije 4.1 ili veće) ● MySQL RDBMS ● Adobe Flash runtime (verzije 9 ili veće) ● ● ● Adobe AIR runtime ● ● Internet preglednik ●
Sve tri komponente sustava e-Portir su neovisne i mogu biti instalirane na
različitim računalima. Slijedno tome, na računala koja pokreću svaku pojedinu
komponentu potrebno je instalirati samo one tehnologije označene upravo za tu
komponentu.
Sivom bojom u tablici 4.1. označene su konkretne tehnologije i implementacije
koje je potrebno instalirati:
- Java Development Kit http://java.sun.com/javase/downloads/index.jsp
- Adobe BlazeDS aplikacija http://opensource.adobe.com/wiki/display/blazeds/BlazeDS
- PHP interpreter http://www.php.net/
66
- MySQL RDBMS http://www.mysql.com/
- Flash runtime http://www.adobe.com/products/flashplayer/
- Adobe AIR runtime http://www.adobe.com/products/air/
Izbor za odabir implementacija ostalih tehnologija je višeznačan, pa istaknimo da
su dolje niže navedene samo neke mogućih opcija implementacija:
- J2EE web poslužitelj: Apache Tomcat http://tomcat.apache.org/
- HTTP poslužitelj: Apache HTTP Server http://httpd.apache.org/
- Internet preglednik: Mozilla Firefox http://www.mozilla.com/firefox/
Preuzimanje, instalacija i korištenje svih gore navedenih komponenata je
besplatno.
Za optičko skeniranje mobilne ulaznice na računalo koje pokreće aplikaciju
validacijskog klijenta e-Portira, potrebno je priključiti digitalnu kameru. Softverski
mehanizmi validacijskog klijenta automatski prepoznaju video ulaz kamere s USB
priključkom, tako da nije potrebno izvršavati druge postupke za povezivanje kamere i
aplikacije validacijskog klijenta.
4.1.2. Tijek instalacije
Za brzu instalaciju HTTP i J2EE poslužitelja, te PHP-a i MySQL-a možemo
koristiti XAMPP15 instalacijski paket s Apache Tomcat dodatkom. Instalacija navedenih
komponenata preko ovog besplatnog paketa vrlo je jednostavna, a korisniku se skraćuju
dodatne muke konfiguriranja instaliranih komponenata (npr. veze HTTP poslužitelja i
PHP interpretera i sl). Dalje obavimo instalaciju JDK 6, Adobe BlazeDS aplikacije, Flash
i AIR runtimea, te Internet preglednika.
15 http://www.apachefriends.org/en/xampp.html
67
Ulaznični poslužitelj
Instalacijske datoteke ulazničnog poslužitelja nalaze se u TicketingComponent.rar
arhivi. Struktura arhive je slijedeća: - TicketingServerWeb/ - TicketingComponent.jar - TicketingComponentUtilities/ - TEST/
1. Mape TicketingServerWeb i TicketingComponentUtilities smještamo unutar
public_html mape HTTP poslužitelja
2. U blazeds\WEB-INF\lib mapu BlazeDS aplikacije instalirane na J2EE serveru
smještamo TicketingComponent.jar.
3. Vršimo konfiguraciju ulazničnog poslužitelja u TicketingServer.xml16 datoteci koja se
nalazi u TicketingServerWeb mapi.
4. Vršimo konfiguraciju remoting-config.xml17 datoteke BlazeDS aplikacije.
Validacijski klijent
Instalacijske datoteke validacijskog klijenta nalaze se u ValidationClient.rar
arhivi na priloženom instalacijskom CD-u. Struktura arhive je slijedeća: - ValidationClient.air - ValidationClient.jar - TEST/
1. Pokrećemo ValidationClient.air i slijedimo korake instalacije
Sl. 4.1. Dijalog instalacije validacijskog klijenta
16 Primjer izgleda TicketingServer.xml konfiguracijske datoteke dan je u poglavlju 8. 17 Primjer izgleda remoting-config.xml konfiguracijske datoteke dan je u poglavlju 8.
68
2. U blazeds\WEB-INF\lib mapu BlazeDS aplikacije instalirane na J2EE serveru
smještamo ValidationClient.jar.
3. Vršimo konfiguraciju validacijskog klijenta u ValidationClient.xml18 datoteci koja se
nalazi u mapi odabranoj u koraku 1.
4. Vršimo konfiguraciju remoting-config.xml19 datoteke BlazeDS aplikacije.
Validacijski poslužitelj
Instalacijske datoteke validacijskog poslužitelja nalaze se u ValidationServer.rar
arhivi na priloženom instalacijskom CD-u. Struktura arhive je slijedeća: - ValidationServer.air - ValidationServer.jar - TEST/
1. Pokrećemo ValidationServer.air i slijedimo korake instalacije
2. U blazeds\WEB-INF\lib mapu BlazeDS aplikacije instalirane na J2EE serveru
smještamo ValidationServer.jar.
3. Vršimo konfiguraciju validacijskog poslužitelja u ValidationServer.xml20 datoteci
koja se nalazi u mapi odabranoj u koraku 1.
4. Vršimo konfiguraciju remoting-config.xml21 datoteke BlazeDS aplikacije.
5. Stvaramo bazu podataka validacijskog poslužitelja unutar MySQL RDBMS-a
18 Primjer izgleda TicketingServer.xml konfiguracijske datoteke dan je u poglavlju 8. 19 Primjer izgleda remoting-config.xml konfiguracijske datoteke dan je u poglavlju 8. 20 Primjer izgleda TicketingServer.xml konfiguracijske datoteke dan je u poglavlju 8. 21 Primjer izgleda remoting-config.xml konfiguracijske datoteke dan je u poglavlju 8.
69
4.2. Korištenje e-Portira
4.2.1. Ulaznični poslužitelj
Prije korištenja ulazničnog poslužitelja potrebno je generirati par javni, privatni
ključ ulazničnog poslužitelja 512-bitnim SHA1RSA algoritmom. Generirani par ključeva
pohranjujemo u datoteku s funkcijom spremišta ključeva. Nakon toga vršimo generiranje
javnog certifikata ulazničnog poslužitelja. Takav certifikat može se javno publicirati na
web sjedištu ulazničnog poslužitelja. Na kraju obavljamo unos novih konfiguracijskih
postavki u TicketingServer.xml22 datoteci.
Za izvršavanje prethodno navedenih operacija možemo npr. koristiti pomoćnu
aplikaciju keytool koja je sastavni dio JDK-a ili koristiti testne datoteke dostupne u mapi
TEST instalacijskog paketa ulazničnog poslužitelja.
Za pokretanje ulazničnog poslužitelja potrebno je pokrenuti: J2EE poslužitelj na
kojem se nalazi TicketingComponent.jar, HTTP poslužitelj koji pokreće web komponentu
poslužitelja i komponentu kodera barkoda. Nakon toga moguće je pristupiti web
komponenti ulazničnog poslužitelja Internet preglednikom (glavna datoteka je
TicketingServer.html).
Izdavanje ulaznice
1. Korisnik pristupa web komponenti ulazničnog poslužitelja
22 Primjer izgleda TicketingServer.xml konfiguracijske datoteke dan u dodatku dan je u poglavlju 8.
70
Sl. 4.2. Početna stranica web sjedišta ulaznične komponente
2. Korisnik predaje podatke za koje mu ulaznična komponenta generira mobilnu
ulaznicu (kod i barkod ulaznice). Korisnik također može izabrati razinu ispravljanja
pogrešaka za generirani i veličinu modula simbola barkoda ulaznice
Sl. 4.3. Izgled web sjedišta nakon izvršenog izdavanja ulaznice
71
4.2.2. Validacijski klijent
Za pokretanje validacijskog klijenta potrebno je pokrenuti: J2EE poslužitelj na
kojem se nalazi ValidationClient.jar i priključiti kameru23 na računalo. Nakon toga
pokrećemo instaliranu .exe aplikaciju.
Sl. 4.4. Izgled početnog ekrana validacijskog klijenta
Prije početka skeniranja i validacije ulaznica potrebno je izvršiti konfiguraciju
validacijskog klijenta koja uključuje inicijalizaciju certifikata ulazničnog servera i
povezivanje s validacijskim poslužiteljem. Konfiguracija validacijskog klijenta se vrši u
pogledu „Configuration“.
23 Kod testiranja sustava korištena je web kamera proizvođača CANYON, razlučivosti 0.3 megapiksela.
72
Inicijalizacija certifikata
1. Pritiskom na tipku „Browse“ moguće je odabrati lokalno pohranjen certifikat.
Sl. 4.5. Inicijalizacija certifikata na validacijskom klijentu
2. Nakon odabira certifikata pritiskom na tipku „Load“ vrši se inicijalizacija verifikatora
ulaznica validacijskog klijenta.
Povezivanje s validacijskim poslužiteljem
1. U polja „Server IP“ unosimo IP adresu i vrata validacijskog poslužitelja na koji se
želimo spojiti.
2. Pritiskom gumba „Connect“ validacijski klijent uspostavlja vezu s poslužiteljem
4.2.3. Validacijski poslužitelj
Za pokretanje validacijskog poslužitelja potrebno je pokrenuti: J2EE poslužitelj
na kojem se nalazi ValidationServer.jar i MySQL RDBMS. Nakon toga pokrećemo
instaliranu .exe aplikaciju.
73
Sl. 4.6. Izgled početnog ekrana validacijskog poslužitelja
Za ispravno funkcioniranje validacijskog poslužitelja potrebno je izvršiti:
- Spajanje na bazu podataka
- Odabrati tablicu životnog ciklusa usluge
- Pokrenuti klijentski poslužitelj
Spajanje na bazu podataka
1. U polje „Server database control“ unosimo adresu baze podataka, korisničko ime i
zaporku
2. Pritiskom gumba „Connect“ validacijski poslužitelj uspostavlja vezu s bazom
podataka
Odabir tablice životnog ciklusa usluge
74
1. Unutar polja „Event – database table binding“ pomoću padajućeg izbornika
„Avaliable events“ vršimo odabir raspoloživih tablica životnog ciklusa u bazi
2. Pritiskom gumba „Bind“ validacijski poslužitelj odabire izabranu tablicu ciklusa
Pokretanje klijentskog poslužitelja
1. Unutar polja „Server control“ unosimo vrata na kojima želimo pokrenuti klijentski
poslužitelj
2. Pritiskom gumba „Start“ pokreće se klijentski poslužitelj na odabranim vratima
Sl. 4.7. Ekran validacijskog poslužitelja s pokrenutim klijentskim poslužiteljem
i ostvarenom konekcijom na bazu podataka
Izvršavanje operacija nad bazom podataka
Operacije nad bazom podataka vrše se u pogledu „Server database“.
75
Sl. 4.8. Pogled "Server database" validacijskog poslužitelja
Unutar polja „Listed events from database“ moguće je:
- Pregledavati postojeće tablice ciklusa
- Pregledavati detalje tablica (dvoklik mišem na tablicu)
- Brisati tablice (označi tablicu > tipka DEL)
- Dodavati tablice (upis imena tablice u polje > gumb „Add event“)
Unutar polja „Listed events from database“ moguće je:
- Pregledavati postojeće zapise tablica
- Brisati zapise tablica
4.2.4. Validacija ulaznica
Za ispravnu validaciju ulaznica u e-Portiru svi indikatori u polju statusa sustava
validacijskoj klijenta i validacijskog poslužitelja moraju biti označeni zelenom bojom.
76
Sl. 4.9. Usporedni prikaz indikatora statusa sustava poslužitelja i klijenta
Primjer 4.1.: Pogledajmo redoslijed događaja validacije ulaznica u e-Portiru u kojemu
validacijska komponenta ima npr. tri validacijska klijenta, a sve komponente sustava su
već inicijalizirane i pokrenute: korisnik usluge nakon pribavljanja ulaznice prebacuje
ulaznicu na svoj mobilni uređaj i odlazi do koncertne dvorane. Na ulaznu koncertne
dvorane korisnik izlaže svoj mobilni uređaj validacijskom klijentu koji joj validira
ulaznicu
Sl. 4.10. Validacijski poslužitelj povezan sa tri validacijska klijenta (slika uz primjer 4.1.)
77
Sl. 4.11. Validacijski poslužitelj nakon uspješno izvršene validacije ulaznice (slika uz primjer 4.1.)
Sl. 4.12. Validacijski klijent nakon uspješno izvršene validacije ulaznice (slika uz primjer 4.1.)
78
5. Zaključak
Sustavom e-Portir u potpunosti je moguće realizirati uslugu mobilnih ulaznica.
Dodatnu vrijednost e-Portiru daje činjenica da je on izveden pomoću potpuno besplatnih
i lako dostupnih implementacijskih tehnologija. Teoretski gledano, sustav se može
slobodno prodavati bez plaćanja ikakvih licenca na korištene tehnologije. Nadalje, slaba
spregnutost slojeva arhitekture sustava omogućava ostvarivanje prezentacijskog i
aplikacijskog sloja svake pojedine komponente sustava (ulaznična, validacijski klijent i
poslužitelj) na različitim, udaljenim lokacijama, s potpuno različitom tehnologijom
izvedbe svakog sloja. Komponentni razvoj sustava i na aplikacijskom i na
prezentacijskom sloju, olakšava proširivost sustava u budućnosti.
Najosjetljiviji korak izgradnje sustava bio je izvedba logike validacije mobilne
ulaznice, samim time i konstrukcija informacije ulaznice. Odabirom i izvedbom neovisne
validacije ulaznica u e-Portiru omogućio se neovisan rad ulaznične i validacijske
komponente sustava, a zaštitom ulaznice asimetričnom kriptografijom ostvarena je
sigurna usluga mobilnih ulaznica.
Matko Kvesić
79
6. Literatura
[1] Automatic identification and data capture techniques — QR Code 2005 bar code
symbology specification, ISO/IEC, 2005.
[2] BAO F., ANANTHARAMAN L., DENG R., Design of Portable Mobile Devices Based E-
Payment System and E-Ticketing System with Digital Signature, Kent Ridge Digital
Labs, 2005.
[3] GAO J. Z., PRAKASH W., JAGATESAN R., Understanding 2D-BarCode Technology and
Applications in M-Commerce – Design and Implementation of A 2D Barcode
Processing Solution, IEEE, 2007.
[4] HOWARD M., LEBLANC D., Writing Secure Code 2nd Edition, Microsoft Press, 2003.
[5] HOWARD M., LEBLANC D., Writing Secure Code, Microsoft Press, 2001.
[6] JAKUBAUSKAS G., Improvement of urban passenger transport ticketing systems by
deploying intelligent transport systems, Vilnius Gediminas Technical University,
2006.
[7] JONKER J., M-Commerce and M-Payment, Bedrijfswiskunde en informatica, 2003.
[8] Masabi – Secure Mobile Applications, http://www.masabi.com/
[9] MENNECKE B., STRADER T., Mobile Commerce - Technology, Theory, and
Applications, Idea Group Publishing, 2003.
[10] SADEH N., M-Commerce Technologies, Services, and Business Models, John
Wiley & Sons, Inc., 2002.
[11] Security in Telecommunications and Information Technology, International
Telecommunication Union, 2003.
[12] SWIDERSKI F., SNYDER W., Threat Modeling, Microsoft Press, 2004.
[13] Threat Risk Modeling - OWASP, http://www.owasp.org/index.php/Threat_Risk_Modeling
[14] Web stranice kolegija Operacijski sustavi 2, http://os2.zemris.fer.hr
[15] Wikipedia, http://www.wikipedia.org
80
7. Kratice
3G Telekomunikacijska mreža 3 generacije
AMF engl. Action Message Format
ASCII engl. American standard code for information interchange
BLL engl. Bussiness Logic Layer
EMS engl. Enhanced Messaging Service
GPRS engl. General Packet Radio Service
GPS engl. Global Positioning System
GSM engl. Global system for mobile communications
GUI engl. Graphical User Interface
HTTP engl. Hypertext Transfer Protocol
IDE engl. Integrated Development Enviroment
IP engl. Internet Protocol
IrDa engl. Infrared data association
J2EE engl. Java 2 Platform Enterprise Edition
JDK engl. Java Development Kit
JPEG engl. Joint Photographic Experts Group
MMS engl. Multimedia Messaging Service
PDA engl. Personal Digital Assistant
PKI engl. Public key infrastructure
PNG engl. Portable Network Graphics
RDBMS engl. Relational database management system
RFID engl. Radio-frequency identification
RPC engl. Remote Procedure Call
SDK engl. Software Development Kit
SMS engl. Short Message Service
SMSC engl. Short Message Service Center
SOAP engl. Simple Object Access Protocol
TCP engl. Transmission Control Protocol
TLS engl. Transport Layer Security
VAS engl. Value-added services,
WAP engl. Wireless Application Protocol
WLAN engl. Wireless Local Area Network
XML engl. Extensible Markup Language
81
8. Dodaci
TicketingServer.xml
<?xml version="1.0"?> <conf> <AMF_CHANNEL_ID>my-amf</AMF_CHANNEL_ID> <AMF_CHANNEL_ENDPOINT>http://192.168.1.30:8080/blazeds/messagebroker/amf</AMF_CHANNEL_ENDPOINT> <RPC_SOURCE>hr.fer.dipl.ticketingserver.TicketingServer</RPC_SOURCE> <QR_ENCODER_URL>http://192.168.1.30/matko/TicketingComponentUtilities/QR/qr_img0.50g/php/qr_img.php</QR_ENCODER_URL> <KEYSTORE_FILE>C:/xampp/.keystore</KEYSTORE_FILE> <KEYSTORE_PASSWORD>123456</KEYSTORE_PASSWORD> <KEYSTORE_KEY_ALIAS>TicketingServer</KEYSTORE_KEY_ALIAS> <KEYSTORE_KEY_PASSWORD>654321</KEYSTORE_KEY_PASSWORD> </conf>
ValidationClient.xml
<?xml version="1.0"?> <conf> <AMF_CHANNEL_ID>my-amf</AMF_CHANNEL_ID> <AMF_CHANNEL_ENDPOINT>http://127.0.0.1:8080/blazeds/messagebroker/amf</AMF_CHANNEL_ENDPOINT> <RPC_SOURCE>hr.fer.dipl.validationclient.ValidationClient</RPC_SOURCE> </conf>
ValidationServer.xml
<?xml version="1.0"?> <conf> <AMF_CHANNEL_ID>my-amf</AMF_CHANNEL_ID> <AMF_CHANNEL_ENDPOINT>http://127.0.0.1:8080/blazeds/messagebroker/amf</AMF_CHANNEL_ENDPOINT> <RPC_SOURCE>hr.fer.dipl.validationserver.ValidationServer</RPC_SOURCE> </conf>
remoting-config.xml
<?xml version="1.0" encoding="UTF-8"?> <service id="remoting-service" class="flex.messaging.services.RemotingService"> <adapters> <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/> </adapters> <default-channels> <channel ref="my-amf"/> </default-channels> <destination id="validationClient"> <properties> <source>hr.fer.dipl.validationclient.ValidationClient</source> <scope>session</scope> </properties> <adapter ref="java-object"/> </destination> <destination id="validationServer">
82
<properties> <source>hr.fer.dipl.validationserver.ValidationServer</source> <scope>session</scope> </properties> <adapter ref="java-object"/> </destination> <destination id="ticketingServer"> <properties> <source>hr.fer.dipl.ticketingserver.TicketingServer</source> <scope>session</scope> </properties> <adapter ref="java-object"/> </destination> </service>