Viedkartes operacionālās sistēmas

Pirms parādījās viedkaršu operacionālās sistēmas, lietojumprogrammas tika izstrādātas Asamblera valodā. Programmu izstrāde prasīja ilgu laiku un programmatūras izmaksas sanāca lielākas par aparatūras izmaksām. Tas bija viens no iemesliem, kāpēc viedkartes nebija plaši izplatītas.

Lai atvieglotu programmu izstrādi, samazinātu tās izmaksas un laiku, viedkartēs ieviesa operacionālo sistēmu.

Jebkuras mūsdienu procesoru viedkartes kodols ir kartes operacionālā sistēma (COS). Operacionālā sistēma atrodas kartes lasāmatmiņā (ROM) un tā satur  komandas un funkcijas. Lietojumprogramma ir cieši saistīta ar COS, izmanto tās funkcijas un daudzus uzdevumus risina tikai ar tās starpniecību.

Operacionālās sistēmas pamatfunkcijas:

  • Datu apmaiņas pārvaldība starp karti un ārpasauli
  • Failu un datu pārvaldība atmiņā
  • Pieejas kontrole informācijai un funkcijām
  • Kartes drošības un kriptogrāfijas algoritmu pārvaldība

Tagad lietojumprogramma, izmantojot programmēšanas interfeisu, griežas pie kartes operacionālās sistēmas (COS), kas savukārt sadarbojas ar pašu mikroshēmu. Tas dod iespēju programmas izstrādāt t.s. augsta līmeņa valodās, bet prasa lielākus kartes resursus salīdzinot ar programmu asamblera valodā.

Tā kā mikroshēmu ražotāji katrs izstrādā savu COS, tad kartes izdevējs ir piesaistīts konkrētam mikroshēmas ražotājam. Programmu izstrādi var veikti tikai tie, kuri pārzina konkrēto COS. Pie tam pāreja uz citas firmas mikroshēmu var prasīt programmas pārrakstīšanu.

Atvērtās platformas operacionālās sistēmas novērš iepriekšminētos ierobežojumus. Lietojumprogrammas izstrādātājs tagad var programmu rakstīt vienreiz un tā derēs dažādu firmu mikroshēmās, kas darbojas ar konkrēto COS. Izplatītākās atvērto platformu COS ir Java Card, MULTOS, Windows® for Smart Card, kuras tuvāk tiks apskatītas nākamajā nodaļā. Programmu izstrādātājiem Java Card ir “draudzīgāka” par MULTOS.

Mūsdienu karšu operacionālās sistēmas var darboties ar populārākajiem kriptogrāfijas algoritmiem, kas paplašina to pielietojumu.

Kompānija ZeitControl Cardsystems GmbH izstrādājusi viedkarti ar nosaukumu BasicCard® un savu operacionālo sistēmu. Tiek piedāvāti vairāki karšu tipi ar atšķirīgām iespējām: Compact BasicCard, Enhanced BasicCard un Professional BasicCard. Vienkāršākā ir Comapct BasicCard ar mazāko atmiņas apjomu, nav failu sistēmas iespējas, viens šifrēšanas algoritms. Savukārt Enhanced BasicCard un Professional BasicCard atļauj darbu ar failiem un papildinātas vēl ar citām īpašībām. Savā starpā kartes atšķiras ar kriptogrāfijas algoritmiem un atmiņas apjomu.

Lietojumprogrammas izstrāde notiek Basic programmēšanas valodā. Programmu savietojamība pastāv no vienkāršākās uz sarežģītāko karti. BasicCard® ir orientēta uz vienu lietojumprogrammu, kuru ielādē kartes personalizācijas laikā. COS veidota saskaņā ar starptautiskiem standartiem.

Saistībā ar kompāniju Siemens jāmin divas operacionālās sistēmas: CardOS/M3 un CardOS/M4. Operacionālā sistēma CardOS/M4 papildināta ar jaunām īpašībām, salīdzinot ar iepriekšējo versiju. Abām COS pastāv paplašināšanas iespēja, izmantojot ielādējamas programmu sastāvdaļas (packages). COS veidota saskaņā ar starptautiskiem standartiem. Operacionālās sistēmas darbojas ar kompānijas Infineon mikroshēmu sēriju SLE66.

