Kolmas kivi päikesest

Anto Veldre selgitab, mis asub kiipkaartide sees ja täpsemalt Eesti ID-kaardi sees.

Kiipkaardist üldisemalt

Arvuteid on tänapäeval igasuguseid. Kanname endaga kaasas nutitelefone, mis pole ju tegelikult midagi muud kui pisikesed arvutid. Mõnel on kodus digiboks, ka see pole sisuliselt muud kui kiire multimeediaarvuti. Lõpuks, rahakoti vahel on meist igaühel mingi kogus kiipkaarte – ka need on pisikesed eriotstarbelised arvutid.

Kiipkaardid võivad olla päris valged (nagu mõned uksekaardid), või hoopis värvitrükis – varustatud fotode ja hologrammidega. Kiipkaardi mõõdud on maailmas kenasti kokku lepitud ja neid kirjeldab rahvusvaheline standard nimega ISO 7816.

148372

Allikas: http://www.oracle.com/technetwork/java/embedded/javacard/documentation/interview-139031.html

Kui uurida kiipkaarti lähemalt, siis see koosneb kahest kokkusulatatud osast – näeme tükki plastikut ja selle peal/sees läigivad metallist ühendusklemmid. Plastiku materjaliks on plastmass nimega polüvinüülkloriid ja mõnikord kaetakse see veel ka difraktsioonkujutisi sisaldava polükarbonaadist kilega – inimsilmale paistab see välja veiklevate turvahologrammidena.

Internetis on palju dokumente, mis kiipkaardi sisemust ja välimust põhjalikult kirjeldavad.

Terminitest

Kiip – ingl k chip. Elektroonikud oma slängis nimetavad kiipe (ehk mikroskeeme) kivideks.

Kiipkaart – ingl k chip card. Kuigi kaardi välised mõõdud on standarditud nagu ka protsessori kontaktid, võib kivi enda sisemus eri tootjatel olla küllaltki erinev. Ühisjoontele vaatamata vastab digiboksi vaatajakaardi “kivi” pisut teistsugustele nõuetele ja standarditele kui ID-kaardi või pangakaardi kivi.

Arvuti ja kiipkaardi erinevused

Kiipkaardid siiski erinevad tavalistest arvutitest. Kiipkaardile antakse töötamiseks voolu vaid neil hetkedel, kui kaarti tõesti vajatakse – kaardi mõõtu arvestades on pistiku asemel kontaktid. Lisaks aga – pisike arvuti kiipkaardi sees on kavalalt kaitstud igasuguste rünnakute vastu. Kiipkaardi sisemine arvuti on ehitatud viisil, et pahad inimesed ei saaks sealt infot kätte. Pole kasu kihtide mahaviilimisest või mingite andurite külgeriputamisest – selle kõige vastu on kiipkaardi sees kaitsemehhanismid. Paranoilisem kasutaja võib alustada kiipkaardi sisuga tutvumist lihtsamast aastal 2008 üllitatud kirjeldusest ning veel paranoilisem lugeja jätkata Cambridge’i koolkonna teadustöödega.

Turvaline konstruktsioon võimaldab hoida kiipkaardi sees pisikesi tähtsaid infojuppe ning usaldada sellele esemele inimese identiteeti – näiteks ligipääsutõendeid ja krüptograafilisi dokumente – neid, mis tõestavad, et mina olen just mina. Või tõestab kiipkaardis hoitav bitikombinatsioon, et kasutaja on ära maksnud mõne teleprogrammi aastase vaatajamaksu ning võib täitsa legaalselt taevakanali kaudu multikaid vaadata. Pole vist päris ilmne, kuid ka telefonis leiduv SIM-kaart (Subscriber Identity Module) on tegelikult kiipkaardi pisem teisend. SIM-kaardi ja PINi kombinatsiooni tõttu saab telefonifirma olla kindel, et pahad inimesed ei hakka teenust kuritarvitama ning et keegi ei pea võõraid kõnesid kinni maksma. Andris oma blogis selgitab, milleks on hea kahefaktoriline autentimine (2FA): http://www.andrisreinman.com/2015/10/kahefaktorilisest-autentimisest.html.

