ID-kaardi uuendamisest

Täna kirjeldame, mida täpsemalt kujutab endast ID-kaardi kauguuendamine “teoreetilisest turvaveast lahtisaamiseks”.

Tisklaimer: Käesolev kirjutis EI OLE soovitus kohe uuendama hakata. Enne uuendamist loe viimaseid uudiseid, uuri, kas Sulle eraelus ja tööalaselt vajalikud e-teenused juba töötavad uuendatud sertifikaatidega. Küsi sama ka oma töökoha itimehelt. Kui kahtled, siis ära hetkel veel uuenda, vaid pigem muretse endale alternatiivsed autentimisvahendid (m-ID). Kui Sul on kaks sarnast vahendit (nt ID-kaart ja digi-ID), siis ehk on kaval üht neist uuendada ja teist veel mitte.

Kiire kärtskursus

Enne uuendamist on ID-kaardil (ka digi-ID kaardil, elamisloakaardil, e-residendi kaardil) sellised elemendid:

Pärast uuendamise edukat läbimist on selsamal ID-kaardil (jne) sellised elemendid:

Oluline: et minu e-teenus ID-kaardiga kenasti edasi töötaks, tuleb muudatusi teha nii kaardiomaniku poolel – uuendada ID kaarti – kui ka teenusepakkuja poolel.

RTFM: Palun ära enne tegutse, kui oled KKK läbi lugenud ja õppevideo läbi vaadanud.

Olulisem veel: Uuendamiseks on vaja uusimat ID-kaardi tarkvara – RSA krüptosüsteemilt elliptkurvidele üleminek eeldab ID-kaardi haldusvahendi versiooninumbrit vähemalt 3.12.7.1252. Veendu, et all vasakul nurgas on just see või suurem number.

Kui uuendatud rakendus kaardi uuendamist ei paku, siis pigem on hästi ja ei peagi muretsema. Veel uuendamata kaardi olekut (ROCA turvaveast ohustatud või mitte) saab vaadata siit.

Aeglane sissejuhatus

ID-kaardi kiip on sisuliselt pisike arvuti. Kasutatakse ka termineid protsessor ja mikrokontroller. Tegu on eriotstarbelise arvutiga, mis sobib põhiliselt üheks asjaks – identiteedikandjaks.

Eestis on inimese identiteet kirjas PPA vastavas andmebaasis, kuid identiteedi elektrooniliseks kasutamiseks – sisselogimiseks e-teenustesse või digiallkirjastamiseks väljastatakse inimesele identiteedikandja (vahel isegi mitu – sest on ju ka veel digi-ID ja mID jne).

Identiteedikandja sees hoitakse isiku sertifikaate – kellegi teise poolt välja antud tõestusi kaardikasutaja identiteedi kohta. Ühtlasi hoitakse kaardis krüptograafilisi võtmeid. Sertifikaati saab digitaalselt kasutada vaid koos krüptovõtmetega, mis tema juurde kuuluvad ja võtmeid omakorda (eelkõige privaatvõtit) vaid koos vastava PIN-koodiga.

Täiesti arusaadavalt peab identiteedikandja olema turvaline ning sel otstarbel kasutataksegi krüptograafiat. Konkreetne krüptograafiline algoritm, mis on ID-kaardis juba aastaid tarvitusel, kannab nime RSA, ent nüüdsest tuleb kasutusele uus algoritm – nn elliptkõverad. (Elliptkõverad on laiem mõiste, kui konkreetne krüptoalgoritm – see on üldmõiste, mille alla mahuvad mitmed sama perekonna algoritmid).

Kivi sees

Oleme standardsest kiipkaardist varem põhjalikult kirjutanud.

Lisaks pisikesele arvutusvõimsusele talitleb ID-kaart andmehoidlana. Selles on ette nähtud salvestusruum mõningate tähtsate bitikombinatsioonide talletamiseks. Mõningaid neist andmetest (neid, mis jäävad pildil punasest punktiirist ülespoole) saab kaardist teatud tingimustel ka välja lugeda. Seevastu osad andmetest on kindlalt lukus ega välju kaardist mitte kunagi. Kuid neid saab kaudselt kasutada mõne krüptograafilise operatsiooni – näiteks allkirjastamise – sooritamisel. Kohalelennanud vares krüpto-operatsioone sooritada ei saa – ta ei tea PIN-koode.

