java card (2003)

120
Java Card Java Card Vatroslav Mihalj Vatroslav Mihalj FER, svibanj 2003. FER, svibanj 2003.

Upload: vatroslav-mihalj

Post on 07-Nov-2014

1.293 views

Category:

Technology


7 download

DESCRIPTION

Old (2003) Java Card presentation

TRANSCRIPT

Page 1: Java card (2003)

Java CardJava CardVatroslav MihaljVatroslav Mihalj

FER, svibanj 2003.FER, svibanj 2003.

Page 2: Java card (2003)

2

~60 min~60 min pitanja na kraju prezentacijepitanja na kraju prezentacije zainteresirani za okupljanje i zainteresirani za okupljanje i

suradnju u grupi s ciljem razmjene suradnju u grupi s ciljem razmjene materijal i iskustava, te za materijal i iskustava, te za eventualnbe zajedničke projekte, eventualnbe zajedničke projekte, bilo Java Card/J2ME, bilo neko drugo bilo Java Card/J2ME, bilo neko drugo podrucje, slobodno se mogu javitipodrucje, slobodno se mogu javiti

Page 3: Java card (2003)

3

SadržajSadržaj

I. Što je “pametna kartice”I. Što je “pametna kartice”

II. Standardi i specifikacijeII. Standardi i specifikacije

III. Pametna kartica iznutraIII. Pametna kartica iznutra

IV. Principi rada pametne karticeIV. Principi rada pametne kartice

V. Java CardV. Java Card

VI. Java Card APIVI. Java Card API

VII. Java Card appletVII. Java Card applet

VIII. Java Card sigurnosni mehanizmiVIII. Java Card sigurnosni mehanizmi

IX. Praktični dioIX. Praktični dio

X. Literatura i resursiX. Literatura i resursi

Page 4: Java card (2003)

I. Što je “pametna kartica”I. Što je “pametna kartica”

Page 5: Java card (2003)

5

Pametna karticaPametna kartica

plastična kartica standardiziranih plastična kartica standardiziranih dimenzija, s ugrađenim čipomdimenzija, s ugrađenim čipom

Page 6: Java card (2003)

6

standardiziran raspored i dimenzije standardiziran raspored i dimenzije kontakata čipakontakata čipa

sigurnije od magnetskih kartica – teže kopiranje podataka, teža

zlouporaba

Page 7: Java card (2003)

7

Osobine pametnih karticaOsobine pametnih kartica sigurnostsigurnost

– kartica posjeduje zaštitne mehanizme kartica posjeduje zaštitne mehanizme – PIN zaštićuje od neautoriziranog pristupaPIN zaštićuje od neautoriziranog pristupa

pohrana osjetljivih/tajnih podatakapohrana osjetljivih/tajnih podataka

pouzdanost pouzdanost – ne ovise o ranjivim vanjskim resursimane ovise o ranjivim vanjskim resursima– korištenje kriptografije za zaštitu podataka i korištenje kriptografije za zaštitu podataka i

vanjske operacijevanjske operacije jednostavne za korištenjejednostavne za korištenje cijena 1$-20$cijena 1$-20$

Page 8: Java card (2003)

8

Tipovi čip karticaTipovi čip kartica

memorijske karticememorijske kartice pametne karticepametne kartice

» ““obična” pametna karticaobična” pametna kartica» Java CardJava Card» SIM karticaSIM kartica» ......

Page 9: Java card (2003)

9

Memorijske karticeMemorijske kartice

primjer: telefonske karticeprimjer: telefonske kartice nemaju mikroprocesornemaju mikroprocesor 1K-4K podataka1K-4K podataka izvršavanje predprogramiranih izvršavanje predprogramiranih

zadatakazadataka nemogućnost preprogramiranja kad se nemogućnost preprogramiranja kad se

potrošepotroše slaba zaštitaslaba zaštita IZUZETNO JEFTINE!IZUZETNO JEFTINE!

Page 10: Java card (2003)

10

Razlike između Razlike između memorijskih i pametnih memorijskih i pametnih

karticakartica pametne kartice:pametne kartice:

– mikroprocesor rukuje podacima i radi mikroprocesor rukuje podacima i radi s memorijom s memorijom

– vanjske aplikacije nemaju direktan vanjske aplikacije nemaju direktan pristup podacima, za razliku od pristup podacima, za razliku od memorijskih karticamemorijskih kartica

– ponekad postoji koprocesore ponekad postoji koprocesore (kriptografija)(kriptografija)

Page 11: Java card (2003)

11

Kontaktne i beskontaktne Kontaktne i beskontaktne karticekartice

kontaktne pametne kartice se stavljaju kontaktne pametne kartice se stavljaju u CAD (Card Acceptance Device)u CAD (Card Acceptance Device)– CAD = čitač pametnih karticaCAD = čitač pametnih kartica– najveći dio pametnih kartica ovakvog tipanajveći dio pametnih kartica ovakvog tipa

napajaje i komunikacija beskontaktnih napajaje i komunikacija beskontaktnih kartica: kartica: ugrađena antenaugrađena antena– inducirani napon ili ponekad baterijeinducirani napon ili ponekad baterije

pogodne gdje se traži brzina prolaska pogodne gdje se traži brzina prolaska (javni transport)(javni transport)

Page 12: Java card (2003)

12

Page 13: Java card (2003)

13

Primjene pametnih karticaPrimjene pametnih kartica

zdravstvene iskaznicezdravstvene iskaznice ID karticeID kartice

– Stega Crad: integtegracija kartica, Stega Crad: integtegracija kartica, steganografije i digitalnog vodenog žigasteganografije i digitalnog vodenog žiga

satelitska televizijasatelitska televizija mobilna telefonija (SIM kartice)mobilna telefonija (SIM kartice) bankarstvobankarstvo transporttransport parkiranjeparkiranje dodatne usluge (e-zaba, eGovernment)dodatne usluge (e-zaba, eGovernment)

Page 14: Java card (2003)

14

InternetInternet– potpisivanje/kriptiranje maila (S/MIME, potpisivanje/kriptiranje maila (S/MIME,

PGP) ili prometa PGP) ili prometa » spremaju ključevespremaju ključeve» mogu poslužiti i kao kripto-porcesorimogu poslužiti i kao kripto-porcesori

– autentikacijaautentikacija– elektronički novac (naročito elektronički novac (naročito

micropayments)micropayments)

Page 15: Java card (2003)

15

KriptografijaKriptografija

ciljevi kriptografije:ciljevi kriptografije:– povjerljivost povjerljivost – integritetintegritet– autentičnostautentičnost

kriptografski algoritmi: simetrični i kriptografski algoritmi: simetrični i asimetričniasimetrični

hash, signaturehash, signature random datarandom data

Page 16: Java card (2003)

16

Pametne kartice i Pametne kartice i kriptografijakriptografija

