INTELLIGENS KÁRTYÁK Útmutató az intelligens kártyák biztonsági értékeléséhez
Útmutató az intelligens kártyák biztonsági értékeléséhez
-2-
Tartalom
1. Az intelligens kártyák alaptípusai ................................................................................. 3 2. Intelligens kártya komponensek.................................................................................... 5 2.1 Hardver komponensek ..............................................................................................................5 2.2 Szoftver komponensek ..............................................................................................................7
3. Architektúrák.................................................................................................................. 8 4. Az intelligens kártya életciklusa .................................................................................. 10 5. Az intelligens kártyával kapcsolatos szerepkörök ..................................................... 13 6. Operációs rendszerek ................................................................................................... 14 6.1 Fájl rendszerek ........................................................................................................................14 6.2 Alkalmazói protokoll adategységek ........................................................................................15 6.3 Java Card.................................................................................................................................18 6.4 Windows for smart cards.........................................................................................................19 6.5 MultOS....................................................................................................................................19 6.6 A multiapplikációs platformok gazdagép oldali elérhetősége .................................................19
7. Felhasznált források ..................................................................................................... 20
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
-3-
Ez a dokumentum az intelligens kártyák biztonsági értékeléséhez szükséges alapfogalmakat tekinti át, s az értékelések eredményeinek megértéséhez szükséges háttér ismereteket tekinti át. 1. Az intelligens kártyák alaptípusai Először (a későbbi összehasonlíthatóság kedvéért) tekintsünk egy nem intelligens kártyatípust. mágnes csíkos kártya Olyan kártya, melynek nincs feldolgozó kapacitása (CPU-ja), s kevesebb mint 100 bájt a memóriája. /Sokkal kevésbé biztonságosak, mint az intelligens kártyák, ugyanakkor olcsóbbak náluk. (A mágnes csíkos kártyák olvasói viszont majd egy nagyságrenddel drágábbak az intelligens kártyaolvasóknál, s kevésbé megbízhatóak is.) intelligens kártya Egy hitelkártya nagyságú plasztik kártya, melybe egy mikrochip-et ágyaztak. Sokkal biztonságosabb és sokkal több memóriát tartalmaz, mint egy mágnes csíkos kártya. Az intelligens kártyák két alaptípusa az érintkezéses és az érintkezés nélküli (intelligens) kártya. Ezután nézzük az intelligens kártyák két alaptípusát, illetve ennek kombinációit és változatait. érintkezéses kártya Az érintkezéses kártyáknak egy 1 cm átmérőjű aranyszínű modulja van, 8 érintkezéssel, melyek a modul alatt elhelyezkedő mikrochip-hez vezetnek. A mikrochip vagy csak memóriát (memória kártya), vagy memóriát és egy központi feldolgozó egységet (CPU-t) tartalmaz. memória kártya Olyan érintkezéses kártya, melynek nincs feldolgozó kapacitása (CPU-ja), de több, mint 100 bájt a memóriája. érintkezés nélküli kártya Az érintkezés nélküli kártyáknak (az érintkezéses kártyákhoz hasonlóan) van egy beágyazott mikrochip-jük, ugyanakkor egy miniatűr rádió-adóvevőt, s egy antennát is tartalmaznak. Csak egy olvasó közelében képesek működni (onnan nyerik az energiát). Az olvasóval az antennán keresztül, fizikai érintkezés nélkül, rádiófrekvenciás technológiával kommunikál. hibrid kártya Az érintkezéses, az érintkezés nélküli és a mágnes csíkos kártyák valamilyen kombinációja. Amennyiben az érintkezéses és az érintkezés nélküli kártya is a kombináció része, akkor ezt úgy kell érteni, hogy a hibrid kártyának két interfésze (érintkezéses és érintkezés nélküli), egyúttal két chip-je is van, s a két chip megfelelő interfészei elkülönülnek egymástól.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
-4-
kettős interfészű intelligens kártya Olyan intelligens kártya, melynek két interfésze (érintkezéses és érintkezés nélküli) de csak egy chip-je van. A két interfész tehát ugyanahhoz a közös chip-hez tartozik.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
-5-
2. Intelligens kártya komponensek Az alábbi ábra egy tipikus IC /integrált áramkör/, illetve intelligens kártya hardver szerkezetét szemlélteti:
ROM/FLASH - dedikált SW - beágyazott SW
RAM
EEPROM
-adat -kód (átmeneti)
-adat -beágyazott SW
Órajel áramkör
Biztonsági áramkör
CPU Reset logika
1. ábra
I/O interfész
RNG
Crypto Pr.
1. ábra: Egy tipikus intelligens kártya felépítése 2.1 Hardver komponensek Integrált áramkör (IC) Elektronikus komponens(ek), amely(ek)et feldolgozó és/vagy memória kezelő funkciók végrehajtására terveztek. Egy tipikus IC a következő elemeket tartalmazza: központi feldolgozó egység, memória rendszer (felejtő és nem-felejtő memóriákkal), bemeneti/kimeneti vonalak, biztonsági komponensek. Tartalmazza ezen kívül az IC fejlesztő/gyártó saját tulajdonú (általában titokban tartott) a teszteléshez szükséges (IC-hez tartozó) IC dedikált szoftvert. Az IC-hez tartozó szoftver lehet IC beágyazott szoftver (ezt másként IC förmvernek is nevezik), vagy az IC-n kívüli tesztprogramoknak egy biztonságkritikus része. Egy IC tartalmazhat elő-megszemélyesítő adatokat is. központi feldolgozó egység Az intelligens kártyák központi feldolgozó egysége általában egy 8 bites mikrokontroller, mely a Motorola 6805, vagy az Intel 8051 parancskészletét használja (memória és regiszter manipulációk, címzési módok, bemeneti/kimeneti műveletek). Egy tipikus intelligens kártya processzorán egy 1024 bites RSA dekódolás / aláíráslétrehozás 10-20 másodpercig tart. Ezért több chip speciális kriptográfiai koprocesszort is tartalmaz az időigényes kriptográfiai műveletek felgyorsítására.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
-6-
memória rendszer Az intelligens kártyák memória szerkezete háromféle memóriát tartalmaz: csak olvasható memóriát (ROM), nem felejtő memóriát és (viszonylag nem jelentős méretű) véletlen hozzáférésű (felejtő) memóriát (RAM). Csak olvasható memória (ROM) Ebben a memória fajtában tárolódik az operációs rendszer, a különböző (pl. a kommunikáció végzéséhez és a kártya fájl-rendszer kezeléséhez szükséges) általános célú rutinok, valamint a speciális célú titkosító és aritmetikai rutinok. A kódok és adatok a kártya gyártása során kerülnek a nem-felejtő memóriába, s a későbbiekben ezek már nem változtathatók. Nem felejtő memóriák Ebben a memória fajtában tárolódnak a változó adatok (pl. különböző számláló értékek, hűség pontok, tárolt pénzértékek). Az alkalmazások olvashatják és írhatják ezt a memória fajtát, de úgy nem használhatják, ahogy a véletlen hozzáférésű memóriákat. Bár ez a memória fajta is írható, de az írási műveletek célja és hatékonysága teljesen eltérő. Neve abból ered, hogy képes megőrizni adattartalmát a kártya áramellátásának megszűnésekor is. /Tipikus nem felejtő memória: EEPROM/ Véletlen hozzáférésű (felejtő) memóriák (RAM) Az alkalmazások nagy hatékonysággal (gyorsan és lényegében korlátlanul sokszor) olvashatják és írhatják ezt a memória fajtát, de adattartalma elveszik, ha az áramellátás megszűnik. Az átmeneti számítások ideális helyszíne.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
-7-
2.2 Szoftver komponensek IC-hez tartozó (dedikált) szoftver Az IC fejlesztő által kifejlesztett, az IC-be ágyazott, saját szoftver (s így az IC förmver része). Az ilyen szoftverek tesztelési célokat szolgálnak (IC-hez tartozó teszt szoftver), de megkönnyíthetik a hardver használatát és/vagy egyéb kiegészítő szolgáltatásokat is nyújthatnak (IC-hez tartozó támogató szoftver). IC-hez tartozó (dedikált) teszt szoftver Az IC-hez tartozó szoftver azon része, melyet az eszköz tesztelésére használnak, de a 4. - 7. fázisokban semmilyen funkciót nem biztosít. (a fázisokat a .. ábra szemlélteti). IC-hez tartozó (dedikált) támogató szoftver Az IC-hez tartozó szoftver azon része, mely funkciókat biztosít a 4. - 7. fázisokban. Bizonyos részeinek használata korlátozott lehet az egyes fázisokban. alap szoftver Az intelligens kártya beágyazott szoftverének azon része, mely az IC általános funkcionalitásáért felelős (mint amilyen egy operációs rendszer, az általános rutinok és az értelmezők (interpreters). (IC) alkalmazói szoftver Az intelligens kártya beágyazott szoftverének alkalmazásokra szánt része. Az alkalmazói szoftvert vagy ROM-ban tárolják, vagy EEPROM-ba, esetleg Flash memóriába töltik be. (IC) beágyazott szoftver (IC förmver) Olyan szoftver, amely be van ágyazva egy intelligens kártyába, de nem az IC tervezője fejlesztette ki. Magában foglalja azon beágyazott szoftvert, mely biztosítja az IC általános funkcionalitását /mint egy operációs rendszer, általános rutinok, vagy értelmezők (lásd intelligens kártya alap szoftver)/, másik része megvalósíthat alkalmazásokat (lásd intelligens kártya alkalmazás szoftver). A beágyazott szoftvert az 1. fázisban tervezik, és az intelligens kártya termék élet ciklusának a 3. fázisában, vagy egy még későbbi fázisban ágyazzák be az intelligens kártyába. /Az intelligens kártya beágyazott szoftverét alkalmazás függőnek tekintik, míg az IC-hez tartozó szoftver határozottan nem az./ (IC/chip) operációs rendszer (COS /Chip Operation System/, maszk) Folyamatosan az intelligens kártyák ROM-jába ágyazott utasítás sorozat. Nem függ egyetlen alkalmazástól sem, az alkalmazások viszont gyakran használják. Két családra osztható: · általános célú COS (egy olyan általános parancs készlet, melynek különböző részeit a legtöbb alkalmazás tartalmazza), · dedikált COS (speciális alkalmazásokhoz tervezett parancsok, melyek gyakran magát az alkalmazást is tartalmazzák. Az operációs rendszereket részletesen tárgyaljuk a 6. fejezetben. IC platform A platform kifejezés általában az intelligens kártya egy olyan komponensére utal, mely önállóan egy értékelési folyamaton mehet keresztül, anélkül, hogy maga a
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
-8-
végtermék lenne (pl. minden betöltött alkalmazói szoftver nélküli intelligens kártya komponens). 3. Architektúrák A 2. és 3. ábra az intelligens kártya termék tipikus architektúráit mutatja. Zárt architektúra Az intelligens kártya termék olyan megvalósítása, melyben az intelligens kártyán lévő valamennyi alkalmazás ismert az értékelés időpontjában.
Beágyazott SW (alap + alkalmazói)
Alkalmazás OS (operációs rendszer) IC (integrált áramkör)
2. ábra: Egy zárt architektúrájú intelligens kártya tipikus felépítése Nyílt architektúra Az intelligens kártya termék olyan megvalósítása, mely az intelligens kártya kibocsátása (értékelése) után új alkalmazások befogadására képes.
Alkalmazás Beágyazott SW (alap + alkalmazói)
Alkalmazás
Kártya menedzser Virtuális gép OS (operációs rendszer) IC (integrált áramkör)
3. ábra: Egy nyílt architektúrájú intelligens kártya tipikus felépítése Virtuális gép Az intelligens kártyára utólag betöltött alkalmazások számára egységes (operációs rendszertől független) felületet biztosító, az alkalmazások futtatását végző komponens. Kártyamenedzser
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
-9-
A kártyamenedzser biztosítja az alkalmazások kártyára telepíthetőségét (betöltését), törlését, illetve a külvilággal folytatott kommunikáció bizalmasságát és sértetlenségét. A nyílt architektúrákat tovább finomítjuk az operációs rendszerek és nyílt platformok áttekintése után (lásd 5. ábra).
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 10 -
4. Az intelligens kártya életciklusa
Beágyazott szoftver
1. fázis
Intelligens kártya beágyazott szoftvere
IC érzékeny információk
Előzetes személyre szabási adatok
szoftver, eszközök
IC terv
IC dedikált szoftver TERMÉK KIALAKÍTÁS
Fejlesztési szakasz
IC előzetes személyre szabási követelmények *
Intelligens kártya IC adatbázis kialakítása IC előzetes személyre szabási követelmények*
IC fotómaszk gyártás
2 fázis Gyártási szakasz
IC gyártás
IC teszt és előzetes személyre szabás
3. fázis
IC csomagolás
Tesztelés
4. fázis
Tesztelés
5. fázis
Személyre szabás
Betöltött szoftver
Felhasználói szakasz
Tesztelés
Intelligens kártya végfelhasználás
Jelmagyarázat: * : választható komponensek Megbízható szállítási érvényesítési eljárások
6. fázis
7. fázis
Életciklus vége
és
4. ábra: Többszörös alkalmazás platformos integrált áramkörös intelligens kártya életciklusa
HunGuard Kft.
TERMÉK FELHASZNÁLÁS
Intelligens kártya termék befejező folyamat
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 11 -
Az IC fejlesztési folyamat néhány részlete A fejlesztési eljárás egy eljárás minősítéssel kezdődik. Ezzel párhuzamosan kifejlesztik az integrált áramkör elvi sémáját és a megfelelő logikai tervet. A terv szabvány könyvtári elemeket (áramköröket és elrendezést) használ, amelyeket fel lehet használni egyéb (nem biztonsági) integrált áramköröknél is, de tartalmazhat teljesen testre szabott elemeket is, amelyeket kifejezetten az adott IC-hez terveztek. Bizonyos cellák paraméterekkel rendelkeznek: például a egy ROM cella konkrét elrendezését a tartalma határozza meg, amelyet viszont a benne tárolandó szoftvertől vagy adattól függ. Mindezek a “cellák” nemcsak a logikai vagy fizikai működésük szerint térnek el, hanem a szerkezetük méretében is, amely kiterjedhet a kevés elemtől kezdve, mint például az egyszerű kapuk, a fizikai egységekig vagy al-áramkörökig, amelyek reprezentálhatnak akár egy teljes független logikai feldolgozó egységet is. A fizikai “cellák”-at (amelyekhez felhasználják a fizikai elrendezési információkat) a chip felületén helyezik el, majd összekötik vezetékekkel. A “cellák” fizikai elhelyezésére, ezek pozíciójára, az összekötő vezetékek alakjára és az egyéb kidolgozási információkra vonatkozó információk határozzák meg a chip fizikai szerkezetét. Ezek a fejlesztési lépések igen bonyolultak. Csak a logikai terv kifejlesztése hasonlítható egy szabványos szoftver fejlesztéshez. Mindemellett technológiai korlátok (például ütemezés) teszik ezt a folyamatot még bonyolultabbá, és például olyan szimulációkat tesznek szükségessé, amelyek figyelembe veszik a technológiai és elrendezési információkat. Így a logikai és fizikai terv kifejlesztése szoros kapcsolatban áll egymással. Egy integrált áramkör fizikai elrendezését eldöntő információkat igen bonyolult meghatározni. A lemezek gyártásához szükséges maszkok vagy minták előállítása alapvetően ezeken az információkon alapul. Mindemellett jó néhány technológiai vonatkozású paramétert (feltehetően némelyik még a lemez előállítási helyétől is függ) is figyelembe kell venni. A maszkokat (vagy mintákat) arra használják, hogy megvalósítsák az integrált áramköri kapcsolási rajzot egy al-rétegen. Ez ugyancsak több-tíz eljárást foglal magában, amelyek mindegyike befolyásolja a végeredményt. Nemcsak az elrendezési elvek, de az eljárásokra vonatkozó információk is az IC tervezők / IC gyártók szabadalma. Minden egyes chipet (lapkát vagy kockát) a gyártás után ellenőriznek. A fejlesztés és gyártás az IC gyártójának jól megalapozott eljárásain alapul. Az eljárásokat folyamatosan fejlesztik és javítják, főleg abból a célból, hogy növeljék a hozamot és a megbízhatóságot.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 12 -
(IC) azonosító adatok Az IC gyártó által meghatározott és (a 3. fázisban) nem-felejtő memóriába töltött adatok. Ezek az adatok többek között az IC-k nyomon követhetőségét szolgálják. intelligens kártya személyre szabása (megszemélyesítés, perszonalizálás) A kártya kibocsátó felelőssége alá tartozó végső folyamat, melynek során az intelligens kártyát konfigurálják, biztonsági paramétereit feltöltik, titkos kulcsait beállítják. A megszemélyesítési folyamat végén az intelligens kártya visszafordíthatatlan módon „felhasználói üzemmód”-ba kerül. (IC) előzetes személyre szabás (elő-megszemélyesítés, elő-perszonalizálás, formázás) Az IC gyártási helyszínén végrehajtott folyamat, melynek során az IC-be felhasználói adatok kerülnek, még mielőtt az IC visszafordíthatatlan módon „kibocsátói üzemmód”-ba kerülne. (IC) elő-megszemélyesítő adat Bármely olyan adat, amelyet a kártya gyártója szolgáltat, és az integrált áramkör gyártója helyez el egy nem-felejtő memóriában (3. fázis). Ezeket az adatokat például felhasználják a nyomon követhetőséghez és/vagy a fázisok közötti biztonságos átadáshoz. intelligens kártya termék A teljesen működőképes intelligens kártyának megfelelő termék, mely az IC-t és a teljes beágyazott szoftvert (beleértve az alkalmazói szoftvert is) egyaránt tartalmazza.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 13 -
5. Az intelligens kártyával kapcsolatos szerepkörök IC gyártó Az integrált áramkör gyártásáért, teszteléséért és elő-megszemélyesítésért felelős intézmény (vagy annak képviselője). Beágyazott (vagy alap) szoftver fejlesztő Az intelligens kártya beágyazott (vagy alap) szoftverének fejlesztéséért, valamint az integrált áramkör elő-megszemélyesítési követelményeinek meghatározásáért felelős intézmény (vagy annak képviselője). Kártya gyártó Az integrált áramkörök vásárlója. A kártya gyártó az IC leszállítása utáni valamennyi alábbi szerepkört magában foglalja egészen a 7. fázisig: · IC tokozást gyártó (4. fázis) /amennyiben az IC-t a 3. fázisban lemez (wafers) vagy lapka (sawn wafers, dice) formában szállítják le/, · intelligens kártya termék gyártó (5. fázis), · megszemélyesítő (6. fázis). Általában a kártya gyártó a beágyazott vagy az alap szoftver fejlesztője is. Kártya kibocsátó Egy intelligens kártya termék vevője, aki a kártya végfelhasználóihoz történő kibocsátásáért felelős. Szponzor Egy értékelés megrendeléséért és általában annak finanszírozásáért felelős testület. Lehetséges szponzorok: fejlesztő, kártya kibocsátó, vagy akár a termék egy független vásárlója/felhasználója. Értékelő Az az értékelő laboratórium, mely egy (az informatikai termékek biztonsági értékelésére kidolgozott) nemzeti séma keretén belül végrehajtja az értékelés munkáját. Tanúsító szervezet Egy olyan független átvizsgáló, mely engedélyezi (felhatalmazza) a nemzeti értékelő laboratóriumokat, s mely ezen laboratóriumok munkája alapján tanúsítványokat bocsát ki.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 14 -
6. Operációs rendszerek A COS (chip operációs rendszer) valamennyi kártya termékben közös alap funkciói az alábbiak: · az intelligens kártya és a külvilág közötti kapcsolat menedzselése, különös tekintettel a kapcsolati protokollra, · a fájlok és a memóriában tárolt adatok kezelése, · az információkhoz és a funkciókhoz való hozzáférés ellenőrzése (pl. fájl kiválasztása, adat olvasása, írása és módosítása), · a kártya biztonságának és a kriptográfiai algoritmusok eljárásainak menedzselése, · a megbízhatóság fenntartása, különösen az adatok konzisztenciája, a sorozatok megszakítása és a hibákból való visszaállítás tekintetében, · az intelligens kártya különböző életciklus fázisainak a kezelése. A kártya terminál és az intelligens kártya közötti kapcsolat alapvetően master-slave típusú: a terminál parancsot küld a kártyának, mely azt végrehajtja, az esetleges eredményt visszaadja, majd további parancsra vár. Az intelligens kártyákra vonatkozó alapszabványok (az érintkezéses kártyákra az ISO 7816 sorozat, az érintkezés nélküliekre pedig az ISO 14443 és ISO 15693) amellett, hogy leírják a kártyák fizikai tulajdonságait, leírják azon parancsok széles skáláját is, melyeket a kártyák megvalósíthatnak (egyúttal részletesen meghatározva ezen parancsok és a rá adandó válaszok formátumát és szintaktikáját is). A legtöbb kártyagyártó olyan operációs rendszerrel kínálja terméket, melyek a legtöbb vagy az összes ilyen szabványos parancsot megvalósítják, s egyben gyártó-specifikus kiterjesztéseket és kiegészítéseket is tartalmaznak. A COS fejlesztések korai szakaszában a kibocsátónak minden speciális alkalmazás fejlesztő részére külön chip-et és külön operációs rendszert kellett szolgáltatnia, ami jelentősen megdrágította és rugalmatlanná tette a termékeket. A mai operációs rendszerek különböző alkalmazásokat képesek támogatni. A legáltalánosabban elterjedt három ilyen (úgynevezett multiapplikációs vagy multifunkciós) operációs rendszert az alábbiakban részletesebben is tárgyaljuk (JavaCard OS, MultOS, Windows for smart cards). 6.1 Fájl rendszerek A legtöbb operációs rendszer csak egy viszonylag egyszerű (az ISO 781összefüggő blokkja szabványon alapuló) fájlrendszert támogat. Minthogy a kártyáknak nincs perifériájuk, egy fájl tulajdonképpen csak egy összefüggő blokk a kártya memóriában. A fájl rendszer egy egyszerű, gyökérből kiinduló könyvtár-alapú hierarchikus rendszer, melyben az egyes fájloknak egy hosszú alfanumerikus, egy rövid numerikus és egy hivatkozási neve van. Az operációs rendszerek általában támogatják az olyan fájlműveleteket, mint a létrehozás, törlés, olvasás, írás, módosítás. Ezen kívül különböző típusú fájlokon is támogatnak bizonyos műveleteket: · lineáris fájl (rögzített méretű rekordok sorozatából áll, mely elérhető a rekord sorszáma alapján és szekvenciálisan is olvasható /a következő vagy az előző rekord is olvasható/),
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 15 -
·
ciklikus fájl (olyan lineáris fájl, melynek az utolsó rekordja és az első rekordja is szomszédos), · pénztárca fájl (ez egy alkalmazás-specifikus fájl típus, melyet csak bizonyos operációs rendszerek támogatnak. Olyan ciklikus fájl, melynek rekordjai egy elektronikus fizetési tranzakció naplóbejegyzéseinek sorozata), · transzparens fájl (olyan egyszerű, megkülönböztetés nélküli memória blokk, melyet az alkalmazások tetszés szerint strukturálhatnak). Egy hozzáférési lista kapcsolódik a kártya fájlokhoz, mely minden fájlra nézve tárolja, hogy az adott fájlon mely identitások (szerepkörök), milyen műveleteket végezhetnek. 6.2 Alkalmazói protokoll adategységek Alkalmazói protokoll adategység (APDU, Application Protocol Data Units) Egy intelligens kártyával való kommunikáció alapegysége. A gazdagép alkalmazói rétegéből küldött parancs üzenetek, illetve az intelligens kártyától erre érkező válasz üzenetek elnevezése. Olyan adatcsomag, mely vagy egy teljes, kártyának szóló utasítást (parancs APDU), vagy az erre küldött teljes kártya választ (válasz APDU) tartalmazza. A kétféle adategység segítségével bonyolódik a kártya és a kártyaolvasó közötti kommunikáció. A gazdagép oldali alkalmazás egy APDU-kon alapuló protokoll alkalmazását váltja ki a kártya és a kártyaolvasó között. Az intelligens kártya egy szoftver komponense (valamely natív vagy rezidens alkalmazás) értelmezi a fogadott parancs APDU-t, végrehajtja az ennek megfelelő műveleteket, majd az eredményként előálló válasz APDU-t visszaküldi a kártyaolvasónak. Parancs APDU Olyan adatcsomag, mely a gazdagép alkalmazói rétegéből az intelligens kártyának küldött teljes utasítást tartalmazza. Minden parancs APDU az alábbiakat tartalmazza: · osztály típus (a parancsok osztályát határozza meg: pl. ISO szabványnak megfelelő parancsok osztály, saját /kártya specifikus/ parancs osztály, biztonságos üzenetkezeléshez használt parancsok osztálya, stb.), · parancs bájt (a konkrét parancsot meghatározó bájt érték), · két paraméter (P1, P2, a parancs specifikus paraméterek), · hossz érték (az opcionális adatok bájthosszát adja meg), · opcionális adat (a kártyának a parancsban esetleges feldolgozásra küldött adatok), · várt hossz érték (az erre a parancsra érkező válasz elvárt bájthosszúsága). Válasz APDU Olyan adatcsomag, mely egy a gazdagép alkalmazói rétegéből az intelligens kártyának küldött utasítás eredményeképpen a kártyáról érkező választ tartalmazza. Minden válasz APDU az alábbiakat tartalmazza: · opcionális adat, · két állapot (SW1 és SW2, /az ISO 7816-4 által meghatározott/ szabványos állapot információkat tartalmazó szavak).
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 16 -
I/O kezelő
Memória kezelő
Állomány kezelő
I/O driver
RAM, ROM, EEPROM I/O
2. natív alkalmazás
Betöltött alkalmazás rendszer interfész
1. natív alkalmazás
Kártyamenedzser
Virtuális gép
Betöltő
2. betöltött alkalmazás
1. betöltött alkalmazás
Az alábbi ábra a nyílt architektúránál már vázolt kártya szerkezetet finomítja az operációs rendszerekkel kapcsolatos ismereteket és az újabb meghatározásokat is figyelembe véve.
Könyvtár
Operációs rendszer
dedikált szoftver IC dedikáltIC szoftver
Feldolgozó egység
I/O portok
Felejtő memóriák
Hardver
Nem felejtő memóriák
Biztonsági komponensek
5. ábra Egy multiapplikációs intelligens kártya részletesebb felépítése
Az ilyen kártyák legnagyobb előnye, hogy rajtuk egymástól függetlenül több alkalmazás is futhat, s ezek az alkalmazások akár utólag is betölthetők.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 17 -
Legfontosabb elemeik a következők: ·
Az integrált áramkör (IC) hardver rétege, beleértve a feldolgozó egységet, a felejtő és nem felejtő memóriákat a beágyazott szoftverrel, az I/O portokat (kapukat) és biztonsági komponenseket.
·
Az
integrált
áramkör
(IC)
dedikált
szoftvere,
amelyet
az
áramkör
tervezője/gyártója tervez meg és készít el. Ezt a szoftvert (melyet förmvernek is neveznek) gyakran tesztelési célokra használják az integrált áramkör gyártása során, de ezen kívül egyéb szolgáltatásokat is nyújthat. ·
Operációs rendszer, mely magába foglalja: ·
Első szinten: I/O eszközmeghajtót (driver), RAM, ROM és EEPROM I/O és hardver drivereket.
·
Második szinten: I/O kezelőket és protokollokat, memóriakezelőt, állománykezelőt, kriptoszervert és ehhez kapcsolódó szolgáltatásokat egy könyvtárban.
·
Natív alkalmazások (amennyiben léteznek), melyek közvetlenül érik el az operációs rendszert. A natív alkalmazásokat beágyazhatja közvetlenül az integrált áramkör gyártója (a 3. szakaszban), vagy pedig később, a kártya személyre szabási (megszemélyesítő) fázisa során is beépíthetik őket.
·
Rendszerinterfész
a
betöltött
alkalmazásokhoz,
mely
a
következő
komponensekből állhat: ·
A betöltő (loader)
·
Egy vagy több virtuális gép
·
Kontextus (biztonsági burok) kezelő
Most rátérünk a legáltalánosabban elterjedt három multiapplikációs (multifunkciós) operációs rendszer, illetve az ezt alkalmazó kártya platform részletesebb ismertetésére.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 18 -
6.3 Java Card A Java Card egy olyan multiapplikációs intelligens kártya platform1, ahol az 5. ábra elemeire az alábbi kiegészítések vonatkoznak: ·
A virtuális gép alatt bármilyen gyártó operációs rendszere is futhat.
·
A Java Card önmagában nem szabványosítja a kártyamenedzser feladatát Amennyiben a kártya megfelel a Visa által utólag a kártyához kifejlesztett Visa Open Platform (mely egy szabványos kártyamenedzsert specifikál) elvárásainak is, akkor a Java Card közös (és szabványos) szabályokat érvényesít a betölthető alkalmazások biztonságos telepítésére, törlésére, valamint az alkalmazásokat elérő közös (globális) PIN kódokra is.
·
A
betölthető
alkalmazásokat
(itt
ezeket
appleteknek
nevezik)
Java
programnyelven lehet megírni. Egy applet leszállításának meg kell felelnie a 6. ábra által szemléltetett folyamatnak:
fordító
App.java
Java Card Java forrás kód
App.class Bájtkód konvertáló
betöltő betöltő
App.cap
Betöltendő fájl
6. ábra: egy Java card alkalmazás betöltési folyamata A „class” kiterjesztésű fájlok tesztelhetők egy Java Card szimulációs környezetben.
A „cap” kiterjesztésű fájlok (vagyis az optimálisan konvertált appletet tartalmazó fájlt) tesztelhetők egy Java Card emulátori környezetben, illetve futtathatók a kártyán. Az applet életciklusa akkor kezdődik, amikor a kártyára telepítik. A telepítésre kétféleképpen kerülhet sor: · közvetlenül egy betöltő tranzakció során közvetlenül, · egy kártyán lévő betöltött fájlból.
1
A SUN és a Schlumberger cég fejlesztette ki.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 19 -
6.4 Windows for smart cards A Windows for smart cards olyan multiapplikációs intelligens kártya platform2, ahol az 5. ábra elemeire az alábbi kiegészítések vonatkoznak: ·
A virtuális gép alatt bármilyen gyártó operációs rendszere is futhat.
·
A Windows for smart cards nem tartalmaz kártyamenedzsert.
·
A betölthető alkalmazásokat Visual Basic programnyelven lehet megírni.
6.5 MultOS A MULTOS olyan multiapplikációs intelligens kártya platform3, ahol az 5. ábra elemeire az alábbi kiegészítések vonatkoznak: ·
A virtuális gép alatt a MULTOS saját operációs rendszere fut.
·
A MULTOS szerves részét képezi a kártya alkalmazások menedzselése.
·
A MULTUS magas garancia szintű független értékelési eredménnyel rendelkezik (ITSEC E6) az alkalmazások biztonságos szétválasztása tekintetében, egyúttal csak ilyen értékelési eredménnyel rendelkező alkalmazások telepíthetők rá.
·
A
betölthető
alkalmazásokat
Assembler,
C,
Java
és
Visual
Basic
programnyelveken lehet megírni. 6.6 A multiapplikációs platformok gazdagép oldali elérhetősége A gazdagép felől a következő elvi lehetőségek vannak egy intelligens kártya erőforrásainak használatára: · · · ·
2 3
Kész, telepített (kártyára töltött) alkalmazások/appletek meghívásával. A gazdagép oldalán meghívható szabványos felületeken keresztül (legelterjedtebb példák erre: PKCS#11, illetve Crypto API), amennyiben az intelligens kártya natív vagy betöltött alkalmazásai támogatják ezt. Közvetlen API (Application Programming Interface) hozzáférésekkel, amennyiben az operációs rendszer biztosít egy nyelv-független, a hardver erőforrásokhoz, kártya tartalmakhoz való hozzáférést biztosító felületet. Alkalmazói protokoll adategységek meghívásával /szabványos és kártyaspecifikus parancs APDU-k küldésével és az erre érkező válasz APDU-k feldolgozásával/.
Ezt a platformot a MicroSoft támogatja. Ezt a platformot a MasterCard támogatja, illetve a MAOSCO Consortium menedzseli.
HunGuard Kft.
Útmutató az intelligens kártyák biztonsági értékeléséhez
- 20 -
7. Felhasznált források Almási János: Elektronikus aláírás és társai /Sans Serif, 2002/ Guidance for Smartcard Evaluation version 1.1 2002, /DCSSI, BSI, CESG, NLNCSA/ The Application of ITSEC to Integrated Circuits /Joint Interpretation Library, 1999/ The Application of CC to Integrated Circuits /Joint Interpretation Library, 2000/ Smart Cards and their Operating Systems /Heng Guo, HUT, Telecommunications Software and Multimedia Laboratory/
HunGuard Kft.