Operacionālo sistēmu Proton Prisma izstrādājusi kompānija Proton World lietošanai maksājuma kartēs. Operacionālā sistēma atbalsta vairāku lietojumprogrammu darbošanos vienā kartē. Proton Prisma ir trīs versijas (profile packages), kas nosaka kartes iespējas (visspēcīgākā ir Proton Prisma DP). COS veidota saskaņā ar starptautiskiem standartiem.

Versijā Proton Prisma DP var izmantot gan statiskas programmas, gan dinamisku programmu ielādi kartē. Darbojas arī ar Java virtuālo mašīnu, kas ļauj kartē ielādēt Java lietojumprogrammas (applets).

Kompānija Giesecke & Devrient izstrādājusi operacionālo sistēmu STARCOS®. Vienā kartē var darboties vairākas lietojumprogrammas, kuras ir sasvstarpēji atdalītas. STARCOS S2.1 paredzēts mikroshēmām SLE44C20S un SLE44C80S. Versijā STARCOS SPK2.3 ir papildus  komandas un tā darbojas ar mikroshēmu P8WE5032.

Abas COS veidota saskaņā ar starptautiskiem standartiem.

Operacionālā sistēma MICARDO® Public izstrādāta kompānijā ORGA. Ir vairāku lietojumprogrammu režīms vienā kartē. COS veidota saskaņā ar starptautiskiem standartiem.

Atvērtās platformas COS.

Agrāk izdotajām procesoru viedkartēm raksturīga iezīme bija neelastīgums, jo nebija iespēja karti papildināt ar jaunu lietojumprogrammu. Šādā gadījumā ir nepieciešams izdot jaunu karti, kas savukārt prasa lielus kapitālieguldījumus. Šodien atvērtās platformas operacionālā sistēmas atļauj vienā viedkartē vairāku lietojumprogrammu darbošanos, kuru ielāde kartē var notikt arī pēc tās izdošanas. Lietojumprogrammas viena no otras atdalītas ar ugunsmūri, kas paaugstina viedkartes drošību.

Šobrīd tirgū izplatītas vairākas atvērto platformu operacionālās sistēmas:

  • Java Card
  • MULTOS
  • Windows® for Smart Cards
    Java Card

Viedkartes ar Java tehnoloģiju izstrādājusi kompānija Sun® Microsystems no ASV. Izstrādātā specifikācija satur detalizētu informāciju par Java Card virtuālo mašīnu (interpretatoru), izpildes vidi Java Card Runtime Environment (JCRE)  un lietojumprogrammu programmēšanas interfeisu (API). API nodrošina lietojumprogrammas piekļūšanu pie JCRE un tās servisiem.

Java kartes raksturīgās īpašības:

  • Lietojumprogrammas neatkarība no mikroshēmas ražotāja
  • Augsta drošība
  • Vairāku programmu darbošanās uz vienas kartes
  • Jaunu programmu instalācijas iespēja pēc kartes izdošanas
  • Programmu izstrāde objektorientētā programmēšanas valodā.
  • Pieejami lietojumprogrammu izstrādes rīki (programmas)
  • Savietojama ar eksistējošiem viedkaršu standartiem, piemēram, ISO, EMV u.c.

Java Card tehnoloģija saglabā daudz labu īpašību no Java™ programmēšanas valodas. Virtuālā mašīna, valodas definīcijas un bibliotēkas (core packages) veidotas vēl kompaktākas un īsākas, lai varētu Java™ tehnoloģiju ieviest viedkartē, kur pastāv resursu ierobežojumi. Minimālās prasības kartei ir 16 KB ROM, 8 KB EEPROM un 256 baiti RAM.

Programmēšanas valodā Java iekļautas šādas iespējas:

  • Bibliotēkas
  • Dinamiska objektu radīšana.
  • Virtuālās metodes
  • Interfeiss.
  • Izņēmumi

Sakarā ar resursu ierobežojumiem Java  nav realizētas vairākas funkcijas, nedaudz ierobežojot Java valodas funkcionalitāti, bet tajā pašā laikā paaugstinot sistēmas drošību:

  • Dinamiska klašu ielāde
  • Drošības menedžeris (šajā vietā piedāvāti citi risinājumi)
  • Daudzplūsmu režīms (threads)
  • Objektu klonēšana
  • Klases darbības  nobeigums (finalization)

