You are on page 1of 9

SVEUILITE U DUBROVNIKU

Odjel za elektrotehniku i raunarstvo


Studij Primjenjeno/poslovno raunarstvo
Programski jezici za potporu rada na mrei

Seminarski rad

Java Card
Barbara Prkain

Mentor: mag. ing. comp Stjepan avar

Akademska godina: 2014/2015

1. Uvod
Razvoj tehnologije omoguio je minijaturizaciju ureaja. S tim razvojem nastala
su i mala raunala koja se mogu smjestiti na jedan ip, to je dovelo do
nastanaka pametne kartice.
Pametnu karticu(eng. Smart Card) moemo opisati kao plastinu karticu sa
umetnutim ipom koji sadri mikroprocesor. Pametne kartice ne sadre u sebi
nikakav ureaj za napajanje ve napajanje dobivaju od ureaja za prihvat kartica
CAD(Card Acceptance Device), a takoer se jedna kartica moe koristiti za vie
razliitih usluga, a za svaku uslugu zaduen je odreeni program spremljen na
kartici.
Razvoj tehnologije donio je i veu potrebu za sigurnou. Pametna kartica s
ipom uvelike doprinosi sigurnosti korisnikovih podataka i sredstava
spremljenih na kartici te mogunosti koritenja razliitih usluga jednom
pametnom karticom, dok joj njezina veliina omoguuje laku prenosivost.
Uslijed zahtjeva na sve iroj primjeni pametnih kartica javila se potreba za brim
razvojem kartinih aplikacija. Jedan od vanijih elemenata koji je potreban za
razvoj aplikacija za pametne kartice je Java Card tehnologija. Java Card
tehnologija omoguuje da se programi pisani u Java programskom jeziku izvode
na pametnim karticama i drugim ureajima ogranienih sredstava. Java Card
nasljeuje sigurnosne osobine Java jezika, istodobno pruajui jo jedno
svojstvo, neovisnost kartine aplikacije od operacijskog sustava pametne kartice.

2. Java Card tehnologija


Java Card tehnologija predstavlja najmanju Java platformu za memorijski
ograniene ureaje poput pametnih kartica, te omoguuje da se programi pisani
u Java programskom jeziku mogu izvravati na pametnim karticama. Ova
tehnologija je podskup Java tehnologije koji omoguuje kreiranje aplikacija za
pametne kartice tzv. aplete(Java Card Applets) koji se izvravaju na kartici.
Posebnost Java Card platforme je u tome to viestruke aplikacije razliitih
proizvoaa mogu sigurno koegzistirati na pametnoj kartici.
Tipini Java Card ureaj ima mikroprocesor koji moe biti od 8-bitni, 16-bitni ili
32-bitni te sadri 1KB RAM memorije i vie od 16KB trajne
memorije(EEPROM). Veina kartica takoer ima i posebne koprocesore te
RAM memoriju za kriptografske algoritme.
Najvei izazov oblikovanja Java Card tehnologije bio je kako smjestiti Java
programski sustav na pametnu karticu, a istodobno ouvati dovoljno prostora za
aplikacije. Rjeenje se pronalo na nain da se podri samo podskup osobina
jezika Jave i da se primijeni podijeljeni model implementacije Java stogovnog
stroja.
Java Card tehnologija sastoji se od tri dijela:
1. Java Card stogovni stroj (eng. Java Card Virtual Machine, JCVM)
2. Java Card izvrna okolina (eng. Java Card Runtime Environment, JCRE)
3. Java Card programsko suelje (eng. Application Programming Interface,API)

3. Java Card jezini podskup