Eesti ongi hetkel ainuke riik maailmas, kus kiipkaarte, täpsemini ID-kaarti ja siis ka SIM-kaardiga seonduvat mID-d kasutatakse lihtinimeste kaugidentifitseerimiseks igapäevaselt. See võimaldab hoida meie riigiaparaati õhukesena ning vähendada kulusid oluliselt. Kokkuhoid on märgatav ka äris, kus teiste riikide oluliselt vanemad tehnilised lahendused (nagu krediitkaart) tunduvad eestlastele juba pisut kohmakatena. ID-kaardi ökosüsteemi toimimisest ja tähendusest loe http://arvamus.postimees.ee/3146061/anto-veldre-eesti-riigi-kolm-kullakoormat.

Kokkuvõttes – kiipkaart on moodsa IT-maailma väga keeruline toode, millest lõpuni arusaamiseks on vaja üht-teist teada mikroskeemide valmistamisest, tarkvarast, turvalisusest, matemaatikast ja krüptograafiast ning üllataval kombel veel ka äri organiseerimisest ja äriprotsesside korraldusest.

ID-kaardi tarkvara

Selguse mõttes peame ära märkima, et see, mida tavaliselt nimetatakse ID-kaardi tarkvaraks, ei asu üldse mitte ID-kaardi sees, vaid sellest väljaspool. ID-kaardi tarkvaraks nimetatakse kasutaja arvutis paiknevat tarkvara, mis teeb ID-kaardi kasutamise võimalikuks. ID-kaardi tarkvara sisaldab:

  1. ID-kaardi draivereid,
  2. ID-kaardi utiliiti (hellalt nimetades: utikat) – millega saab enda pilti vaadata ja oma PINe vahetada,
  3. Digidoc-tarkvara – millega saab digiallkirja anda ja allkirjastatud dokumenti uurida,
  4. Sobitusmooduleid internetisirvikutele.

ID-kaardi tarkvara tellib RIA ning viimastel kordadel on riigihanke võitnud ja selle tarkvarapaketi valmis progenud AS Sertifitseerimiskeskus. Tähtsate asutuste omavahelistes tähtsates juttudes nimetatakse ID-kaardi tarkvara vahel ka baastarkvaraks, kuna see on kõige alus ning teeb kasutaja jaoks üldse võimalikuks ID-kaardi kasutamise arvutis. Muide, ka seda tarkvara uuendatakse pidevalt ning kasutaja peaks hoolitsema, et tema arvutis oleks kättesaadav just uusim versioon.

Üllatus, kuid tänase teema raames räägime siiski kiibist ja kiibi sisust. Seega – ID-kaardi tarkvarast me seekord rohkem ei räägi. Kellel on vaja ID-kaardi tarkvara, saab selle alla laadida siit: installer.id.ee.

Kiibi tarkvara

Eelnevalt sai selgeks, et kiibi sees on pisike protsessor – oluliselt väiksem kui lauaarvuti oma. Igasugune protsessor (paiknegu ta siis suures arvutis või kiipkaardi sees) vajab töötamiseks tarkvara. Osa tarkvara tuleb arvutiga kaasa pigem kohe tehasest (nn operatsioonisüsteem), osa tarkvara aga sarnaneb oma pealepanemisviisilt mobiiliäpiga – tuuakse kusagilt lisana kohale ja kasutaja paigaldab selle kohapeal. Tegelikult isegi nimetus on pärit samast tüvest: äpp ja aplikatsioon.

Sageli saab tarkvara uuendada (vahel turvakaalutlustel suisa peab), iseasi, kui lihtne on seda teha. Sest kui kaardi tegelik omanik pole mitte lõppkasutaja, vaid pank või suurfirma või – nagu Eesti ID-kaardi puhul – riik, siis ei käi asjad sugugi sarnaselt isikliku lauaarvutiga, et mõni tegus noorsand viskab aknad välja ja paneb pingviini asemele.

