Eesti ID kaardi kasutamine Linux keskkonnas

Alates 2002 aasta algusest on Kodakondsus ja Migratsiooniamet (KMA) väljastanud uusi Eesti ID kaarte. ID kaart on Eest siseseks kasutamiseks ettenähtud isikutunnistus. Igal Eesti kodanikul peab olema isikutunnistus. Välisriikidesse sõites on vaja ka reisidokumenti – passi. Nii ID kaarti kui passi saab taotleda KMA-st posti teel. Sellest kuidas seda teha saab lugeda siit: http://www.pass.ee.


ID kaart on oluliselt erinev muudest pildiga isikutunnistustest. Tegemist on smart-card ehk protsessorkaardiga. Kaardi sees on tilluke arvuti oma protsessori, mälu ja muu vajalikuga. ID kaart on palju turvalisem kui laialt levinud magnetribaga kaardid. Magnetribaga kaarte kasutatakse pankade makseautomaatides ja paljudes muudes kohtades. Sellised kaardid on palju lihtsamad ja odavamad aga ka mitte nii turvalised. Kaardi magnetribale salvestatud andmeid saab vastava lugeja olemasolul lihtsalt lugeda. Kaartide kasutajad üritavad lisada mitmeid turvameetmeid, kuid mitte väga edukalt. Kui selline kaart varastatakse tuleb kiiresti teatada vastavale firmale juhtunust.

ID kaardilt andmete lugemiseks on vaja teada vastavat PIN-i ja erinevalt magnetribaga kaardist on tegemist aktiivse mooduliga. Magnetribaga kaardilt saaks näiteks sinna salvestatud salasõna välja lugeda ja kaardi omanikule tagastada. Kui salasõna ei muutu, siis saaks seda edaspidi ilma kaardita kasutada ja kaardi omanik ei pruugi teada et tema salasõna kasutatakse samaaegselt ka kellegi teise poolt. ID kaardilt seevastu ei saa allkirjastamiseks või autentimiseks vajalikku salajast võtit välja lugeda vaid teda saab kasutada kaardile vastava käskluse saatmise teel. Seega peab kaart kasutaja käes olema ja omanik märkab kohe kui tal kaarti enam ei ole.

ID kaart on kasulik ennekõike turvalisteks tehinguteks internetis. Siiani on internetis kasutatud “jagatud saladusega” (shared secret) ehk nn. sümmeetrilisi süsteeme. Sellise meetodi näiteks on paljud kasutajatunnuse ja salasõna kasutavad klient-server lahendused, pankade internetikeskkonnas kasutatud parooli kaardid ja PIN kalkulaatorid. Turvatase on erinev sõltudes tugevalt ka valitud salasõnast ja muudest meetmetest (regulaarne salasõna vahetus, parooli kaardi kasutamine, ajamomendist sõltuva PIN genereerimine jne.). Kõigi nende lahenduste ühine omadus on see, et kasutaja ja teenuse osutaja teavad mingit ühist saladust (salasõna, parool nr x kaardilt, ajamomendil x kalkulaatori poolt genereeritud parool jne.). Kasutaja saadab selle saladuse (soovitavalt üle krüpteeritud ühenduse – HTTPS jms.) teenuseosutajale, kes seda võrdleb oma andmebaasis salvestatud parooliga ja kokkulangevuse puhul osutab kasutajale soovitud teenust. Selle lahendusega on seotud järgevad probleemid:

ID kaart võimaldab kasutada asümmeetrilist krüptograafia lahendust. Asümmeetriline lahendus tähendab seda et kasutajal on kaks võtit – avalik ja salajane. Salajast võtit ei anta kellelegi aga avalikku võtit jagatakse kõigile. Salajase võtmega saab allkirjastada või krüpteerida midagi nii et tulemust saab lugeda või allkirja kontrollida ainult vastava avaliku võtme abil ja vastupidi. Samas ei ole enam võimalik salajase võtmega dekrüpteerida kord sama võtmega krüpteeritud andmeid ja sama kehtiv avaliku võtme kohta. Nüüd on kõigil kel on olemas kasutaja avalik võti võimalik saata talle selle võtmega krüpteeritud sõnum ja olla kindel et keegi kõrvaline isik ei saa seda sõnumit lugeda kuna neil ei ole antud kasutaja salajast võtit. Sel kombel välditakse jagatud saladuse süsteemides esinenud raskusi ühise parooli / võtme salajas hoidmisega. Võimlik oleks ka salajase võtmega krüpteerida andmeid ja olla veendunud et neid saab lugeda vaid avaliku võtme olemasolul. Sellel pole andmete varjamise seisukohalt mingit mõtet kuna avalik võti on kõigil olemas, küll aga on see kasulik allkirjastamise seisukohalt. Salajase võtmega krüpteeritud andmeid vastava avaliku võtmega dekrüpteerides võime olla veendunud et ainult vastava salajase võtme omanik suutis neid andmeid (s.o. seda allkirja) tekitada. Reaalses elus kasutatakse enamasti paljusid nimetatud omadusi korraga. Näiteks internetikaupluses surfaja valib välja soovitud kaubad ja kui ta tellimuse esitab koostab internetikauplus talle sobiva elektroonilise tellimuse, näiteks XML sõnumina. Klient arvutab tellimise andmete üle räsikoodi ja krüpteerib selle oma salajase võtmega. Räsikood onma mingite algandmete kohta arvutatud fikseeritud pikkusega kontrollkood. Kui algandmeid kas või tühiselt muuta, muutub kohe ka kontrollkood. Kontrollkoodist ei ole võimalik tuletada tema aluseks olnud algandmeid. Kontrollkoodi krüpteerimisega allkirjastab klient antud tellimuse ja vastavalt Eesti Vabariigi sedustele on selline allkiri võrdväärne paberil antud allkirjaga. Peale allkirjastamist võib klient tellimuse krüpteerida kaupmehe avaliku võtmega takistamaks teistel internetikasutajatel tema tellimuse sisu lugemast. Levinud on ka sümmeetrilise ja asümmeetrilise meetodi kombinatsioon. Sümmeetriline krüpteerimine on enamasti palju kiirem kui asümmeetriline ja seepärast kasutatakse mingi suurema sõnumi krüpteerimiseks enamasti sümeetrilist algoritmi (DES, 3DES, IDEA, AES jne.) ning tolle algoritmi jaoks kasutatud (ühekordne ehk transpordi) võti krüpteeritakse omakorda asümmeetrilist algoritmi kasutades sõnumi vastuvõtja avaliku võtmega. Sedasi kasutame nii asümmeetrilise algoritmi tugevuseks olevat lihtsamat võtmete haldust (s.o. võimalust jagada oma avalikku võtit kõigile soovijatele ilma kartmata sõnumivahetuse turvalises pärast) ja sümmeetrilise algoritmi kiirust.