Tā kā Java Card nav iebūvēta drošības menedžera klase, tad drošības politika (Security Policies) ir iekļauta virtuālajā mašīnā. Java Card ir viedkarte, kurā ir iespējams izpildīt Javabaitakodu. Java Card virtuālā mašīna izpilda kartē ielādēto lietojumprogrammu (sauc arī par applet) baitakoda formā. Izpildāmais programmas kods ir platformas neatkarīgs un tādejādi jebkurš kartē iekļauts Java Card tehnoloģijas atbalstošs interpretators var to izpildīt. Virtuālā mašīna atdala lietojumprogrammu no mikroshēmas ražotāja caur kopēju programmēšanas valodu un sistēmas interfeisu. Jāpiebilst, ka Javaplatformu veido tikai programmatūra, kas darbojas uz citas aparatūrās bāzētas platformas.

Uz vienas kartes var atrasties vairākas lietojumprogrammas ar savu unikālu identifikatoru (AID). Vienlaicīgi var darboties tikai viena programma. Tās viena no otras  ir atdalītas ar ugunsmūri, garantējot lietojumprogrammas integritāti. Ugunsmūris neatļauj piekļūt pie objektiem, kuri tai nepieder. Tikai atsevišķos gadījumos, kad tas ir speciāli atrunāts, pastāv objektu koplietošana jeb sharing starp lietojumprogrammām.

Java Card nodrošina iespēju kartes izdevējam veidot papildu servisus un lietojumprogrammas pēc kartes izdošanas. Kartes izdevējs var dinamiski un droši modificēt servisus un programmas viedkartē līdz ar kartes lietotāju vajadzībām, bez kartes nomaiņas.

Lietojumprogrammas dzīve sākas, kad tā ir pareizi uzinstalēta un reģistrēta sistēmas reģistrācijas tabulā, un beidzas, kad izdzēsta no tabulas. Ja kartē ir īstenota “atkritumu savākšana”, izdzēstās programmas vieta var tikt izmantota atkārtoti.

Programma kartē ir neaktīva līdz tā tiek aktivizēta. Termināls nosūta kartei “SELECT APDU” komandu, kuru uztver un apstrādā kartes JCRE. JCRE pārtrauc citas aktīvās programmas darbību, ja tāda bijusi, un izsauc tās deselect metodi, lai korekti pabeigtu tās darbību. Pēc tam JCRE atzīmē programmu, kuras AID ir norādīts APDU komandā, kā tagad aktīvu un izsauc tās select metodi. Select metode sagatavo programmu uztvert APDU komandas. JCRE darbojas kā dispečers turpmākajām APDU komandām, kas paredzētas aktīvai programmai.

Kartes programma (applet) tiek kompilēta lietojot parasto Javakompilatoru. Kompilatora izejas fails papildus vēl tiek konvertēts uz speciālu formātu ar nosaukumu CAP (Converted APplet), lai tas būtu izmantojams kartē.

MULTOS

MULTOS ir pirmā atvērtās platformas, augstas drošības, vairāku lietojumprogrammu operacionālā sistēma viedkartēm [54]. Operacionālo sistēmu MULTOS ir izstrādājis konsorcijs MAOSCO, kurā ietilpst lielākie pusvadītāju elementu un viedkaršu ražotāji un izdevēji: Mondex International, MasterCard International, Hitachi, Siemens u.c. Konsorcijs paziņoja par COS izstrādi 1997 gada maijā.

MULTOS ir savietojama ar tādiem rūpnieciskiem standartiem kā ISO 7816 un EMV.

Pašas operacionālās sistēmas drošība ir garantēta ar prasībām MULTOS ieviešanas (implementation) licencē. Obligāti visiem pašas mikroshēmas (integrālshēmas) piegādātajiem ir jāveic stingri testi un jāpierāda drošība, tamper resistance (mikroshēmas iekšienē atrodas dažādi devēji, kas ļauj mikroshēmai pašai atklāt pret to vērstus fiziskus uzbrukumus) un citas prasības.

MULTOS viedkarte pārbauda jaunās lietojumprogrammas likumību pirms tās ielādēšanas kartē, piešķir programmai aizsardzību izolētā atmiņas apgabalā un aizslēdz to. Katra lietojumprogramma viena no otras ir atdalīta ar ugunsmūri, līdz ar to viena no tām nevar iejaukties citas darbībā. Tādejādi MULTOS kartes izdevēji var būt droši, ka lietojumprogramma, kas pieprasa augstu drošības pakāpi, piemēram, finansu jomā, var atrasties vienā kartē ar lietojumprogrammām, kurām drošība nav pati svarīgākā, piemēram, adrešu grāmatiņa. Turklāt MULTOS lietojumprogrammu izstrādātajiem nav vajadzīgs uzticēties viens otram vai uzturēt kādus sakarus.

