INTELLIGENS KÁRTYÁK. Útmutató az intelligens kártyák biztonsági értékeléséhez



Hasonló dokumentumok
Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

TANÚSÍTVÁNY. az 1. számú mellékletben áttekintett biztonsági tulajdonságokkal és funkcionalitással, valamint

Számítógép felépítése

TANÚSÍTVÁNY. tanúsítja, hogy a E-Group Magyarország Rt. által kifejlesztett és forgalmazott. Signed Document expert (SDX) Professional 1.

Bankkártya elfogadás a kereskedelmi POS terminálokon

elektronikus adattárolást memóriacím

TANÚSÍTVÁNY. az elektronikus aláírásról szóló évi XXXV. törvény meghatározásai alapján

2. előadás. Radio Frequency IDentification (RFID)

Hogyan tudom soros eszközeimet pillanatok alatt hálózatba kötni?

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Számítógép architektúra

A számítógépek felépítése. A számítógép felépítése

A számítógép egységei

TANÚSÍTVÁNY. tanúsítja, hogy a Utimaco Safeware AG által kifejlesztett és forgalmazott

Programozás alapjai Bevezetés

TANÚSÍTVÁNY. tanúsítja, hogy az. ORGA Kartensysteme GmbH, Germany által előállított

TANÚSÍTVÁNY. tanúsítja, hogy a. Giesecke & Devrient GmbH, Germany által előállított és forgalmazott

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Dr. Schuster György október 30.

Bepillantás a gépházba

III. Alapfogalmak és tervezési módszertan SystemC-ben

Könyvtári címkéző munkahely

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

vbar (Vemsoft banki BAR rendszer)

A Java EE 5 plattform

Jelfeldolgozás a közlekedésben

Számítógépek felépítése, alapfogalmak

Kommunikáció az EuroProt-IED multifunkcionális készülékekkel

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD)

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

Verzió: PROCONTROL ELECTRONICS LTD

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Tartalomjegyzék. Előszó... 10

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Küls memóriakártyák. Dokumentum cikkszáma: Ez az útmutató a külső memóriakártyák számítógéppel történő használatát ismerteti

Smart Strategic Planner

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon


Megfelelés a PSD2 szabályozásnak, RTS ajánlásokkal Electra openapi

Külső kártyaeszközök Felhasználói útmutató

Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás

Autóipari beágyazott rendszerek Dr. Balogh, András

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Küls memóriakártyák. Dokumentum cikkszáma: Ez az útmutató a külső memóriakártyák használatát ismerteti január

Mikrorendszerek tervezése

VIII. BERENDEZÉSORIENTÁLT DIGITÁLIS INTEGRÁLT ÁRAMKÖRÖK (ASIC)

Fizikai támadások HSM-ek ellen. Pintér Olivér

Előadó: Nagy István (A65)

Vezetői információs rendszerek

Utolsó módosítás:

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Biztonsági folyamatirányító. rendszerek szoftvere

TANÚSÍTVÁNY. tanúsítja, hogy a. MÁV INFORMATIKA Kft. által kifejlesztett és forgalmazott. DSign UI 1.6. aláíró alkalmazás

Azonosításra szolgáló információk

Firmware fejlesztés. Mártonfalvi Zsolt Hardware programozó

SZÁMÍTÓGÉPES ALAPISMERETEK

Végfelhasználói Applet kézikönyv

Információ-architektúra

VIRTUALIZÁCIÓ KÉSZÍTETTE: NAGY ZOLTÁN MÁRK EHA: NAZKABF.SZE I. ÉVES PROGRAMTERVEZŐ-INFORMATIKUS, BSC

Az elektronikus azonosítás biztonsági megoldásai. Kártyatartalom menedzsment TSM rendszerekben

6.2. TMS320C64x és TMS320C67xx DSP használata

TANÚSÍTVÁNY. tanúsítja, hogy a. Pénzügyi Szervezetek Állami Felügyelete. által kifejlesztetett. Pénztár v aláíró alkalmazás

A cloud szolgáltatási modell a közigazgatásban

Utolsó módosítás:

Szárazföldi autonóm mobil robotok vezérlőrendszerének kialakítási lehetőségei. Kucsera Péter ZMNE Doktorandusz