Oluline on mainida ka asümmeetrilise algoritmi poolt võimaldatud vastaspoole autentimist ehk tema tegeliku identiteedi tuvastamist. Igaüks võib genereerida endale asümmeetrilise võtmepaari. Avalikule võtmele saab lisada kasutaja nime, aadressi ja palju muud. Olles genereerinud omale sellise võtmepaari ja salvestanud oma nimena näiteks John Lennon võin ma seda avaliku võtit internetis kasutada. Kuidas siis teab mu sõnumi vastuvõtja et ma tegelikult John Lennon olen ja mitte lihtsalt endale sellist võtit ei genereerinud? Selleks kasutatakse avaliku võtme ja tema parameetrite (omaniku nimi, aadress, isikukood, email jne.) allkirjastamist. Allkirjastamine tähendab sisuliselt antud avaliku võtme ja sellega seotud parameetrite üle räsikoodi arvutamist ja viimase krüpteerimist mingi tuntud ja usaldatud asutuse või organisatsiooni salajase võtmega. Selliseks organisatsiooniks on sageli mõni suurem pank või riiklik asutus. Näiteks Eesti Vabariigis on selleks AS Sertifitseerimiskeskus. Kogu asi toimib sellel põhimõttel, et kui te ei tunne oma vastaspoolt internetis, siis võibolla tunnete te mõlemad mingit tsentraalset (riiklikku jms. ?) organistatsiooni, mida te mõlemad usaldate. Antud organistatsioon allkirjastab mõlema osapoole avalikud võtmed. Avaliku võtme allkiri (s.o. krüpteeritud räsikood) lisatakse antud võtme enda andmetele ja sellega saab avalikust võtmest nn. sertifikaat. Sertifikaat on seega mingi kolmanda osapoole poolt kinnitatud avalik võti. Interneti kasutajad saavad tõmmata oma arvutisse nimetatud kolmanda osapoole avaliku võtme ja selle abil kontrollida neile saadetud teiste interneti kasutajate sertifikaatide ehtsust. Seega võimaldab asümmeetriline krüptograafia tuvastada teise isku identiteeti internetis ilma teda kunaga isiklikult kohtamata ja ilma vajaduseta temaga mingit eelnevat lepingut sõlmida. See on väga oluline tõsiasi. Vaadake kasvõi kuidas tuntud pankade internetiportaalid üksteise võidu sellega kemplevad kui palju neil hetkel (lepingulisi!) kasutajaid on. Mida suurem firma, seda rohkem lepingulisi kliente ja seega seda suurem turg / klientide hulk kellele nad saavad internetis midagi müüa või teenuseid osutada. Väikefirmal on vähe tuntud (s.o. lepingu ja paroolikaardiga) kliente ja seega ka vähe võimalusi kellelegi oma kaupa müüa. Muidugi on võimalik pakkuda oma kaupu suurema firma kaudu, kuid selle eest tuleb siis antud firmale lõivu tasuda. Seega olles kord saavutanud ¨suure firma¨ staatuse läheb äri libedalt. Asümmeetriline krüptograafia muudab radikaalselt seda olukorda. Nüüd on paljudel Eesti elanikel riiklikult tunnustatud elektrooniline isikutunnistus ja seega on kõigil firmadel, nii suurtel kui väikestel, võimalik oma kaupu internetis kogu elanikkonnale müüa. Enam pole vaja omada laialdast ja ainult suurtele firmadele taskukohast kontorivõrku kliendibaasi kogumiseks. Kodanikel on selle võrra suurem valikuvabadus ja tõenäoliselt ka tänu tihenenud konkurentsile soodsamad tingimused.

Elektroonilisi isikutunnistusi (s.o. sertifikaate) on võimalik ka peatada ja tühistada. Seda tehakse näiteks siis kui sertifikaadile vastav salajane võti on võõrastesse kätesse sattunud (kaart varastati või on kadunud). Sertifikaatide väljaandjad avaldavad oma veebilehel tühistatud sertifikaatide nimekirja – CRL (Certification Revocation List). Kui vaja saab ka tagasiulatuvalt kontrollida, kas ajamomendil x oli antud kasutaja sertifikaat kehtiv. Selline kehtivuskinnitus sisaldab ka väljaandva organistatsiooni elektroonilist allkirja ja seega moodustab koos algse elektrooniliselt allkirjastatud dokumendiga tulemuse, mis ka aastate pärast veel juriidiliselt kehtiv on. See omadus teeb elektroonilise allkirja oluliseks ka suurfirmadele. Eesti seadusandlus nõuab lepingute jms. säilitamist väga pika aja jooksul. Suurfirmad produtseerivad iga päev konteinerite kaupa arhiveerimisele kuuluvaid dokumente, mis siisaastateks säilitamist nõuavad. Kui vaid osa sellest asendada CD-ROM -le kirjutatud elektrooniliselt allkirjastatud ja kehtivuskinnitusega dokumentidega, siis saaks palju raha kokku hoida.

ID kaart on kõike seda võimaldavaks tehnoloogiaks. ID kaart on ennekõike kasutaja salajaste võtmete turvaline hoidla. Kasutaja salajasi võtmeid ei saa kaardilt peale nende tekitamist enam välja lugeda



ID kaardi kasutamiseks on vajalik sobiv kaardilugeja. Viimaseid on mitmetes arvutipoodides müüa ja lihtsamad maksavad 500 EEK ringis. Enne kui kaardilugejat ostma minna tasuks kontrollida et selle kaardilugeja jaoks on olemas ka ohjurprogramm siin: http://www.linuxnet.com/sourcedrivers.html.



Middleware: http://www.linuxnet.com/middle.html