Zbog svojeg malog memorijskog kapaciteta, Java Card platforma podrava
samo paljivo odabrani, prilagoeni podskup osobina Java jezika. Taj podskup
ukljuuje osobine koje su prilagoene pisanju programa za pametne kartice i
druge male ureaje, istodobno uvajui objektno-orijentirana osobine Java
programskog jezika. Istaknimo neke bitne podrane i nepodrane osobine Java
jezika:
Podrane osobine Jave:
Mali primitivni tipovi podataka:boolean, byte, short
Java paketi, klase, suelja, iznimke
Objektno-orijentirane osobine: nasljeivanje, virtualne metode,
nadjaavanje, dinamiko kreiranje objekta, opseg pristupa, pravila
povezivanja
Opcionalni su kljuna rije int i 32-bitni tip podatka
Nepodrane osobine Jave
Veliki primitivni tipovi podataka:long, double, float
Znakovi i stringovi
Viedimenzionalna polja
Dinamiko uitavanje klasa
Sigurnosni manager
Sakupljanje smea i finalizacija
Dretve
Serijalizacija objekata
Kloniranje objekata

Kljune rijei nepodranih svojstava su takoer isputene iz jezika. Neke od


naprednih Java kartica implementiraju mehanizam sakupljanja smea, odnosno
mehanizam brisanja objekata nasljeen iz Java platforme.

4. Java Card Stogovni Stroj


Osnovna razlika izmeu Java Card stogovnog stroja (eng. Java Card Virtual
Machine, JCVM)i Java stogovnog stroja (JVM) je u tome to je JCVM
implementiran u dva odvojena dijela (slika 1 ).
Kartini dio Java Card stogovnog stroja ukljuuje Java Card bajtkod interpreter.
Zadaci koji nisu ogranieni vremenom izvoenja , kao to je uitavanje klasa,
provjera bajtkoda, razluivanje i povezivanje, optimizacija, obrauju se u dijelu
stogovnog stroja koji se nalazi izvan kartice, gdje resursi obino ne predstavljaju
problem.
Java Card konverter se izvrava na osobnom raunalu. Konverter je izvankartini dio stogovnog stroja. Gledajui ih zajedno, oni implementiraju sve
funkcije stogovnog stroja. Konverter uitava i procesira class datoteke koje ine
Java paket i proizvodi CAP (engl. Converted APplet) datoteke. CAP datoteka se
onda uitava u Java pametnu karticu i izvodi od strane interpretera.

Slika 1 - Java Card stogovni stroj

Java Card interpreter, budui da se nalazi na samoj kartici, omoguuje


neovisnost appleta o platformi. Java Card interpreter izvodi sljedee:
izvodi bytecode naredbe
kontrolira zauzee memorije i stvaranje objekata
Java Card interpreter je kljuan za sigurnost prilikom izvoenja kartine
aplikacije.
Java konverter iz izvornog koda stvara class datoteke. Prilikom prevoenja
izvodi se sljedee:
provjerava se leksika struktura,
provjeravaju se odstupanja od Java Card jezika,
inicijaliziraju se statike varijable,
izvodi se semantika i sintaktika provjera,
optimizira se Java bytecode,
zauzima se potrebna memorija i stvaraju podatkovne strukture.

5. Java Card Izvrna Okolina


Java Card izvrnu okolinu (eng. Java Card Runtime Environment, JCRE)
sainjavaju Java Card sistemske komponente unutar pametne kartice. JCRE je
odgovorna za upravljanje kartinim resursima, mrenom komunikacijom, za
izvravanje appleta, za sigurnost kartinih programa. No njezina osnovna uloga
je uloga operacijskog sustava pametne kartice.
JCRE se nalazi iznad hardvera pametne kartice i iznad izvornog operacijskog
sustava. JCRE se sastoji od Java Card stogovnog stroja (bajtkod interpreter),
Java Card osnovnih aplikacijskih klasa (Java Card application framework
classes), industrijsko-specifinih proirenja i JCRE sistemskih klasa. JCRE
elegantno odvaja applete od vlasnikih tehnologija izdavaa pametnih kartica i
osigurava standardizirani sustav i API suelje za applete. Kao rezultat, applete je
jednostavnije i lake pisati, i prenosivi su na razliite kartine arhitekture.
JCVM izvrava bytecode , kontrolira alokaciju memorije, upravlja objektima i
namee sigurnosne mehanizme prilikom vremena izvoenja. Izvorne metode
predstavljaju podrku JCVM-u i sljedeem sloju sistemskih klasa. One su
odgovorne za rukovanje nisko-razinskim komunikacijskim protokolima,
upravljaju memorijom, osiguravaju kriptografsku podrku, itd.
Sistemske klase su izvrni alat Java Card izvrne okoline. One su analogija
jezgri operacijskog sustava. Sistemskim klasama upravlja se transakcijama, one
su u slubi upravljanja komunikacijom izmeu aplikacija i Java Card appleta,
kontroliranja kreiranja appleta, selekcije i deselekcije appleta.