Tuleb välja, et tähtsatel kaartidel on sees nn raudakeevitatud usaldusahel. Kaardi tootja häälestab ID-kaardi toorikud tehases viisil, et kaardi isandaks – turvadomeeni omanikuks – saab PPA. Seeläbi on ID-kaardid “isandaga” jäigalt seotud. Kaartidest eraldi, relvastatud kulleriga, saadab kaarditootja PPA-le isandavõtmed, millega PPA saab kaardi sisu üle ja ümber kirjutada. Keegi teine peale isanda ei saa. Mingeid võõraid toorikuid ei õnnestu sel põhjusel ID-kaardiks moondada.

Uuendamisest ja ülekirjutamisest

Kas ID-kaardi toorikut saab ka korduvkasutada? Ehk siis, kustutaksime selle pealt senise informatsiooni ning paigutaksime sinna uue. Jah, saab – kuid vaid teatud ulatuses ning väga piiratud tingimustel. Tegemist on ikkagi ju turvaseadmega, millega hooletust ümberkäimisest võib muidu tõusta paksu pahandust.

Võib eristada kaht erinevat juhtumit – ühel juhul kirjutatakse üle aplikatsioon, teisel juhul aga uuendatakse isiku krüptograafilist identiteeti (või selle mingit osa). Sertifikaatide uuendamist (ehk siis isiku krüptograafilise identiteedi ühe osa värskendamist) on Interneti kaudu varasemalt sooritatud – perioodil kui väljastati 10-aastase kehtivusajaga ID-kaarte, mille sees asuvad sertifikaadid aga kehtisid vaid 3 või 5 aastat. Inimene sai siis ise üle Interneti oma sertifikaate uuendada.

Kunagine sertifikaatide uuendamine ID-kaardi haldusvahendis

Kunagine sertifikaatide uuendamine ID-kaardi haldusvahendis

Arvestades kiireid muudatusi brauseriturul on ülimalt tõenäoline, et kevadeks 2016 lisab RIA ID-kaardi haldusvahendile senisest ulatuslikuma uuendusvõimaluse – lisaks sertifikaatidele saab siis uuendada ka omi võtmeid ja kaardil asuvat aplikatsiooni. Uuenduse eesmärk on olla paremini valmis igasugusteks tehnoloogilisteks ootamatusteks, olgu selleks siis mõne krüptograafilise primitiivi (algoritmi) aegumine või mõnest brauserist tingitud koosvõimeprobleemid. Nii talitades ei peaks tulevikus lõppkasutaja iga pisema murega PPA teenindussaali minema ning saaks mõningaid ID-kaardil paiknevaid elemente uuendada suisa kodust, interneti kaudu.

Tegemist ei ole lihtsa ülesandega, kuivõrd uuendamise käigus tuleb tagada laitmatu turvalisus isegi juhul, kui kasutaja arvuti on parasjagu mingi jubevaraga nakatunud. Ülesanne sarnaneb turvanõuetelt pisut juhtumile, kui Maalt üritatakse marsikulgurile tarkvaravahetust teha. Midagi valesti minna ei tohi, kuivõrd itimehe saatmine Marsile oleks lihtsalt liiga kallis.

Valdkonnaisand vs lõppkasutaja

On hea tava, et kaardi isand kontrollib väga täpselt, mida kaardiga teha saab. Näiteks ei saa rohelise kaardi seest mitte kuidagi kustutada seerianumbrit. Sest just seerianumber on see, mis väljendab isiku seost kaardiga, olles ka põhjuseks, miks kaart tuleb personaliseerida – isikuga siduda. Seerianumber on kõrvetatud nii sügavale kivisse, et seda muuta pole võimalik.