spremanje tajnih/kriptiranih spremanje tajnih/kriptiranih podatakapodataka

kartica kao tokenkartica kao token– povećanje sigurnosti sustava u kojima povećanje sigurnosti sustava u kojima

se koristi se koristi » autorizacija: mobiteli, set top boxesautorizacija: mobiteli, set top boxes» enkripcijski modulenkripcijski modul

– OTP, challenge-responseOTP, challenge-response

Page 17: Java card (2003)

II. Standardi i specifikacijeII. Standardi i specifikacije

Page 18: Java card (2003)

18

Standardi i specifikacijeStandardi i specifikacije

ISO 7816ISO 7816 GSMGSM EMVEMV Open PlatformOpen Platform OpenCard FrameworkOpenCard Framework PC/SCPC/SC

Page 19: Java card (2003)

19

ISO 7816ISO 7816

specifikacija podijeljena u 8 dijelova:specifikacija podijeljena u 8 dijelova:1 - fizičke karakteristike1 - fizičke karakteristike2 - dimenzije i smještaj kontakata2 - dimenzije i smještaj kontakata3 - signali i transportni protokoli3 - signali i transportni protokoli4 - međuindustrijske naredbe4 - međuindustrijske naredbe5 - identifikatori aplikacija5 - identifikatori aplikacija6 - međuindustrijski podatkovni 6 - međuindustrijski podatkovni

elementielementi7 - međuindustrijske SCQL naredbe7 - međuindustrijske SCQL naredbe

Page 20: Java card (2003)

20

GSMGSM SIM kartice - mobilna telefonijaSIM kartice - mobilna telefonija

– Subscriber Identity Module: Subscriber Identity Module: identifikacija korisnikaidentifikacija korisnika

pametna kartica s manjim pametna kartica s manjim plastičnim tijelomplastičnim tijelom

generira jednokratne enkripcijske generira jednokratne enkripcijske ključeve pri digitalnom prenošenju ključeve pri digitalnom prenošenju govoragovora

GSM API for Java CardGSM API for Java Card

Page 21: Java card (2003)

21

EMVEMV

Europay-Mastercard-VisaEuropay-Mastercard-Visa temelji se na ISO 7816temelji se na ISO 7816 proprietary proširenja za specifične proprietary proširenja za specifične

potrebe financijske industrijepotrebe financijske industrije

Page 22: Java card (2003)

22

Open PlatformOpen Platform

ISO 7816 i EMV kompatibilnoISO 7816 i EMV kompatibilno razvila Visarazvila Visa višenamjenski kartični sustavivišenamjenski kartični sustavi

Page 23: Java card (2003)

23

Open Card FrameworkOpen Card Framework

IBM, OpenCard konzorcijIBM, OpenCard konzorcij vrlo kompleksan i moćan vrlo kompleksan i moćan host-side host-side

frameworkframework,, implementiran u Javiimplementiran u Javi standardizirana sučelja za interakciju s standardizirana sučelja za interakciju s

čitačima i aplikacijama na karticamačitačima i aplikacijama na karticama pokušava se izbjeći ovisnost o pokušava se izbjeći ovisnost o

platformama, proizvođačima kartica i platformama, proizvođačima kartica i pružateljima uslugapružateljima usluga

podržava i Java i “obične” karticepodržava i Java i “obične” kartice

Page 24: Java card (2003)

24

Page 25: Java card (2003)

25

PC/SCPC/SC PC Smart Card PC Smart Card arhitektura za interakciju računala s arhitektura za interakciju računala s

karticamakarticama omogućen pristup karticama iz jezika omogućen pristup karticama iz jezika

visokog nivoa visokog nivoa – specifični specifični service providerservice provider moduli moduli

enkapsuliraju funkcionalnosti specifične enkapsuliraju funkcionalnosti specifične smart karticesmart kartice

sličan koncept kao OCFsličan koncept kao OCF– na Windows sustavima OCF pristupa CAD na Windows sustavima OCF pristupa CAD

uređajima (čitačima) kroz PC/SC uređajima (čitačima) kroz PC/SC managermanager

Page 26: Java card (2003)

26

Page 27: Java card (2003)

27

Usporedba standardaUsporedba standarda

Page 28: Java card (2003)

28

Page 29: Java card (2003)

III. Pametna kartica iznutraIII. Pametna kartica iznutra

Page 30: Java card (2003)

30

Dijelovi pametne karticeDijelovi pametne kartice

memorija, mikroprocesor i I/O memorija, mikroprocesor i I/O sustav su upakirani u jedan jedini sustav su upakirani u jedan jedini čipčip

standardiziran raspored i veličina standardiziran raspored i veličina kontakatakontakata

Page 31: Java card (2003)

31

Page 32: Java card (2003)

32

MikroprocesorMikroprocesor

8/16/32bitni (RISC) mikroprocesor, 8/16/32bitni (RISC) mikroprocesor, najčešće Motorola 6805 ili Intel najčešće Motorola 6805 ili Intel 80518051

vanjski clock do 5MHz, skuplje vanjski clock do 5MHz, skuplje kartice imaju i množitelj (2,4,8)kartice imaju i množitelj (2,4,8)

ponekad se dodaje kriptografski ponekad se dodaje kriptografski koprocesorkoprocesor

Gemplus: 32bit RISC, 64K EEPROMGemplus: 32bit RISC, 64K EEPROM

Page 33: Java card (2003)

33

MemorijaMemorija ROM - sadržava programe i OSROM - sadržava programe i OS

– upis podataka prilikom proizvodnje čipa = upis podataka prilikom proizvodnje čipa = maskingmasking

RAM - radna memorija; obično 256B-1KRAM - radna memorija; obično 256B-1K EEPROM - flash memorijaEEPROM - flash memorija

– "hard disk”, 4K-64K"hard disk”, 4K-64K– ~100 000 ciklusa pisanja; trajanje ~100 000 ciklusa pisanja; trajanje

zapisanog ~10 godinazapisanog ~10 godina– čitanje približno brzo kao i iz RAM-a, čitanje približno brzo kao i iz RAM-a,

pisanje 1000 puta sporijepisanje 1000 puta sporije

Page 34: Java card (2003)

34

KontaktiKontaktiVcc - napajanje (3-5V)Vcc - napajanje (3-5V)

RST - za slanje reset signala mikroprocesoru (warm reset; RST - za slanje reset signala mikroprocesoru (warm reset; cold reset = izvlačenje)cold reset = izvlačenje)

CLK - vanjski clock (kartice ne posjeduju unutarnji clock)CLK - vanjski clock (kartice ne posjeduju unutarnji clock)

GND - referentni napon, uzima se kao 0VGND - referentni napon, uzima se kao 0V

Vpp - opcionalno, koristi se u starijim karticamaVpp - opcionalno, koristi se u starijim karticama

