Upload
d3lboy
View
15
Download
0
Embed Size (px)
DESCRIPTION
Pametna kartica je tema ovog rada, tj. kreiranje biblioteka sa metodima koji će omogućiti pristup i rukovanje pametnim karticama i čitačima pametnih kartica. U službi boljeg razumijevanja, potrebno je, prethodno, upoznati terminologiju pametnih kartica, steći osnovna znanja o fizičkim i električnim svojstvima, komunikacijskom modelu, operativnom sistemu , itd.
Citation preview
Univerzitet u Novom SaduFakultet tehničkih nauka
Odsek za računarstvo i automatikuKatedra za računarske nauke i informatiku
Dalibor Trišić
Biblioteka za rukovanje smart karticamau .NET okruženju
diplomski rad
Novi Sad 2005.
2
UNIVERZITET U NOVOM SADUFAKULTET TEHNIČKIH NAUKA
ODSEK ZA RAČUNARSTVO I AUTOMATIKUKATEDRA ZA RAČUNARSKE NAUKE I INFORMATIKU
BIBLIOTEKA ZA RUKOVANJE SMART KARTICAMA U .NET OKRUŽENJU
diplomski rad
Kandidat: Mentor:Dalibor Trišić, E7347 Zora Konjović
Novi Sad 2005.
3
4
Naslov zadatka: Biblioteka za rukovanje smart karticama u .NET okruženju
Tekst zadatka: Upoznati se sa osnovnim karakteristikama .NET razvojnog okruženja i sa pristupom smart karticama i odgovarajućim uređajima putem PC/SC standarda. Specificirati i implementirati bibliotekuza rukovanje smart karticama i čitačima smart kartica putem PC/SC interfejsa za Windows platformu u okviru .NET razvojnog okruženja. O okviru biblioteke, kao posebnu podršku, implementirati funkcije Axalto Cryptoflex 8k kartice, što uključuje rad sa datotečnim sistemom i kriptografske funkcije. Dokumentovati rješenje.
5
6
Sadržaj
1. Uvod.......................................................................................................................................132. Pametna kartica....................................................................................................................14
2.1. Uvod u pametne kartice...................................................................................................142.2. Fizičke i električne karakteristike pametne kartice.........................................................15
2.2.1. Dimenzije...............................................................................................................................152.2.2. Čip..........................................................................................................................................152.2.3. Kontaktna površina.................................................................................................................162.2.4. CPU........................................................................................................................................162.2.5. Koprocesor.............................................................................................................................172.2.6. Memorija................................................................................................................................17
2.3. Komunikacijski model.....................................................................................................172.3.1. CAD uređaj i aplikacije terminala..........................................................................................172.3.2. Komunikacijski model kartičnih sistema...............................................................................182.3.3. APDU protocol.......................................................................................................................192.3.4. TPDU protokol.......................................................................................................................202.3.5. ATR........................................................................................................................................202.3.6. PTS.........................................................................................................................................20
2.4. Operativni sistem pametne kartice...................................................................................212.5. Standardi i specifikacije...................................................................................................23
2.5.1. ISO 7816 Standard.................................................................................................................232.5.2. GSM.......................................................................................................................................232.5.3. EMV.......................................................................................................................................232.5.4. PC/SC.....................................................................................................................................24
3. Cryptoflex 8k.........................................................................................................................263.1. Uvod................................................................................................................................26
3.1.1. Karakterisitike........................................................................................................................263.1.2. Struktura naredbe i odgovora.................................................................................................263.1.3. Reset kartice...........................................................................................................................273.1.4. Inicijalni datotečni sistem.......................................................................................................27
3.2. Tipovi datoteka u Cryptoflex pametnoj kartici................................................................283.2.1. Glavna datoteka (MF)............................................................................................................283.2.2. Namjenske datoteke (DF).......................................................................................................293.2.3. Elementarne datoteke (EF).....................................................................................................293.2.4. Rezervisani identifikacioni brojevi datoteka (FID)................................................................303.2.5. Izračunavanje veličine datoteke.............................................................................................303.2.6. Korisnički i administratorski PIN (CHV1 I CHV2)...............................................................313.2.7. Datoteka sa ključevima (External Key File)..........................................................................313.2.8. Datoteka sa ključevima (Internal Key File)...........................................................................323.2.9. Datoteke sa RSA ključevima (RSA Key File).......................................................................343.2.10. Serijski broj kartice (EF ICC Serial Number)......................................................................373.2.11. Odgovor na reset (ATR).......................................................................................................38
3.3. Uslovi pristupa (Access Conditions)...............................................................................393.3.1. ALW (Always).......................................................................................................................393.3.2. CHV1 (Card Holder Verification-User).................................................................................393.3.3. CHV2 (Card Holder Verification-Admin).............................................................................393.3.4. PRO (Protected).....................................................................................................................393.3.5. AUT........................................................................................................................................403.3.6. CHV1&PRO...........................................................................................................................41
7
3.3.7. CHV2&PRO...........................................................................................................................413.3.8. CHV1&AUT..........................................................................................................................413.3.9. CHV2&AUT..........................................................................................................................413.3.10. NEV......................................................................................................................................41
3.4. Cryptoflex naredbe..........................................................................................................423.4.1. ChangeCHV (Izmjena PIN-a)................................................................................................433.4.2. CreateFile...............................................................................................................................433.4.3. CreateRecord..........................................................................................................................463.4.4. Decrease.................................................................................................................................463.4.5. DeleteFile...............................................................................................................................473.4.6. DirNext...................................................................................................................................473.4.7. ExternalAuthenticate..............................................................................................................483.4.8. GetChallenge..........................................................................................................................483.4.9. GetResponse...........................................................................................................................493.4.10. Increase.................................................................................................................................513.4.11. InternalAuthenticate.............................................................................................................523.4.12. Invalidate..............................................................................................................................523.4.13. ReadBinary...........................................................................................................................523.4.14. ReadRecord..........................................................................................................................533.4.15. Rehabilitate...........................................................................................................................543.4.16. RSAKeyGenerate.................................................................................................................543.4.17. RSASignature.......................................................................................................................553.4.18. Seek......................................................................................................................................553.4.19. Select....................................................................................................................................563.4.20. SHA-1Intermediate..............................................................................................................563.4.21. SHA-1Last............................................................................................................................573.4.22. UnblockCHV........................................................................................................................573.4.23. UpdateBinary........................................................................................................................583.4.24. UpdateBinaryEnciphered.....................................................................................................583.4.25. UpdateRecord.......................................................................................................................593.4.26. VerifyCHV...........................................................................................................................593.4.27. VerifyKey.............................................................................................................................603.4.28. Statusne riječi.......................................................................................................................60
4. Biblioteka SmartCard............................................................................................................634.1. Uvod................................................................................................................................634.2. Struktura biblioteke SmartCard.......................................................................................644.3. Podbiblioteka SmartCard.Controls..................................................................................64
4.3.1. SCReader................................................................................................................................654.4. Podbiblioteka SmartCard.Cryptoflex..............................................................................67
4.4.1. CryptoflexCard.......................................................................................................................684.4.2. Cryptoflex8k...........................................................................................................................694.4.3. Personalization.......................................................................................................................69
4.5. Terminal...........................................................................................................................704.6. Ostali, bitni elementi biblioteke SmartCard....................................................................71
4.6.1. SmartCard.SCUtils.................................................................................................................714.6.2. SmartCard.SCardCommand...................................................................................................714.6.3. SmartCard.SCCrypto..............................................................................................................724.6.4. SmartCard.SCPinDialog.........................................................................................................724.6.5. SmartCard.SCDisposition......................................................................................................724.6.6. SmartCard.SCCardStates.......................................................................................................73
8
4.6.7. SmartCard.SCProtocols..........................................................................................................734.6.8. Smartcard.SCShareMode.......................................................................................................734.6.9. Cryptoflex.EFFileInfo i Cryptoflex.DFFileInfo – informacije o datoteci..............................744.6.10. Cryptoflex.EFAccessConditions..........................................................................................744.6.11. Cryptoflex.AccessConditions...............................................................................................754.6.12. Cryptoflex.FileTypes............................................................................................................75
5. Implementacija.....................................................................................................................775.1. Programsko okruženje.....................................................................................................775.2. Tok izrade........................................................................................................................775.3. Eksploatisanje biblioteke SmartCard..............................................................................78
6. Zaključak...............................................................................................................................797. Literatura..............................................................................................................................808. Biografija................................................................................................................................81
9
10
Akronimi
3DESACALWAUTATRAPDUATMCADCISCCHVCYDESDFEEPROMEFFIDICCLFLSBLSNLVMFMSBMSNNEVNRPINPROPTSRAMRFURLRSAROMTPDU
Triple DES (using DES keys in succession for encryption)access conditionalwaysauthenticateAnswer To ResetApplication Protocol Data UnitsAutomatic Teller MachineCard Acceptance DeviceComplex Instruction Set Computingcard holder verificationcyclic EFData Encryption StandardDedicated Fileelectrically erasable programmable read-only memoryElementary FileFile Identifierintegrated circuit cardlinear fixed EFleast significant byteleast significant nibblelinear variable EFMaster Filemost significant bytemost significant nibbleNevernumber of recordspersonal identification numberProtectedProtocol Type SelectionRandom Access Memoryreserved for future use ( FF)record lengthRivest, Shamir and Adleman, originalni tvorci RSA enkripcijeRead Only MemoryTransmission Protocol data Unit
11
1.Uvod
Tehnologija danas, više nego ikad, određuje društvo u kome živimo. Ulazi u sve pore ljudskog djelovanja, stvara novi soj ljudi i poslova, ona je uzrok evolucije društva. Jedan izum objedinjuje i simbolizuje navedene promjene – računar.
Prvi računari izvodili su nekoliko operacija, dok današnji izvode 3D animacije i nakoliko milijardi operacija brzinom svjetlosti. Razvoj poluprovodničkih tehnologija doveo je do toga da se veličina računara sa prostora jedne sobe svede na nekoliko desetina kvadratnih milimetara. Time su stvroreni preduslovi za razvoj novih tehnologija. Jedna od njih je i pametna kartica.
Pametna kartica je i tema ovog rada, tj. kreiranje biblioteka sa metodima koji će omogućiti pristup i rukovanje pametnim karticama i čitačima pametnih kartica. U službi boljeg razumijevanja, potrebno je, prethodno, upoznati terminologiju pametnih kartica, steći osnovna znanja o fizičkim i električnim svojstvima, komunikacijskom modelu, operativnom sistemu , itd.
12
2.Pametna kartica
2.1.Uvod u pametne kartice
Začetnikom pametne kartice (eng. Smart Card) smatra se francuski novinar Roland Moreno koji je 1974 godine registrovao idejne patente pametne kartice. Zato i ne čudi što je prva primjena pametnih kartica i ostvarena u Francuskoj. Telefonska industrija, odnosno francuski PTT, 1984.god. izdaje prvu telefonsku karticu.
Pametne kartice dijelimo u nekoliko grupa. Mogu biti podijeljene na memorijske kartice i mikroprocesorske kartice. Mogu, takođe, biti podijeljene na kontaktne i beskontaktne kartice bazirane na razlici u mehanizmu pristupa.
Slika 2.1 Podjela pametnih kartica
Memorijska kartica ima ugrađen čip s memorijom i neprogramljivom logikom, ne sadrži mikroprocesor. Usljed neprisustva mikroprocesora, neprogramljiva logika procesira podatke. Ona omogućuje direktan pristup memoriji i podržava nekoliko neprogramljivih naredbi. Tipičan predstavnik memorijskih kartica je telefonska kartica. Posljedica neprogramljivosti je da telefonska kartica postaje neupotrebljiva nakon što se potroši kredit. Prednost memorijskih kartica je jednostavna tehnologija, što rezultira niskom cijenom. Pohranjeni podaci se štite sigurnosnom logikom i zaštitom memorijskih ćelija. Ali i pored takve zaštite, memorijske kartice se mogu, relativno lako, falsifikovati.
Kao što i sam naziv govori, mikroprocesorske kartice sadrže mikroprocesor. Mikroprocesor značajno podiže nivo sigurnosti. Omogućava ugradnju kriptografskih algoritama i primjenu širokog skupa zaštitnih mehanizama. Funkcionalnost mikroprocesorskih kartica ograničena je samo veličinom njihove memorije i snagom procesiranja. Koriste se u aplikacijama koje zahtijevaju sigurnost i privatnost podataka.
Uopšteno, naziv pametna kartica odnosi se i na memorijske i na mikroprocesorske kartice, ali zbog „inteligencije” koju pruža ugrađeni procesor često se naziv pametna kartica veže samo za
13
mikroprocesorske kartice. Stoga će se u sljedećim poglavljima, ako drugačije nije eksplicitno navedeno, naziv kartica i naziv pametna kartica odnositi na mikroprocesorske kartice. Naziv čip kartica obuhvata i memorijske i mikroprocesorske kartice.
Slika 2.2 Pametna kartica
2.2.Fizičke i električne karakteristike pametne kartice
2.2.1.Dimenzije
Slika 2.3 Dimenzije pametne kartice
2.2.2.Čip
Čip je najvažniji elemenat pametne kartice. Za razliku od magnetne trake čip je krhak i ne može se jednostavno nalijepiti na površinu kartice. Umjesto toga čip se stavlja u neku vrstu kućišta, u cilju zažtite od vanjskih uticaja svakodnevnog korišćenja kartice. To kućište nazivamo modul čipa.
14
2.2.3.Kontaktna površina
Dio površine modula služi kao 8-polna kontaktna površina preko koje pametna kartica, odnosno njen mikrokontroler komunicira sa okolinom.
(a) (b)Slika 2.4 Kontaktna površina pametne kartice
(a)realan izgled(b) šematski prikaz
Pametna kartica ima osam kontaktnih tačaka (slika 2.4). Dimenzije i lokacije kontakata opisuje standard ISO 7816, 2. dio.
- Na Vcc kontakt se dovodi napajanje. Naponski prag je 3V ili 5V, sa tolerancijom od ±10%.- RST kontakt služi za slanje reset signala mikroprocesoru.- Mikroprocesor pametne kartice ne posjeduje mogućnost generisanja signala takta. Na CLK kontakt se dovodi vanjski signal takta.- GND se koristi kao referentni napon. Najčešće je to nula.- Vpp kontakt se ne koristi.- RFU kontakti su rezervisani za buduću upotrebu
2.2.4.CPU
Centralna procesorska jedinica, kod većine današnjih čipova, je 8-bitni procesor baziran na CISC arhitekturi procesora Motorola 6805 i Intel 8051 sa signalom takta frekvencije 5MHz i 16-bitnim memorijskim adresiranjem.
Noviji kartični čipovi implementiraju 16-bitne i 32-bitne procesore. Razlog za izgradnju 32-bitnih procesora su sve zahtijevi za što boljim performansama. Međutim, jednostavnost izrade i mala cijena dovode do toga će se 8-bitni procesori zadržati još neko vrijeme.
15
2.2.5.Koprocesor
Aplikacije, koje koriste pametne kartice, sve češće zahtijevaju primjenu kriptografskih algoritama. Kriptografski koprocesor je specijalno dizajniran za korišćenje računskih operacija asimetričnih kriptografskih algoritama, implementira operacije eksponenta i modula velikih brojeva . Time je omogućena i kartična generacija 1024-bitnih RSA ključeva. Negativna strana ugradnje dodatne jedinice je povećanje cijene čipa.
2.2.6.Memorija
Pametne kartice sadrže, obično, tri tipa memorije : ROM, EEPROM i RAM.
ROM memorija se koristi za skladištenje nepromjenljivog programskog koda. Sadrži operativni sistem i nepromjenljive podatke korisničkih aplikacija. Proces pisanja stalnih programskih komponenti u nepromjenljivu memoriju, naziva se maskiranje i odvija se u procesu proizvodnje. Nakon te faze, moguće je samo čitanje. Ova memorija čuva svoje podatke i bez prisustva napajanja.
EEPROM – Elektično izbrisiva programljiva memorija, koristi se za trajno smještanje podataka. Ali za razliku od ROM memorije, podaci se mogu upisivati u toku korišćenja kartice. Bitne karakteristike ove EEPROM-a su dužina trajanja, vrijeme pristupa i broj ciklusa pisanja. EEPROM, koji koriste pametne kartice, može trajati duže od 10 godina i izdržati preko 100.000 upisa. Čitanje iz ove memorije je brzo kao i čitanje kod RAM memorije, ali je zato upis sporiji oko 1000 puta.
RAM memorija se koristi za privremeno čuvanje podataka u toku korišćenja kartice. Gubitkom napajanja gube se i podaci čuvani u ovoj memoriji.
2.3.Komunikacijski model
2.3.1.CAD uređaj i aplikacije terminala
Uređaj koji prihvata karticu i komunicira sa njom naziva se uređaj za prihvat kartice – CAD. Dvije su vrste ovih uređaja : čitači pametnih kartica i terminali.
Pametna kartica komunicira sa računarom putem čitača pametnih kartica (eng. Smart Card Reader).Čitač je povezan sa računarom putem serijskog, paralelnog ili USB ulaza. Važno je napomenuti da čitač nema mogućnosti procesiranja podataka.
16
Terminali su računari koji imaju integrisan čitač kao sopstvenu komponentu. Primjer terminala je bankovni ATM terminal. Pored funkcije čitača, terminal ima i mogućnosti procesiranja podataka i interfejs za komunikaciju su korisnikom.
Funkcionalno, terminali i računari sa čitačem pametnih kartica se ne razlikuju, osim po tome što je terminal specijalizovaniji. U daljem izlaganju za oba tipa CAD uređaja koristiće se izraz terminal.
Aplikacije koje komuniciraju sa pametnom karticom, nezavisno od toga da li se nalaze na računaru ili terminalu, nazivaju se aplikacije terminala.
Terminal, aplikacije terminala, pametnu karticu i njihove međusobne veze, u daljem izlaganju, nazivaćemo jednim imenom – kartični sistem.
2.3.2.Komunikacijski model kartičnih sistema
Komunikacijski kanal između pametne kartice i terminala podržava dvosmjernu komunikaciju, tj. prenos podataka u oba smjera, ali ne u isto vrijeme.
Dva računara komuniciraju tako što izmjenjuju pakete podataka, koji se konstruišu na temelju nekog protokola, kao što je TCP/IP. Na sličan način komunicira pametna kartica sa terminalom, koristeći sopstveni format paketa podataka – APDU. APDU nosi naredbu ili odgovor, odnosno razlikujemo APDU naredbu i APDU odgovor. Kartični sistem se bazira na gospodar-sluga komunikacijskom modelu. Ulogu sluge preuzima pametna kartica. Ona preuzima APDU naredbu od terminala i prosljeđuje APDU odgovor.
Slika 2.5 Komunikacijski model pametne kartice
17
2.3.3.APDU protocol
APDU protokol je protokol na nivou aplikacija između terminala i pametne kartice. APDU naredbe obuhvaćene su sa dvije strukture: Prvu koristi aplikacija na strani terminala za slanje naredbi pametnoj kartici, a drugu pametna kartica za slanje odgovora aplikaciji terminala. Navedeni formati poruka se nazivaju APDU naredba (C-APDU) i APDU odgovor (R-APDU).Na slikama 2.6 i 2.7 je prikazana njihova struktura.
Zaglavlje TijeloCla Com P1 P2 Lc Podaci Le
Slika 2.6 APDU naredba
Tijelo Statusna riječPodaci SW1 SW2
Slika 2.7 APDU odgovor
Zaglavlje APDU naredbe se sastoji od 4 bajta: Cla (oznaka klase kojoj pripada instrukcija), Com (oznaka instrukcije), P1 i P2 (parametri instrukcije). Bajt klase identifikuje kategoriju APDU naredbe i APDU odgovora. Instrukcijski bajt određuje instrukciju naredbe. Parametri P1 i P2 se koriste kao proširenja funkcionalnosti instrukcije.
Nakon zaglavlja APDU naredbe slijedi tijelo APDU naredbe. Tijelo je opciono i varijabilne dužine. Lc polje određuje dužinu podataka koji se šalju (broj bajtova). Sljedeće polje sadrži podatke koji se šalju kartici za izvršavanje instrukcije naznačene u zaglavlju. Posljednji bajt APDU naredbe je Le polje. Le polje određuje koliki broj bajtova očekuje aplikacija terminala u sljedećem APDU odgovoru.
Kartica šalje APDU odgovor koji se sastoji od opcionog tijela i obaveznog završnog dijela. Tijelo obuhvata podatke čija je dužina određena Le poljem odgovarajuće APDU naredbe. Završni dio se sastoji od dva polja, SW1 i SW2, koja zajedno prave statusnu riječ. Statusna riječ opisuje u kojem je radnom stanju kartica nakon što izvrši instrukciju APDU naredbe. Npr. statusna riječ “0x9000” znači da je kartica uspješno i u potpunosti izvršila naredbu.
18
2.3.4.TPDU protokol
TPDU protokol je protokol nižeg nivoa. Strukture podataka koje izmjenjuju terminal i kartica nazivaju se TPDU jedinice. Trenutno su u upotrebi dva protokola, T=0 i T=1. Oba su dvosmjerna i asinhrona. T=0 je bajt-orjentisan protokol, što znači da je najmanja prenesena jedinica jedan bajt. Za razliku od njega, kod T=1 protokola, najmanja prenesena jedinica je blok (niz bajta).
2.3.5.ATR
Nakon što se na kontaktnu površinu pametne kartice dovede signal napajanja, signal takta i reset signal, kartica preko I/O linije šalje terminalu ATR poruku. ATR porukom saopštava terminalu vrijednosti parametara potrebnih za uspostavljanje međusobne komunikacije. Dužina ATR poruke je maksimalno 33 bajta. Sadrži informacije o podržanom tipu prenosnog protokola, o brzini prenosa podataka, parametre kartičnog hardvera i druge slične informacije koje terminal mora znati da bi mogao uspostaviti pravilnu komunikaciju s datom karticom.
2.3.6.PTS
Prijemom ATR poruke terminal dobija sve potrebne informacije za uspostavljanje komunikacijskog puta između njega i pametne kartice. Ako terminal želi promijeniti jedan ili više parametara komunikacijskog protokola, šalje kartici PTS poruku. PTS poruka se mora poslati neposredno nakon ATR poruke. Nakon ATR poruke moguće je poslati samo jednu PTS poruku. Terminal na taj način može promijeniti parametre komunikacijskog protokola, naravno, samo one koje dotična kartica dozvoljava.
19
2.4.Operativni sistem pametne kartice
Operativni sistem pametne kartice ima malu sličnost sa personalnim računarom. Između ostalog, nema korisnički interfejs i nema mogućnosti pristupa podacima na drugim medijima.Njihov osnovni zadatak obuhvata prenos podataka, kontrolu izvršavanja naredbi, upravljanje datotekama, upravljanje i izvršavanje kriptografskih algoritama. Optimiziraju sigurnost izvršavanja kartičnih programa i zaštitu kontrole pristupa podacima. Pružaju standardizovani skup instrukcija za izgradnju korisničkih aplikacija.
Standard ISO 7816-4 predstavlja temelj većine današnijh operativnih sistema pametnih kartica. Njegova najbitnija karakteristika je datotečna orijentacija.
Organizacija datoteka kartice temelji se na ISO 7816-4 i ima hijerarhijsku strukturu prikazanu slikom 2.8. ISO 7816-4 definiše tri tipa datoteka. Najviši nivo naziva se glavna datoteka – MF , ispod nje je nekoliko slojeva namjenskih datoteka – DF, i konačno sloj elementarnih datoteka – EF. Svaka datoteka je određena svojim 2-bajtnim identifikatorom – FID-om . Pomoću FID-a se jednoznačno selektuje datoteka. Svaka naredba nad datotekom zahtijeva prethodnu selekciju datoteke.
Slika 2.8 Organizacija datoteka na kartici
20
Unutrašnju strukturu svake datoteke čini zaglavlje i tijelo datoteke. Zaglavlje sadrži dozvole pristupa i informacije o strukturi tijela datoteke. Glavna datoteka i namjenska datoteka u svom tijelu sadrže zaglavlja svih namjenskih i elementarnih datoteka njima neposredno podređenih unutar hijerarhijske datotečne strukture. Namjenska datoteka ima funkciju direktorijuma kod datotečnog sistema personalnog računara. Elementarna datoteka je datoteka podataka, tj. njeno tijelo nosi podatke. Pristup do elementarne datoteke, odnosno do njenih podataka, mora ići kroz datoteke roditelja. Na taj način formiramo logički kanal do elementarne datoteke.
S obzirom na strukturu tijela elementarne datoteke razlikujem četiri vrste EF datoteka (slika 2.9).
Slika 2.9 Tipovi EF datoteka
Transparentna datoteka je karakteristična po tome da se podaci smještaju kao niz bajtova. Kod Linearne fiksne sadržaj je organizovan u blokove jednake dužine, dok su kod Linearne promjenljive blokovi proizvoljne dužine. Ciklična datoteka je organizovana kao prsten sa blokovima jednake dužine (LIFO mehanizam).
S obzirom na to ko koristi podatake razlikujemo radne i interne elementarne datoteke. Radni EF čuva podatke namijenjene spoljnjem svijetu, razmijenjuju se u komunikaciji s terminalom. Podatke internog EF-a isključivo koristi operativni sistem kartice (tajni ključevi, PIN). U bilo kojem slučaju datoteka mora biti selektovana prije izvođenja operacije nad njom. To je ekvivalentno otvaranju datoteke.
21
Sumirajući strukturu datoteka i kontrolu pristupa podacima, podaci na kartici mogu biti zaštićeni individualno, podešavajući uslove pristupa u zaglavlju svake datoteke, i hijerarhijski, grupišući datoteke ispod jedne namjenske datoteke s postavljenim uslovima pristupa.
2.5.Standardi i specifikacije
2.5.1.ISO 7816 Standard
International Organization for Standardization izdala je standard ISO 7816 «Identification cards – Integrated circuit cards with contacts». On definiše najvažnije karakteristike kontaktnih čip kartica:
1. dio – fizičke karakterisitike 2. dio – dimenzije i položaj kontakata 3. dio – električni signali i transportni protokoli 4. dio – međuindustrijske naredbe 5. dio – identifikator aplikacije 6. dio – međuindustrijski elementi podataka 7. dio – međindustrijske SCQL naredbe
2.5.2.GSM
European Telecommunications Standards Institute (ETSI) izdao je standard koji pokriva korišćenje pametnih kartica u javnim i mobilnim telefonskim sistemima. GSM standardi su specifikacija međunarodnog zemaljskog mobilnog telefonskog sistema. Značajni su :
GSM 11.11 – specifikacija SIM modula GSM 11.14 – specifikacija alata za razvoj aplikacija SIM modula GSM 03.48 – sigurnosni mehanizmi alata za razvoj aplikacija SIM modula
2.5.3.EMV
Europay, MasterCard i Visa definisale su EMV specifikaciju. Ona je nastala kao proširenje ISO 7816 standarda u smjeru specifičnih potreba finansijske industrije. Posljednja verzija specifikacije, EMV 96 verzija 3.3.1, izdana je 1998 i dolazi u tri dijela:
EMV ´96 Integrated Circuit Card specifikacija EMV ´96 Integrated Circuit Card Terminal specifikacija EMV ´96 Integrated Circuit Card Application specifikacija
22
2.5.4.PC/SC
PC/SC specifikacija vlasništvo je PC/SC WorkGroup, industrijskog konzorcijuma koji obuhvata sve važnije učesnike industrije pametnih kartica. PC/SC definiše arhitekturu namijenjenu korišćenju pametnih kartica u domenu personalnih računara.
U toj arhitekturi aplikacija terminala se gradi iznad PC/SC servisa i PC/SC menadžera. Servisi enkapsuliraju funkcionalnosti i specifičnosti pojedinih pametnih kartica i omogućuju da se kartici pristupi kroz programske naredbe visokog nivoa, a PC/SC menadžer povezuje operativni sistem personalnog računara sa CAD uređajem. Njih najčešće obezbjeđuje proizvođač kartica.
23
24
3.Cryptoflex 8k
3.1.Uvod
3.1.1.Karakterisitike
Cryptoflex pametne kartice izgrađene su od strane Axalto-a, ogranka kompanije Schlumberger. Bazirane su na maski Schlumberger Multiflex pametne kartice.
Iako postoji nekoliko vrsta Cryptoflex pametnih kartica, izraz Cryptoflex koristiće se samo za Cryptoflex 8k pametnu karticu, pošto je ona tema ovog rada Oznaka 8k nam govori da na kartici postoji približno 8 kilobajta slobodne memorije za upis.
Neke od osnovnih karakteristika ove pametne kartice su: Uspiješno je testirana na 100.000 transakcija (pisanje i brisanje) DES enkripcija 3DES enkripcija RSA-512, RSA-768,RSA-1024 enkripcija Generisanje ključeva 8kb EEPROM-a Koristi se samo T=0 protokol za komunikaciju
3.1.2.Struktura naredbe i odgovora
Razmjena podataka kartice i kartičnog čitača odvija se na nivou APDU protokola. Na slici 3.1 su dati svi elementi poruka naredbe i odgovora.
ID OpisCla Klasa instrukcijeCom Identifikator instrukcije
P1,P2 Ulazni parametri relevantni instrukcijiP3 Parametar identifikuje dužinu podataka
(polje Data) koji se šalju ili primaju.Ack Kartica šalje jedan bajt kojim govori da
je primila naredbu i da je spremna za prenos podataka. U PC/SC sistemima, ovaj bajt presreću drajveri čitača, tako da on
ne stiže do aplikacijeData Podaci koji se šalju ili primaju
SW1,SW2 Statusna riječ
Tabela 3.1 Struktura poruke
25
Kada čitač želi da pošalje podatke kartici, on šalje klasu instrukcije (Cla), identifikator instrukcije (Com) i tri parametra (P1,P2,P3), a zatim čeka na odgovor. Nakon što primi naredbu, kartica vraća identifikator instrukcije kao znak da je spremna da primi podatke. Nakon toga čitač šalje podatke dužine P3. Poslije prijema podataka, kartica šalje statusnu riječ (SW1SW2) čime saopštava da je prijem uspiješno obavljen.Isto tako čitač može da zahtijeva podatke sa kartice. U tom slučaju P3 označava broj bajtova koji se očekuje.
3.1.3.Reset kartice
Kada aplikacija pošalje kartici reset signal dešava se sljedeće:
Kartica vrši provjeru RAM memorije. Ako je detektovana greška, kartica se stavlja u takvo stanje da nisu moguće nikakve operacije nad njom.
Selektuje se glavna datoteka (MF). Čitaču se šalje ATR string koji sadrži podatke bitne za uspostavljanje komunikacije.
3.1.4.Inicijalni datotečni sistem
Kada se dobije Cryptoflex kartica, njen datotečni sistem je organizovan tako da sadrži samo glavnu datoteku(MF) i jednu datoteku u kojoj se nalazi transportni ključ (EF External Key File), neophodan da se otključa kartica. Ponekad se tu nalazi i datoteka sa serijskim brojem kartice. Izgled inicijalnog datotečnog sistema dat je na slici 3.2.
Slika 3.2 Inicijalna organizacija datoteka
26
3.2. Tipovi datoteka u Cryptoflex pametnoj kartici
Nakon što se kartica otključa, moguće je dodavati i brisati direktorijume i datoteke. Nikada ne treba brisati External Key File (0011) koji se nalazi u korijenskom direktorijumu, jer se, kasnije, neće moći pristupiti kartici. Jedan primjer organizacije datoteka dat je na slici 3.3.
Slika 3.3 Organizacija datoteka
Pojedine datoteke imaju rezervisana imena i biće kasnije objašnjene.
3.2.1.Glavna datoteka (MF)
Glavna datoteka je specijalan tip namjenske datoteke i ima FID 3F00. Ona predstavlja korijen datotečnog sistema i automatski se selektuje kada se konektujemo sa karticom. Struktura glavne datoteke je takva da sadrži samo zaglavlje u kome se pohranjuju uslovi izvršavanja pojedinih naredbi.
MF (3F00) ACDir Next AUT
RFU NEVCreate File AUTDelete File AUTRehabilitate AUTInvalidate AUT
Slika 3.4 Uslovi izvršavanja naredbi
27
3.2.2.Namjenske datoteke (DF)
Namjenska datoteka ima funkciju direktorijuma. Ako DF-u postoji datoteka sa spoljnim ključevima (External Key File), onda se ona koristi za zadovoljenje uslova pristupa. U suprotnom koristi se ona koja se nalazi u prvom DF-u iznad.
Svaki DF može sadržati samo po jednu od sljedećih elementarnih datoteka: Ključevi za spoljnu autenitifikaciju(External Authentication Key) Ključevi za internu autentifikaciju(Internal Authentication Key) Korisnički PIN (CHV1) Administratorski PIN (CHV2) RSA javni ključevi (RSA Public Key) RSA tajni ključevi (RSA Private Key)
3.2.3.Elementarne datoteke (EF)
Elementarne datoteke služe za smještanje podataka, kao što su imena, datumi, serijski brojevi, itd. Cryptoflex koristi četiri tipa ovih datoteka:
Transparentna (Transparent) Linearna sa slogovima fiksne dužine (Linear Fixed) Linearna sa slogovima promjenljive dužine (Linear Variable) Linearna sa slogovima organizovanim u prsten (Cyclic)
Transparentne datotekeTransparentne datoteke sadrže niz bajtova, pa su pogodne za smještanje ključeva.
Linearne-fiksne datotekeTijelo ove datoteke čini niz blokova fiksne dužine. Svaki blok čini niz od, maksimalno, 255 bajta. Broj blokova, takođe, ne smije preći dužinu od 255. Svaki put kada se pozove naredba Create File dodaje se novi blok iza posljednjeg koji je kreiran, i pomijera se pokazivač na njega.
Linearne-promjenljive datotekeSve što je rečeno za Linearne-fiksne važi i za ovaj tip datoteka, osim što blokovi mogu biti proizvoljne dužine (1-255 bajta). Linearne datoteke sa blokovima promjenljive dužine mogu biti korisne zbog uštede prostora, kada je potrebna kombinacija kratkih i dugih blokova.
Ciklične datotekeCiklična datoteka je specijalan slučaj linearne-fiksne datoteke, gdje su slogovi iste dužine i pritom su organizovani u prsten. Niz slogova ima LIFO strukturu, tj. kada dodajemo novi slog, prvi slog koji je kreiran biva istisnut iz prstena. Pogodne su za praćenje „posljednih deset akcija“.
28
3.2.4.Rezervisani identifikacioni brojevi datoteka (FID)
Određenoj datoteci se pristupa na osnovu njenog FID-a. Pri kreiranju sopstvenih datoteka mogu se koristiti sve heksadecimalne vrijednosti od 0000 do FFFF osim onih koje su priložene u tabeli 3.5.
Naziv FIDKorisnički PIN(CHV1) 0000
Interni ključevi(Internal Key File) 0001Serijski broj kartice 0002
Rezervisano za buduću upotrebu(RFU) 0005Spoljni ključevi(External Key File) 0011
RSA Privatni ključevi(RSA Private Keys) 0012Rezervisano za buduću upotrebu(RFU) 0015
Administratorski PIN(CHV2) 0100RSA javni ključevi (RSA Public Keys) 1012
Odgovor na reset (ATR) 2F01Korijenski direktorijum 3F00
Rezervisano za buduću upotrebu(RFU) 3F11Rezervisano za buduću upotrebu(RFU) 3FFFRezervisano za buduću upotrebu(RFU) FFFF
Tabela 3.5 Rezervisani FID-ovi
3.2.5.Izračunavanje veličine datoteke
Veličina korisnog prostora koji se može iskoristiti za kreiranje novih sadržaja, kod Cryptoflex 8k pametne kartice, sa inicijalnim setom datoteka, iznosi 7690 bajta. Svaka datoteka sastoji se od zaglavlja koje je opisuje i tijela u koje se smiješta sadržaj.
Ukupna veličina datoteke je zbir zaglavlje plus tijelo.U tabeli 3.6 date su veličine zaglavlja karakterističnih datoteka.
Tip (naziv) Tip (hex ID) Zaglavlje MF 38 24BDF 38 24B
EF-Transparentna 01 16BEF-Fiksni slog 02 16B
EF-Promjenljivi slog 04 16BEF-Ciklična 06 16B
Tabela 3.6 Veličine zaglavlja datoteka
29
3.2.6.Korisnički i administratorski PIN (CHV1 I CHV2)
Korisnički i administratorski lični identifikacioni brojevi su smješteni u transparentne datoteke sa identifikacionim brojevima 0000 (CHV1) i 0100 (CHV2). Struktura ovih datoteka data je u tabeli 3.7.
Transp. 0000(CHV1)/0100(CHV2) zaglavlje-16B AC
Uslovi
Read Binary NEVUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1 Aktivacioni bajt(bit0=1-aktivan,bit0=0
neaktivan)1B
2 RFU 1B3 RFU 1B
4-11 PIN 8B12 Maksimalan broj pokušaja 1B13 Preostali broj pokušaja 1B
14-21 Pin za deblokaciju 8B22 Maksimalan broj pokušaja 1B23 Preostali broj pokušaja 1B
Tabela 3.7 Struktura CHV datoteka
3.2.7.Datoteka sa ključevima (External Key File)
Datoteka u koji se smiještaju ključevi potrebni za zadovoljenje AUT i PRO uslova pristupa i autentifikaciju aplikacije terminala prema pametnoj kartici, naziva se External Key File i ima identifikacioni broj 0011.
Na novoj, nepersonalizovanoj pametnoj kartici nalazi se jedna datoteka ovog tipa u korijenskom direktorijumu (3F00) sa dva ključa. Prvi ključ je fabrički (na poziciji 0), a drugi je transportni ključ (pozicija 1). Cryptoflex karticu dobijamo zaključanu, da ne bi došlo do pokušaja falsifikovanja prilikom transporta., a odvojenom pošiljkom dobijamo transportni ključ. Da bi se otključala potrebno je izvršiti naredbu VerifyKey nad ključem na poziciji 1.
Distribucija fabičkog ključa se ne vrši. Pošto su ključevi heksadecimalni stringovi, umjesto VerifyKey instrukcije, radije se koristi ExternalAuthenticate.
U tabeli 3.8 data je struktura ovih datoteka.
30
Transp. 0011 (External Key File) zaglavlje-16B AC
Uslovi
Read Binary NEVUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1 RFU 1B2 Dužina ključa 0 (x bajta) 1B3 ID algoritma (00-DES, 02-3DES) 1B
4-(3+x) Ključ 0 (00) xB4+x Maksimalan broj pokušaja 1B5+x Preostali broj pokušaja 1B6+x Dužina ključa 1 8B... ... ...
Tabela 3.8 Struktura External Key File datoteke
Dužina ključa 00 znači da nema više ključeva u datoteci, dok dužina 01 znači da ključ na datoj poziciji ne postoji, ali da nije posljednji u datoteci.
3.2.8.Datoteka sa ključevima (Internal Key File)
Transparentna datoteka koja sadrži DES ključeve. Koristi sa da izvrši autentifikaciju kartice prema aplikaciji terminala. FID broj ove datoteke je 0001.
Transp. 0011 (External Key File) zaglavlje-16B AC
Uslovi
Read Binary NEVUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1 RFU 1B2 Dužina ključa 0 (x bajta) 1B3 ID algoritma (00-DES, 02-3DES) 1B
4-(3+x) Ključ 0 (00) xB4+x Maksimalan broj pokušaja 1B5+x Preostali broj pokušaja 1B6+x Dužina ključa 1 8B... ... ...
Tabela 3.9 Strukturan Internal Key File datoteke
31
Dužina ključa 00 znači da nema više ključeva u datoteci, dok dužina 01 znači da ključ na datoj poziciji ne postoji, ali da nije posljednji u datoteci. Datoteka može da sadrži, maksimalno, 16 ključeva.
3.2.9.Datoteke sa RSA ključevima (RSA Key File)
Postoje dva tipa ovih datoteka: Datoteka sa privatnim ključevima (EF RSA-PRIV FID-0012) Datoteka sa javnim ključevima (EF RSA-PUB FID-1012)
One sadrže privatne i javne ključeve neophodne za kriptografske operacije. Više od jednog ključa može biti smješteno u datoteku i ključevi mogu biti različite dužine. Dužina bloka za privatne ključeve može biti 163,243 ili 323 bajta zavisno od toga da li je RSA-512, RSA-768 ili RSA-1024 bajtna enkripcija, dok dužina bloka za javne ključeve je 167,247 ili 327 bajta.
Kod Cryptoflex 8k kartice, kada se izvrši naredba RSA Key Generate , generišu se javni i tajni ključevi i smještaju se u odgovarajuće datoteke, tako što se, uvijek, napišu preko prvog ključa (pozicija 0). Ključevi se mogu dodavati i manualno, korišćenjem naredbe UpdateBinary.
EF RSA-PRI (RSA-512 bit)
Transp. 0012 (EF RSA-PRI) zaglavlje-16B AC
Uslovi
Read Binary NEVUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1-2 Dužina bloka(npr. 00A3) 2B3 Ključ 0 (00) 1B
4-35 Primarni faktor javnog koeficijenta(P) 32B36-67 Primarni faktor javnog koeficijenta(Q) 32B68-99 Inverzno P (a = Q-1 mod P) 32B100-131 Privatni subeksponent(c=Ks mod (P - 1)) 32B132-163 Privatni subeksponent(f=Ks mod (Q - 1)) 32B164-165 Dužina bloka 2B
... ... ...
Tabela 4.0 Struktura datoteke EF RSA-PRI (RSA-512 bit)
32
EF RSA-PRI (RSA-768 bit)
Transp. 0012 (EF RSA-PRI) zaglavlje-16B AC
Uslovi
Read Binary NEVUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1-2 Dužina bloka(npr. 00A3) 2B3 Ključ 0 (00) 1B
4-51 Primarni faktor javnog koeficijenta (P) 48B52-99 Primarni faktor javnog koeficijenta (Q) 48B100-147 Inverzno P (a = Q-1 mod P) 48B148-195 Privatni subeksponent(c=Ks mod (P - 1)) 48B196-243 Privatni subeksponent(f=Ks mod (Q - 1)) 48B244-245 Dužina bloka 2B
... ... ...
Tabela 4.1 Struktura datoteke EF RSA-PRI (RSA-768 bit)
EF RSA-PRI (RSA-1024 bit)
Transp. 0012 (EF RSA-PRI) zaglavlje-16B AC
Uslovi
Read Binary NEVUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1-2 Dužina bloka(npr. 00A3) 2B3 Ključ 0 (00) 1B
4-67 Primarni faktor javnog koeficijenta (P) 64B68-131 Primarni faktor javnog koeficijenta (Q) 64B132-195 Inverzno P (a = Q-1 mod P) 64B196-259 Privatni subeksponent(c=Ks mod (P - 1)) 64B260-323 Privatni subeksponent(f=Ks mod (Q - 1)) 64B324-325 Dužina bloka 2B
... ... ...
Tabela 4.2 Struktura datoteke EF RSA-PRI (RSA-1024 bit)
33
EF RSA-PUB (RSA-512bit)
Transp. 1012 (EF RSA-PUB) zaglavlje-16B AC
Uslovi
Read Binary ALWUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1-2 Dužina bloka(npr. 00A3) 2B3 Ključ 0 (00) 1B
4-67 Javni koeficijent (N) 64B68-99 J0 –Montgomerijeva konstanta 32B100-163 H –Montgomerijeva konstanta 64B164-167 Javni eksponent (e) 4B168-169 Dužina bloka 2B
... ... ...
Tabela 4.3 Struktura datoteke EF RSA-PUB (RSA-512 bit)
EF RSA-PUB (RSA-768bit)
Transp. 1012 (EF RSA-PUB) zaglavlje-16B AC
Uslovi
Read Binary ALWUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1-2 Dužina bloka(npr. 00A3) 2B3 Ključ 0 (00) 1B
4-99 Javni koeficijent (N) 96B100-147 J0 –Montgomerijeva konstanta 48B148-243 H –Montgomerijeva konstanta 96B244-247 Javni eksponent (e) 4B248-249 Dužina bloka 2B
... ... ...
Tabela 4.4 Struktura datoteke EF RSA-PUB (RSA-768 bit)
34
EF RSA-PUB (RSA-1024bit)
Transp. 1012 (EF RSA-PUB) zaglavlje-16B AC
Uslovi
Read Binary ALWUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1-2 Dužina bloka(npr. 00A3) 2B3 Ključ 0 (00) 1B
4-131 Javni koeficijent (N) 128B132-195 J0 –Montgomerijeva konstanta 64B196-323 H –Montgomerijeva konstanta 128B324-327 Javni eksponent (e) 4B328-329 Dužina bloka 2B
... ... ...
Tabela 4.5 Struktura datoteke EF RSA-PUB (RSA-1024 bit)
3.2.10.Serijski broj kartice (EF ICC Serial Number)
Serijski broj kartice se čuva u transparentnoj datoteci sa brojem 0002. Služi za identifikovanje svake kartice među milionim sličnih.
Transp. 0002 (EF ICC Serial Number) zaglavlje-16B AC
Uslovi
Read Binary ALWUpdate Binary NEV
RFU NEVRFU NEV
Rehabilitate NEVInvalidate NEV
Bajt Opis Dužina1-4 Serijski broj 4B5 Korisnički kod 1B6 RFU 1B7 RFU 1B
Tabele 4.6 Struktura datoteke EF ICC Serial Number
35
3.2.11.Odgovor na reset (ATR)
Kada se ubaci u čitač ili kada se resetuje, kartica šalje odgovor na reset u vidu heksadecimalnog stringa. ATR datoteka se ugrađuje u masku u toku proizvodnje i sadrži podatke potrebne za uspostavljanje komunikacije.
Pošto je ugrađen u masku, ATR se ne može direktno modifikovati, ali se zato može dodati nova datoteka sa FID-om 2F01 i u njoj postaviti noci parametri.
Transp. 2F01 (ATR) zaglavlje-16B AC
Uslovi
Read Binary ALWUpdate Binary AUT
RFU NEVRFU NEV
Rehabilitate AUTInvalidate AUT
Bajt Opis Dužina1 Dužina ATR string (x) 1B
2-(x+1) ATR string xB
Tabela 4.7 Struktura datoteke ATR
36
3.3.Uslovi pristupa (Access Conditions)
U sljedećoj tabeli je predstavljeno 16 uslova pristupa koji mogu biti primijenjeni na DF ili EF datotekama.
Vrijednost AC Vrijednost AC0 ALW 8 CHV1&AUT1 CHV1 9 CHV2&AUT2 CHV2 A RFU3 PRO B RFU4 AUT C RFU5 RFU D RFU6 CHV1&PRO E RFU7 CHV2&PRO F NEV
Tabela 4.8 Uslovi pristupa
3.3.1.ALW (Always)
Akcija je uvijek moguća.
3.3.2.CHV1 (Card Holder Verification-User)
Uslov koji se zadovoljava kada se izvrši naredba Verify CHV nad relevantnom CHV1 datotekom. Relevantna je ona CHV1 datoteka koja se nalazi u tekućem direktorijumu. Ako se ne nalazi u datom direktorijumu, naredba se izvršava nad datotekom u roditeljskom direktorijumu. Broj pokušaja je određen brojačem, koji se smanjuje ukoliko se naredba neuspiješno izvrši, ali se i vraća na maksimalnu vrijednost ako se VerifyCHV uspiješno obavi.
3.3.3.CHV2 (Card Holder Verification-Admin)
Sve što važi za CHV1, važi i za CHV2
3.3.4.PRO (Protected)
PRO uslov pristupa zahtijeva autentifikaciju kako naredbe tako i podataka koji se šalju kartici. Može biti primijenjen nad sljedećim naredbama:
Create File (for a DF) Create Record Decrease Delete File (for a DF) Dir Next (for a DF)
37
Increase Invalidate Rehabilitate Update Binary Update Record
Ovaj uslov pristupa mora se obezbijediti svaki put prije izvršenja neke naredbe, pod uslovom da ga ta naredba zahtijeva.
Da bi se zadovoljili PRO uslovi pristupa moraju se izvršiti sljedeći koraci:
1) Kombinuju se parametri naredbe (Com,P1,P2), dužina podataka (Length), podaci (Input) i broj bajta koji se dodaje na kraj (Fill Block) da bi se dobio blok dijeljiv sa 8.
Com P1 P2 Length Input Fill Block1B 1B 1B 1B xB yB
Tabela 4.9 Struktura bloka
2) Izvrši se GetChallenge naredba koja vraća zahtijevani broj bajta ( 8 u ovom slučaju).3) Koristeći 8 bajta dobijenih od kartice i prvih 8 bajta bloka izračunava se ekluzivno ILI
(XOR) i dobija rezultat od 8 bajta.4) Koristeći DES ključ koji se nalazi u odgovarajućoj EF External Key File datoteci,
enkriptovati XOR rezultat.5) Koristeći enkriptovanu vrijednost i sljedećih 8 bajta bloka, ponovo, izračunati XOR.6) Ponavljati korake 4 i 5 dok se ne dobije finalni kriptogram od 8 bajta.7) Od finalnog kriptograma se uzima samo prvih 6 bajta.8) Rezultat (Crypto) se šalje zajedno sa naredbom kao što je to naznačeno u tabeli 4.10
Cla Com P1 P2 P3 Data TrailLength Input Fill Bl. Crypto
1B 1B 1B 1B 1B 1B xB yB 6B
Tabela 4.10 Struktura zahtijeva
Nakon što dobije podatke, kartica ponavlja operacije 1-7 i izračunava finalni kriptogram. Ako je isti kao i onaj što smo poslali, PRO uslov pristupa je zadovoljen. Broj pokušaja je određen brojačem, koji se vraća na početnu vrijednost ukoliko uspiješno izvrši autentifikacija.
3.3.5.AUT
AUT uslov pristupa se zadovoljava nakon uspiješnog izvršavanja VerifyKey ili ExternalAuthenticate naredbe. Ovaj uslov pristupa zahtijeva da se aplikacija terminal potvrdi svoju autentičnost kartici.
38
3.3.6.CHV1&PRO
Zahtijeva zadovoljenje CHV1 i PRO uslova.
3.3.7.CHV2&PRO
Zahtijeva zadovoljenje CHV2 i PRO uslova.
3.3.8.CHV1&AUT
Zahtijeva zadovoljenje CHV1 i AUT uslova.
3.3.9.CHV2&AUT
Zahtijeva zadovoljenje CHV2 i AUT uslova.
3.3.10.NEV
Akcija može biti uvijek izvršena.
39
3.4.Cryptoflex naredbe
Operativni sistem Cryptoflex 8k pametne kartice podržava dva tipa naredbi: Naredbe za manipulaciju datotekama Kriptografske naredbe
Instrukcije za manipulaciju datotekama
ChangeCHV CreateFile CreateRecord Decrease DeleteFile DirNext GetResponse Increase Invalidate ReadBinary
ReadRecord Rehabilitate Seek Select UnblockCHV UpdateBinary UpdateRecord VerifyCHV VerifyKey
Kriptografske instrukcije
ExternalAuthenticate GetChallenge InternalAuthenticate RSAKeyGenerate
RSASignature SHA1-Intermediate SHA1-Last UpdateBinaryEnciphered
40
3.4.1.ChangeCHV (Izmjena PIN-a)
Naredba služi za promjenu postojećeg PIN-a. CHV datoteka ne mora biti selektovana da bi se izvršila ova instrukcija.
PIN-ovi su 8 bajta dugi. Koriste se heksadecimalne vrijednosti za bilo koje standardne ASCII karaktere. Zajedno sa instrukcijom šalju se vrijedosti starog i novog PIN-a. Nakon izvršenja instrukcije kartica vraća statusnu riječ (SW1SW2).
AC: Nisu definisani
Instrukcija Cla Com P1 P2 P3ChangeCHV F0 A4 00 CHV type 10
Parametri
Parametar Dužina ZnačenjeP1 1B 00P2 1B CHV tip (00-CHV1, 02-CHV2)P3 1B Dužina podataka koji se šalju uz naredbu (16B)
Data 16B Stari PIN (8B)+Novi PIN(8B)SW1SW2 2B Statusna riječ
3.4.2.CreateFile
Instrukcija CreateFile se koristi za kreiranje datoteke (DF ili EF) u izabranom direktorijumu. Nakon što se kreira, datoteka biva automatski selektovana i spremna za unos podataka (UpdateBinary).
Zaglavlje i struktura tijela datoteke se šalju zajedno sa naredbom.
AC: Moraju biti zadovoljeni oni uslovi pristupa koji su naznačeni za datoteku u kojoj se kreira nova.
Instrukcija Cla Com P1 P2 P3CreateFile F0 E0 Init records x
ParametriNaziv Dužina Značenje
P1 1B Inicijalizacija tijela datotekaP2 1B Broj blokovaP3 1B Dužina podataka koji se šalju (x)
Data xB Podaci koji opisuju strukturu datotekeSW1SW2 2B Statusna riječ
41
P1Vrijednost Značenje
00 Tijelo datoteke se inicijalizuje nulama (00)
FF Bez inicijalizacije tijela (FF)
P2Broj slogova Značenje
00 Za DF i transparentnu EF01-FF Broj slogova u datoteci (maksimalno 255)
P3Tip datoteke Dužina u heksadecimalnom obliku
DF 16BTransparentna EF 16B
EF sa promjenljivim slogom 16BEF sa fiksnim slogom 17B
Ciklična EF 17B
DataBajt EF DF Dužina1-2 RFU(FF FF) RFU(FF FF) 2B3-4 Veličina datoteke Veličina datoteke 2B5-6 FID FID 2B7 Tip datoteke 38 1B
8-11 Uslovi pristupa Uslovi pristupa 4B12 Aktivacioni bajt Aktivacioni bajt 1B
13 Broj bajta nakon bajta 13 (03 ili 04)
03 1B
14-16 Pozicije ključeva Pozicije ključeva 3B17 Dužina sloga - 1B
Bajt 3-4: Određuje veličinu datoteke. Ako je ona sa fiksnim slogom ili ciklična, veličina je broj slogova pomnožen sa dužinom sloga. U slučaju DF-a veličina mora biti veća od sume veličina svih datoteka u njoj plus veličina zaglavlja.
Uslovi pristupa za DFBajt 8-11:
U bajte 8-11 se postavljaju uslovi pristupa koji će se morati zadovoljiti kada se budu koristile naznačene naredbe nad direktorijumom koji se kreira. Npr. Ako želimo da za naredbu DeleteFile bude zadovoljen uslov pristupa AUT, a za CreateFile uslov pristupa CHV1, bajt 10 se formira na sljedeći način: MSN=4, LSN=1 => byte10=41 .
Bajt MSN LSN8 RFU RFU9 DirNex RFU10 DeleteFile CreateFile
42
11 RFU RFU
Bajt 12: Posljednji bit određuje da li datoteka poslije kreiranja postaje aktivna. (1-da,0-ne).
Bajt 14-16:Za svaku naredbu opisanu u bajtima 9-11, za koju je uslov pristupa AUT, naznačava sa broj ključa u relevantnom ExternalKeyFile-u.
Bajt MSN LSN14 DirNex RFU15 DeleteFile CreateFile16 RFU RFU
Uslovi pristupa za EFBajt 8:Samo posljednja dva bita su važna. Opisuju da li su dozvoljene naredbe Increase i Decrease.
Bit 7 Bit 8 Značenje0 0 Decrease i Increase nisu dozvoljene1 0 Samo je Decrease dozvoljeno0 1 Samo Increase je dozvoljeno1 1 Dozvoljene su obje naredbe
Bajt 9-11:
U bajte 9-11 se postavljaju uslovi pristupa koji će se morati zadovoljiti kada se budu koristile naznačene naredbe nad datotekom koja se kreira.
Bajt MSN LSN9 ReadBinary,Seek UpdateBinary,Decrease10 Increase CreateRecord11 Rehabilitate Invalidate
Bajt 12: Posljednji bit određuje da li datoteka poslije kreiranja postaje aktivna. (1-da,0-ne).
Bajt 14-16:Za svaku naredbu opisanu u bajtima 9-11, za koju je uslov pristupa AUT, naznačava sa broj ključa u relevantnom ExternalKeyFile-u.
Bajt MSN LSN14 ReadBinary,Seek UpdateBinary,Decrease15 Increase CreateRecord16 Rehabilitate Invalidate
43
3.4.3.CreateRecord
Naredba zapisuje jedan slog na logički kraj datoteke. Koristi se za EF sa fiksnim i EF sa promjenljivim slogom. Prije upisa, datoteka mora biti selektovana.
AC: Moraju biti ispunjeni oni uslovi koji su naznačeni za ovu naredbu prilikom kreiranja datoteke.
Instrukcija Cla Com P1 P2 P3CreateRecord C0 E2 00 00 x
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B x – dužina sloga
Data xB Slog koji se upisujeSW1SW2 2B Statusna riječ
3.4.4.Decrease
Koristi se na brojnim vrijednostima u Cikličnim datotekama. Decrease naredba umanjuje vrijednost posljednjeg sloga za zadati broj. Nakon uspiješnog izvršenja, slog postaje prvi u datoteci.
AC: Moraju biti ispunjeni oni uslovi koji su naznačeni za ovu naredbu prilikom kreiranja datoteke.
Instrukcija Cla Com P1 P2 P3Decrease F0 30 00 00 03
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B 03
Data 3B Vrijednost za koju se umanjujeSW1SW2 2B Statusna riječ
44
3.4.5.DeleteFile
Instrukcija briše datoteke iz selektovanog direktorijuma i oslobađa prostor na kartici. Brisanje, u ovom slučaju, znači pisanje vrijednosti 0 (00) preko datoteke.
Kada se kreiraju, nove datoteke su poređane u FIFO redoslijedu. Na primjer, ako su zapisana četiri EF-a, a zatim izbrišemo drugi, taj izbrisani prostor ne može se više iskoristiti, jer kada pravimo novu datoteku, ona ne biva kreirana na mjestu datoteke 2, nego iza četvrte. Stoga, datoteke se moraju brisati u obrnutom redoslijedu u odnosu na onaj kojim su zapisane. To je najizraženije kod DF-ova, jer ako izbrišemo DF, a nismo izbrisali sav sadržaj iz njega, prostor ostaje nupotrebljiv.
AC: Moraju biti ispunjeni oni uslovi koji su naznačeni za ovu naredbu prilikom kreiranja datoteke.
Instrukcija Cla Com P1 P2 P3DeleteFile F0 E4 00 00 02
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B 02
Data 2B FIDSW1SW2 2B Statusna riječ
3.4.6.DirNext
Naredba izlistava datoteke koje sadrži selektovani direktorijum, svakim pozivanjem po jednu.
AC: Moraju biti ispunjeni oni uslovi koji su naznačeni za ovu naredbu prilikom kreiranja direktorijuma.
Instrukcija Cla Com P1 P2 P3DirNext F0 A8 00 00 01≤x≤0F
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B 02
Data xB Informacije o datoteciSW1SW2 2B Statusna riječ
45
3.4.7.ExternalAuthenticate
Ova naredba, kao i VerifyKey, služi kako bi aplikacija terminala dokazala autentičnost kartici, tj. dokazala da posjeduje ključ u relevantnoj datoteci sa ključevima (ExternalKeyFile). Za razliku od instrukcije VerifyKey , kojom se ključ šalje, nekriptovan, od aplikacije ka kartici, kod ExternalAuthenticate instrukcije šalje se zahtijev za nasumičnim osmobajtnim stringom, koji se kriptuje poznatim ključem, a zatim se taj kriptogram šalje kartici na dekriptovanje i poređenje. Samim time, ova naredba je mnogo sigurnija od VerifyKey.
Koriste se DES i 3DES algoritmi za enkripciju.
Dokazivanje autentičnosti putem naredbe ExternalAuthenticate se odvija u sljedećim koracima:
1) Izvršava se instrukcija GetChallenge2) Kartica vraća osmobajtni string3) String se kriptuje putem DES ili 3DES sa ključem koji se nalazi nakartici, a finalni
kriptogram se formira odsijecanjem posljednja dva bajta.4) Kriptogram (6 bajta) se, zajedno sa pozicijom na kojoj se nalazi ključ u
ExternalKeyFile-u, šalje kartici.5) Kartica poredi naš kriptogram, sa rezltatom koji je ona dobila, i ako se podudaraju,
AUT uslov pristupa je zadovoljen.
AC: Nisu definisani
Instrukcija Cla Com P1 P2 P3ExternalAuthenticat
eC0 82 00 00 07
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B Dužina podataka koji se šalju
Data 7B Pozicija ključa+kriptogramSW1SW2 2B Statusna riječ
3.4.8.GetChallenge
Koristi se za dobijanje nasumičnog alfanumeričkog stringa, koji se koristi za kriptografske potrebe. Ovom naredbom moguće je dobiti, najviše, 64 bajta. Za DES operacije Challenge mora biti 8 bajta, dok je za RSA 64,96 ili 128 bajta, zavisno od toga da li je u pitanju RSA-512,RSA-768 ili RSA-1024 . Ta bi se dobio tekst duži od 64 bajta, naredba se izvršava više puta.
46
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3GetChallenge C0 84 00 00 x
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B Dužina podataka koji se zahtijevaju
Data xB rezultujući Challenge SW1SW2 2B Statusna riječ
3.4.9.GetResponse
Ova naredba se koristi za dobijanje podataka izračunatih i adresiranih od strane prethodne naredbe. Instrukcija GetResponse se mora pozvati odmah nakon naredbe na koju se odnosi.
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3GetResponse C0 C0 00 00 x
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B Dužina podataka koji se zahtijevaju
Data xB Podaci SW1SW2 2B Statusna riječ
Parametar Data ima specifične vrijednosti za pojedine naredbe. U sljedećim tabelama su prikazana značenja parametra Data za pojedine instrukcije.
DecreaseBajt Značenje Dužina
1-x Vrijednost umanjenog sloga xB(x+1)-(x+3) Vrijednost za koju se umanjuje 3B
IncreaseBajt Značenje Dužina
1-x Vrijednost uvećanog sloga xB(x+1)-(x+3) Vrijednost za koju se uvećava 3B
47
InternalAuthenticateBajt Značenje Dužina
1-6 Prvih 6 bajta kriptograma 6B1-8 Potpun kriptogram 8B
RSA-512 SignatureBajt Značenje Dužina
1-64 Kriptogram 64B
RSA-768 SignatureBajt Značenje Dužina
1-96 Kriptogram 96B
RSA-1024 SignatureBajt Značenje Dužina
1-128 Kriptogram 128B
Nakon Select EFBajt Značenje Dužina
1-2 RFU 2B3-4 Dužina tijela datoteke 2B5-6 FID 2B7 Tip datoteke 1B
8-11 Uslovi pristupa 4B12 Status 1B13 Dužina podataka koji slijede(01 ili 02) 1B14 RFU 1B
15 Dužina sloga(EF-fiksni slog,ciklični EF)
1B
Nakon Select DFBajt Značenje Dužina
1-2 RFU 2B3-4 Slobodan prostor u DF-u 2B5-6 FID 2B7 Tip datoteke (38) 1B
8-11 Uslovi pristupa 4B12 Status 1B
13
Dužina podataka koji slijede05=Ne postoje CHV datoteke
07=Postoji samo CHV109=Postoje i CHV1 i CHV2
1B
14 Karakterisitke direktorijuma: 1B
48
bit8=0 CHV1 ne postoji ili nije aktivanbit8=1 CHV1 postoji i aktivan je
15 Broj DF-ova u tekućem DF-u 1B16 Broj EF-ova u tekućem DF-u 1B17 00=CHV ne postoji
02=CHV1 i deblokirajući CHV104=postoje svi
1B
18 RFU 1B19 Broj preostalih CHV1 pokušaja 1B20 Broj preostalih deblokirajućih pokušaja 1B21 Bit3-bit0=broj preostalih CHV2 pokušaja
Bit7=0 CHV2 neaktivanBit7=1 CHV2 aktivan
1B
22
Bit3-bit0=broj preostalih deblokirajućih CHV2 pokušaja
Bit7=0 CHV2 neaktivanBit7=1 CHV2 aktivan
1B
23 RFU 1B
SHA-1 LastBajt Značenje Dužina
1-x Vrijednost SHA-1 operacije xB
3.4.10.Increase
Ova naredba je suprotna naredbi Decrease. Koristi se nad brojnim vrijednostima slogova u cikličnim datotekama.
AC: Moraju biti ispunjeni oni uslovi koji su naznačeni za ovu naredbu prilikom kreiranja datoteke.
Instrukcija Cla Com P1 P2 P3Increase F0 32 00 00 03
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B 03
Data 3B Vrijednost za koju se uvećavaSW1SW2 2B Statusna riječ
49
3.4.11.InternalAuthenticate
Naredba služi da kartca dokaže da dijeli isti ključ sa aplikacijom terminala. Za razliku od naredbe ExternalAuthenticate, ova instrukcija koristi ključeve iz datoteke InternalKeyFile.
Izvršavanje se vrši u sljedećim koracima:1) Šalje se VerifyCHV naredba, da bi se zadovoljio CHV uslov pristupa.2) Aplikacija terminala šalje naredbu InternalAuthenticate sa pozicijom odgovarajućeg
ključa i nasumičnim stringom. Kartica, kriptuje string i vraća statusni broj, koji može biti 6106 ili 6108. U prvom slučaju, posljednji bajt nam govori da će rezultujući kriptogram biti odsječen (prvih šest bajta), a u drugom da će biti potpun.
3) Aplikacija šalje instrukciju GetResponse, sa dužinom 06 ili 08, da bi dobila kriptogram.4) Aplikacija , takođe, vrši enkripciju početnog stringa sa istim ključem. Ako se dobijeni
rezultat podudara sa rezultatom dobijenim sa kartice, operacija je uspiješno obavljena.
AC: Mora se zadovoljiti CHV uslov pristupa
Instrukcija Cla Com P1 P2 P3InternalAuthenticat
eC0 88 00 key 08
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B Pozicija ključaP3 1B Dužina stringa koji se šalje
Data 8B StringSW1SW2 2B Statusna riječ
3.4.12.Invalidate
Naredba se koristi za proglašavanje datoteke nevažećom.
AC: Moraju se zadovoljiti uslovi pristupa koji su naznačeni za ovu naredbu.
Instrukcija Cla Com P1 P2 P3Invalidate F0 04 00 00 00
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B 00
Data 0B -SW1SW2 2B Statusna riječ
50
3.4.13.ReadBinary
Naredba služi za čitanje stringa(niz bajta) iz transparentne datoteke. Kao parametri komande se šalju: početna pozicija (0000-FFFF oblika MSB,LSB) i broj bajta koji treba da se pročita. Datoteka mora biti selektovana prije čitanja.
AC: Moraju se zadovoljiti uslovi pristupa koji su naznačeni za ovu naredbu.
Instrukcija Cla Com P1 P2 P3ReadBinary C0 B0 MSB LSB x
ParametriNaziv Dužina Značenje
P1 1B MSB-prvi bajt pozicijeP2 1B LSB-posljednji bajt pozicijeP3 1B x-dužina podataka za pročitati
Data xB Vraćeni podaciSW1SW2 2B Statusna riječ
3.4.14.ReadRecord
Koristi se za čitanje vrijednosti jednog sloga iz datoteka sa linearnim i fiksnim slogom i iz cikličnih datoteka. Prije izvršavanja, EF mora biti selektovan.
Postoje dva načina čitanja slogova : apsolutni i tekući. Oba ova načina se koriste za isčitavanje slogova kod EF sa fiksnim i EF sa promjenljivim slogom, ali se samo tekući se koristi kod cikličnih datoteka. Način čitanja se postavlja u parametru P2. Pri apsolutnom (P2=04), slog koji se treba pročitati, naznačen je u parametru P1.U tekućem modu, P2 se postavlja za čitanje prvog sloga (P2=00) ili posljednjeg sloga (P2=01). Ponovnim izvršavanjem naredbe isčitava se, u prvom slučaju naredni (P2=02), a u drugom slučaju prethodni slog (P2=03).
AC: Moraju se zadovoljiti uslovi pristupa koji su naznačeni za ovu naredbu.
Instrukcija Cla Com P1 P2 P3ReadRecord C0 B2 Num Mode x
ParametriNaziv Dužina Značenje
P1 1B num-broj sloga koji se čitaP2 1B mode-način čitanjaP3 1B x-dužina sloga koji se čita
Data xB Vraćeni slogSW1SW2 2B Statusna riječ
51
3.4.15.Rehabilitate
Naredba se koristi za aktiviranje datoteke.
AC: Moraju se zadovoljiti uslovi pristupa koji su naznačeni za ovu naredbu.
Instrukcija Cla Com P1 P2 P3Rehabilitate F0 44 00 00 00
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B 00
Data 0B -SW1SW2 2B Statusna riječ
3.4.16.RSAKeyGenerate
Naredba, nakon uspiješnog izvršenja, generiše par ključeva (tajni i javni) i smješta ih u odgovarajuće datoteke. RSA-PRI i RSA-PUB datoteke moraju biti kreirane i inicijalizovane prije pozivanja ove naredbe. Novi ključevi se postavlju na poziciju 00.
AC: Moraju se zadovoljiti CHV uslovi pristupa.
Instrukcija Cla Com P1 P2 P3RSAKeyGenerate F0 46 00 Mode 04
ParametriNaziv Dužina Značenje
P1 1B 00
P2 1B
Mode-dužina koeficijenta javnog ključaMode=40 za RSA-512 bitMode=60 za RSA-768 bitMode=80 za RSA-1024 bit
P3 1B Dužina eksponenta javnog ključaData 4B Eksponent javnog ključaSW1SW2 2B Statusna riječ
52
3.4.17.RSASignature
RSASignature naredba se koristi za RSA enkripciju stringa poslatog od strane aplikacije. Najčešće je to HASH koji treba da se potpiše. Da bi se dobio kriptogram, odmah nakon ove instrukcije mora se pozvati naredba GetResponse. Primalac kriptograma mora da posjeduje javni ključ da bi ga verifikovao.
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3RSASignature C0 88 00 Num 40/60/80
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B Broj ključa u RSA_PRI
P3 1B Željena dužina kriptograma(64B,96B,128B)
Data 64/96/128B Kriptogram SW1SW2 2B Statusna riječ
3.4.18.Seek
Instrukcija Seek se koristi za provjeru da li linearna datoteka sadrži slog sa traženim stringom. Nakon uspiješnog izvršavanja, slog u kome je pronađen traženi string postaje tekući.
AC: Moraju biti zadovoljeni oni uslovi pristupa koji su naznačeni za ovu operaciju.
Instrukcija Cla Com P1 P2 P3Seek F0 A2 Pos Mode x
ParametriNaziv Dužina Značenje
P1 1B Pos-redni broj bajta (u slogu) od koga se pretražuje
P2 1B Mode=0 –od početka unaprijedMode=2 –od tekućeg sloga unaprijed
P3 1B x-dužina stringa koji se tražiData xB Traženi string
SW1SW2 2B Statusna riječ
53
3.4.19.Select
Naredba pomijera datotečni pokazivač na željenu datoteku. Može se primijeniti na sledeće datoteke:
Bilo koju datoteku koja je u hijerarhiskom smislu direktni potomak tekućeg direktorijuma.
Bilo koju datoteku koja je direktni potomak korijenskog direktorijuma. Na direktorijum koji je roditelj trenutno selektovane datoteke Korijenski direktorijum (3F00)
Upiješno izvršena instrukcija vraća statusnu riječ u obliku 61xx, gdje xx predstavlja dužinu podaka (informacije o selektovanoj datoteci) koji se mogu dobiti pozivanjem naredbe GetResponse.
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3Select C0 A4 00 00 02
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B 02Data 2B FID datoteke
SW1SW2 2B Statusna riječ
3.4.20.SHA-1Intermediate
Koristi se izvršavanje SHA-1 operacije nad blokovima čija dužina prelazi 64 bajta.Na primjer, ako je blok dužine 80 bajta, instrukcijom SHA-1Intermediate se izračunava SHA-1 za prva 64 bajta, a instrukcijom SHA-1Last za ostatak,tj. 16 bajta.
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3SHA-1Intermediate 14 40 00 00 40
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B 40-64 bajta dužina blokaData 64B Hash blok
SW1SW2 2B Statusna riječ
54
3.4.21.SHA-1Last
Kristi se za izvođenje operacije SHA-1 za blokove dužine manje od 64 bajta.
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3SHA-1Last 04 40 00 00 x
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B 00P3 1B x-dužina HASH blokaData xB Hash blok
SW1SW2 2B Statusna riječ
3.4.22.UnblockCHV
Kada se dostigne maksimalan broj neuspješnih pokušaja, CHV datoteka postaje blokirana. Da bi se vratila u prvobitno stanje potrebno je izvršiti ovu naredbu. Nakon što se uspiješno izvrši, brojač se vraća na vrijednost 10 (heksadecimalno).
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3UnblockCHV F0 2C 00 Num 10
ParametriNaziv Dužina Značenje
P1 1B 00
P2 1B 01-CHV102-CHV2
P3 1B 10Data 16B Deblokirajući+novi PIN
SW1SW2 2B Statusna riječ
55
3.4.23.UpdateBinary
Instrukcija UpdateBinary namijenjena je ažuriranju sadržaja u transparentnim datotekama.
AC: Moraju biti zadovoljeni oni uslovi pristupa koji su naznačeni za ovu operaciju.
Instrukcija Cla Com P1 P2 P3UpdateBinary C0 D6 MSB LSB x
ParametriNaziv Dužina Značenje
P1 1B MSB-prvi bajt adrese od koje se unosiP2 1B LSB-posljednji bajt adreseP3 1B x-dužina stringa koji se unosiData xB string
SW1SW2 2B Statusna riječ
3.4.24.UpdateBinaryEnciphered
Naredba UpdateBinaryEnciphered daje isti rezultat kao i naredba UpdateBinary. Kod ove naredbe podaci se kriptuju, koristeći DES, ključem koji se odnosi na ovu naredbu(broj ključa postavljen prilikom kreiranja datoteke), a zatim sešalju kartici koja ih dekriptuje i upisuje na željeno mjesto.
AC: Moraju biti zadovoljeni oni uslovi pristupa koji su naznačeni za ovu operaciju.
Instrukcija Cla Com P1 P2 P3UpdateBinaryEnciphere
dC0 DE MSB LSB x
ParametriNaziv Dužina Značenje
P1 1B MSB-prvi bajt adrese od koje se unosiP2 1B LSB-posljednji bajt adreseP3 1B x-dužina kriptogramaData xB kriptogram
SW1SW2 2B Statusna riječ
56
3.4.25.UpdateRecord
Instrukcija UpdateRecord upisuje sadržaj u naznačeni slog selektovane datoteke. Koristi se kod linernih sa fiksnim i promjenljivim slogom i kod cikličnih datoteka.
Postoje dva načina upisivanja slogova : apsolutni i tekući. Oba ova načina se koriste za upisivanje slogova kod EF sa fiksnim i EF sa promjenljivim slogom, ali se samo tekući se koristi kod cikličnih datoteka. Način upisivanja se postavlja u parametru P2. Pri apsolutnom (P2=04), slog u koji treba pisati, naznačen je u parametru P1.U tekućem modu, P2 se postavlja za pisanje prvog sloga (P2=00) ili posljednjeg sloga (P2=01). Ponovnim izvršavanjem naredbe upisuje se, u prvom slučaju u naredni (P2=02), a u drugom slučaju u prethodni slog (P2=03).
AC: Moraju se zadovoljiti uslovi pristupa koji su naznačeni za ovu naredbu.
Instrukcija Cla Com P1 P2 P3UpdateRecord C0 DC Num Mode x
ParametriNaziv Dužina Značenje
P1 1B num-broj sloga u koji se pišeP2 1B mode-način upisivanjaP3 1B x-dužina sloga koji se upisuje
Data xB Slog koji se upisujeSW1SW2 2B Statusna riječ
3.4.26.VerifyCHV
Instrukcija se koristi za verifikovanje PIN-a koji korisnik unese i za ostvarenje CHV uslova pristupa. Broj pokušaja je određen vrijedošću brojača. Nakon što brojač dostigne vrijednost 0(00), CHV datoteka postaje blokirana.
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3VerifyCHV C0 20 00 CHV 08
ParametriNaziv Dužina Značenje
P1 1B 00
P2 1B 01=CHV102=CHV2
P3 1B 08Data 8B PINSW1SW2 2B Statusna riječ
57
3.4.27.VerifyKey
Naredba VerifyKey se koristi da bi aplikacjia terminala dokazala da posjeduje ključ koji se nalazi u odgovarajućem ExternalKeyFile-u. Nakon uspješnog izvršenja obezbjeđuje se AUT uslov pristupa koji je validan dok se ne desi sljedeće:
Ključ je blokiran Kartica je resetovana Promijenjen je tekući direktorijum (u novom postoji ExternalkeyFile)
AC: Nisu definisani.
Instrukcija Cla Com P1 P2 P3VerifyKey F0 2A 00 Key 08
ParametriNaziv Dužina Značenje
P1 1B 00P2 1B Key-redni broj ključaP3 1B 08
Data 8B ključSW1SW2 2B Statusna riječ
3.4.28.Statusne riječi
Vrijednost Značenje61xx xx-dužina podataka koji čekaju na preuzimanje6106 6 bajta čekaju na preuzimanje6108 8 bajta čeka na preuzimanje6281 Podaci su vjerovatno oštećeni6283 Proglašenje datoteke nevažećom neuspiješno6283 EF ili DF je neaktivan6300 Autentifikacija neuspiješna6581 Problem sa memorijom6581 Ažuriranje neuspiješno67xx P3 nije valjan6700 Dužina ulaznih parametara je prevelika6981 EF ne postoji ili ne postoji ključ u datoteci6982 Nisu zadovoljeni uslovi pristupa6983 Svi pokušaji su iskorišteni.Ključ je blokiran.6986 EF nije selektovan6A80 FID već postoji.6A80 Slog je predugačak6A82 FID nije pronađen ili nema više datoteka u DF6A83 Izvan dometa ili slog nije pronađen6A84 Isuviše malo slobodnog prostora6B00 Pogrešni P1P2
58
6D00 Nepoznata komanda6E00 Nepoznata klasa komande6F00 Neidentifikovan tehnički problem9000 Komanda je uspiješno završena
9850 Increase/Decrease ne može biti izvedeno.Max/Min dostignut.
59
60
4.Biblioteka SmartCard
4.1.Uvod
Pošto Windows .NET Framework nema ugrađenu podršku za rukovanje pametnim karticama i čitačima, javila se potreba za izgradnjom biblioteka koje bi obezbjeđivale ove funkcije na višem nivou od Windows API funkcija.
SmartCard.dll je biblioteka pisana u C# programskom jeziku, na .NET platformi. Nastala je kao odgovor na potrebe pristupa i manipulacije pametnim karticama i njihovim čitačima. Izgrađena je oslanjajući se na Windows Smart Card API (WinSCard.dll ) .
61
4.2.Struktura biblioteke SmartCard
Biblioteka Smartcard sastoji se iz dvije logičke cjeline. Prvu čine svi elementi iz korijena biblioteke, osim podbiblioteke Cryptoflex. Namijenjeni su rukovanju čitačima pametnih kartica i komunikaciji čitač-kartica na nivou komande.Drugi dio predstavlja podbiblioteka Cryptoflex u kojoj su obrađeni mehanizmi za rukovanje Cryptoflex pametnim karticama, sa posebnim osvrtom na Cryptoflex8k.
Slika 4.1 Elementi biblioteke SmartCard
4.3.Podbiblioteka SmartCard.Controls
SmartCard.Controls, ogranak biblioteke SmartCard, je kolekcija klasa namijenjenih rukovanju čitačima i ostvarivanju komunikacije čitač-pametna kartica, na višem nivou od Windows Smart card API funkcija.
Slika 4.2 Elementi biblioteke SmartCard.Controls
62
Napomena: Elementi UML dijagrama su dati bez atributa i funkcija zbog preglednosti.
Klasa SCWin sadrži definicije Windows Smart card API funkcija, klase SCErrorHandler i SCException namijenjene su obradi izuzetaka.
4.3.1.SCReader
U ovoj klasi obrađeni su svi potrebni metodi koji obezbjeđuju rukovanje čitačima pametnih kartica i komunikaciju čitač-pametna kartica. Izgrađeni su tako da nisu specijalizovani za jedan tip čitača ili jedan tip kartica, nego pružaju mogućnost izbora čitača, a podržavaju bilo koju pametnu karticu, uključujući i memorijske kartice. U principu, ova klasa predstavlja jezgro u procesu izgradnje specijalizovanih biblioteka koje će se baviti određenim tipom kartica.
Slika 4.3 Klasa SCReader (sa karakterističnim metodima)
63
Metodi namijenjeni rukovanju čitačem
Da bi se uspiješno uspostavila komunikacija čitač-kartica, prethodno je potrebno izabrati čitač koji će se koristiti i alocirati resurse neophodne za njegovo funkcionisanje. Da bi određeni čitač bio spreman za prijem kartice potrebno je uspiješno izvršiti sljedeće korake:
1) Pozvati SCEstablishContext 2) Potrebno je iz svih grupa tipova čitača koje sistem poznaje izabrati onu koja će se
koristiti. To se ostvaruje pozivanjem metoda SCListReaderGroups . Za PC/SC sisteme koristi se SCard$DefaultReaders grupa.
3) Iz određene grupe čitača, pozivanjem metoda SCListReaders, dobijaju se svi čitači koji su u toj grupi.
4) Od svih čitača biramo jedan koji ćemo koristiti.
Na drugi način, moguće je samo pozvati SCSelectReader(SCListReaderGroups) , pa da se u Windows formi u obliku dijaloga izaberu grupe i željeni čitač. Neophodni parametri se smještaju u konfiguracijsku datoteku, da se ne bi svaki put prolazila ista procedura.
Uspostavljanje komunikacije sa pametnom karticom
Nakon što smo uspiješno inicijalizovali čitač, potrebno je uspostaviti komunikaciju sa karticom. Da bi se to ostvarilo potrebno je pozvati SCConnect, sa parametrima SCShareMode i SCProtocols. Prvi parametar nam govori na koji način želimo da koristimo čitač ( a ujedno i karticu), u dijeljenom, ekskluzivnom ili direktnom režimu. Dijeljini režim podrazumijeva da i druge aplikacije mogu istovremeno koristiti čitač. Za razliku od njega, ekskluzivni režim nam govori da niko drugi ne može koristiti čitač i karticu, osim nas. Oba ova režima zahtijevaju karticu u čitaču, u suprotnom metod SCConnect vraća grešku. Direktni režim se koristi onda kada aplikacija zahtijeva povezivanje se čitačem bez obzira da li se unutra nalazi kartica.Parametar tipa SCProtocols naznačava koji ćemo protokol koristiti pri prenosu podataka.
Nakon inicijalizacije čitača i povezivanja sa pametnom karticom, dobijaju se svi potrebni parametri neophodni za dalji rad. Sve promjenljive koje se odnose na čitač i pametnu karticu se nalaze u dijeljenom slogu ScardResources, koji se nalazi u korijenu biblioteke SmartCard.
Slika 4.4 Slog SCardResources
64
Prenos podataka
Prenos podataka, tj. slanje naredbi kartici i preuzimanje odgovora, ostvaruje se pozivanjem metoda SCTransmit. Svaka transakcija ima svoj početak i svoj kraj, tako da je na početku potrebno pozvati SCStartTransaction,čime se čitač priprema za prenos podataka, a nakon obavljene transakcije SCEndTransaction, koji oslobađe sve resurse zauzete pri prenosu. Sve ovo obezbjeđuje da prenos prenos podataka teče nesmetano, tj. blokira druge aplikacije i ne dozvoljava njihov pristup kartici u toku jedne transakcije.
4.4.Podbiblioteka SmartCard.Cryptoflex
Podbiblioteka SmartCard.Cryptoflex sadrži metode namijenjene rukovanju Cryptoflex pametnim karticama. Sadrži tri klase: CryptoflexCard, Cryptoflex8k i Personalization.
Slika 4.5 Struktura podbiblioteke SmartCard.Cryptoflex (Karakteristični elementi)
65
4.4.1.CryptoflexCard
Klasa CryptoflexCard sadrži metode karakteristične za sve Cryptoflex pametne kartice. Ona predstavlja jezgro koje se može koristiti za realizaciju metoda za rukovanje svim vrstama kartica iz Cryptoflex programa.
Slika 4.6 Klasa CryptoflexCard (nepotpun prikaz)
Metodi, koji su implementirani u ovu klasu, ne zahtijevaju poznavanje Cryptoflex instrukcija i velikog broja parametara koji se vežu za instrukcije, ali je ipak potrebno razumijevanje Cryptoflex datotečnog sistema opisanog u Poglavlju 3 da bi se mogli pravilno koristiti.
66
4.4.2.Cryptoflex8k
Ova klasa u potpunosti nasljeđuje klasu CryptoflexCard, ali je i nadograđuje novim metodima koji su karakteristični za karticu Cryptoflex 8k.
Slika 4.7 Strukura klase Cryptoflex8k
Novi metodi se odnose na RSA kriptografske operacije i veličinu ključeva koji se koriste, tako da možemo kreirati datoteke tajnog i javnog ključa, generisati ključeve, za operacije RSA-512,RSA-768 i RSA-1024. RSASignature metod služi za RSA kriptovanje ulaznog stringa, obično je to HASH koji treba potpisati.
4.4.3.Personalization
Klasa Personalization sadrži jedan primjer kako bi se trebala izvršiti personalizacija kartice. Pozivom metoda personalize() kreira se direktorijum sa svim potrebnim datotekama, generišu se javni i tajni ključevi, upisuju eksterni i interni ključevi...
Slika 4.8 Struktura klase Personalization
67
4.5.Terminal
SCTerminal je klasa sa skupom metoda koji obezbjeđuju inicijalizaciju čitača, povezivanje čitača sa karticom i praćenje događaja koji su u direktnoj vezi sa čitačem i karticom. Nalazi se u korijenu biblioteke SmartCard.
Nakon što se pokrene (Start()), terminal osluškuje da li je ubačena kartica u čitač. Ako se to uradi vraća se događaj OnCardIn. Nakon toga moguće je povezati se sa karticom metodom Connect(), nakon čega je moguće slati naredbe kartici i preuzimati odgovore. Nakon što se izvadi kartica iz čitača, izvršava se događaj OnCardOut.
Rukovanje događajima je, ovdje, vrlo važno zato što oni nisu obrađeni na relaciji Windows-SmartCardReader-SmartCard. Kartica se obraća čitaču, bez prethodnog zahtijeva, samo onda kada se resetuje (to može biti i kada se ubacuje u čitač i dok je u čitaču), te je zato bilo neophodno obraditi događaje.
Slika 4.9 Struktura klase SCTerminal
68
4.6.Ostali, bitni elementi biblioteke SmartCard
4.6.1.SmartCard.SCUtils
Nalazi se u korijenu biblioteke i sadrži skup metoda kao što je konverzija podataka jednog tipa u drugi (bajti u heksadecimalne, heksadecimalne u string vrijednosti, itd.), te metode za upis vrijednosti u konfiguracionu datoteku...
Slika 4.10 SCUtils
4.6.2.SmartCard.SCardCommand
Slog SCardCommand je skup parametara komande grupisan u slog.
Slika 4.11 Slog ScardCommand
69
4.6.3.SmartCard.SCCrypto
Ova klasa je namijenjena za kriptovanje podataka koristeći DES enkripciju. Kao ključevi se koriste relevantni ključevi na kartici.
Slika 4.12 SCCrypto klasa
4.6.4.SmartCard.SCPinDialog
Vizuelna forma koja od korisnika traži da unese odgovarajući PIN.
Slika 4.12 SCPinDialog klasa
4.6.5.SmartCard.SCDisposition
Vrijednosti nabrojivog tipa SCDisposition su ona stanja u kojima želimo da ostavimo karticu nakon uspiješno završene transakcije. Podrazumijevana vrijednost je LeaveCard, tj. ostavljamo karticu u stanju u kome je bila prije transakcije.
Slika 4.13 SCDisposition
70
4.6.6.SmartCard.SCCardStates
Nabrojivi tip podataka koji predstavlja stanja u kojima se može naći kartica.
Slika 4.14 SCCardStates
4.6.7.SmartCard.SCProtocols
Vrijednosti protokola koji se mogu koristiti. Za pametne kartice, najčešće se koriste protokoli T0 i T1. Kod Cryptoflex 8k kartice podržan je samo T0 protokol.
Slika 4.15 SCProtocols
4.6.8.Smartcard.SCShareMode
Vrijednosti ovog nabrojivog tipa već su opisane u poglavlju 4.3.1 SCReader.
Slika 4.16 SCShareMode
71
4.6.9.Cryptoflex.EFFileInfo i Cryptoflex.DFFileInfo – informacije o datoteci
Nakon što se izvrši selekcija određene datoteke, dobijaju se informacije o toj datoteci, bilo da se radi od DF ili EF tipu. Ako je u pitanju DF, informacije su smještene u slog DFFileInfo, u suprotnom nalaze se u slogu EFFileInfo.
Slika 4.17 Slogovi DFFileInfo i EFFileInfo
4.6.10.Cryptoflex.EFAccessConditions
Prilikom kreiranja EF datoteke, potrebno je naznačiti uslove pristupa za određene operacije. Uslov pristupa sa određenom operacijom povezuje slog EFAccessConditions.
Slika 4.18 EFAccessConditions slog
72
4.6.11.Cryptoflex.AccessConditions
Nabrojivi tip AccessConditions sadrži uslove pristupa i njihove vrijednosti.
Slika 4.19 AccessConditions
4.6.12.Cryptoflex.FileTypes
Nabrojivi tip koji sadrži imena tipova datoteka i njihove vrijednosti.
Slika 4.20 FileTypes
Napomena:U poglavlju 4 data je struktura biblioteke SmartCard i opis njenih najbitnijih dijelova (ne svih elemenata), dovoljno da se razumije njen koncept.
73
74
5.Implementacija
5.1.Programsko okruženje
Biblioteka SmartCard pisana je u C# programskom jeziku, jeziku .NET razvojnog okruženja. Korišteni operativni sistem je WindowsXP SP2 na kome je instaliran i pravilno konfigurisan .NET Framework verzija 1.1.
SmartCard biblioteka nije vezana ni za jedan SDK koji je namijenjen za rukovanje čitačima i pametnim karticama. Izgrađena je od početka, oslanjajući se samo na WinSCard API.
Tokom izrade i za testiranje korišten je EZ100PU čitač pametnih kartica i Cryptoflex8k pametna kartica.
5.2.Tok izrade
Prilikom izrade biblioteke SmartCard, najviše vremena je potrošeno na upoznavanje i razumijevanje funkcionisanja čitača, pametnih kartica, komunikacije čitač-kartica, zatim strukturu protokola i naredbi.
Postojao je problem sa kriptovanjem podataka koristeći DES algoritam. Naime, ovaj algoritam spada u simetrične algoritme koji koriste ključ i IV vektor za kriptovanje podataka, dok je prilikom kriptovanja kartica koristila samo ključ. Ostao je problem koju vrijednost naznačiti za ključ. Konsultacijom sa odjeljenjem za tehničku podršku Axalto korporacije problem je riješen tako što se IV vektor postavlja na nultu vrijednost.
Još jedan problem se javio sa DES kriptovanjem podataka. Koristeći DESCryptoProvider (za kriptovanje blokova od 8 bajta) nakon kripcije od 8 bajta dobijao se rezultat od 16 bajta. Naime, DESCryptoProvider je modifikovani DES alogoritam, gdje je, ako drugačije nije naznačeno,podrazumijevana dužina bloka 8 bajta, a PaddingMode PKCS7. PaddingMode.PKCS7 nam, u ovom slučaju, govori da se ulaznom bloku od n bajta dodaje još 1-8 bajta tako da rezultujući blok bude djeljiv sa 8. tako bi se za blok od 8 bajta dobijao izlazni kriptogram od 16 bajta. Problem je riješen tako što se PaddingMode postavlja na None.
Pri korištenju biblioteke o problemima sa DES enkripcijom ne treba razmišljati, pošto je kreirana klasa SCCrypto koja sadrži metode DESEncrypt i DESDecrypt koji zahtijevaju samo unos ključa i stringa koji se kriptuje.
75
5.3.Eksploatisanje biblioteke SmartCard
Biblioteka SmartCard, iako je pisana u C# programskom jeziku može se koristiti i u drugim jezicima .NET razvojnog okruženja. Nakon što se uključi u projekat, potrebno je u zaglavlju pozvati dijelove koji se koriste. U narednoj tabeli je dat prikaz kako se biblioteka poziva iz različitih programskih jezika .NET okruženja.
C#
using SmartCard;using SmartCard.Controls;using SmartCard.Cryptoflex;
Visual Basic
Imports SmartCardImports SmartCard.ControlsImports SmartCard.Cryptoflex
J#
import SmartCard.*;import SmartCard.Controls.*;import SmartCard.Cryptoflex.*;
Tabela 5.1 Pozivanje biblioteke SmartCard
76
6.Zaključak
Ovaj rad je imao za cilj upoznavanje sa pametnim karticama, njihovim čitačima, postojećim protokolima i komunikacijom. Nakon toga, kreirana je biblioteka namijenjena rukovanju pametnim karticama i čitačima pametnih kartica, sa posebnim osvrtom na Cryptoflex pametne kartice.
Iako pametne kartice podliježu određenim standardima, ipak se javlja neusklađenost među njima. Tako na primjer instrukcija kod jedne kartice ne odgovara instrukciji druge, stoga aplikacija napravljena da eksploatiše jedan tip kartica možda neće biti validna za upotrebu sa drugim tipom pametnih kartica. Zato je, u biblioteci SmartCard, jedan dio namijenjen rukovanju karticama na nivou naredbe, tako da se može iskoristiti za izgradnju specijalizovanih metoda za rukovanje svih ostalih pametnih kartica, uključujući i memorijske kartice. Drugi dio predstavlja metode na višem nivou i specijalizovani su za operacije sa Cryptoflex8k pametnim karticama.
Rad je pokrio jednu izuzetno zanimljivu oblast. Pametne kartice će u budućnosti, gotovo sigurno, imati veliku ekspanziju u oblastima kao što su transakcija podataka, identifikacija, autorizacija...
U pionirskim danima pametnih kartica rečeno je da će jednoga dana postati važne isto koliko i računari. Napravljena je samo jedna greška, jer su pametne kartice, već, mini računari.
77
7.Literatura
[1] W. Rankl, W. Effing:Smart Card Handbook Second Edition
[2] Smart Cards and Private Currencies by J. Orlin Grabbe
[3] Axalto http://axalto.com
[4]CryptoflexReferenceManualhttp://cryptoflex.com
[5]MSDN 2003
78
8.Biografija
Dalibor Trišić, rođen 2.12.1976 u Tuzli.Gimnaziju završio 1995 godine u Bijeljini, nakon čega se upisuje na Elektrotehnički Fakultet u Novom Sadu, na smjeru „Računarska tehnika“.
Dalibor Trišić
79
KLJUČNA DOKUMENTACIJSKA INFORMACIJA
Redni broj,RBR:
Identifikacioni broj,IBR:
Tip dokumentacije, TD: monografska publikacija
Tip zapisa, TZ: tekstualni štampani dokument
Vrsta rada, VR: diplomski rad
Autor, Dalibor TrišićAU:
Mentor, prof.dr. Zora KonjovićMN:
Naslov rada, Biblioteka za rukovanje smart karticama u .NET okruženjuNR:
Jezik publikacije,JP: srpski (latinica)
Jezik izvoda, JI: srpski / engleski
Zemlja publikovanja,ZP: Srbija i Crna Gora
Uže geografsko područje, UGP: Vojvodina
Godina, GO: 2005
Izdavač, IZ: autorski reprint
Mesto i adresa, MA: Novi Sad, Fakultet tehničkih nauka, Odsek za
računarstvo i automatiku, Trg D. Obradovića 6
Fizički opis rada, FO:
Naučna oblast, NO: računarske nauke
Uža naučna oblast, SmartCard sistemi, .NET razvojno okruženje
80
ND: informacioni sistemi
Predmetna odrednica/ključne reči, PO:
UDK broj,UDK:
Čuva se u, ČU: Biblioteka Fakulteta tehničkih nauka,
Trg D. Obradovića 6, Novi Sad
Važna napomena,VN
Izvod,IZ:
Datum prihvatanja teme odnaučno-nastavnog veća,DP:
Datum odbrane, DO:
Članovi komisije,KO
Predsednik: Milan Vidaković
Član: Branko Milosavljević
Mentor: Zora Konjović
KEY WORDS DOCUMENTATION
Accession number,ANO:
Indentification number,INO:
Document type,DT: Monographic publication
Type of recordset,TR: Textual material
Contents code,CC: BSC Thesis
Author, Dalibor Trišić
81
AU:
Mentor,MN:
Title,TI:
Language of text,LT: Serbian (latin)
Language of abstract,LA: Serbian and English
Country of publication,CP: Serbia and Montenegro
Locality of publication,LP: Vojvodina
Publication year,PY: 2005
Publisher,PB: Author reprint
Publish place,PL: Novi Sad, 21000, SCG
Trg Dositeja Obradovića 6
Physical descriptionPD:
Scientific field,SF: Computing Science
Scientific discipline,SD: Information systems
Subject/Key words,SX:
UC:
Holding data,AB: Library of Faculty of Technical Sciences,Novi Sad, SCGNote,NT:
Abstract,AB:
82
Accepted by ScientificBoard on:ASP:
Defended on,DE:
Thesis defended board (named/degree/title/faculty),DB:
President: Milan Vidaković
Member: Branko Milosavljević
Member: Zora Konjović
83