Sõnaga, aplikatsioone lisada või vahetada saab üksnes kaardi omanik/isand ning operatsioonisüsteemi võib-olla ei saagi vahetada. Mistõttu, kui minna poest “kiibiga kaarti” ostma, siis tuleb hoolega vaadata, et tehasest kaasapandu ikka sobiks ja pikalt kestaks. Tegelikult tädi Maali ise poes kaarte ostmas ei käi, kuivõrd politsei- ja piirivalveamet (PPA) ongi juba tehasest ostnud kotitäie sobiva kiibiga kaarte.

Pole üldse keeruline ka ise osta eBay’st või kusagilt kotitäis kaarditoorikuid (nn “valget plastikut”) ning neile ükskõik mida peale programmeerida, kuid seda tehes selgub kiiresti, et ega säärane kaart ikka ID-kaardina ei tööta küll. Miks küll – sest raudakeevitatud usaldusahel ei võimalda.

Ent kuidas siis ikkagi vahetada oma pangakaardi või ID-kaardi tarkvara? Sarnaselt akende ja pingviinidega lõppkasutaja seda enamasti ise teha ei saa – pole õigusi. Kaardiomanik on antud juhul PPA, kel on selleks otstarbeks nn “isandavõtmed” – sarnaselt siis turvamehega, kel on käsutada kogu maja peavõti.

Isandavõtmetest

Konspiratsiooniteoreetikud mõnikord oletavad, et omades ühte maagilist isandavõtit, on võimalik kaardi pealt kõike kätte saada, seal kõike muuta ja midaiganes asemele kirjutada. Tegelikkus on mitmekihilisem – kõige all on füüsiline kaart ja op-süsteem, siis aga tootja voliala lõpeb ning algab valdkonnaisanda piirkond. Lõpuks, valdkonnaisanda voliala peal paikneb konkreetse kasutaja kiht.

Seega, praktikas ei saa päris kõike teha ei tootja ega valdkonnaisand. Näiteks, isiku tarbeks kaardile kord genereeritud salajast võtit ei saa kaardilt kätte isegi mitte isand (NB! Sellest, mis täpselt on salajane võti, räägime edaspidi täpsemalt). Kui vaja – ning tootmisprotsess näeb selle võimaluse ette – on põhimõtteliselt võimalik võti uuega üle kirjutada, kuid selle käigus isiku eelmine võti hävib. (On täiesti eraldi teema, kes saab üle kirjutada ja kes ei saa.)

Isanda voliala erineb valdkonniti. Näiteks võimaldavad pangakaardid paigutada kaardile mitu erinevat aplikatsiooni (kui poes rahavõtuaparaat näitab korraks kirja “selecting application“, siis tavaliselt valitaksegi neist esimest). ID-kaardi puhul kehtib seni põhimõte, et kaardil paiknebki vaid üks aplikatsioon/rakendus/programm (põhimõttel: vähem riske, vähem segadust).

Kuid inimene iseseisvalt ikkagi ei saa aplikatsiooni kaardil vahetada – selleks oleks vaja isandavõtmete osalust, mida inimesel pole. ID-kaardi puhul on valdkonnaisand PPA, see asutus määrab, mida tädi Maali oma kaardiga teha saab. PPA ise saab kaardil aplikatsiooni välja vahetada küll, kui see PPA kontorisse tuua. Tädi Maali saaks ka, kuid vaid siis, kui PPA oma käe alla paneb ja oma isandavõtme(te)ga selles koostöös osaleb. Eesmärk on, et kiibile viirusi või mingit muud jama ei satuks, ja seni on ettevaatus end õigustanud – kurikaelad pole saanud kiibi peale oma pahavara sokutada.