I/O - prijenos podataka i naredbiI/O - prijenos podataka i naredbi

RFU - reserved for future useRFU - reserved for future use

Page 35: Java card (2003)

35

Sigurnosni mehanizmiSigurnosni mehanizmi

komponente sigurnosti:komponente sigurnosti:– tijelo kartice - posebne boje, hologrami i tijelo kartice - posebne boje, hologrami i

sl.sl.– čip (aktivna i pasivna zaštita)čip (aktivna i pasivna zaštita)– operacijski sustavoperacijski sustav– aplikacijeaplikacije

upis jedinstvenog ID broja čipa u ROMupis jedinstvenog ID broja čipa u ROM– generiranje ključageneriranje ključa– "crna lista" kartica"crna lista" kartica

Page 36: Java card (2003)

36

zaštitni mehanizmi:zaštitni mehanizmi:– tehnologije proizvodnje poluvodičatehnologije proizvodnje poluvodiča– dizajn čipadizajn čipa– lažne strukture - zbunjivanje napadačalažne strukture - zbunjivanje napadača– interne sabirniceinterne sabirnice– dizajn memorije, zaštitni slojevi - nemogućnost dizajn memorije, zaštitni slojevi - nemogućnost

statičkog očitavanja sadržaja memorijestatičkog očitavanja sadržaja memorije– kodiranje memorije i sabirnicakodiranje memorije i sabirnica– kriptiranje PIN-akriptiranje PIN-a– ......

Page 37: Java card (2003)

IV. Principi rada pametne IV. Principi rada pametne karticekartice

Page 38: Java card (2003)

38

Razvoj aplikacijaRazvoj aplikacija

dugotrajan i težak procesdugotrajan i težak proces nestandardiziranost iznutranestandardiziranost iznutra

– različiti proizvođači, različit hardware, različiti proizvođači, različit hardware, razvojni alati (assembler, osciloskop)razvojni alati (assembler, osciloskop)

– proprietary platforme i razvojni alatiproprietary platforme i razvojni alati– problemi oko nadogradnje softvera i problemi oko nadogradnje softvera i

premještanja aplikacija na druge platformepremještanja aplikacija na druge platforme low level komunikacijski protokoli i memory low level komunikacijski protokoli i memory

managementmanagement dugotrajna izgradnja "from the ground-up" dugotrajna izgradnja "from the ground-up"

Page 39: Java card (2003)

39

Smart Card OSSmart Card OS

vrlo jednostavni operacijski sustavivrlo jednostavni operacijski sustavi (standardizirani) skupovi (standardizirani) skupovi

instrukcija nad kojima se grade instrukcija nad kojima se grade korisničke aplikacijekorisničke aplikacije

hijerarhijski datotečni sustav hijerarhijski datotečni sustav

master file-root dedicated file-direktorijelementary file-datoteka

Page 40: Java card (2003)

40

Komunikacijski modelKomunikacijski model

half duplexhalf duplex razmjena podataka u paketima razmjena podataka u paketima

nazvanim APDUnazvanim APDU– Application Protocol Data UnitApplication Protocol Data Unit– command APDU, response APDUcommand APDU, response APDU

kartica je uvijek kartica je uvijek slaveslave– čeka zahtjev od čeka zahtjev od hosta hosta (računalo)(računalo)– nakon obrade šalje odgovornakon obrade šalje odgovor

Page 41: Java card (2003)

41

Command APDUCommand APDU CLA - klasa instrukcije (ISO, PC/SC, CLA - klasa instrukcije (ISO, PC/SC,

specifična za proizvođača)specifična za proizvođača) INS – instrukcijaINS – instrukcija P1, P2 - parametri uz instrukcijuP1, P2 - parametri uz instrukciju Lc - dužina opcionalnog polja Lc - dužina opcionalnog polja

podatakapodataka Le - očekivani broj okteta u Le - očekivani broj okteta u

odgovoru odgovoru hostahosta

Page 42: Java card (2003)

42

Response APDUResponse APDU

SW1, SW2 - status word(s), poruka SW1, SW2 - status word(s), poruka o uspješnosti izvršenja naredbeo uspješnosti izvršenja naredbe– 0x90 00 ako uspješno izvršeno0x90 00 ako uspješno izvršeno

opcionalno podaci od opcionalno podaci od hostahosta prema prema kartici (podatkovno polje)kartici (podatkovno polje)

Page 43: Java card (2003)

43

Page 44: Java card (2003)

44

Transportni protokoliTransportni protokoli

transportni protokolitransportni protokoli– prenose APDU paketeprenose APDU pakete– T=0 T=0

» block oriented (blok okteta)block oriented (blok okteta)

– T=1 T=1 » byte/character oriented (blokovi su okteti) byte/character oriented (blokovi su okteti) » rijetko korištenrijetko korišten

answer to reset (ATR)answer to reset (ATR)– niz okteta, maksimalne duljine 33Bniz okteta, maksimalne duljine 33B– ““predstavljanje” kartice nakon warm resetapredstavljanje” kartice nakon warm reseta– daje razne parametredaje razne parametre

Page 45: Java card (2003)

45

Open Smart Card SystemsOpen Smart Card Systems nova generacija karticanova generacija kartica reduciranje vremena izdavanjareduciranje vremena izdavanja izolacija od specifičnih zahtjeva izolacija od specifičnih zahtjeva

hardvera i OS-ahardvera i OS-a download aplikacija na karticudownload aplikacija na karticu jezici visokog nivoajezici visokog nivoa primjeri: MultOS, Smart Card for primjeri: MultOS, Smart Card for

Windows, Windows, Java CardJava Card

Page 46: Java card (2003)

V. Java CardV. Java Card

Page 47: Java card (2003)

47

Nastanak idejeNastanak ideje

zahtjevi: zahtjevi: – RAD umjesto asemblera i osciloskopaRAD umjesto asemblera i osciloskopa– "naprednije" aplikacije"naprednije" aplikacije– interakcija s Internetominterakcija s Internetom– sve uz isti nivo sigurnosti kao dotadsve uz isti nivo sigurnosti kao dotad

ključni atributi Jave: ključni atributi Jave: – jednostavnost - simplicityjednostavnost - simplicity– pouzdanost - safetypouzdanost - safety– sigurnost - securitysigurnost - security

Page 48: Java card (2003)

48

Page 49: Java card (2003)

49

Što je Java CardŠto je Java Card

podskup Jave s podskup Jave s runtime runtime okolinom okolinom optimiranom za pametne kartice i slične optimiranom za pametne kartice i slične uređaje s ograničenom memorijomuređaje s ograničenom memorijom

karakteristike JC aplikacija:karakteristike JC aplikacija:– sigurne (secure) - kontrola memorije i sigurne (secure) - kontrola memorije i