Pilt illustreerib Eesti ID-kaardi sees paiknevaid olulisi elemente (bitikombinatsioone).

Kõiki neid elemente saab ka elektrooniliselt uuendada. Maailmas on tavaline, et kaardi sisu saab uuendada väljaandja (ingl k issuer) juures, kelleks meil on PPA. Eestis on ka tore lisavõimalus – inimene saab uuendusprotsessi käivitada ka ise, kodust, üle Interneti.

Kauguuendamise sügav sisu

Uuendamine käivitatakse ID-kaardi haldusvahendiks nimetatud tarkvara abil. Seda programmi on kõik ID-kaardi kasutajad kindlasti ammu näinud – seda vajatakse näiteks PIN-koodide vahetamiseks. Juhul kui programm jõuab järeldusele, et lugejasse sisestatud kaart tõepoolest vajabki uuendamist, siis tekib aknasse nupp nimega “Uuenda”.

Hoiatus: kui “Uuenda” nupule kord ära vajutada, siis hakkab kell turvakaalutlustel tiksuma ning uuendus tuleb nüüd kindlasti mingi mõistliku aja jooksul (mõni nädal) lõpuni viia.

Uuendamine on oluline otsus, mida tuleb enne planeerida ja alles siis teoks teha. Kogu lihtkasutajale vajalik info on küsimuste-vastuste vormingus esitatud siin.

Lisainfo itimeestele, häkkeritele ja muudele huvilistele

Tähelepanu! See peatükk ei ole mõeldud lihtkasutajale!!! Seda peatükki loevad spetsialistid ja tugiisikud, et nad oskaksid vigu leida ja olukorda lihtkasutajatele selgitada.

Sel hetkel, kui kasutajalt küsitakse (ja saadakse) õige PIN-kood, saab moodustada krüpteeritud SSL tunneli uuendusserveri suunas. Tunneli moodustab küll arvutiprogramm, kuid selle loomise vajatakse vältimatult ID-kaardi erioskusi. Olulise turvameetmena on tunnel isikustatud ehk siis tal on eemaldamatult küljes ID-kaardi omaniku krüptograafiline identiteet. See kaitseb enamike pealtkuulamis- ja vahelthaaramisvõtete eest, lisaks hoiab selge identiteet ära mõttetud häkkimiskatsed – sest kes ikka sooviks omaenda nime alt võõraid servereid näppida 😉

SSL tunneli puhul on tegemist täpselt samasuguse kaitsega, kui internetisirvikus HTTPS veebilehtede puhul (tabalukk ja need muud värgid), ainult et vahelt puudub sirvik koos kõigi oma puuduste ja kiiksudega.

Tunneli teine ots maandub spetsiaalsesse uutmisserverisse, mis on turvalisuse mõttes erakordselt hästi kaitstud ja valvatud ning mis omakorda pöördub uuendamiseks vajalike alamteenuste poole. Kindlasti on vaja suhelda järgmiste serveritega:

  • SK ID Solutions AS – sest seal tembeldatakse uusi võtmeid ja allkirjastatakse need isiku uueks sertifikaadiks;
  • PPA – sest seal asub isikut tõendavate dokumentide andmekogu;
  • Gemalto koosseisu kuuluv AS Trüb – sest seal genereeritakse parooliümbrikud.

Liiga palju PIN-koode

Hetkel, mil kasutajalt küsitakse PIN-koodi teist korda, on ühendus ära moodustatud ning kasutajalt tahetakse juriidilist nõusolekut toimuma hakkavaks. Selle PIN-koodiga autendib kasutaja end konkreetsele alamteenusele, mis hakkab sooritama ID-kaardi uutmist. Kui nõusolek antud ja PIN sisestatud, siis siitmaalt enam tagasiteed pole – ID-kaart läheb uude olekusse, kus ta ei talitle mitte enam ID-kaardina, vaid turvalise uuendussüsteemi otspunktina.