Turvalisust matemaatiliselt tõestada on suht võimatu ettevõtmine. Võib palju raha kulutada, kiipi ja selle tarkvara auditeerida ja sertifitseerida (mida tegelikult tehaksegi), kuid viimast kolme viga ikkagi üles ei leita. Moodne aeg pakub skandaalideks hoopis uusi ja huvitavad võimalusi – kui tehnilist viga tegelikult polegi, võib meedias suurt PR kära tekitada sellegipoolest, näiteks teemal, kuidas noorhäkker Juku oma garaaži värkstoas kiipi häkib. Meedia vaatevinklist sama tõenäoliselt võiksid kurikaelad koos noorhäkker Jukuga ka Marsile lennata – me ei saa ju Marsile lendamist matemaatiliselt välistada. Praktiline turve on aga täna selline, et ei kurikaelad ega noorhäkkerid kiibist jagu ei saa. Seni pole saanud.

Mis täpselt on kivi sees?

Põhjus, miks kivi sisemust pole põhjalikumalt lahatud, on väga lihtne – kohutav keerukus. See oleks umbes nagu kutsuda tädi Maali lahkamisele … midagi ju paistab, kuid nähtut mõistavad põhiliselt ikka arstiteaduskonna tudengid – meie juhtumis itimehed. Mis siis ikkagi on kivi sees?

Alustuseks mainime ära, et on olemas nn tööstusharu standardid. Näiteks kanalisatsioonitoru on enamasti plastmassist. Koduste ruuterite, digibokside ja televiisorite sees asub aga ülimalt sageli Linux (kuigi seda kliendile otsesõnu ei mainita). Sest tegelikult pole ju kasutajale oluline, mis on kassi sees, peaasi, et kass hiiri püüaks. Kaardivaldkonnas on sarnane tööstusharu standard Java. Praktiliselt kõik tänased kaardid on nn jaavakaardid – st nende programmeerimisel kasutatakse Java keelt. Nii ka ID-kaardi puhul.

Valdkonnaisand, tema õigused ja volitused

Kiipkaardi sisu on loodud universaalsena. Miks? Sest tootja teeb kaarte väga erinevatele valdkondadele ja eri valdkondade isandatel on teistest võimatult erinevad nõuded. Seega on tootjal mõtet teha üks väga universaalne kaarditoorik, nn “Global Platform“, nn jaavakaart, mida siis edaspidi personaliseeritakse kaks korda. Kõigepealt, tootmisel „personaliseeritakse“ kaardipartii konkreetse isanda tarbeks. Edasi, kaartide väljastamisel personaliseerib valdkonnaisand iga üksiku kaardi vastavalt konkreetse kasutaja näole ja nimele (identiteedile).

Otse loomulikult ei saa isand kaarti oma valdkonnast “välja” programmeerida – kaart jääb igaveseks teenindama just selle isanda konkreetset valdkonda (Viasati kaart, Starmani kaart, kliendikaart või ID-kaart). Lõppkasutajatel lubatakse kaarti ümber programmeerida suhteliselt harva ning seda kindlasti vaid isanda poolt täpselt piiritletud ulatuses.

Arhitektuur ja disain

Ütleme ausalt ära – see peatükk siin on jutustuse kõige igavam peatükk. Võtame koguse termineid pikast ingliskeelsest failist ning proovime need eesti keeles mõistlikult lahti seletada. Kui täna juhtub olema pilvine ja paha ilm (ning paaritu kuupäev), siis tohib lugeja selle peatüki vahele jätta.

600px-GlobalPlatformArchitecture

Allikas: http://sourceforge.net/p/globalplatform/wiki/GlobalPlatform%20Card%20Specification/

Ametlikes dokumentides näeb ID-kaardi sisemine arhitektuur välja selline (vt joonis).

Käitusfaasikeskkond (RE – Runtime environment) on tarkvara, mis täidab programme ja tagab arvuti, vabandust, kiipkaardi üldise funktsioneerimise. Kui tavaarvutis suhtleb rakendus/aplikatsioon opsüsteemiga otse, siis siin istub kõike kontrolliv RE nende kahe vahel. Rakendus kutsub välja käituskeskkonna alamprogramme ning alles käituskeskkond kutsub välja opsüsteemi alamprogramme. Nii nagu opsüsteem, sisaldab ka käituskeskkond tohutul arvul alamprogramme üldiste funktsioonide tarbeks. Mis kasu on sellest vahekihist? Vastused: universaalsus ja turvalisus.