izvršavanja, razdvajanje applet firewallomizvršavanja, razdvajanje applet firewallom– prijenosne (portable), hardverski neovisneprijenosne (portable), hardverski neovisne– višeaplikacijske (multiapplication) - više višeaplikacijske (multiapplication) - više

appleta na kartici, applet firewall sprječava appleta na kartici, applet firewall sprječava nedopuštenu interakcijunedopuštenu interakciju

Page 50: Java card (2003)

50

– kompatibilnost s postojećim standardima kompatibilnost s postojećim standardima - temelji se na ISO 7816 specifikaciji- temelji se na ISO 7816 specifikaciji

olakšan razvoj u suporedbi s olakšan razvoj u suporedbi s "klasičan" za određeni mikrokontroler "klasičan" za određeni mikrokontroler (npr. 8051)(npr. 8051)

otvorenost platforme, definiran API i otvorenost platforme, definiran API i runtime environmentruntime environment

skrivanje složenosti i detalja skrivanje složenosti i detalja kartičinog podsustavakartičinog podsustava

Page 51: Java card (2003)

51

Podskup jezikaPodskup jezika

Page 52: Java card (2003)

52

ArhitekturaArhitektura

potpuna odvojenost kartičnog potpuna odvojenost kartičnog sustava od appleta sustava od appleta – pristupanje sustavu kroz jezik visokog pristupanje sustavu kroz jezik visokog

nivoa (Java)nivoa (Java)

Java Card definira platformu na kojoj se aplikacije napisane u Javi mogu izvršavati na pametnim karticama.

Page 53: Java card (2003)

53

dijelovi Java Card specifikacije:dijelovi Java Card specifikacije:– JCVM - definira podskup Java jezika i JCVM - definira podskup Java jezika i

virtualni stroj prikladan za karticevirtualni stroj prikladan za kartice– JCRE - precizno opisuje ponašanje JCRE - precizno opisuje ponašanje

(runtime behavior)(runtime behavior)– Java Card API - specificira skup Java Card API - specificira skup

osnovnih i extension Java osnovnih i extension Java paketa/klasa za kartične aplikacijepaketa/klasa za kartične aplikacije

Page 54: Java card (2003)

54

Page 55: Java card (2003)

55

Java Card Runtime Java Card Runtime EnvironmentEnvironment

funkcija slična OS-u, sistemske klase funkcija slična OS-u, sistemske klase analogne kerneluanalogne kernelu

inicijalizacija se vrši samo jednom za inicijalizacija se vrši samo jednom za vrijeme trajanja karticevrijeme trajanja kartice

inicijalizira VM, kreira instance inicijalizira VM, kreira instance appletaappleta

uklanjanjem energije, suspendira seuklanjanjem energije, suspendira se– očuvanje stanja u flash memorijiočuvanje stanja u flash memoriji– VM se resetiraVM se resetira

Page 56: Java card (2003)

56

JCVMJCVM off-card off-card

– resursi nisu resursi nisu ograničeniograničeni

– ne izvršava se za ne izvršava se za vrijeme izvođenjavrijeme izvođenja

– class loading, class loading, bytecode bytecode verification, verification, resolution & linkingresolution & linking

on-cardon-card - byte - byte interpreterinterpreter

Page 57: Java card (2003)

57

konverter (konverter (converterconverter) – ) – off cardoff card– provjerava zadovoljavanje JC podskupaprovjerava zadovoljavanje JC podskupa– inicijalizacija static varijabli i inicijalizacija static varijabli i

razrješavanje simboličkih referenci razrješavanje simboličkih referenci – alokacija i kreiranje potrebne strukturealokacija i kreiranje potrebne strukture– daje .CAP (converted applet); temeljen daje .CAP (converted applet); temeljen

na JAR formatuna JAR formatu CAP se stavlja na karticu (download) CAP se stavlja na karticu (download)

i izvršavai izvršava

Page 58: Java card (2003)

58

Page 59: Java card (2003)

59

Obrada naredbiObrada naredbi

JCRE radi s APDU paketimaJCRE radi s APDU paketima command APDUcommand APDU

– predaja appleta naznačenom u predaja appleta naznačenom u naredbinaredbi

– izabrani applet procesira APDU, šalje izabrani applet procesira APDU, šalje odgovor, te predaje kontrolu JCREodgovor, te predaje kontrolu JCRE

Page 60: Java card (2003)

VI. Java Card APIVI. Java Card API

Page 61: Java card (2003)

61

Java Card APIJava Card API

prilagođenost ISO 7816 modeluprilagođenost ISO 7816 modelu osnovni (core) paketi:osnovni (core) paketi:

– java.langjava.lang– javacard.frameworkjavacard.framework– javacard.securityjavacard.security

extension paket:extension paket:– javacardx.cryptojavacardx.crypto

- nema: GUI, network I/O, desktop file - nema: GUI, network I/O, desktop file system I/Osystem I/O

Page 62: Java card (2003)

62

java.langjava.lang podskup "pravog" java.lang paketapodskup "pravog" java.lang paketa mnoge metode nepodržane mnoge metode nepodržane objekti: Object, Throwable, Exceptionobjekti: Object, Throwable, Exception iznimke (exceptions): iznimke (exceptions): RuntimeException, RuntimeException,

ArithmeticException, ArithmeticException, ArrayIndexOutOfBondsException, ArrayIndexOutOfBondsException, ArrayStoreException, ClassCastException, ArrayStoreException, ClassCastException, IndexOutOfBondsException, IndexOutOfBondsException, NullPointerException, SecurityException, NullPointerException, SecurityException, NegativeArraySizeExceptionNegativeArraySizeException

Page 63: Java card (2003)

63

javacard.frameworkjavacard.framework

osnovne klase i sučelja za appleteosnovne klase i sučelja za applete klasa klasa Applet Applet osnova za appleteosnova za applete klasa APDU: rukovanje APDU klasa APDU: rukovanje APDU

paketimapaketima javacard.framework.JCSystem sučelje javacard.framework.JCSystem sučelje

prema sustavuprema sustavu– nije podržan java.lang.Systemnije podržan java.lang.System– metode za kontrolu izvršavanja appleta, metode za kontrolu izvršavanja appleta,

upravljanje resursima i transakcijamaupravljanje resursima i transakcijama

Page 64: Java card (2003)

64

javacard.security, javacard.security, javacardx.cryptojavacardx.crypto

framework za kriptografske funkcijeframework za kriptografske funkcije (a)simetrični algoritmi (Cipher), (a)simetrični algoritmi (Cipher),

RandomData, digitalni potpis RandomData, digitalni potpis (Signature), MessageDigest(Signature), MessageDigest

apstraktne klase; samo API, apstraktne klase; samo API, implementaciju daje JCRE providerimplementaciju daje JCRE provider

javacardx.cryptojavacardx.crypto: klase i sučelja : klase i sučelja koja podliježu kontroli izvozakoja podliježu kontroli izvoza

