Probleem nr 532048

Anto Veldre, RIA analüütik

Google-Chrome-OS

Taust

Viimase viisaastaku turvaskandaalide iseloomulikuks jooneks on, et need ei määri. Kui 90ndatel tähendasid sissemurtud veebisait või äravarastatud isikuandmed ohvrile häbi ja alandust, siis täna murtakse veebisaite ja pätsatakse isikuandmeid kogustes, mis ei tekita erilisi emotsioone kelleski peale valdkonna eest vastutavate asutuste. Hane selga visatud solgiämber enam hane ei määri, sedavõrd sõltuv on meie ühiskond infotehnoloogiast 🙂

Ei sissemurd ega turvaauk tekita enam häbiseisundit – iga leitud probleem parandatakse ning seejärel läheb elu edasi nagu polekski midagi juhtunud. (Konservatiive ja puriste asjade säärane seis muidugi häirib, nende arvates tuleks iga vähegi suurem turvasündmus koos kuupäeva ja süüdlaste nimedega raiuda Maarjamäe memoriaali seinale.)

Kuid. Kui nüüd kõik ausalt ära rääkida, siis algas asi OpenSSL “turvalisusest”. Tänapäevased sirvikud vajavad sideturvalisuse tagamiseks vähemalt üht SSL (Secure Sockets Layer) teeki paljudest ning vabavaraline OpenSSL sobis selleks aastaid suurepäraselt. Mitmeid aastaid oli OpenSSL suisa turvalisuse etalon, laiad turvaringkonnad panidki juba võrdusmärgi SSL ja OpenSSL vahele, kuni aastal 2014 saabus HeartBleed. HeartBleed’i turvanõrkus osutas, et OpenSSL tarkvaraga ega ikka olnud asjad päris nii korras nagu võinuksid olla. HeartBleedist saadik on toimunud liikumine “tagasi lätete juurde”, ehk siis küsimusi, mida vahepeal 5–8 aastat polnud sobilik esitada, esitatakse taas. Ning üks neist küsimustest on – kas OpenSSL ikka on nii standardne ja kas kõik temaga seonduvad otsused olid ikka õigesti tehtud?

Liiga tehniliseks minemata mainime, et OpenSSL oli igasuguste teostusvigade suhtes küllalt andestav. Umbes nagu mõni reliktne netisirvik, mis algaja koolipoisi vigase HTML koodi ikkagi enam-vähem vaadatavaks veebileheks kokku renderdab. Täna jutukstulev tõlgendusvaruga asjaolu lisati koodile aastal 2000. Lojaalseid kasutajaid ei tohi ju ometi kaotada, ega ju? Parem andestav vanaema kui kuri ämm!

Kuivõrd jutt juba käibki internetisirvikutest, siis küberkuritegevuse tase ja sirvikuturbe küsimused on viimasel paaril aastal sundinud tootjaid ette võtma väga raskekaalulisi samme, näiteks välja vahetama kogu pluginate ökosüsteemi. Mistap 1. septembril 2015 üllitati sirviku Chrome versiooni nr 46 beeta ja see loobus muldvanast NPAPI tehnoloogiast. Pärisversioon (relaese) 46 saabub oktoobri keskel… ning kui meil siin Eestis teenuseomanik oma veebisaiti ümber ei tee, siis selle Chrome’i versiooni ja ID-kaardiga ega ikka enam ligi ei saa küll. Pluginamuudatuste juurpõhjus: et igasugused pahavarad ei saaks plugina kuju võtta ega sirviku küüru otsas elutsedes kasutaja andmeid varastada.

Sirvikutootjad on keeranud paar kraadi kangemaks ka suhtumist turvasertifikaatidesse. Väiksemagi kahtluse korral ei käsitle sirvik sertifikaati enam tõelisena. Varasemalt puudutas see pigem veebiserverite sertifikaate, kuid nüüd jõudis karmi käe poliitika ka kasutajasertifikaatideni. Et miks just Eesti puhul? Sest teistes riikides tavakasutajatel reeglina polegi mingeid sertifikaate. Eesti on suhtkoht ainuke riik, kus tädi Maalid kiipkaartidega ringi käivad, mujal kuuluvad kiipkaardid pigem riigiametnike ja sõjaväelaste varustusse.