Kaardihaldur (CM – Card Manager) on Globaalse Platvormi üks tähtsamaid komponente. Kui kontaktid ära ühendada ning asuda APDU keeles kaardiga rääkima, siis just Card Manager on see, mis tõlgib kasutaja tahtmise kaardile arusaadavasse keelde. Kaardihaldur kätkeb endas ka valdkonnaisanda turvadomeeni, kuivõrd just see “kastike” on kaardil paikneva(te) aplikatsiooni(de) omanik.

Turvadomeen (Security Domain). Teadlased oma funktsiooniteoorias nimetavad domeeniks “argumendi väärtuste komplekti, mille puhul funktsioon on määratletud” – aga see võib olla lihtinimesele ülearu keeruline selgitus. Kõige üldisemalt tähendab termin “domeen” arvutustehnikas ja telekommunikatsioonis mingit konkreetset teadmustekogumit, millele aga on antud eraldi nimi. Need teadmised kujutavad endast harilikult mingite programmide kohta käivate faktide kogumit. Ümbersõnastades, turvadomeen on seega siis valdkonnaisandat ja tema aplikatsiooni kaitsev erinevate piirangute hulk. Umbes nagu Stalkeri „Tsoon“, kus kehtivad kellegi teise füüsikaseadused.

Rakendusliides (API – Advanced Programming Interface). See on väga levinud lühend ning märgib tootja poolt etteantud riistariiulit, kuhu siis on valitud mingi kasulik komplekt tööriistu. Rakendusprogrammeerija vaatab neile tööriistadele otsa ning otsustab, milliseid neist ta oma töös ehituskividena kasutab. Nii muutub progeja töö lihtsamaks ja saab keskenduda muudele olulistele teemadele. API-l on positiivne mõju ka kasutajale – standardiseeritus tähendab, et akende kuju ja võimalused on eri arvutites suhteliselt sarnased – kasutaja tunneb end koduselt igas süsteemis.

Aplikatsioon (Rakendusprogramm) on lõppkasutaja tarbeks kirjutatud iseseisev ja terviklik programm. Suure arvuti rakendustarkvara ehk lõppkasutajaprogramme tunnevad kõik – need on tekstitöötlusprogrammid (nt MS Word), tabelarvutusprogrammid (nt MS Excel) ja andmebaasiprogrammid (nt MS Access). Kaardi GlobaalPlatvormil paiknev aplikatsioon/rakendus on samuti kasutusfunktsiooni põhine. Näiteks Eesti ID-kaardi puhul tegeleb aplikatsioon krüptograafiaga ning võimaldab õige PIN-koodi esitamisel räsi arvutada ja sooritada muid krüptograafilisi toiminguid. Tuleb aru saada, et nii nagu suures arvutis, nii ka kaardi peal aplikatsioon ise vabalt ringi ei rahmelda, vaid pruugib oma tegemistes, opsüsteemi ja süsteemiutiliitidega suhtlemiseks rakendusliidest (API-t).

Rakendusprotokolli andmeühik (APDU – Application Protocol Data Unit). Suur arvuti suhtleb kiibi rakendusprogrammi (ehk aplikatsiooniga) etteantud lausete ehk andmepakettide abil, mida siis jälgede segamiseks nimetatakse “rakendusprotokolli andmeühikuteks” (APDU). See on umbes nagu kahe tuttava isiku omavaheline vestlus: “Tere vana kere!”, “Tere jah!” … Vaevalt julgeks keegi seda nauditavat vestlust rikkuda väljendiga “Mää, mää, valge tall!”. Nii ka lubatud APDU-de loetelu paneb lubatud vestlusprotokolli küllalt täpselt paika – kes ütleb mida ning mis järjekorras.

Lapsi toob kurg