Page 65: Java card (2003)

65

AtomarnostAtomarnost

atomarnost: izmjena ili uspjeva u atomarnost: izmjena ili uspjeva u cijelosti ili se objekt vraća u cijelosti ili se objekt vraća u prethodno stanjeprethodno stanje

kartica pohranjuje osjetljive kartica pohranjuje osjetljive podatke, treba spriječiti gubitak u podatke, treba spriječiti gubitak u slučaju pogreške prilikom izvođenja slučaju pogreške prilikom izvođenja ili prekida napajanja ili prekida napajanja

robusni mehanizmi za osiguranje robusni mehanizmi za osiguranje atomarnostiatomarnosti

Page 66: Java card (2003)

66

javacard.framework.Utiljavacard.framework.Util

public static short arrayCopy(byte[] src, public static short arrayCopy(byte[] src, short srcOff, byte[] dest, short desOff, short srcOff, byte[] dest, short desOff, short length)short length)

public static short public static short arrayCopyNonAtomic(byte[] src, short arrayCopyNonAtomic(byte[] src, short srcOff, byte[] dest, short desOff, short srcOff, byte[] dest, short desOff, short length)length)

Page 67: Java card (2003)

67

TransakcijeTransakcije

slično bazama podatakaslično bazama podataka (begin, (begin, commit, rollback), ali nema gnježđenjacommit, rollback), ali nema gnježđenja– JCSystem.beginTransaction();JCSystem.beginTransaction();– JCSystem.commitTransaction();JCSystem.commitTransaction();– JCSystem.abortTransaction()JCSystem.abortTransaction()

automatski abort ako se eksplicitno ne automatski abort ako se eksplicitno ne pozove commit ili abortpozove commit ili abort

u slučaju prekida napajanja ili pogreške, u slučaju prekida napajanja ili pogreške, rollback prvom slijedećom prilikomrollback prvom slijedećom prilikom

Page 68: Java card (2003)

VII. Java Card appletVII. Java Card applet

Page 69: Java card (2003)

69

Page 70: Java card (2003)

70

AppletiAppleti pohranjeni u CAP - vrsta JAR arhivepohranjeni u CAP - vrsta JAR arhive jedino ROM appleti mogu imati native jedino ROM appleti mogu imati native

metode (ubacivanje prilikom metode (ubacivanje prilikom maskingamaskinga)) moguće više instanci istog appletamoguće više instanci istog appleta applet ID: applet ID: niz okteta koji jednoznačno niz okteta koji jednoznačno

identificira svaki appletidentificira svaki applet– 5B: National Registered Application Provider 5B: National Registered Application Provider

(RID) - dodjeljuje ISO(RID) - dodjeljuje ISO– 0B-11B: Proprietary Application Identifier 0B-11B: Proprietary Application Identifier

Extension (PIX)Extension (PIX)

Page 71: Java card (2003)

71

Razvoj po koracimaRazvoj po koracima

1. dizajn1. dizajn– specificiranje funkcijaspecificiranje funkcija– dodjela applet ID dodjela applet ID – dizajn struktura klasa i metodadizajn struktura klasa i metoda– definiranje sučelja između appleta i definiranje sučelja između appleta i

host aplikacije (APDU naredbe i sadržaj)host aplikacije (APDU naredbe i sadržaj)»PROBLEM: definiranjem APDU naredbi za

svaki se applet razvija proprietary protokol

2. kodiranje2. kodiranje

Page 72: Java card (2003)

72

3. implementacija 3. implementacija error handlingerror handling mehanizamamehanizama– nedetektirana pogreška može nedetektirana pogreška može

uzrokovati blokiranje kartice ili uzrokovati blokiranje kartice ili gubitak podatakagubitak podataka

– provjeriti podržava li applet naredbu, provjeriti podržava li applet naredbu, je li naredba dobro formatirana i krši li je li naredba dobro formatirana i krši li neke uvjeteneke uvjete

4. testiranje4. testiranje

Page 73: Java card (2003)

73

javacard.framework.Applejavacard.framework.Applett

public static void install (byte[] bArray, public static void install (byte[] bArray, short bOffset, byte bLength)short bOffset, byte bLength)

JCRE poziva da kreira instancu JCRE poziva da kreira instancu appletaappleta

entry point za applet, kao main za entry point za applet, kao main za Java aplikacijuJava aplikaciju

bArray bArray su instalacijski parametrisu instalacijski parametri u nju smjestiti pozive konstruktora u nju smjestiti pozive konstruktora

appletaappleta

Page 74: Java card (2003)

74

protected final void register()protected final void register()

protected final void register(byte[] protected final void register(byte[] bArray, short bOffset, byte bLength)bArray, short bOffset, byte bLength)

applet registrira instancu kod JCREapplet registrira instancu kod JCRE svaka instanca ima jedinstven applet svaka instanca ima jedinstven applet

IDID obično ju poziva konstruktor appletaobično ju poziva konstruktor appleta

Page 75: Java card (2003)

75

public boolean select()public boolean select() JCRE pozivom ove metode JCRE pozivom ove metode

obavještava applet da je selektiranobavještava applet da je selektiran ukoliko selektiranje appleta ne ukoliko selektiranje appleta ne

uspije, vraća se status 0x6999uspije, vraća se status 0x6999

Page 76: Java card (2003)

76

public abstract void process (APDU public abstract void process (APDU apdu)apdu)

JCRE pozivom obavještava applet JCRE pozivom obavještava applet da procesira nadolazeći command da procesira nadolazeći command APDUAPDU

JEDINI standardizirani command JEDINI standardizirani command APDU na JC je SELECT appletaAPDU na JC je SELECT appleta– proprietary APDU i protokol za proprietary APDU i protokol za

aplikacijeaplikacije

Page 77: Java card (2003)

77

public void deselect ()public void deselect () JCRE pozivom ove metode JCRE pozivom ove metode

obavještava trenutno selektiran obavještava trenutno selektiran applet da će drugi applet biti applet da će drugi applet biti selektiranselektiran

cleanup operacijecleanup operacije

Page 78: Java card (2003)

78

Page 79: Java card (2003)

79

Primanje i slanje podatakaPrimanje i slanje podataka

getBuffer()getBuffer() metoda, APDU metoda, APDU objektobjekt veličina buffera: min. 37Bveličina buffera: min. 37B metode za učitavanje podataka:metode za učitavanje podataka:

– setIncomingAndReceivesetIncomingAndReceive » za količinu podataka koja stane u APDU za količinu podataka koja stane u APDU

bufferbuffer

– receiveBytes receiveBytes » dolazi iza prethodne jednom ili više puta, dolazi iza prethodne jednom ili više puta,

ako ima više podataka nego što stane u ako ima više podataka nego što stane u buffer, sve dok se svi podaci ne učitajubuffer, sve dok se svi podaci ne učitaju