Nüüd on ID-kaart valmis peaaegu täielikuks mäluvahetuseks. Sellest olekust saab välja nüüd juba vaid ühel moel – uuendust õnnelikult lõpetades. Võrguhäire, sidekatkestuse, kaardi väljatõmbamise vms vea puhul jääb võib ID-kaart jääda olekusse, kus inimene ise teda enam elektrooniliselt kasutada ei saa. Kui Haldusvahend enam sertifikaate ei näita, siis aitab vaid isiklik kohalevantsimine PPA teeninduspunkti. [täpsustatud 2017-10-27T1114]

ID-kaart on uuendamise hetkil üksainuke suur kõrv, mis täidab teenuseserverist turvalist tunnelit pidi saadud käske. Käskude hulk, mida sealt saab anda, on ülimalt piiratud, käsud on turvatud veel täiendava krüptograafiakihiga, mida me siinkohal arusaadavatel põhjustel ei käsitle. Ühesõnaga, häkkeritel selle tegevuse juurde asja ei ole.

Total recall

Kaardi uuendamise käigus toimuvad järgmised tegevused.

  • Kontrollitakse, kas kaardil paiknev rakendus on ajakohane. Kui mitte, siis see uuendatakse (asendatakse). Krüptosüsteemi vahetamise puhul nagu meil parasjagu käsil, tuleb rakendus vahetada vältimatult.
  • Kaardil kästakse genereerida uued võtmed (avalik ja privaatne). Kui varemalt genereeris uuendus lihtsalt uued RSA võtmed, siis seekord toimub ühtlasi üleminek elliptkõverate krüptosüsteemile.
  • Krüptotunnelit pidi saabub teenusepakkuja juurest ümbrik uute PIN-koodidega. Ümbrik on omakorda krüptograafiline, see tuleb dekrüpteerida. Muide, pärast õnnelikku uutmist saab inimene PIN-koodi alati haldusvahendiga ära vahetada, seega pole üldse oluline, et koodid saabuvad üle (mis siis, et mitmekordselt turvatud, aga ikkagi avaliku) sideliini. NB! Vanu PIN-koode tagasi vahetada on ebaturvaline ja ebailus.
  • Kaardis loodud avalik võti saadetakse krüptotunnelit pidi sertifitseerimisteenuse osutaja juurde. Meie praegustes oludes on selleks SK ID Solutions AS.
  • SK sooritab ettenähtud toimingud (isikupäringud, vanade sertifikaatide peatamine vms).
  • Seejärel SK lisab kaardist saabunud avalikule võtmele mõningast lisainfot ning allkirjastab tulemuse omaenda võtmega – saadut nimetatakse sertifikaadiks.
  • Kaart tõmbab SKst endasse kehtiva korra kohaselt valmendatud sertifikaadi ja salvestab selle edaspidiseks
  • Hetk enne õnnelikku lõppu toimub veel ka käepigistus PPAga – et nende tark identiteediandmebaas ikka teaks, et vana plastiku sees asuvad nüüd tutikad värsked sertifikaadid (seerianumbritega X ja Y).

Kuivõrd kaardis sisaldub ju tegelikult kaks komplekti võtmeid+sertifikaate –  üks autentimiseks, teine allkirjastamiseks – siis viiakse kirjeldatud operatsioonid läbi mõlemi komplektiga. Kasutaja mugavuseks käsitletakse võtmeid kenasti paralleelselt, mitte järjest.

Ent miks küsitakse uutmise käigus PIN1-koodi nii palju kordi (kõigest viis)? Põhjus on lihtne. Uutmiseelsed küsimised on selleks, et erinevate serveritega ühendusi moodustada, uutmine juriidiliselt vormistada ning teenusepakkujalt saadud parooliümbrik dekrüpteerida.

Uutmisjärgsed (uute PIN-koodide) küsimised annavad juriidilise aluse uute sertifikaatide moodustamiseks ning aluse PPA-le uute sertifikaatide juriidiliseks sidumiseks vana isikuttõendava dokumendiga. Vähemaga lihtsalt ei saa hakkama – muidu tuleks PIN-kood vahepeal kusagile salvestada ning see poleks enam ei turvaline ega kasutaja seisukohast aus.

Kontrollküsimused

