Mis ID-kaardiga ilmselt tegelikult juhtus ja kui ohtlik see Eestile on?

Foto: PM/Scanpix

Täiendus: hetkeseisuga pole teada, et ükski reaalne ID-kaart oleks lahti murtud.

Sellest hetkest, kui Riigi Infosüsteemi Amet teisipäeva hommikul teatas, et teadlased on avastanud Eesti ID-kaardis võimaliku turvaaugu, on IT-kogukond avalikult kättesaadava info põhjal proovinud aru saada, mis tegelikult juhtus. Pea kõik arutelud jõuavad välja ühte kohta: ilmselt on kõrvalistel isikutel võimalik kaardiga sisse logida ja allkirju anda ka ilma PIN-koode teadmata ja ilma kaarti omamata.

Geeniuse toimetus konsulteeris päeva jooksul paljude Eesti asjatundjatega, kes tunnevad nii kogu ID-kaardi süsteemi ülesehitust kui krüptograafiat laiemalt. Meil pole mingit siseinfot ning keegi pole meid ei avalikult ega salaja eraldi briifinud selle kohta, mis tegelikult juhtus, aga me toome siin ära stsenaariumi, mida eranditult kõik meiega rääkinud üksteisest sõltumatud spetsialistid kõige tõenäolisemaks pidasid. Teema on mitte-IT-spetsialistidele keeruline, aga me proovime seda teha ülimalt lihtsustatult, seega spetsialistid andku see lihtsustatus meile andeks.

Need reeturlikud avalikud võtmed

Väga kõnekas fakt kogu sündmustiku juures on see, et riik otsustas ohust teada saades sulgeda ID-kaardi avalike võtmete serveri, mida pidas SK ID Solutions AS, vana nimega Sertifitseerimiskeskus. Et selle olulisust mõista, teeme ühe lihtsa põike sellesse, kuidas ID-kaardi krüptograafia üldse töötab.

Kaardiga on seotud kaks võtit: avalik ja salajane. See on maailmas väga levinud ja laialt kasutatav süsteem, millel ongi nimeks “Avaliku võtme krüptograafia” ja mis tähendab, et sõnumi saatja šifreerib sõnumi kasutades vastuvõtja avalikku võtit, vastuvõtja dešifreerib sõnumi enda salajase võtmega. Need kaks võtit on üksteisega seotud ning salajane võti, nagu nimigi ütleb, on salajane ja avalik on avalik. Salajane võti elab ID-kaardi kiibi peal väga kaitstud olekus ning avalik elab igal pool internetis, muuhulgas SK avalike võtmete andmebaasis.

Sealt sai kuni viimase ajani igaüks teha kasvõi oma internetibrauseri kaudu päringuid: sisestad otsitava inimese isikukoodi ja saad tema avaliku võtme vastu. Isikukoodid on ka Eestis avalikud, nii et näiteks kõigi firmade juhatuse liikmete isikukoodide andmebaas kokku panna ning selle abil kõigi nende inimeste avalikud võtmed oma arvutisse laadida oli mitte ainult triviaalne, vaid ka täiesti seaduslik ja normaalne tegevus. Avalik võti peabki avalik olema, see on kogu avaliku võtme krüptograafia süsteemi aluspõhimõte. Ilma avalike võtmeteta see lihtsalt ei töötaks.

Avaliku võtme krüptograafia toimib aga eeldusel, et avalikku võtit teades ei ole mitte mingil juhul võimalik sellest tuletada salajast võtit. Selleks peavad võtmed olema piisavalt pikad ja kasutatavad algoritmid piisavalt head, et see oleks inimkonnale praegu ja nähtavas tulevikus kättesaadavate arvutusvõimsuste juures sama hästi kui võimatu. Päris võimatu ta niikuinii ei ole, aga kui kogu maailma arvutusvõimsust korraga kasutusele võttes kuluks ühe parooli murdmiseks ikkagi kümneid või sadu aastaid, võime öelda, et see on sama hästi kui võimatu. Kui tehnika areneb, saab kasutusele võtta uued ja paremad algoritmid ja seda ka tehakse.

Asjaolu, et Eestis pandi probleemi ilmnedes kohe avalike võtmete server kinni, annab Geeniusega konsulteerinud IT-spetsialistide sõnul loogilise aluse eeldada, et mingil põhjusel on võimatu osutunud võimalikuks: Eesti ID-kaartide avalikke võtmeid teades on neist võimalik tuletada salajased võtmed ehk meie elektroonilist identiteeti ja digiallkirju võltsida.

Kas keegi tegi vea?

Hea küsimus on see, miks selline asi üldse võimalik on, kui kogu süsteem on üles ehitatud eeldusel, et see ei ole võimalik. See on sama hull ja arusaamatu olukord, nagu oleks see, kui päike hakkaks ühel päeval Läänest tõusma ja Itta loojuma. Me kõik teame, et see pole võimalik, aga ometi ühel hetkel selgub, et on. Aga erinevalt päikese teistpidi käima hakkamisest on siin võimalikud loogilised seletused olemas.