Juhtum

15. septembriks 2015 sai selgeks, et uue Chrome’i karm käitumine ei piirdu sugugi pluginasüsteemiga. Ilmnes, et Google on kõvasti karmimaks keeranud sertifikaatide formaalset kontrolli. Kruvid keerati sedavõrd kinni, et pihta sai umbestäpselt mitusada tuhat Eesti ID-kaarti, digitaalset isikutunnistust ja mis seal salata, e-residendi kaarti – need ei pressi enam Chrome’i rangetest kasutustingimustest läbi ning veebisaiti sisse logida ei saa.

Et mis neil Eesti Vabariigi ID-kaardi peal paiknevatel sertifikaatidel siis nüüd viga on? Teadlased ütlevad, et moodul olla negatiivne … midaiganes see siis äraseletatult tähendab. Infoturbe teoreetikud räägivad midagi “võtme parsimisest ASN.1 kohaselt” ning et selles standardis olla kunagi ammu kokku lepitud, et moodul peaks olema positiivne. (Pisiasi, kuid tänast teemat mõjutab veel teinegi Google’i ticket – #534766.)

Tahaksin üles soojendada ühe toreda nõukaaegse sõna – formalism. Formalism on see, kui mingit nõuet täht-tähelt järgides kellelegi seadusetähega ära tehakse, samas kui tegelik probleem polegi teab kui suur. On mingi hulk standardeid, mis nõuavad, et … kuidas seda lihtinimesele selgitadagi, et sertifikaat algaks teatud kokkuleppeliste bittidega. Nii näiteks ITU standardid X.509, X.690 ning interneti standardid RFC 3280 ja RFC 5280 nõuavad, et teatudbitid kodaniku avalikus võtmes ja järelikult seda sisaldavas sertifikaadiski oleksid just “niipidi” ja mitte teistpidi – teisisõnu, moodul (modulus) peaks olema positiivne. Siinkohal olgu esitatud üks allikas, mis va “negatiivse mooduli” teemat pisut valgustab.

Mingit otsest turvaohtu neist miinusbittidest ei tulene. Bitte äraspidi sättides ei lange otseselt kellegi privaatsus ega konfidentsiaalsus ega leki kusagilt mingeid andmeid. Lihtsalt pole ilus standardit eirata. Esteetika ennekõike!

Olukord oleks umbes sarnane, kui Viru Valge pudelile trükitaks Eesti lipuvärvid tagurpidi – valge, must ja sinine. Ebameeldiv muidugi on, jututeemat jagub, kuid viina tegelikud omadused on ju sama head kui ennegi?!

Kes on süüdi?

Klassikud ütleksid – keskpärane uudis. Kuigi miski on väga valesti, siis tegelikus elus sellest suurt ei olene.

Formalistlikult arutledes on kõiges muidugi süüdi meie hea partner SK. On ju bittide säärane “valetõlgendus” vastuolus isegi nende enda majasisese standardiga – sertifitseerimispoliitikaga.

Seega vastus klassikalisele küsimusele – кто виноват? – on selle juhtumi puhul ette määratud. Iseasi, kui suur on see “süü” reaalses maailmas. Minul eraisikuna on SKst selle juhtumiga seoses suisa kahju – no oli seda mõttetut äpardust siis nüüd vaja?!

Samas, tähtsat tööd tegeva – usaldust müüva – ettevõtte puhul on formalism siiski õigustatud ning et asjad ikka tegelikult ka korras püsiksid, on ette nähtud mõned kontrollimehhanismid, näiteks regulaarne audit. Kuid oh õudust, selgub, et isegi korraline audit ei leidnud valepidi bitte sertifikaadist üles. Seega on tegu justkui suuremat sorti skandaaliga. Või otse vastupidi, just see tõestabki, et kui läheneda mitteformalistlikult, polegi nagu eriti midagi juhtunud – isegi audiitor ei märganud. Kas üldse keegi märkaski, enne kui Google oma sirviku Chrome kasutusnõuded pingule kruvis?

Kui analüüsida, et kuidas on säärane kisendav jõledus üldse võimalikuks saanud, siis otse loomulikult tänu OpenSSL “mõningasele tõlgendusvarule” – sest OpenSSL ju ei pidanud “teistpidi” bittidega sertifikaate vigaseks. Arvatavasti läksid selle populaaarse tarkvara õnge nii SK ise kui tema kõrgesti austatud audiitorid.

Kuidas üldse talitada olukorras, kus üks (lahedam) tarkvara väidab sertifikaadi olevat igati korrektse, teine (pidurim) tarkvara aga leiab üles standardi eiramise – sertifikaat viitab negatiivse mooduliga avalikule võtmele? Meenutan, et sertifikaadi tegelik turvatase ega ka ID-kaardi enda turvatase ei olene sellest tõlgendusest kuidagimoodi. Kontrollküsimus: kas inetu kirjaviga sel kivikamakal halvendab kuidagi kivi omadusi?

Formalistlikult lähenedes tuleks muidugi SK nii ränkraske rikkumise eest sundlõpetada ja ühtlasi ka ID-kaart kinni panna. 😉 Unistada ju võib … juhtumisi aga on meil siin reaalne e-riik ja formalismi hiilgeajad on jäänud N-Liidu ajastusse. Verd ja leiba sooviti näha juba vanas Roomas, kuid samas ID-kaardi ökosüsteem võiks ka mõnusasti edasi töötada … ma tõesti ei viitsi kaks tundi tööajast pangasabas või PPA teenindusbüroos elavas järjekorras seista. Kas Sina viitsid?

Lahendus

Kuupäev, kustmaalt jama algas, jääb 2014. aastasse. Vahepeal jõuti välja anda mitusada tuhat “sabaga” (miinusmooduliga) sertifikaati. Kui me just ei looda ülemaailmseid avalikke standardeid ringi teha, tuleb mainitud kogus sabaga sertifikaate nüüd uute (formaalselt õigemate) vastu välja vahetada. Selles tegutsemisviisis kahtlemine poleks vist mõistlik. Küsimus on, kuidas olukorrast välja tulla viisil, et kõigil oleks võimalikult vähem valus.

Esmane naiivne mõte oleks käsutada kõik pihtasaanud kodanikud ja mittekodanikud PPA teenindusbüroosse omi kaarte “värskendama”. Siis aga suureneks PPA büroode ühe aasta töökoormus kahekordseks. Eraldi pompöösne feil leiaks aset e-residentidega – meie riigi au ja uhkusega. Nemad peaksid uuendamiseks füüsiliselt Eestisse ilmuma … üksnes selleks, et kaardi peal paiknevaid sertifikaate uuendada … ning seda hetkel, mil me otse vastupidi, üritame e-residentide näonäitamise nõuet seadusest välja kirjutada.

Selgub, et massirändest palju parem tehniline lahendus juba sisaldub ID-kaardi spetsifikatsioonis – ka PPA teeninduspunktis oma ID-kaarti uuendades ei tehta ju tegelikult midagi muud kui pistetakse see pilusse, esitakse mõningaid võlusõnu ning – voilaa! – kaart saabki uuendatud. Täiesti ilmsetel põhjustel pole neid uuendusmehhanisme seni üldrahvalikult käsitletud, kuigi nende abil on teenindusbüroos ID-kaartidel sisu vahetatud küll ja küll. Ketserlik küsimus: kas ei saaks sama tegevust igaüks sooritada omaenda kodust? Aus vastus on, et no ikka saab, kui sedasi kokku leppida.

Kõigepealt olgu selge, et kõik toimuv on krüptograafiliselt tagatud ja turvaline. Lääne krüptograafiavastaste poliitikute ning e-riigi kriitikute märga unistust – universaalset tagaust stiilis “Seesam, avane!” Eesti ID-kaartidel kindlasti pole. Kuid teatud tingimuste täitmisel on siiski võimalik kaardi sees sertifikaate jms uuendada – muidu ei saaks ju kaarti uuendada isegi mitte PPA teenindusbüroos.

Seoses ilmse vajadusega veerand miljonit sertifikaati ära uuendada, ilmselt tehaksegi nüüd taas see kena kompromiss teoreetilise turbe ja kasutusmugavuse teljel – lubatakse isikul endal oma kaardi sertifikaate üle Interneti uuendada. Neile, kes ei mäleta – sertifikaadiuuenduse nupp oli varemalt tarkvaras olemas, vajadus nupu järele kadus siis, kui kaardi ja sertifikaadi kehtivus muutusid ühepikkuseks. “Üle interneti” tähendab siin aga seda, et ID-kaart astub turvakanali vahendusel ühendusse mõne spetsiaalselt selleks otstarbeks ette nähtud serveriga.

“Traatipidi” uuendamise võimalust on varem kaalutud korduvalt – siis, kui paljudel inimestel hakkas sertifikaatide tähtaeg korraga läbi saama ning ka siis, kui turvaelemendi vea tõttu kutsuti tagasi suur kogus ID-kaarte. Võimalik, et baastarkvara (ehk ID-kaardi utiliitide) järgmine versioon toetab “traatipidi” (online) uuendamise võimalust taas.

Kas säärane lahendus on turvaline? See on küsimus, mida on probleemi nr 532048 ilmnemisest saadik vaaginud mitmed tipptaseme turvaeksperdid. Sertifikaatide uuendamine toimub viisil, kus arvutit kasutatakse vaid sideliinina – ID-kaardi kiip suhtleb uuendusserveriga otse, läbi turvatud sidekanali. See aga tähendab, et isegi kui arvutis on kurivara, siis uuendatav krüptomaterjal ei ole ohus – kurivara ei suuda bitte vahelt haarata ega pealt kuulata (uuendamist takistada suudab küll, kuid siis on valikuks toimingu kordamine puhtas arvutis).

Last but not least – sama tehnotrikiga, mis sertifikaadid “traatipidi” ära vahetab, EI SAA päris kõike ID-kaardis sisalduvat siiski ära vahetada. Ammugi ei saa tehnotrikkidega muuta võõrast ID-kaarti enda omaks jne.

6 thoughts on “Probleem nr 532048

  1. Andris

    Avatud protokollide puhul, kus korraga on kasutusel mitmeid eri implementatsioone, on see nn. formalism siiski täielikult õigustatud ja selle mittejärgimine on selge viga. Vastasel korral juhtuvadki sellised olukorrad, et justkui kõik oleks korras, aga miskipärast asjad ei tööta. Heaks näiteks on kohalikud pangalingid – kõik pangad justkui toetaks samu versiooninumbreid jne. aga reaalsuses on just igasuguste formalistlike erinevuste tõttu (näiteks, et mis charsetid on parasjagu täpselt toetatud) vaja igale pangale omaette läheneda, selmet kasutada üht ja ainust lahendust, mis igal pool töötaks.

    Samas muidugi on hetkel tõesti väga raske midagi SK’le otse ette heita, isegi kui viga on ilmne, sest nagu ka postitusest välja tuleb, siis siiani ei olnud krüpto puhul tegu just “vabaturuga.” OpenSSL on kuni viimase ajani olnud just see kanooniline implementatsioon ning sellega ju kõik toimib. Alles nüüd on hakanud tekkima implementatsioonide paljusus ja nüüd siis tulevad ka need vead välja. Edaspidi tuleb lihtsalt hoolikam olla.

    Reply
  2. Sulev

    Muide, kas nende kauguuendamise tehnotrikkidega saab kogemata või meelega uuendatava ID-kaardi ära rikkuda? Mulle tundub, et saab nii kogemata, kui ka sihilikult.

    Reply
  3. Ain Kendra

    Õiendaks teemast veidi väljaspool – inetu kivikamaka puhul ei ole tegemist kiviga. Ja täpsemalt, olla tegu kuuevarbaliste poolt saadetud märgialuse proovipartiiga mida tellija ei raatsinud tagasi saata vaid võttis kasutusse.

    Reply

Leave a Reply

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