MULTOS lietojumprogrammu platformu neatkarību nodrošina ar t.s. virtuālās mašīnas izmantošanu. Virtuālā mašīna ir interpretators, kas analizē programmas kodu un izpilda to.

Parasti MULTOS  izmanto kompāniju Hitachi un Infineon ražotās mikroshēmās. Virtuālā mašīna garantē, ka lietojumprogramma, kas izstrādāta Hitachi ražotai kartes mikroshēmai, derēs arī Infineon mikroshēmai. Tas atļauj izstrādātājiem rakstīt programmu vienreiz un tā darbosies dažādās MULTOS mikroshēmās bez pārveidošanas.

 Multos

MULTOS™ arhitektūra.

MULTOS konstrukcija atļauj lietojumprogrammu drošu pievienošanu kartei gan klientu apkalpošanas vietās, gan attālināti caur nedrošu tīklu, piemēram, Internetu. Lietojumprogrammas pēc tam var droši izdzēst un citas pievienot no jauna visā kartes darbības laikā, kartei paliekot lietotāja īpašumā. No šīs īpašības gūst labumu gan kartes izdevējs, gan kartes turētājs. Izdevējs var tirgū ieviest jaunu produktu vai servisu ātrāk, nevajag atsaukt vai no jauna izdot kartes, lai pievienotu jauno funkcionalitāti. Jauninājumi (upgrades) un kļūmju novēršana (fixes) pastāvošajās programmās var notikt attālināti, tā samazinot izdevumus.

Ielādes procedūru var sadalīt sekojošos soļos:

  1. Kartes turētājs izvēlas vajadzīgo lietojumprogrammu no kartes izdevēja piedāvātām
  2. Izmantojot tehnoloģijas, kas nodrošina svarīgu datu pārraidi pa nedrošiem komunikāciju kanāliem (Internets, telefons), programma tiek lejupielādēta kartē
  3. Izmantojot kontroles mehānismus (verifikācija, sertifikācija) MULTOS pārliecinās, ka ielādēta tieši tā programma, kura vajadzīga un dati nav sabojāti pārraides laikā. Pēc tam jaunā programma tiek izvietota atmiņā un aizslēgta ar sertifikātu (atslēgu)
  4. MULTOS, izmantojot ugunsmūri, nodrošina drošību un integritāti ielādētajai lietojumprogrammai

Lai palīdzētu izstrādātājiem un atvieglotu pastāvošu produktu pārnešanu uz MULTOS vidi, kā daļa no MULTOS tehnoloģijas tika izstrādāta specializēta valoda MEL (MULTOS Executable Language). Programmas, kas veidotas ar MEL palīdzību, saistās ar operacionālo sistēmu caur MULTOS API. MEL ir pieejama ar tiem pašiem nosacījumiem kā MULTOS.

MAOSCO veicina atvērta tirgus filozofiju lietojumprogrammu izstrādes rīkiem (programmām). Hitachi un Mondex International piedāvā savas programmas. Pie līdzīgiem produktiem strādā arī citas kompānijas.

Kompānija Hitachi MULTOS kartēm piedāvā mikroshēmas ar mikrokontrolleriem H8/3114, AE 45C u.c. Savukārt kompānija Infineon - mikroshēmas ar mikrokontrolleriem no 66P (SLE66P…) un 88 (SLE88…) sērijas.

Windows® for Smart Cards

Kā jau var spriest pēc nosaukuma, tad operacionālā sistēma ir izstrādāta kompānijā Microsoft® Corporation.

Lietojumprogrammu izstrādātājiem Microsoft® piedāvā produktu ar nosaukumu The Windows® Smart Card Toolkit. Tas ļauj konfigurēt viedkartes operacionālo sistēmu un radīt lietojumprogrammas ar Visual Studio® izstrādes sistēmu. Operacionālā sistēma ir no Windows saimes un tiek lietoti Win32® API un COM programmēšanas modeļi. Atbalsta dažādus industriālos un ISO standartus: ISO 7816, GSM.

Bauskas 58A-2, Rīga, LV-1004
tālr.: +371 67860094
fakss: +371 67605547
E-pasts: office[ at ]adi.lv
© Copyright 2016 ADI