Page 80: Java card (2003)

80

slanje odgovora:slanje odgovora:

– setOutgoing setOutgoing » samo postavlja data transfer mode; više se ne samo postavlja data transfer mode; više se ne

mogu primati podaci (mogu primati podaci (half duplexhalf duplex))

– setOutgoingLengthsetOutgoingLength» max. 256B prema hostumax. 256B prema hostu

– sendBytessendBytes» uzastopnim pozivima applet može poslati više od uzastopnim pozivima applet može poslati više od

maksimalnih 256Bmaksimalnih 256B

– skraćeno: skraćeno: setOutgoingAndSendsetOutgoingAndSend - cijela - cijela poruka mora stati u bufferporuka mora stati u buffer

Page 81: Java card (2003)

81

status riječi (status riječi (status wordsstatus words))

– JCRE kreira SW1 i SW2 u JCRE kreira SW1 i SW2 u response APDU response APDU nakon završetka nakon završetka process process metode appletametode appleta

– normalan završetak: 0x9000normalan završetak: 0x9000 Slanje podataka koji nisu u APDU bufferuSlanje podataka koji nisu u APDU bufferu

– ako su podaci u lokalnom bufferu u appletu, ako su podaci u lokalnom bufferu u appletu, trebaju se kopirati u APDU buffertrebaju se kopirati u APDU buffer

– kopiranje i slanje obavlja funkcija kopiranje i slanje obavlja funkcija sendBytesLong sendBytesLong iz APDU klaseiz APDU klase

– može se uzastopno pozivatimože se uzastopno pozivati

Page 82: Java card (2003)

82

Page 83: Java card (2003)

83

Slanje/primanje - sažetak Slanje/primanje - sažetak

1. slučaj: nema podataka u naredbi ni u slučaj: nema podataka u naredbi ni u odgovoruodgovoru

poziva se poziva se processprocess metoda appleta metoda appleta

applet ustanovi da nema dodatnih applet ustanovi da nema dodatnih podataka uz zahtjevpodataka uz zahtjev

applet izvršava naredbu iz APDU headeraapplet izvršava naredbu iz APDU headera

applet se vraća iz applet se vraća iz processprocess metode metode

Page 84: Java card (2003)

84

2. slučaj: nema podataka u naredbi, podaci u slučaj: nema podataka u naredbi, podaci u odgovoruodgovoru

poziva se poziva se processprocess metoda appleta metoda appleta

applet ustanovi da nema dodatnih podataka uz applet ustanovi da nema dodatnih podataka uz zahtjev, ali da treba poslati podatke uz zahtjev, ali da treba poslati podatke uz odgovorodgovor

applet izvršava naredbu iz APDU headeraapplet izvršava naredbu iz APDU headera

applet šalje odgovor: applet šalje odgovor: setOutgoingAndSendsetOutgoingAndSend za za kratak odgovor; kratak odgovor; setOutgoingsetOutgoing, , setOutgoingLengthsetOutgoingLength, , sendBytessendBytes//sendBytesLong sendBytesLong za više podatakaza više podataka

applet se vraća iz applet se vraća iz processprocess metode metode

Page 85: Java card (2003)

85

3. slučaj: podaci u naredbi, nema podataka u slučaj: podaci u naredbi, nema podataka u odgovoruodgovoru

poziva se poziva se processprocess metoda appleta metoda appleta

applet ustanovi da ima podataka uz zahtjev, ali da applet ustanovi da ima podataka uz zahtjev, ali da ne treba poslati podatke uz odgovorne treba poslati podatke uz odgovor

applet poziva applet poziva setIncomingAndReceivesetIncomingAndReceive, te po , te po potrebi potrebi receiveBytesreceiveBytes

povratak iz povratak iz process process metodemetode

4. slučaj: podaci i u naredbi i u odgovoruslučaj: podaci i u naredbi i u odgovoruprimanje naredbe kao u slučaju 3, slanje odgovora kao primanje naredbe kao u slučaju 3, slanje odgovora kao u slučaju 2u slučaju 2

Page 86: Java card (2003)

86

Page 87: Java card (2003)

87

Optimiranje appletaOptimiranje appleta ograničeni sistemski resursiograničeni sistemski resursi temeljno je optimirati generalni dizajntemeljno je optimirati generalni dizajn što rjeđe upisivanje u sporu EEPROM što rjeđe upisivanje u sporu EEPROM

memoriju (više koristiti RAM)memoriju (više koristiti RAM) ograničen stogograničen stog

– optimirati broj parametara metoda i lokalnih optimirati broj parametara metoda i lokalnih varijablivarijabli

– ograničiti gnježđenje poziva metoda (stack ograničiti gnježđenje poziva metoda (stack overflow)overflow)

– izbjegavati rekurzijuizbjegavati rekurziju

Page 88: Java card (2003)

88

ako je moguće, kreirati sve ako je moguće, kreirati sve potrebne objekte u konstruktorupotrebne objekte u konstruktoru– izbjegavanje “out-of-memory”izbjegavanje “out-of-memory”– install metoda koja poziva konstruktor install metoda koja poziva konstruktor

je transakcija je transakcija » oslobađanje resursa ako se dogodi oslobađanje resursa ako se dogodi

pogreška u inicijalizacijipogreška u inicijalizaciji

– object reuse: nema garbage object reuse: nema garbage collectiona, memorije može ponestati collectiona, memorije može ponestati

Page 89: Java card (2003)

89

eliminirati redundantan i dupliciran kodeliminirati redundantan i dupliciran kod

– ne inicijalizirati varijablu ako ne trebane inicijalizirati varijablu ako ne treba pristup polju traži više bytekodova nego pristup polju traži više bytekodova nego

lokalnoj varijablilokalnoj varijabli switch obično brži nego if/else, ali...switch obično brži nego if/else, ali... ““a+b-c” traži više bytekodova nego a+b-c” traži više bytekodova nego

x=a+b x=x-c (međurezultat)x=a+b x=x-c (međurezultat) final static sličan #definefinal static sličan #define

– konverter zamjenjuje referenciranje konverter zamjenjuje referenciranje varijable s njenom vrijednošćuvarijable s njenom vrijednošću

Page 90: Java card (2003)

90

Nedostaci Java Card Nedostaci Java Card platformeplatforme

previše prepuštanja previše prepuštanja implementatorima: int, garbage implementatorima: int, garbage collection...collection...

native metode bi mogle probiti native metode bi mogle probiti applet firewallapplet firewall

nespretnost kreiranja appleta (off-nespretnost kreiranja appleta (off-card, on-card, CAP...)card, on-card, CAP...)

multiaplikacijsko okruženje - applet multiaplikacijsko okruženje - applet mora biti "dobar", inače...mora biti "dobar", inače...

Page 91: Java card (2003)