Riigi esindajad näitasid teispäevasel pressikonverentsil üsna ühemõtteliselt kaartide tootja, rahvusvahelise suurfirma Gemalto peale. See pole ainult Eesti ID-kaartidega seotud probleem, vaid ligi miljardit kogu maailmas välja antud kaarti puudutav mure. Järelikult on Gemaltos kaartide tootmisel juhtunud midagi, mis teeb salajaste võtmete tuletamise avalikest võtmetest võimalikuks. Mis see on, võime ainult spekuleerida. Näiteks on võimalik, et kuigi kogu süsteem põhineb eeldusel, et salajased võtmed genereeritakse täiesti juhuslikest arvudest, siis võib-olla on selgunud, et need juhuslikud olema pidanud arvud tegelikult polnud nii väga juhuslikud.

Väga lihtsustatult, ütleme, et meil on vaja genereerida kümme juhuslikku arvu ja mingil põhjusel me teeme nii, et nende arvude algused on kogu aeg samad, näiteks 123456789 ja vahetame ainult kahte viimast numbrit. Nii et esimene “juhuslik” arv on 12345678945, järgmine 12345678924 ja nii edasi. Siis pole koodi murdmiseks vaja ära arvata pikka juhuslikku arvu, vaid ainult seda viimast, mis vahetub ja see on tunduvalt lihtsam. See on üks võimalus, miks pikk murdmatu kood murtavaks osutus, aga neid on veel.

Eesti jaoks on kõige olulisem see, et probleem ei ole meie e-riigi arhitektuuris ega süsteemis laiemalt, vaid ühe tootja tarkvaras. Me ei pea oma e-riigi juures midagi põhimõtteliselt ümber tegema, vaid saama katkiste asemele lihtsalt korralikud ID-kaardid ja probleem on lahendatud.

Nad varastavad meie allkirjad

Nüüd saame minna küsimuse juurde, kui oluline see avastatud turvaauk on ehk miks valitsus nii laialt sellele reageeris ja mis saab edasi.

Kui see ülaltoodud IT-spetsialistide see arutluskäik on tõsi, siis on tegemist riigi jaoks üsna niru olukorraga. Kui avalikust võtmest saab tuletada privaatse, tähendab see, et kolmandad isikud saavad meie eest hakata ID-kaardiga pangaülekandeid tegema, digiallkirju andma ja, tõepoolest, ka e-valimistel osalema. Kui salajane võti murtakse, saab sellega teha kõike seda, mida inimesed ise oma ID-kaartidega teevad, kasvõi lepingutele alla kirjutada, laenu võtta, firmasid osta ja müüa ja nii edasi.

Kõige hullem on see, et sellisel juhul saaks kaarte rünnata ka ilma, et neid füüsiliselt vaja oleks. Kellelgi pole vaja meile tänaval nuiaga pähe lüüa ja meie rahakotte ära varastada selleks, et meie digitaalseid identiteete varastada. Meie kaardid ja PIN-koodid oleks meiega turvaliselt kogu aeg kaasas, aga rünnak toimuks puhtalt läbi interneti ja nii, et me ilmselt ei saagi sellest teada enne, kui ilmub välja suvaline inimene digiallkirjastatud lepinguga, mille kohaselt sa müüd talle 100 euro eest oma korteri või kingid ära oma firma. Kuna allkiri näib 100 protsenti ehtne, on pärast väga raske tõestada, et sa ei andnud seda ise, vaid see on võltsing.

Muidugi on salajase võtme murdmiseks sel juhul vaja avalikke võtmeid ja see on ka ilmselt põhjus, miks riik avalike võtmete serveri kinni keeras, aga see on paremal juhul poolpidune lahendus. Jah, nüüd pole enam ühte kohta, kust mugavalt kogu rahvastiku avalikud võtmed endale alla laadida, aga esiteks ei ole meil mingit garantiid, et üks või kasvõi miljon inimest või kolmetähelist organisatsiooni seda juba ammu teinud pole ning teiseks lendavad meie avalikud võtmed internetis avalikult ringi iga kord, kui me ID-kaardiga midagi teeme.

Avalikud võtmed on, nagu öeldud, avalikud ja kui välja valida inimesed, kelle digitaalset identiteeti tahetakse ära ajada, pole nende avalike võtmete hankimine eriline probleem. Serveri kinni keeramine teeb pigem keerulisemaks kõigi probleemist vaevatud 750 000 kaardi lahti murdmise, sest 750 000 avalikku võtit on tüütu ükshaaval koguda.

Riigi väike PR-trikk

