12
SVEUČILIŠTE U DUBROVNIKU Odjel za elektrotehniku i računarstvo Studij Primjenjeno/poslovno računarstvo Programski jezici za potporu rada na mreži Seminarski rad Java Card Barbara Prkačin Mentor: mag. ing. comp Stjepan Ćavar

Java Card

Embed Size (px)

DESCRIPTION

k

Citation preview

SVEUILITE U DUBROVNIKUOdjel za elektrotehniku i raunarstvoStudij Primjenjeno/poslovno raunarstvoProgramski jezici za potporu rada na mrei

Seminarski radJava Card

Barbara Prkain

Mentor: mag. ing. comp Stjepan avar

Akademska godina: 2014/20151. 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 aplikacijaza 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 rijeinti 32-bitni tip podatkaNepodrane 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 objekataKljune 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 izvan-kartini 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 strojJava Card interpreter, budui da se nalazi na samoj kartici, omoguuje neovisnostappletao platformi. Java Card interpreter izvodi sljedee: izvodibytecodenaredbe kontrolira zauzee memorije i stvaranje objekataJava Card interpreter je kljuan za sigurnost prilikom izvoenja kartine aplikacije.Java konverter iz izvornog koda stvaraclassdatoteke. Prilikom prevoenja izvodi se sljedee: provjerava se leksika struktura, provjeravaju se odstupanja od Java Card jezika, inicijalizirajuse statike varijable, izvodi se semantika isintaktikaprovjera, optimiziraseJava 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. JVMse izvodi na osobnom raunalu kao proces operacijskog sustava. Podaci i objekti stvaraju se uRAM-u. Na Java pametnoj kartici JCVM se izvodi unutar Java Card izvrne okoline. JCRE se inicijalizira za vrijeme inicijalizacije katice. Inicijalizacijakartice 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.frameworkijavacard.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 GUIsuelja, 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.langdefiniraObjectiThrowablerazrede koji imaju velik nedostatak metoda naspram razreda u standardnom Java jeziku. Ovaj paket takoer definira nekolicinu razreda iznimaka, osnovni razred za iznimkeExceptionte razliite iznimke kod izvoenja (eng.Runtime Exception). javacard.frameworkdefinira suelja, razrede i iznimke koji sainjavaju jezgru Java Card suelja. Definira vane koncepte poput osobnog identifikacijskog broja (eng.Personal Identification Number, PIN),APDUrazred, Java CardAppletrazred, te Java Card sustav (eng. Java Card System)JCSystemrazred. Takoer definira razne konstante ISO7816 norme u razne specifine iznimke. javacard.securitydefinira 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.cryptoje dodatni paket koji definira Key Encryption suelje i razred Cipher.Cipherje 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