91

JCRE mora biti savršen, jer je JCRE mora biti savršen, jer je "svemoguć", pa je cilj napadača"svemoguć", pa je cilj napadača

Java Card nije uistinu "cross Java Card nije uistinu "cross platform"platform"

......

Page 92: Java card (2003)

VIII. Java Card sigurnosni VIII. Java Card sigurnosni mehanizmimehanizmi

Page 93: Java card (2003)

93

JCREJCRE

JCRE ima poseban sistemski JCRE ima poseban sistemski kontekst, s posebnim privilegijama kontekst, s posebnim privilegijama (poput OS-a)(poput OS-a)– poziv bilo koje metode bilo kojeg objektapoziv bilo koje metode bilo kojeg objekta– pristup svim instancama svih appletapristup svim instancama svih appleta– zbog “svemoćnosti” i pristupa zbog “svemoćnosti” i pristupa

svemu mora biti dobro napravljensvemu mora biti dobro napravljen» napadaču je dovoljno da preuzme kontrolu napadaču je dovoljno da preuzme kontrolu

nad JCRE da bi tako potpuno preuzeo nad JCRE da bi tako potpuno preuzeo kontrolu nad svime na karticikontrolu nad svime na kartici

Page 94: Java card (2003)

94

Java Card platform Java Card platform securitysecurity

Java language securityJava language security

Java Card additional securityJava Card additional security

Page 95: Java card (2003)

95

Java langugage securityJava langugage security

strongly typed - nema neispravnih strongly typed - nema neispravnih konverzijakonverzija

provjera granice polja prilikom provjera granice polja prilikom pristupapristupa

nema pokazivačanema pokazivača inicijalizacija varijabli prije upotrebeinicijalizacija varijabli prije upotrebe kontrola pristupa metodama i kontrola pristupa metodama i

članovima klasečlanovima klase

Page 96: Java card (2003)

96

Java Card Additional Java Card Additional SecuritySecurity

mogućnost određivanja automatske mogućnost određivanja automatske duljine života objekata (persistent-duljine života objekata (persistent-flash, transient-RAM)flash, transient-RAM)

atomarnost i transakcije - osiguranje atomarnost i transakcije - osiguranje integriteta u slučaju prekida operacijeintegriteta u slučaju prekida operacije

applet firewall - sigurnost i integritet applet firewall - sigurnost i integritet sustava (JCRE) i svakog appleta na sustava (JCRE) i svakog appleta na kartici (umjesto sandboxa)kartici (umjesto sandboxa)

Page 97: Java card (2003)

97

kontrola dijeljenja objekata (object kontrola dijeljenja objekata (object sharing)sharing)

native metode ISKLJUČIVO u ROM native metode ISKLJUČIVO u ROM appletima (ubacivanje u tvornici - appletima (ubacivanje u tvornici - maskingmasking))– ne izvodi ih JC VM i ne ulaze u ne izvodi ih JC VM i ne ulaze u

security protection koji jamči Javasecurity protection koji jamči Java– download takvih appleta na karticu download takvih appleta na karticu

nije podržannije podržan

Page 98: Java card (2003)

98

Applet firewallApplet firewall

višeaplikacijsko okruženje višeaplikacijsko okruženje Java Card: applet firewallJava Card: applet firewall

» ““pravi” JVM: sandbox, classloader pravi” JVM: sandbox, classloader » ograničenje pristupa podacima drugih appletaograničenje pristupa podacima drugih appleta

kontekst (context): firewallom kontekst (context): firewallom odijeljen i zaštićen dio Java Card odijeljen i zaštićen dio Java Card sustavasustava– dodjela instancama appleta prilikom dodjela instancama appleta prilikom

kreiranjakreiranja– nema ga između instanci appleta iz istog nema ga između instanci appleta iz istog

paketapaketa

Page 99: Java card (2003)

99

Object SharingObject Sharing

mehanizmi dijeljenja objekatamehanizmi dijeljenja objekata::– JCRE privilegije i entry point objektiJCRE privilegije i entry point objekti– globalna polja (global arrays)globalna polja (global arrays)– dijeljena sučelja (shareable interfaces)dijeljena sučelja (shareable interfaces)

pristup dijeljenim objektima kroz context pristup dijeljenim objektima kroz context switch, izvođenje u novom kontekstuswitch, izvođenje u novom kontekstu

u slučaju završetka/iznimke vraćanje u slučaju završetka/iznimke vraćanje prethodnog kontekstaprethodnog konteksta

moguće gnježđenje promjena kontekstamoguće gnježđenje promjena konteksta

Page 100: Java card (2003)

100

javacard.framework.Shareablejavacard.framework.Shareable– interfaceinterface– ne definira metode niti članovene definira metode niti članove– služi samo kao temelj drugim služi samo kao temelj drugim

sučeljima, da naznači da ona imaju sučeljima, da naznači da ona imaju posebna obilježjaposebna obilježja

Page 101: Java card (2003)

IX. Praktični dioIX. Praktični dio

Page 102: Java card (2003)

102

JCWDEJCWDE

simulacija JC u “običnom” JVMsimulacija JC u “običnom” JVM komunikacija TCP/IP (port 9025)komunikacija TCP/IP (port 9025) ne zahtjeva konvertiranje u .CAPne zahtjeva konvertiranje u .CAP konfiguracijska datoteka (.APP) konfiguracijska datoteka (.APP)

koja identificira applete - 1 linija po koja identificira applete - 1 linija po appletuappletu– prvi mora biti InstallerApplet, koji je prvi mora biti InstallerApplet, koji je

analogan installeru na karticianalogan installeru na kartici

Page 103: Java card (2003)

103

nije kompletna simulacija, nije kompletna simulacija, nepodržano:nepodržano:– download .CAPdownload .CAP– RMIRMI– object/applet/package deletionobject/applet/package deletion– persistent card statepersistent card state– applet firewallapplet firewall– transakcijetransakcije– applet instance creationapplet instance creation

Page 104: Java card (2003)

104

C-JCREC-JCRE

prilična sličnost s "pravom" Java prilična sličnost s "pravom" Java karticomkarticom

podržava download .CAPpodržava download .CAP očuvanje stanja između očuvanje stanja između sessionasessiona podržava card reset u slučaju podržava card reset u slučaju

pogreške pri alokaciji objekta pri pogreške pri alokaciji objekta pri prekinutoj transakcijiprekinutoj transakciji

Page 105: Java card (2003)

105

Konvertiranje u .CAPKonvertiranje u .CAP

download; samo za karticu i C-JCREdownload; samo za karticu i C-JCREconverter [-out JCA] [-classdir] <applet converter [-out JCA] [-classdir] <applet

package> <AID> <package version>package> <AID> <package version>

podrška za 32-bitni int: "-i”podrška za 32-bitni int: "-i”– vendor dependent implementationvendor dependent implementation