Siin aga tuleb mängu riigi väike PR-trikk. Riigi teatel maksab kõigi Eesti kaartide lahtimuukimine umbes 60 miljardit eurot ja see on tõepoolest liiga suur raha, et ühele väiksele igavale riigile nagu Eesti seda kulutada. Ilmselt ei paneks sellist raha Eesti digitaalseks anastamiseks ei häkkerid ega venelased.

Aga esiteks, me ei tea, mis number on 60 miljardit ja kuidas see saadud on. Kas selle projekti hind oleks 60 miljardit näiteks sulle ja mulle, kui me läheks Euronicsisse ja ostaks hulga arvuteid, et seda koodi murdma hakata? Või on see hind sellisel puhul, kui ründajal on angaaritäis arvuteid juba olemas ning see on pelgalt kulu töötajatele ja IT-administraatoritele, kes seda ID-kaartide murdmise farmi üleval hoiavad? Kas selle hinna sees on ka koheva karvaga valge kass, keda maailmavallutajast maniaki sõrmustatud käsi hellalt paitab? Me ei tea.

Küll aga teame me, et kui me jagame 60 miljardit eurot 750 000 kaardiga ja eeldame, et valdav osa sellest 60 miljardist on arvutusvõimsuse kulu, saame ühe kaardi murdmise hinnaks 80 000 eurot ning kuna selle numbri on välja käinud riik, kellel on igal juhul huvi näidata murdmise hinda pigem kõrgema kui madalamana, on mõistlik arvata, et see on ühe kaardi lahti murdmise maksimaalne hind. Ja see tähendab täielikku lahtimurdmist, nii PIN1 kui PIN2. Aga näiteks digiallkirjade andmiseks ei ole PIN1 üldse vaja, seega läks see projekt ühe kaardi kohta ründajale just poole odavamaks.

Me teame ka, et probleemi avastanud teadlased on vähemalt ühe kaardi juba lahti murdnud, et oma teooriat tõestada. Seega, kui riik üritab turvaauku näidata väga kalli teoreetilise ohuna, siis tegelikult tundub see olevat vägagi reaalne oht, kui murda lahti mitte 750 000 kaarti, vaid näiteks 1 või 10 või isegi 100. Parandus: Hetkel puuduvad andmed, et teadlased või keegi teine oleks mõne Eesti ID-kaardi lahti murdnud.

Pealegi läheb arvutusvõimsus kogu aeg odavamaks, iga pooleteise aastaga umbes kaks korda.

PR-trikk seisnebki selles, et riik opereerib 750 000 kaardi lahti murdmise hinnaga, aga seda polegi ju kellelegi vaja. Eestile saab erakordselt palju probleeme kaasa tuua kasvõi näiteks ainult peaministri kaarti lahti murdes ja tema eest allkirju andes. Või murrame lahti Eesti TOP 20 firmade juhatuste liikmete kaardid, ainuüksi nendega saab palju kurja korda saata. Või, kui raha on rohkem, siis võtame ette mõne väiksema valla 100 elanikku ning hääletame volikogusse külakoer Pontu, lihtsalt nalja pärast. Eesti e-riigi maine on õrn ning kui paari sellise trikiga välja tulla, on eesrindlikust digiriigist ja tema kõrgestihinnatud jutlustest saanud üleöö naerualune ning hoiatav eeskuju.

Mis saab edasi?

Riigil ei ole siin häid lahendusi. Kui probleemi olemus on selline, nagu me kirjeldame, siis tähendab see, et meil on ringluses 750 000 nõrka ID-kaarti, millega tuleb midagi teha.

Esimene variant on see, et kaarte pole vaja füüsiliselt uuendada, küll aga kaartide peal olevat vigast tarkvara ja genereerida uued võtmed. Kui nii, siis võib juhtuda, et riik saab valmistada spetsiaalse tarkvara, millega inimesed saavad seda kodus ise teha. See tähendaks, et riik peab veenma kolmveerand miljonit inimest mingit programmi alla laadima ja oma kaarte uuendama. Võib täitsa kindel olla, et enamus neist ei viitsi seda teha ja nõrgad kaardid jäävad ringlusesse.

Teine variant on see, et kaarte saab uuendada näiteks Politsei- ja Piirivalveameti teeninduspunktides. Seega peaks paluma 750 000 inimesel oma kaartidega sealt läbi astuda. Jällegi, võib kindel olla, et väga paljud neist seda ei tee ja nõrgad kaardid on ikka ringluses.

Kolmas variant on see, et kaardid asendatakse uutega.

Kuna on vähetõenäoline, et vigaseid kaarte ringlusesse jättes inimesed viitsiks neid välja vahetada, siis paistab siit igal juhul terendavat tulevik, kus vähemalt vigaste kaartide sertifikaadid pannakse kinni, et neid kaarte elektrooniliselt kasutada ei saaks ja nende omanikud oleksid sunnitud oma kaartide elektroonsest kasutamisest kas üldse loobuma ja näiteks mobiil-ID peale minema või kaardid korda tegema.

 

Hans Lõugas panustas artikli valmimisse.