Cloud Akkreditációs Szolgáltatás indítása CLAKK projekt. Kozlovszky Miklós, Németh Zsolt, Lovas Róbert 9. LPDS MTA SZTAKI Tudományos nap

Hardver és szoftver követelmények

ARM Cortex magú mikrovezérlők. mbed

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Informatika érettségi vizsga

Felhasználók hitelesítése adatbiztonság szállításkor. Felhasználóknak szeparálása

Software project management Áttekintés

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

IT - Alapismeretek. Feladatgyűjtemény

Operációs rendszerek. Az X Window rendszer

e-szignó Online e-kézbesítés Végrehajtási Rendszerekhez

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

tanúsítja, hogy a Kopint-Datorg Részvénytársaság által kifejlesztett és forgalmazott MultiSigno Standard aláíró alkalmazás komponens 1.

Alkalmazások típusai Szoftverismeretek

TANÚSÍTVÁNY. tanúsítja, hogy az. InfoScope Kft. által kifejlesztett. Attribútum tanúsítványok érvényességét ellenőrző SDK InfoSigno AC SDK v1.0.0.

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

Járműinformatika A járműinformatikai fejlesztés

Konkurencia és energiakezelés integrálása eszközmeghajtókba. Vezeték nélküli szenzorhálózatok

BMD Rendszerkövetelmények

20 éve az informatikában

TANÚSÍTVÁNY. tanúsítja, hogy az Axelero Rt. által kifejlesztett és forgalmazott. Marketline Integrált Aláíró Modul 2.0-ás verzió

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Programozható logikai vezérlő

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

NETinv. Új generációs informatikai és kommunikációs megoldások

Autóipari beágyazott rendszerek. Integrált és szétcsatolt rendszerek

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Átírás:

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

Ú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.

Ú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.

Ú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 -adat -kód (átmeneti) EEPROM -adat -beágyazott SW Órajel áramkör CPU Biztonsági áramkör 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.

Ú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.

Ú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

Ú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 Alkalmazás Beágyazott SW (alap + alkalmazói) 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

Ú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).

Útmutató az intelligens kártyák biztonsági értékeléséhez - 10-4. Az intelligens kártya életciklusa IC előzetes személyre szabási követelmények * Intelligens kártya beágyazott szoftvere 1. fázis Betöltött szoftver Gyártási szakasz Fejlesztési szakasz Felhasználói szakasz Beágyazott szoftver Előzetes személyre szabási adatok IC előzetes személyre szabási követelmények* Jelmagyarázat: * : választható komponensek Megbízható szállítási és érvényesítési eljárások IC érzékeny információk szoftver, eszközök Intelligens kártya IC adatbázis kialakítása IC fotómaszk gyártás IC gyártás IC teszt és előzetes személyre szabás IC csomagolás Tesztelés Intelligens kártya termék befejező folyamat Tesztelés Személyre szabás Tesztelés Intelligens kártya végfelhasználás Életciklus vége IC terv IC dedikált szoftver 2fázis 3. fázis 4. fázis 5. fázis 6. fázis 7. fázis TERMÉK FELHASZNÁLÁS TERMÉK KIALAKÍTÁS 4. ábra: Többszörös alkalmazás platformos integrált áramkörös intelligens kártya életciklusa

Ú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.

Ú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.

Ú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.

Ú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ó/),

Ú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).

Útmutató az intelligens kártyák biztonsági értékeléséhez - 16 - 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. 1. betöltött alkalmazás 2. betöltött alkalmazás Betöltő Virtuális gép Betöltött alkalmazás rendszer interfész Kártyamenedzser 1. natív alkalmazás 2. natív alkalmazás I/O kezelő Memória kezelő Állomány kezelő Könyvtár I/O driver RAM, ROM, EEPROM I/O Operációs rendszer IC dedikált IC szoftver dedikált szoftver Feldolgozó egység Felejtő memóriák Nem felejtő memóriák I/O portok Hardver 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.

Ú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.

Ú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 platform 1, 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 forrás kód Java Card Bájtkód konvertáló App.class App.cap betöltő Betöltendő fájl betöltő 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.

Ú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 platform 2, 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 platform 3, 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: 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/. 2 Ezt a platformot a MicroSoft támogatja. 3 Ezt a platformot a MasterCard támogatja, illetve a MAOSCO Consortium menedzseli.

Ú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/