JVM se izvodi na osobnom raunalu kao proces operacijskog sustava. Podaci i


objekti stvaraju se u RAM-u. Na Java pametnoj kartici JCVM se izvodi unutar
Java Card izvrne okoline. JCRE se inicijalizira za vrijeme inicijalizacije katice.
Inicijalizacija kartice odvija se samo jednom u ivotu pametne kartice. Za
vrijeme tog procesa JCRE inicijalizira stogovni stroj i stvara objekte koji
omoguuju JCRE usluge i upravljanje appletima. Nakon uitvanja appleta JCRE
stvara njihove primjerke (engl. instance), a appleti stvaraju svoje objekte za
pohranu podataka.

6. Java Card Programski Suelje


Java Card programsko suelje (eng. Application Programming Interface,API) se
sastoje od skupa prilagoenih klasa za programiranje pametnih kartinih
aplikacija. API-ji sadre tri osnovna paketa i jedan dodatni. Tri osnovna paketa
su:
java.lang, javacard.framework i javacard.security. Dodadtni paket je
java.cardx.crypto.
Mnotvo Java platformskih klasa nije podrano u Java card API-jima. Na
primjer nisu podrane Java platformske klase za GUI suelja, klase za mreni
I/O, klase za datoteni I/O. Razlog je u tome to pametne kartice nemaju zaslon,
koriste drugaiji mreni protokol i drugaiju strukturu datotenog sustava.
Takoer, da se udovolji strogim memorijskim zahtjevima, nije podrano
mnotvo Javinih uslunih klasa.
Klase u Java Card API-jima su cjelovite i zbijene. Osim to sadre klase
preuzete od Java platforme, takoer sadre i klase specijalno stvorene za
pametne kartice.
java.lang definira Object i Throwable razrede koji imaju velik
nedostatak metoda naspram razreda u standardnom Java jeziku. Ovaj
paket takoer definira nekolicinu razreda iznimaka, osnovni razred za
iznimke Exception te razliite iznimke kod izvoenja (eng. Runtime
Exception).
javacard.framework definira suelja, razrede i iznimke koji
sainjavaju jezgru Java Card suelja. Definira vane koncepte poput
osobnog identifikacijskog broja (eng. Personal Identification Number,

PIN), APDU razred, Java Card Applet razred, te Java Card sustav (eng.
Java Card System) JCSystem razred. Takoer definira razne konstante
ISO7816 norme u razne specifine iznimke.
javacard.security definira razrede i suelja za Java Card
sigurnosni okvir. Java Card specifikacija definira snano sigurnosno
suelje koje sadri razliite tipove javnih i privatnih kljueva te
kriptografske algoritme, algoritme za raunanje saetka poruka i
algoritme za kreiranje digitalnog potpisa.
java.cardx.crypto je dodatni paket koji definira Key Encryption
suelje i razred Cipher. Cipher je osnosvni abstraktni razred kojeg
moraju naslijediti svi kriptografski algoritmi.

7. Zakljuak
S velikim rastom internet tehnologije i elektronike trgovine, pametne kartice
su postale sve ire prihvaene i koritene kao kartice sa sigurno spremljenim
sadrajem. Koristimo ih za elektroniko plaanje, u telekominikacijama i
zdravstvu te u mnogim drugim podrujima.
Zahvaljujui Java Card tehnologiji, programi pisani u Java programskom jeziku
izvode na pametnim karticama, a objektno orijentrani ustroj jezika Java
omoguuje fleksibilnost u programiranju.
Jednom napisani applet mogu se koristiti na razliitm kartcama.
Na jednoj ip kartci moe se pokretat vie appleta.
Kad je ve kartca izdana lako se nadograuje appletma koji zadovoljavaju
novonastale potrebe korisnika

You might also like