Sa ju ikka teadsid, et PIN-koode ei saadeta mitte kunagi ühelegi serverile, et need on vajalikud privaatvõtme toimingu käivitamiseks kaardi sees? PIN-koodid liiguvad juhetpidi kaardini (ja klaviatuuriga lugeris satuvad sinna suisa otse – ükski pank ega e-teenus neid koode ei näe).

Ning kindlasti Sa aimasid, et uutmisprogramm on põhjalikult turvatestitud?!

 

23 thoughts on “ID-kaardi uuendamisest

  1. Aivar

    Kirjutate, et: “RSA krüptosüsteemilt elliptkurvidele üleminek eeldab ID-kaardi haldusvahendi versiooninumbrit vähemalt 3.12.7.1252. ”
    Ubuntule pakutakse praegu varianti 3.12.6.1481. Sellega ei saa kaarti uuendada, jah?

    Reply
    1. Anto Veldre Post author

      Spetsialistid ütlesid, et just mõne tunni eest ilmutati ka Ubuntu tarbeks elliptkõverate võimeline tarkvaraversioon.

      Reply
  2. Aadu Adok

    Lihtsalt huvi pärast – milline element kogu selles ahelas on “pudeli kaelaks” et ainult 15000 kaarti ööpäevas (riigi IT juht eilses AK’s) suudetakse uuendada? See teeb 5.76 sekundit per kaart, mis tundub nagu igavik. Mitte kaardi poolt vaadates (kuna ta on aeglane jne) aga just serveri poolt vaadates kes peaks ju korraga tuhandeid kaarte protsessima.

    Reply
    1. Anto Veldre Post author

      Idealismist pole sellest olukorrast abi. Kui kaug-uuendamine kaks aastat tagasi disainiti, siis tootlikkuse tasemele ca 1000 uuendust päevas. On paras ime, et seda on tänaseks suudetud tõsta tasemele 15k ja enam.

      Edasi – uuendamise käigus tuleb sooritada mitu üksteisele järgnevat tegevust. Järgmist ei saa alustada enne kui eelmine pole edukalt lõpetatud. Suheldakse kahe erafirma ja ühe riigiasutuse väga turvaliste andmebaasidega – neid ei tohi üle koormata, nendega suhelda tuleb viisil, mis kuidagi ei ohustaks andmete turvalistust ega konfidentsiaalsust.

      Teatavasti saab toore jõuga tootlikkust tõsta vaid teatud tasemeni, sealt alates tuleb kogu süsteem (sh andmebaasid ja sõltuvused) hoopis teiste põhimõtete järgi ümber disainida. Pressi jõudnud 15k oli esmane hinnang tootlikkusele, mis oleks võimalik ilma nullist ümber ehitamata.

      Reply
  3. Uwe Riisenberg

    Kas saan õigesti aru, et Estobuntu 14.04-le ehk Ubuntu 14.04.5 LTS-i eestikeelsele variandile pole kavas pakkuda uuendamiseks ID-tarkvara 17.10-t? Id.ee-s on kirjas, et ID-tarkvara 17.10-t saab paigaldada Ubuntu operatsioonisüsteemis juhul, kui kasutatakse 16.04 LTS-i või 17.04. Vaatasin abikeskusest järele, et Ubuntu 14.04 LTS-i olevat saanud paigaldada ID-tarkvara 17.8-t, mis olevat eelnenud versioonile 17.10. Mul on tarvitusel ID-tarkvara 3.12.5.1233 32-bitisele arvutiarhitektuurile.

    Reply
  4. AivarLiimets

    Tore!

    Elliptkõver! Miks? Kes otsustas?

    Kuidas on võimalik nii keerulist tarkvara põhjalikult turvatestida loetud päevadega? Kas saan selle testiraportiga tutvuda? Testiraport ikka eksisteerib?

    Reply
    1. Marko Laurits

      Digitaalallkirjal on sees ka serveri poolt lisatud kellaaeg, millal allkiri anti.
      Kui keegi arvutab välja inimese allkirjastamise salajase võtme, siis ta teoreetiliselt (kui ta on loonud / saanud vastava tarkvara) saab anda antud inimese nimel uusi allkirju. Seda muidugi seni, kuni antud võtmega sertifikaat kehtib. Juba loodud allkirjastatud dokumenti sellega muuta ei saa.

      Reply
    2. Anto Veldre Post author

      Digiallkirjale lisandub ju veel ka ajamärgend ja sertifikaadi kehtivuskinnitus. Pärast sertifikaatide sulgemise hetke pole selle võtmega antud allkiri enam juriidiliselt “digiallkiri”. Tagasiulatuva kuupäevaga pole võimalik digiallkirja anda.

      Reply
      1. AivarLiimets

        “Tagasiulatuva kuupäevaga pole võimalik digiallkirja anda.”

        Nõus!

        Kuna 7.1. Logimine(http://id.ee/public/bdoc-spec212-est.pdf) “… allkirjastaja sertifikaat oli kehtiv allkirja andmise ajal”.

        Kuid, kas ajamärgend ja sertifikaadi kehtivuskinnitus sisaldab, seda mida allkirjastati?

        Kui ei siis ootaks osa kahte “küülikutuvastusele” (https://blog.ria.ee/2017/03/page/2/). SHA-1 või SHA-256 kollisioon pole oluline, kui salajane võti on kompromiteeritud. Mul on kahju, kuid antud olukord tähendab ikkagi seda, et salajane võti on kompromiteeritud.

        Reply
        1. Anto Veldre Post author

          Raske on midagi lisada sellele, mida Marko Laurits juba ütles.

          Võtame ette näiteks Valdo Prausti slaidid aadressilt enos.itcollege.ee/~valdo/turve_ohtune/ohtune_08.pptx . Seal slaididel 34-35 on vastus sama hea kui olemas. Sertifikaadi tühistamisvõimalus *koos* ajalipikutega ei võimalda minevikku võltsida isegi mitte siis, kui salajane võti on vahepeal kompromiteerunud. Slaididelt 26 ja 42 paistab selgelt kätte, “*mida* allkirjastati”. Jah, sõnumilühend dokumendist (maitseasi, kas nimetada seda räsiks või OCSP terminoloogias nonssiks) sisaldub kehtivuskinnituses ning ühtlasi ka teenuseosutaja logis. Ettepanek: pigem saata need ülimalt tehnilised küsimused otse krüptograafidele.

          Reply
  5. gaal

    Kas keegi küsis ka Infeonilt, kuidas nad seekord ECC algoritmiga võtmete genereerimist kiiremaks muutsid 🙂
    või toimus privaatvõtme genereerimine väljaspool – serveril, nagu Delfi kommentaariumis väideti. SLE66CXxxxP pere kiip on igaljuhul ratsitud.

    Reply
    1. Anto Veldre Post author

      Otsused tehti ja lahendus loodi Eestis. Seni väljastatud kiipidel oli ECC teek kenasti kaasas ning erinevalt RSA teegist ilma teadaolevate vigadeta. Küllalt loomulik, et sellele siis üle mindigi. Teine alternatiiv olnuks üle minna mõne muu pikkusega RSA võtmetele, ka seda varianti arutati, kuid paljud e-teenused poleks suutnud säärase mittestandardse võtmepikkusega ühilduda.

      Eesti ID-kaardi võti genereeritakse kiibil.
      Küll aga vastab tõele, et mõned isikud käivad Delfi anonüümses kommentaariumis suvaliste artiklite alla omi konspiratsiooniteooriaid sodimas.

      Reply
  6. Jaanus

    Minu ID kaart juhtus olema selline, mida ei saanud kauguuendada. Kuskilt meediast käis läbi uudis, et taolisi kaarte olevat 18000 tk. Nii huvi pärast, et mis nende kaartide puhul tehniliselt teisiti on ja milline on see tehniline “jõuvõte”, mida PPA teenindaja kasutada saab, et need kaardid siiski ära uuendada?

    Reply
    1. Anto Veldre Post author

      ID-kaardil paikneva äpi arengus esines üks lühike idealistlik periood, kus turvanõuded seati ülemäära kõrgeks – ära keelati ja kinni keerati kõik, mis polnud antud hetkel otseselt vajalik. “Tehniline jõuvõte” on kirjeldatud levikupiiranguga dokumendis, ilmselt on tootjafirma PPA’le kui eID kaartide omanikule andnud mõningad õigused, mis lõppkasutajal endal puuduvad.

      Reply

Leave a Reply

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