ID-kaart
Eesti ID-kaart on isikutunnistus, mida on võimalik kasutada ka elektrooniliselt. ID-kaardi südameks on kiip, mis sisaldab autentimiseks ja digiallkirjastamiseks kasutatavaid võtmeid. Kiibi sees on kaks võtmepaari, millest esimest kasutatakse peamiselt autentimiseks ja teist digiallkirjastamiseks.
Eelneva lõigu põhjal on ilmne, et ID-kaart kasutab asümmeetrilist krüptograafiat ehk avaliku võtme krüptograafiat. Tuletame meelde, et avaliku võtme krüptograafias luuakse võtmepaar, mis koosneb avalikust ja salajasest võtmest. Avalik võti on avalik ning seda saab kasutada krüpteerimiseks ning digiallkirja verifitseerimiseks. Salajane võti on salajane ning seda saab kasutada vastava avaliku võtmega krüpteeritud andmete dekrüpteerimiseks ja digiallkirjastamiseks. Selleks, et salajasi võtmeid kaitsta on need kirjutatud ID-kaardi kiibi sisse nii, et neid ei ole sealt võimalik eksportida / kopeerida. ID-kaardi kiip on ehitatud nii, et sellel olevaid salajasi autentimise ja allkirjastamise võtmeid pole võimalik välja lugeda. Praeguseni pole leitud meetodit, mis võimaldaks ID-kaardi kiipi kopeerida. Kuna salajasi võtmeid pole ID-kaardi kiibi seest võimalik kätte saada, siis tuleb kõik salajase võtmega tehtavad operatsioonid sooritada kiibi sees. Selle jaoks, et operatsioonisüsteem oskaks kaardilugejas oleva ID-kaardiga suhelda ning sinna andmeid saata on vaja paigaldada arvutisse vastav tarkvara, mille leiate aadressilt https://installer.id.ee.
Digi-ID
Digi-ID on ID-kaardi analoog, mida saab kasutada ainult digitaalselt. Digi-ID kaardil puudub foto ja seega ei saa seda kasutada visuaalse isikut tõendava dokumendina.
Kaardilugeja valimine
Eesti ID-kaardi tarkvara toetab kümneid erinevaid kaardilugejaid. ID-kaardi tarkvara poolt toetatud kaardilugejate nimekiri asub järgmisel veebilehel: http://www.id.ee/?id=36180. Kuidas nende hulgast valida sobiv kaardilugeja?
Põhiline erinevus odamavate ja kallimate kaardilugejate vahel seisneb turvalisuses. Kallimatel kaardilugejatel on PIN sõrmistik, mis võimaldab otse kaardilugejast PIN koode sisestada. Tavalist kaardilugejat kasutades sisestatakse PIN koodid arvuti klaviatuurilt ja ID-kaardi tarkvara suunab sisestatud info edasi kaardilugeja draiverile. Juhul kui arvuti on nakatunud pahavaraga, saab pahavara ligipääsu arvuti klaviatuurilt sisestatud PIN koodidele. Niisuguseid klaviatuuri jälgijaid nimetatakse klahvikuulajateks (keylogger), ülevaate klahvikuulajatest annab wikipedia: https://en.wikipedia.org/wiki/Keystroke_logging.
Sõrmistikuga kaardilugejalt saab sisestada PIN koodi ilma arvuti klaviatuuri kasutamata. Kaardilugeja sõrmistikult sisestatud PIN kood liigub otse ID-kaarti ja ei läbi arvuti operatsioonisüsteemi, mis võib olla nakatatud pahavaraga. Seetõttu soovitab Riigi Infosüsteemi Amet (RIA) võimaluse korral kasutada sõrmistikuga kaardilugejaid. Ka klaviatuuri sisseehitatud kaardilugejad toimivad kui sõrmistikuga kaardilugejad - klaviatuuri numbrilaud (numpad) on otse ühenduses kaardilugejaga.
ID-kaardi haldusvahend ja DigiDoc programm
ID-kaardi tarkvara sisaldab:
- ID kaardi utiliiti
- isikuandmete lugemine
- sertifikaatide registreerimine
- sertifikaatide salvestamine faili
- PIN ja PUK koodide vahetamine
- lukustatud PIN koodi lahti blokeerimine
- kaardi kasutamise statistika vaatamine
- Digidoc klienti
- digiallkirjastamine
- digiallkirjade kehtivuse kontrollimine
- avada / salvestada Digidoc konteineris asuvaid faile
- krüpteerida ja dekrüpteerida faile
- TeRa klienti
- võimaldab vanu digiallkirjastatud dokumente üleallkirjastada
- Brauserite laiendusi (extensions)
- lisab brauserile ID-kaardi toe autentimiseks ja digiallkirjastamiseks
ID-kaardi tarkvara paigaldamine virtuaalmasinasse
See praktikum on testitud Linux Mint 18.3 peal. Juhul kui te kasutate mõnda teist Linuxi distributsiooni, siis tuleb teil endal veenduda, et ID-kaardi tarkvara on võimalik paigaldada.
Esimeseks ülesandeks on paigaldada virtuaalmasinasse ID-kaardi tarkvara, mille sees on haldusvahend ja DigiDoc programm. NB! Kaardilugeja võiks olla ühendatud virtuaalmasinasse, muidu võib juhtuda, et ei paigaldata kaardilugeja draivereid ning installatsioon ei õnnestu.
Juhul kui arvutis on sisseehitatud ID-kaardi lugeja, siis ühendage see virtuaalmasinaga (täpsem info jaoks lugege juhendi 5. punkti). Kõigepealt kontrollige, et virtuaalmasina usb seadete all on aktiveeritud tugi USB 2.0 kontrollerile. Kui see on tehtud, siis peaks olema võimalik sisemist ID-kaardi lugejat virtuaalmasina USB filtri abil ühendada. Selleks, et sisemist lugejat aktiveerida tuleb ID-kaart sisestada lugejasse.
- Tõmmake Ubuntu jaoks loodud paigaldusskript:
wget https://installer.id.ee/media/install-scripts/install-open-eid.sh
- Andke sellele skriptile käivitamise õigus:
chmod +x install-open-eid.sh
- Uuendage pakettide nimistut käsuga
sudo apt update
. Juhul kui uuendamine jääb 0% juures seisma, siis eemaldage faili/etc/gai.conf
reaprecedence ::ffff:0:0/96 100
eest kommentaari täistav sümbol (#). - Käivitage skript, mis paigaldab ID-kaardi tarkvara. Olge nõus, et tegemist ei ole Ubuntuga ja te ikka tahate tarkvara paigaldada.
- Ühendage ID-kaardi lugeja virtuaalmasinaga
- Ainult Linuxi kasutajad: linuxi host masinas lisage enda kasutajanimi gruppi vboxusers:
sudo adduser $USER vboxusers
.
Nüüd logige välja ja siis uuesti sisse. - Lisage VirtualBox virtuaalmasina seadetes USB filter.
- Ühendage ID-kaardi lugeja arvutiga ja kontrollige kas see tunti virtuaalmasinas ära:
lsusb
.
- Ainult Linuxi kasutajad: linuxi host masinas lisage enda kasutajanimi gruppi vboxusers:
- Testige, et tarkvara sai paigaldatud. Avage ID-kaardi haldusvahend (ID-card utility) ning ühendage enda ID-kaart lugejasse. Kui kaardilugeja on virtuaalmasinage ühendatud, siis peaksite ID-kaardi haldusvahendis nägema infot oma ID-kaardi kohta.
ID-kaardi haldusvahend (ID-card utility)
See info, mida te haldusvahendi kaudu näete on kättesaadav ka asutustele, kelle juures te kasutate enda ID-kaarti kliendikaardina. Seega näete haldusvahendist, mis info te ID-kaarti kasutades loovutate. Haldusvahend võimaldab muuta ID-kaardi PIN koode juhul kui need on meelest läinud või kui need on lekkinud. PIN koodide muutmiseks on vaja omada ID-kaardi PUK koodi. Üldiselt peaks PIN koodid pähe õppima ning PUK kood tuleks talletada turvalisse paika (mitte arvutisse). Kindlasti ei tohi PUK / PIN koode rahakoti vahel kaasas kanda.
- Kas on olemas kehtivad sertifikaadid?
- Mis kuupäevani sertifikaadid kehtivad?
- Mis kuupäevani kehtib ID-kaart?
- Mis krüptoalgoritmi kasutatakse digiallkirja andmiseks?
- Mis on sinu eesti.ee emaili aadress? Uuri selle seadistust.
Kontrollküsimused
- Miks peavad ID-kaardi sertifikaadid kehtima?
- Miks on oluline, et kasutusel on 2048 bit võtmed?
Krüpteerimine ID-kaardi abil
ID-kaart võimaldab kasutada krüpteerimise funktsionaalsust. On oluline mõista, et ID-kaardi krüpteerimise funktsionaalsust ei tohi kasutada andmete pikemaajaliseks krüpteerimiseks / krüpteeritud kujul säilitamiseks. Põhjus seisneb selles, et kui ID-kaart kaob / kui kiip saab kahjustada / sertifikaate & võtmeid uuendatakse, siis pole enam juurdepääsu dekrüpteerimiseks vajalikule salajasele võtmele ning andmeid ei saa enam kunagi dekrüpteerida. ID-kaardi poolt pakutavat krüpteerimise ja dekrüpteerimise funktsionaalsust saab kasutada näiteks e-kirjade ja nende manuste turvamiseks.
ID-kaardil põhinevast krüpteerimisest tehnilisemalt
Selleks, et saata krüpteeritud andmeid kasutatakse adressaadi avalikku võtit. Krüpteerimiseks kasutatakse ainult esimest võtmepaari ehk seda, mida te igapäevaselt kasutate autentimiseks. Avaliku võtmega krüpteeritud andmeid saab dekrüpteerida ainult vastava salajase võtmega. Samas me teame, et salajast võtit pole võimalik ID-kaardi seest kätte saada ja ID-kaardil olev kiip on liiga aeglane selleks, et suurt andmehulka dekrüpteerida.
Lahenduseks on hübriidsüsteem, mis kasutab nii avaliku võtme krüptograafiat kui ka sümmeetrilist krüpteerimist. Kõigepealt genereeritakse juhuslik võti (AES) ja siis krüpteeritakse andmed kasutades genereeritud võtit ja sümmeetrilist krüptoalgoritmi (AES). Selleks, et adressaat saaks dekrüpteerida sümmeetrilise krüpteerimisalgoritmiga krüpteeritud andmeid peab ta omama krüpteerimisel kasutatud võtit. Seetõttu tuleb koos krüpteeritud failiga toimetada adressaadini ka krüpteerimiseks genereeritud võti. Selleks, et keegi teine ei saaks juurdepääsu saadetavale võtmele krüpteeritakse see adressaadi avaliku võtmega.
- Praktikumiülesanne 1: Lugege failide krüpteerimise ja krüpteeritud failide avamise juhendit: http://www.id.ee/?id=36035. Tekitage olukord, kus teile on saadetud ID-kaardi krüpteerimistarkvara abil krüpeeritud kiri. Kirja saatja võib olla teie naaber, aga selle võite ka ise endale saata. Lahenduseks tuleb esitada ekraanitõmmis vastuvõetud kirjast koos saatja nime või meiliaadressiga ning DigiDoc Crypto aknast, kus vasakul paneelis on näha krüpteeritud fail ja paremal teie nimi. Näide lahendusest:
Autentimine ID-kaardi abil
ID-kaart võimaldab kaardi omanikku elektrooniliselt identifitseerida ehk autentida. Identifeerimiseks kasutatakse ID-kaardi kiibil olevat autentimise võtmepaari (1024 bitised võtmed vanal kaardil / 2048 bitised uuel kaardil), autentimise sertifikaati ja PIN1, mis võimaldab lahti lukustada kiibil olevat autentimise võtit. Autentimiseks peab isik näitama, et tal on võimalik sooritada operatsioone ID-kaardi kiibil oleva autentimise jaoks mõeldud salajase võtmega. Näiteks saab veebiserver saata kliendile (brauserile) juhuarvu, mis ID-kaardi poolt autentimise jaoks mõeldud salajase võtmega allkirjastakse ning siis serverile tagasi saadetakse. Server saab kliendi sertifikaadi abil verifitseerida, et vastav allkiri kehtib ning see võimaldab klienti autentida. Eelduseks on see, et kliendi ID-kaarti koos PIN1 saab kasutada ainult klient ise. PIN1 koosneb numbritest ja on 4-12 sümbolit pikk. Tehniliselt kasutatakse veebis ID-kaardiga autentimiseks TLS protokolli kahepoolse autentimise tuge, lihtsalt antud juhul asub kasutaja salajane võti kiipkaardil mitte veebilehitseja võtmehoidlas.
Digiallkirjastamine
Digitaallkirjastamine oli varasemalt Eestis reguleeritud Digitaalallkirjastamise seadusega. Nüüdseks on digiallkirjastamise seadus asendatud E-identimise ja e-tehingute usaldusteenuste seadusega. Juriidiliselt on digiallkiri samaväärne tavalise allkirjaga. Digiallkirjastamiseks kasutatakse ID-kaardi kiibil olevat allkirjastamise võtit, allkirja sertifikaati ja PIN2, mis võimaldab teha operatsioone kiibil oleva allkirjastamise võtmega. Seega võib mõelda PIN2 kui lukuvõtmest, mis lukustab lahti kiibil oleva allkirjastamise jaoks kasutatava salajase võtme. PIN2 koosneb numbritest ja on 5..12 sümbolit pikk.
Digiallkirja saab anda kasutades kas:
- Digidoc programmi
- Riigiportaali
- Digidoc portaali https://digidoc.sk.ee
Sertifikaat on iga kasutaja jaoks unikaalne, see seob allkirjastaja identiteedi ja avaliku võtme. Kuna avalik võti ja salajane võti on omavahel seotud, siis on avaliku võtme kaudu seotud ka ID-kaardi kiibil oleva saljane võti.
Sertifikaat on avalik ja selle sees oleva avaliku võtme abil saab kontrollida kas vastava salajse võtme abil antud allkiri on ehtne. Allkirjastmise protsessil kontrollitakse kas kasutaja sertifikaat on kehtiv, nimelt peab serifikaat kehtima, et oleks võimalik allkirja anda. Selleks tehakse allkirjastamisel automaatselt päring sertifitseerimiskeskuse serverisse ja lisatakse allkirjale vastav tõend (ajatempel). Seaduse mõttes kehtivat digiallkirja saab anda ainult kehtiva allkirjastamise sertifikaadiga ja seega tuleb vastava sertifikaadi kehtivust kontrollida igal allkirjastamisel. See omakorda tähendab, et digiallirja verifitseerimiseks ei ole vaja internetiühendust, sest ajatemplil olevat allkirja saab kontrollida vastava asutuse avaliku võtmega.
Digiallkirjastamine tehnilisemalt
Digiallkirjastamine (signeerimine) pole midagi muud kui allkirjastatavate andmete krüpteerimine salajase võtmega. Üheks ID-kaardi (ja üldisemalt kiipkaardi) pakutud garantiiks on see, et salajane võti ei lahku kunagi kaardi seest, st seda pole võimalik kopeerida. Seega, et salajase võtmega krüpteerida, tuleb need krüpteeritavad andmed saata kiipkaardi sisse ning välja tulebki krüptotekst. Et aga allkirjastatav dokument võib olla väga suur (te võite näiteks allkirjastada 4 GB faili) ja kiipkaardi operatsioonid on aeglased, ei ole mõistlik kogu dokumenti läbi kiipkaardi lasta. Selle asemel arvutatakse allkirjastatava dokumendi pealt kindla pikkusega krüptograafiline räsi (hash) ning allkirjastatakse see. Digiallkirjastatud andmed pannakse konteinerisse, kus on lisaks digiallkirjastatud räsile veel kasutatud räsialgoritmi nimetus, fail mida taheti allkirjastada, sertifikaat ning sertifikaadi kehtivuskinnitus.
Digiallkirja kontrollimiseks arvutatakse allkirjastatud dokumendi pealt sama räsifunktsiooni kasutades uuesti räsi ning võrreldakse seda avatekstiga, mis saadakse dokumendi allkirja (ehk salajase võtmega krüpteeritud räsi) dekrüpteerimisel allkirjastanud isiku avaliku võtme abil. Kui võrreldavad räsid on võrdsed, siis järelikult oligi allkirjastatud antud dokument.
Allkirja verifitseerimisele lisandub kindlasti veel allkirjastanud isiku sertifikaadi kehtivuse kontroll.
Kehtivuskinnitus
Vastavalt Digitaalallkirja seadusele on kehtivad vaid need allkirjad, mis on antud kehtiva allkirjastamise sertifikaadiga. Seetõttu tuleb vastava sertifikaadi kehtivust kontrollida igal allkirjastamisel.
Sertifikaadi kehtivust reaalajas kontrollitakse Online Certificate Status Protocol (OCSP) protokolli abil (RFC 2560). OCSP puhul küsib klient serverilt mingi konkreetse sertifikaadi kohta kinnitust ning serveri tagastab allkirjastatud vastuse, kus on selle sertifikaadi olek (kehtib/ei kehti/info puudub) ja kinnituse väljastamise aeg (ajatempel).
Kõikide väljastatud kehtivuskinnituste kohta peab AS Sertifitseerimiskeskus turvalogi. Lisaks on selles logis ka kõikide sertifikaatide olekumuutused (kehtetuks tunnistamised, peatamised, jne). Turvalogi kirjed on omavahel krüptograafiliselt lingitud, nii et iga järgmine logikirje on eelmistest sõltuv ja tekib lineaarne ahel. Sellist ahelat ei saa isegi Sertifitseerimiskeskus võltsida, näiteks lisades kuhugi vahele "minevikus toimunud" kirjeid. Turvalogi hetkeseis (räsi) publitseeritakse perioodiliselt tagantjärele raskesti võltsitavate kanalite kaudu. Näiteks AS Sertifitseerimiskeskus publitseerib oma turvalogi olekut ajalehes Postimees.
- AS Sertifitseerimiskeskuse turvalogi kohta saab täpsemalt lugeda siit:
- Turvalisest ajatempliteenusest üldisemalt:
Harjutus (juhul kui te pole varem digiallkirja andnud / kehtivust kontrollinud)
- Tekita mõni fail ja digiallkirjasta see.
- Allkirjastatud fail saada oma naabrile (meili teel on kõige lihtsam).
- Naaber kontrollib, et vastav digiallkiri kehtib ja on korrektne.
DDOC ja BDOC
Digiallkirjastamise formaat on muudetud Euroopa Liidus standardipõhiseks, mis võimaldab teoorias üle kogu Euroopa Liidu saata ja vastu võtta digiallkirjastatud dokumente. 2015 aastal lõppes Eestis üleminek Eesti-spetsiifiliselt DDOC digiallkirja vormingult BDOC vormingule, mis ühildub ETSI (European Telecommunication Standards Institute) väljaantud ASiC allkirja konteineri standarditega. Ülemineku ajalugu on saate näha id.ee lehelt. Eesti ID-kaardi abil failide krüpteerimisel kasutatav CDOC formaat põhineb juba praegu rahvusvahelisel standardil XML-ENC. DDOC ja BDOC näidisfaile on võimalik näha järgneval veebilehel: http://www.id.ee/?lang=en&id=36161. Asice ja BDOC konteinerite näol on tegemist tegelikult ZIP failidega. Vihje: kui tegu on zip failidega, siis saab neid lahti pakkida.
- Praktikumiülesanne 2: Kasutage viidatud näidisfaile, et uurida ja võrrelda DDOC failiformaati BDOC failiformaadiga. Milles seisnevad nende failiformaatide olulisemad erinevused? Nimetada tuleb vähemalt kolme erinevat olulist erinevust. Konteineri formaadist arusaamist on vaja ka kodutöö lahendamiseks.
Sertifikaadid
Eelmistest praktikumidest on juba teada, et sertifikaatide eesmärk on luua side võtmepaari ja selle omaniku vahel. Näiteks HTTPS korral annab sertifiseerimiskeskus välja sertifikaadi, millega antakse kinnitus, et sertifikaadis sisalduv avalik võti kuulub sertifikaadis märgitud domeenile. Kuna avalik võti on otseselt seotud salajase võtmega, siis on sertifikaadi abil kaudselt antud kinnitus ka selle kohta, et vastav salajane võti kuulub samale isikule / asutusele.
ID-kaardi korral antakse sertifikaadid, mis seovad ära isiku ja temale kuuluvad avalikud võtmed. Kuna ID-kaardis on kaks võtmepaari (esimene on autentimiseks ja teine digiallkirjastamiseks), siis on kummangi võtmepaari avaliku võtme jaoks vaja sertifikaati, mis kinnitab, et vastav võti kuulub ID-kaardi omanikule. Juhul kui teil on ka Mobiil-ID, siis on teil veel lisaks kaks sertifikaati, sest Mobiil-ID sim kaardil on samuti kaks võtmepaari. ID-kaardi sertifikaadid on avalikud ja neid saab pärida läbi LDAP kataloogiteenuse.
Sertifikaatide uuendamine
Alates märtsist 2016 on ID-kaardi haldusvahendile lisatud sertifikaatide kauguuenduse võimalus. Kui ühendate ID-kaardi arvutiga, avate haldusvahendi ja see teatab, et saate sertifikaate uuendada, siis tuleks see protsess läbi teha. Kauguuendamise ajal on oluline omada stabiilset internetiühendust. Samuti on oluline, et arvuti aku ei hakkaks tühjaks saama.
Sertifikaatide kauguundamise võimaldamise üheks põhjuseks oli see, et osad kasutuselolevad sertifikaadid ei vastanud rahvusvaheliselt kehtivale vormingule ning seetõttu poleks neid ID-kaarte enam saanud kasutada veebilehitsejas Google Chrome. Põhjuseks oli üks mittestandardselt seatud bitt sertifikaadil olevas avalikus võtmes. Turvalisusele see ohtu ei kujutanud, aga Google Chrome (ja tulevikus ja teised veebilehitsejad) hakkavad üha rangemalt standardeid järgima ja vigaseid sertifikaate enam ei aktsepteeri.
2017 aastal pidid paljud ID-kaardi omanikud sertifikaate uuendama, et vahetada välja SHA-1 põhinevad sertifikaadid, mida ei peetud enam piisavalt turvaliseks. Kõik, kellel olid SHA-1 abil allkirjastatud sertifikaadid pidid need enne 2017 aasta 1. juulit uuendama. Kui see jäi tegemata, siis pärast 1. juulit kaarte enam uuendada ei saanud ning tuli hankida uus ID-kaart.
Täpsem info oli RIA ajaveebis:
- Probleem nr 532048 (2016)
- Uuenda oma ID-kaarti! (2016)
- Kauguuendamise kolmas laine (detsember 2016)
- ID-kaarti on kauguuendanud 100 000 inimest (2017)
- Küülikukasvatusest e-riigis
Kontrollküsimused
- Kas vanu SHA-1 põhinevaid digiallkirju on võimalik juba praegu võltsida?
- Kuidas saab ära hoida tulevikus SHA-1 põhinevate digiallkirjade võltsimist? Võite eeldada, et SHA-1 põhinev digiallkiri on lepingule antud 2012 aastal.
ID-kaardi turvarisk (2017)
2017 aasta 5. septembril teatati, et osad Eesti ID-kaartid võivad olla haavatavad uut tüüpi ründele. Vastav info pärines Tšehhi teadlastelt, kes olid antud probleemi juba pikemat aega uurinud. Samad teadlased kirjutasid probleemi kohta teadusartikli, mis avaldati konverentsil ACM CCS 2017: The Return of Coppersmith’s Attack: Practical Factorization of Widely Used RSA Moduli.
Probleemsed ID-kaardid tarnis Gemalto, kes omakorda kasutas ID-kaartides Infineoni toodetud kiipe. Turvaprobleem oli põhjustatud spetsiifilise Infineoni kiibi poolt, mida kasutasid uuema põlvkonna ID-kaardid (alates oktoobrist 2014). Seega polnud vanemad ID-kaardid antud probleemist mõjutatud. Siiski oli alates 2014 aasta oktoobrist välja antud umbes 750 000 probleemse kiibiga ID-kaarti, mistõttu oli tegu tõsise ohuga.
Turvaprobleem oli seotud sellega kuidas kiip genereeris juhuslikke numbreid. Eelmistes loengutes oleme rääkinud, et krüptosüsteemid tagavad lubatud turvataseme vaid juhul kui kasutatav võti on täiesti juhuslik. Antud juhul oli kiibitootja üritanud juhuslikkuse genereerimist kiiremaks muuta, aga teinud seda vigast meetodit kasutades. Seetõttu oli küll juhuslikkuse genereerimine kiirem, aga võimalike genereeritavate RSA võtmete arv väiksem kui see tegelikult pidanuks olema.
Seega avastati Tšehhi teadlaste poolt, et vigaselt genereeritud juhuslikkuse tõttu olid RSA võtmed osaliselt ennustatavas vahemikus ning seega oli võimalik vigasest võtmepaarist pärinevate avalike võtmete abil hakata arvutama vastavaid salajasi võtmeid. See peaks turvalise avaliku võtme krüptosüsteemi korral olema arvutuslikus mõttes võimatu ülesanne, aga kuna antud juhul polnud genereeritud võtmed piisavalt hajutatud, siis muutus rünne võimalikuks. Teemat uurinud teadlaste hinnangul kuluks ühe 2048 bitise salajase võtme lahtimurdmiseks keskmiselt 20 000 dollarit ja kõige keerukamal juhul 40 000 dollarit, kusjuures raha läheks arvutusvõimsuse rentimise peale. Juhul kui ründajal oleksid enda serverid või spetsiaalselt võtmete lahtimurdmiseks loodud seadmed, siis oleks rünne oluliselt odavam.
Eesti riik otsustas rünnete vältimiseks ajutiselt sulgeda LDAP teenuse, mis võimaldas sertifikaate pärida. LDAP sulgemine ei takista rünnet, kuid muudab ründaja jaoks raskemaks avalike võtmete andmebaasi koostamise. Vigasete kiipidega ID-kaartide sertifikaadid peatati 3. novembril. Kaartide paradamiseks tuli teha tarkvara uuendus ning hankida endale uued sertifikaadid. Vigaseid ID-kaarte sai uuendada kuni 31. märtsini 2018.
Kaardi uuendamise käigus vahetati välja osa ID-kaardi sisemisest tarkvarast, loodi ID-kaardi kiibi sees uued võtmed ning hangiti sertifitseerimiskeskuselt uutele avalikele võtmetele allkirjastatud sertifikaadid. Uuendatud ID-kaardid kasutavad RSA asemel elliptkõveratel põhinevat krüptograafiat, sest see ID-kaardi funktsionaalsus ei olnud turvaprobleemi poolt mõjutatud.
Kui tahate antud teema kohta täpsemat infot ja matemaatilist põhjendust, siis lugege RIA poolt tellitud krüptouuringu kolmandat peatükki.
LDAP kataloogiteenus
AS Sertifitseerimiskeskuse poolt pakutav kataloog sisaldab:
- AS Sertifitseerimiskeskuse sertifitseerijate sertifikaate ja kehtivaid tühistusnimekirju
- Kehtivaid isikutunnistustele väljastatud sertifikaate
- Kõiki väljastatud asutuste sertifikaate
Paigaldame paketi ldap-utils
:
$ sudo apt install ldap-utils
Uuri enda ja sõprade sertifikaate (asenda näites olev nimi ja isikukood enda nime ja isikukoodiga):
$ ldapsearch -h ldap.sk.ee -x -b "c=EE" CN="ROOS,MEELIS,37507042731" $ ldapsearch -h ldap.sk.ee -x -b "c=EE" serialNumber="37507042731"
Salvesta LDAP vastus faili:
$ ldapsearch -h ldap.sk.ee -x -b "c=EE" serialNumber="37507042731" > sert.txt
Redigeerige faili, jättes alles ainult ühe sertifikaadi kohta userCertificate;binary::
järel oleva ploki, kuni reani objectClass: top
(välja arvatud). Eemaldage ka kõikide ridade alguses olevad tühikud. Nii tekib korrektne base64 kodeeritud fail, mis algab sümbolitega MII
.
Dekodeerige sertifikaadi info tekstikujule:
$ base64 -d < sert.txt | openssl x509 -inform der -text
- Praktikumiülesanne 3: Esitage eelneva päringu abil leitud enda sertifikaadi täielik eraldusnimi (sertifikaadi väli
Subject
). Kui sul endal sertifikaate pole, siis kasuta päringu tegemiseks kaastudengi nime / isikukoodi.
Lisamaterjalid: E-hääletamine
Selle teema kohta käivad materjalid leiate: infoturbe aine kodulehelt.
Tagasiside
Praktikumi lõpus palume anda tagasisidet, sest see võimaldab meil antud praktikumi ja ka järgmisi praktikume paremaks muuta. Tagasiside on anonüümne ja tagasiside vormi leiate järgneva lingi abil: tagasiside vorm.
Praktikumi ülesanded
Praktikumi ülesannete lahendamine annab kaks punkti. Praktikumi ülesanne võiks valmis saada praktikumi lõpuks, aga juhul kui see ei õnnestu, siis saate seda esitada järgmise seitsme päeva jooksul.
- Lugege failide krüpteerimise ja krüpteeritud failide avamise juhendit: http://www.id.ee/?id=36035. Tekitage olukord, kus teile on saadetud ID-kaardi krüpteerimistarkvara abil krüpeeritud kiri. Kirja saatja võib olla teie naaber, aga selle võite ka ise endale saata. Lahenduseks tuleb esitada ekraanitõmmis vastuvõetud kirjast koos saatja nime või meiliaadressiga ning DigiDoc Crypto aknast, kus vasakul paneelis on näha krüpteeritud fail ja paremal teie nimi. Näide lahendusest:
- Kasutage viidatud näidisfaile, et võrrelda DDOC failiformaati BDOC failiformaadiga. Milles seisnevad nende failiformaatide olulisemad erinevused? Nimetada tuleb vähemalt kolme erinevat olulist erinevust.
- Esitage eelnevalt LDAP päringuga leitud enda sertifikaadi täielik eraldusnimi (sertifikaadi väli
Subject
). Kui sul endal sertifikaate pole, siis tee LDAP päring mõne sõbra sertifikaatile (sellisel juhul tuleb vastusesse kirjutada selgitus).
Lahendusi võtame vastu järgmistes failiformaatides: .pdf, zip.
11. 11. ID-kaart ja e-hääletamine - praktikumi ülesanneKodune ülesanne
Koduse ülesande lahendamine annab ühe punkti. Lahenduse esitamiseks on aega üks nädal ehk lahendus tuleks esitada järgmise seitsme päeva jooksul. Küsimustele vastuste leidmiseks võib vaja minna lisamaterjalide, mille viited leiate praktikumimaterjalide hulgast.
- Digiallkirjastage enda poolt valitud fail (maksimaalselt 1MB suurune) nii, et tulemus oleks asice konteineris. Otsige digiallkirja konteinerist signatuuri infot sisaldav märgis (tag) ning leidke üles allkirjastatud failile vastav räsi väärtus. Võtke lahti terminal ning tehke digiallkirja konteineris asuvast lähtefailist (digiallkirjastatud failist) räsi ning viige see samale kujule nagu räsi, mis oli eelnevalt uuritud XML failis.
Ülesande lahendamiseks on teil vaja:
- kasutada ID-kaarti või Mobiil-ID. Kuna ID-kaart on kohustuslik dokument, siis peaks see kõigil olemas olema. Juhul kui teil puuduvad aktiivsed sertifikaadid, siis esitage selle tõendamiseks LDAP vastus (tehke ekraanitõmmis) ning kasutage ülesande lahendamiseks näidis faile. Kui teie sertifikaadid kehtivad ja te ei saa mingil põhjusel anda digiallkirja, siis lisage vastav põhjendus ning kasutage eelnevalt viidatud faile.
- osata digiallkirja konteineri seest infot leida (seda proovisite praktikumis).
- otsida käsk, mis võimaldab kasutada XML failis kirjeldatud räsialgoritmi.
- teisendada räsi sobivale kujule:
räsi_arvutamise_käsk | cut -f1 -d\ | xxd -r -p | base64
Esitada tuleb:
- Teie poolt loodud asice konteiner.
- Ekraanitõmmis, kus on selgelt näha, et terminaliaknas loodud räsi on võrdne XML failis oleva räsiga. Kindlasti joonige või tooge mingil muul moel esile vastavad räsi väärtused.
Koduse ülesande lahendus tuleks esitada aine kodulehelt. Lahendusi võtame vastu järgmistes failiformaatides: .pdf, .zip.
26. 11. ID-kaart - kodune ülesanne