JCA format: ROM JCA format: ROM maskingmasking

Page 106: Java card (2003)

106

Off-card verifikacijaOff-card verifikacija

verificiranje .CAP datoteke:verificiranje .CAP datoteke:verify <export-files.EXP> verify <export-files.EXP>

<applet.CAP><applet.CAP> verifikacijom se utvrđuje:verifikacijom se utvrđuje:

– je li CAP interno konzistentanje li CAP interno konzistentan– je li konzistentan s kontekstom u je li konzistentan s kontekstom u

kojem će se nalazitikojem će se nalaziti

Page 107: Java card (2003)

107

Kreiranje, download i Kreiranje, download i simulacijasimulacija

instalirati Java Card Development Kitinstalirati Java Card Development Kit instalirati java.comm paketinstalirati java.comm paket kompajliranje: javac -g <applet.java>kompajliranje: javac -g <applet.java>

– OBAVEZNO "-g", jer converter treba neke OBAVEZNO "-g", jer converter treba neke debugging informacijedebugging informacije

testiranje (simulacija) jednim od testiranje (simulacija) jednim od simulatorasimulatora– korištenje APDUTool alatakorištenje APDUTool alata

Page 108: Java card (2003)

108

Page 109: Java card (2003)

109

Off-card instalacijaOff-card instalacija

generiranje instalacijske skripte generiranje instalacijske skripte pomoću off-card installerapomoću off-card installerascriptgen -o <script_name> <applet.CAP>scriptgen -o <script_name> <applet.CAP>

u skriptu OBAVEZNO dodati:u skriptu OBAVEZNO dodati:– "powerup" i "powerdown”"powerup" i "powerdown”– naredbe za selektiranje on-card installeranaredbe za selektiranje on-card installera– naredbe za kreiranje appleta koji su u CAPnaredbe za kreiranje appleta koji su u CAP

» CAP je paket, ne jedan appletCAP je paket, ne jedan applet

Page 110: Java card (2003)

110

Page 111: Java card (2003)

111

APDUToolAPDUTool

šalje APDU naredbe appletu i šalje APDU naredbe appletu i prima odgovoreprima odgovore

prva i zadnja naredba za prva i zadnja naredba za APDUTool:APDUTool:– powerup - priprema APDUTool za powerup - priprema APDUTool za

čitanje command APDUčitanje command APDU– powerdownpowerdown

dodatne naredbe: echo, delaydodatne naredbe: echo, delay

Page 112: Java card (2003)

112

Simulacija: JCWDESimulacija: JCWDE

JCWDE.exe <JCWDE.exe <appfile.APPappfile.APP>>applet se učitava ako je referenciran applet se učitava ako je referenciran

u .APP datoteciu .APP datoteci

apdutool.exe apdutool.exe <ScriptFile><ScriptFile> >> <O<OutputFileutputFile>>

Page 113: Java card (2003)

113

Simulacija: C-JCRESimulacija: C-JCRE

CREF.exe -o <CREF.exe -o <EEPROM2saveEEPROM2save>>

CREF.exe -i <E2load> [-o <E2save> CREF.exe -i <E2load> [-o <E2save> ] nastavlja izvođenje u onom ] nastavlja izvođenje u onom stanju u kojem je prethodno stanju u kojem je prethodno završilozavršilo

apdutool apdutool <ScriptFile><ScriptFile> > > <<OutputFileOutputFile>>

Page 114: Java card (2003)

114

Travel Card appletTravel Card applet

autor: Ivica Čardićautor: Ivica Čardić kupovanje i rezervacija (avionskih) karatakupovanje i rezervacija (avionskih) karata JDK 1.3, JC 2.1.2/JC 2.2, C-JCRE simulatorJDK 1.3, JC 2.1.2/JC 2.2, C-JCRE simulator

– JC 2.2 NE RADI s J2SDK 1.4JC 2.2 NE RADI s J2SDK 1.4 skripte:skripte:

– kompajliranje i kovertiranje (command prompt):kompajliranje i kovertiranje (command prompt):» skriptaJC22.bat – Java Card 2.2skriptaJC22.bat – Java Card 2.2» skriptaJC212.bat – Java Card 2.1.2skriptaJC212.bat – Java Card 2.1.2

– simcref.bat – pokretanje C-JCRE simulatora (u simcref.bat – pokretanje C-JCRE simulatora (u prvom command prompt prozoru)prvom command prompt prozoru)

– simapdu.bat – APDU naredbe za simulaciju (u simapdu.bat – APDU naredbe za simulaciju (u drugom command prompt prozoru)drugom command prompt prozoru)

Page 115: Java card (2003)

X. Literatura i resursiX. Literatura i resursi

Page 116: Java card (2003)

116

Elektronički dokumentiElektronički dokumenti

Java Card CDJava Card CD– zbirka dokumenata, članaka, zbirka dokumenata, članaka,

priručnika i sl. u elektroničkom oblikupriručnika i sl. u elektroničkom obliku– HTML, TXT, DOC, PDF, PSHTML, TXT, DOC, PDF, PS– može se dobiti od:može se dobiti od:

» menemene» prof. Žagaraprof. Žagara

Page 117: Java card (2003)

117

LinkoviLinkovi

http://java.sun.com/products/javacard/http://java.sun.com/products/javacard/ http://sigurnost.zemris.fer.hrhttp://sigurnost.zemris.fer.hr http://citeseer.nj.nec.com (može i preko http://citeseer.nj.nec.com (može i preko

Googlea)Googlea) http://www.javacard.org, http://www.javacard.org,

http://www.javacard.org/mirroring/tamper.htmlhttp://www.javacard.org/mirroring/tamper.html http://www.javaworld.comhttp://www.javaworld.com http://www.javaguru.comhttp://www.javaguru.com http://javacardforum.orghttp://javacardforum.org http://www.jdance.comhttp://www.jdance.com http://www.opencard.comhttp://www.opencard.com

Page 118: Java card (2003)

118

http://www.gemplus.comhttp://www.gemplus.com http://www.scdk.comhttp://www.scdk.com http://www.smartcardforum.comhttp://www.smartcardforum.com http://www.redbooks.ibm.comhttp://www.redbooks.ibm.com http://www.drdobbs.comhttp://www.drdobbs.com http://www.informit.comhttp://www.informit.com

Page 119: Java card (2003)

119

KnjigeKnjige

Z. Chen: “Java Card Technology for Z. Chen: “Java Card Technology for Smart Cards”, Addison-Wesley, Smart Cards”, Addison-Wesley, 2000.2000.

““Smart Card Handbook”Smart Card Handbook” S.B. Guthrey, T.M. Jurgensen: S.B. Guthrey, T.M. Jurgensen:

“Smart Card Developer’s Kit”“Smart Card Developer’s Kit”

Page 120: Java card (2003)

120