Kõik teavad, et lapsi toob kurg. Kuid kust pärineb kogu see ID-kaardil paiknev kraam? Kust see tuleb, kelle käest ja mis meetodiga?

WorkFlow-006b

Kõige aluseks on isikuandmed. Isikuandmeid hoitakse PPA eriti turvalises arvutisüsteemis. Kui kodanik kirjutab avalduse ja taotleb ID-kaarti, siis käivitub järgmine protseduur:

Protseduur nr 1: Tootmisliinil võetakse karbist üks kaarditoorik ja pistetakse see „sisse“. Kaardile antakse käsk – genereeri 2048-bitised RSA võtmed. Need teadagi käivad paaris, üks on avalik ja teine salajane (korrektne termin on privaatne). Kumbki võti koosneb tegelikult kahest omavahel korrutatud algarvust (RSA võtmete matemaatikat on hästi kirjeldatud näiteks Andrise blogis).

Mida tähendab – genereeritakse? Nooremad inimesed ütleksid selle kohta, et „võetakse lambist“, spetsialistid räägivad juhuslike arvude generaatorist. Mis aga on oluline – kumbki võti pole kuidagigi seotud kaarti taotlenud isikuga. Võtme juhuslikud bitid tulevad tõepoolest lambist ning tulevase kaardiomaniku sugu ega nägu ei mõjuta neid bitte kuidagi.

Protseduur nr 2: Alles teise tegevusena vaadatakse – kes siis on see isik, kellele konkreetne kaart personaliseeritakse. Andmed saadakse PPA arvutisüsteemist ning PPA töötaja valvas silm võrdleb iga kirjet avalduse iga reaga.

Protseduur nr 3 pruugib suurtes kogustes krüptograafiat. Võetakse a) isikuandmed ning b) äsja kaardile genereeritud roheline (avalik) võti. Sertifitseerimiskeskuses miksitakse need kaks üheks dokumendiks kokku ning c) saadud dokument tembeldatakse (allkirjastatakse).

Protseduur nr 4: Eelmise toimingu tulemusel saadakse sertifikaat. Ning see tuleb ID-kaardile tagasi kirjutada. Nüüd on konkreetse seerianumbriga ID-kaart kenasti personaliseeritud ja kuulub konkreetsele inimesele. Muide, ka lühiversioon isikuandmetest kirjutatakse kaardile – selle nimeks on „isikuandmete fail“.

Mis on karul kõhus?

Eespool (peatükis Arhitektuur ja disain) rääkisime kiipkaardi tegelikust keerukusest. Edaspidi jätame kõrvale selle osa ID-kaardi sisemusest, mis kuulub tootjale (firmale, kellelt kaardiplastik osteti ja kes selle meie kasutusviisi jaoks ära „personaliseeris“. Seejärel jätame kõrvale veel teisegi osa kaardi sisust, mis kuulub rakendusdomeeni omanikule (valdkonnaisandale) – kelleks Eesti ID-kaardi puhul on PPA. Mõlemis osas võib sisalduda isandavõtmeid ja teenindusvõtmeid, millest aga teavad üksnes vastava valdkonna eest vastutajad. Lõppkasutajale sinistest ja lilladest võtmetest ei räägita, kuivõrd ID-kaardi praktilisse kasutamisse ei puutu need no kohe mitte kuidagi.

Pärast seda lihtsustust võime olla kindlad, et järelejäänu puutub kindlasti ID-kaardi igapäevasesse kasutamisse ning saame üles loetleda elemendid, mis pärast genereerimisi ja tembeldamisi ja personaliseerimisi ID-kaardil paiknevad.

ID-kaart-A-009

Kõigepealt paikneb kaardil isikuandmete fail, kus kirjas kaardiomaniku nimi ja isikukood. Seda faili loetakse Apollo raamatupoes ning vanasti lugesid seda faili ka MUPO parkimiskontrolörid. Mingil hetkel selgus, et võib-olla polegi privaatsusele hea, kui päris igaüks seda faili lugeda saab, mõni võõras veebiserver näiteks, ning ehitati pisike kaitse ette.

Järgmiseks on kaardil kaks sertifikaati – mis just eelmises peatükis saabusid SK tembeldusteenusest, üks neist on mõeldud kodanikule autentimise tarbeks ja teine allkirjastamise tarbeks. Turvakaalutlustel on kasulik kaks mainitud tegevust alati eraldi hoida. Tehniliselt võttes pole neil sertifikaatidel suurt erinevust, pisut nipitades võiks allkirjastada ju ka PIN1 abil, kuid seaduse silmis poleks säärane allkiri kehtiv.

Eespool oli juttu võtmetest, mis kaardile genereeriti. Oluline on mõista, et võtmeid on kaks komplekti – vastavuses kahe sertifikaadiga ning kummaski komplektis on oma avalik ja oma salajane võti – täpselt nagu krüptograafiaõpik ette näeb. Siiski on väike erinevus võtmete hoidmises. Avalikud võtmed on kaardilt kenasti väljaloetavad – nagu ka sertifikaadid või isikuandmete fail. Salajasi võtmeid seevastu hoitakse kiipkaardi kõige kaitstumas osas (joonisel allpool punast joont) – neid ei saa sealt kätte mitte kunagi, mitte mingitel asjaoludel. Need genereeritakse kaardil ning koos kaardiga need ka surevad…

Küsite, et mis kasu on asjast, mida kunagi kätte ei saa? Salajase võtme sügav olemus ilmneb alles siis, kui ta PIN-koodiga aktiveerida. Kui õige PINi abil salajane võti ergastada ning anda ID-kaardile (mõne sobiva APDU käsu abil) ette andmekild – nagu allkirjastatava dokumendi räsi – siis suudab kaart selle räsi põhjal rehkendada dokumendile digiallkirja (allkirjastada räsi). Ning seejuures on kõva matemaatikaga garanteeritud, et mitte keegi väljaspool kaarti sama tulemuseni ei jõua. Selles asjaolus ID-kaardi võluvägi seisnebki – mitte kunagi pole kahtlust, millise isiku kaardiga on tegemist. Mis võimaldabki kaugautentimist ja usaldusväärset digiallkirja.

Salajased võtmed pisut erinevad oma ergastamisviisi poolest. Kui autentimisvõti „ergastub“ mitmeks tarvitamiskorraks (sest muidu tuleks pangas uut menüünuppu vajutades iga kord uuesti PIN1 sisestada), seevastu allkirjastamise võti „ergastub“ rangelt vaid üheks korraks. Dokumendile antakse allkiri ning järgmisele dokumendile allkirja andmiseks tuleb PIN2 uuesti sisestada.

On jäänud kirjeldada veel üks element – aplikatsioon. Aplikatsioon ehk rakendus on valminud PPA tellimusel. Tegemist on programmiga, mis ühelt poolt suhtleb kaardiplatvormi ja selle võimalustega ning teisalt täidab kasutaja tellimusi – loomulikult arvesse võttes arvukaid asjakohaseid turvapiiranguid.

2 thoughts on “Kolmas kivi päikesest

  1. AivarLiimets

    Nii ilus, et pisar tuleb silma!

    Millal Aplikatsioon ehk PPA rakkendus muutub avatud koodiks?
    Mitu Aplikatsiooni on PPA väljastanud?

    Nii, et FinFisherit pole vajagi. Piisab kui PPA väljastab Applikatsiooni, mis nakatab sinu arvuti ja ongi kõik. Selline lahendus on isegi parem kui tagauks. See ongi see “front door” millest James Brien Comey, Jr sonib.

    Reply
  2. Anonüümne

    Tänud selgitamast, ülevaade on põhjalik, sisukas ja huvitav. Kui teisigi ID-kaardi tarkvarataristu osi (PKI, OCSP, LDAP jne) tutvustataks, oleks tore.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *