720 likes | 1.01k Views
Andmeturve ja krüptoloogia, IX Digiallkiri, selle taristu ja ID kaart. 5 . märts 2014 Valdo Praust mois @ mois .ee Loengukursus IT Kolled ž is 2014. aasta kevadsemestril õhtustele tudengitele. Krüptograafia olemus ja roll kaasajal.
E N D
Andmeturve ja krüptoloogia, IXDigiallkiri, selle taristu ja ID kaart 5. märts 2014 Valdo Praust mois@mois.ee Loengukursus IT Kolledžis 2014. aasta kevadsemestril õhtustele tudengitele
Krüptograafia olemus ja roll kaasajal Kaasajal ei tegele krüptograafia küll enam pelgalt teabe salastuse tagamisega, vaid lisaks volitamata muutmiseärahoidmisega (tervikluse tagamisega), mida võib lugeda isegi tema põhifunktsiooniks Nimetus krüptograafia (peidetud sõna) on traditsioonide tõttu jäänud küll alles ja kasutusse, kuigi tihti pole salastusega selle rakendamisel mingit tegemist
Kaasaja krüptograafia teabe teisenduse tüüpvõttena Kaasajal on krüptograafial põhinevad võtted muutunud (Internetis) teabe kaitsmise tüüpvõteteks, ilma milleta ei ole teavet võimalik töödelda Selle vaatlemine erivahendina on lõplikult ja jäädavalt ajalugu
Krüptoalgoritmide peamised liigid Sümmeetrilised ehk salajase võtmega krüptoalgoritmid (on traditsioonilised e ajaloolised) Asümmeetrilised ehk avaliku võtmega krüptoalgoritmid (levinud viimase 20 aasta jooksul) Krüptograafilised sõnumilühendid jms sellesarnased funktsioonid Eriotstarbega algoritmid tõestusteks, autentimisteks, ajatempli jaoks jm
Krüptoräsi ehk krüptograafiline sõnumilühend Krüptoräsi ehk krüptograafiline sõnumilühend (cryptographic message digest, hash, fingerprint, thumbprint) on ükskõik kui pikast sõnumist (failist) teatud matemaatiliste eeskirjade järgi arvutatav lühike (paarsada bitti) teabekogum See seos on ühesuunaline (one-way): etteantud sõnumilühendi korral ei ole võimalik tuletada faili, millele see sõnumilühend vastab
Krüptoräsi: kasutusala Kui meil on olemas paar –sõnum ja räsi (sõnumilühend) – , kus räsi vastab failile, võime olla igal juhul kindlad, et räsi on arvutatud kindlasti sellest failist ega mitte millestki muust Krüptoräside peamine kasutusala on autentimisel ja tervikluse tagamisel (nt digiallkirja juures) Üks räsi kasutamise peamisi põhjuseid seisneb asjaolus, et avaliku võtmega krüptoalgoritm ei ole võimeline töötlema suuri andmemahte
Krüptoräsi ehk krüptograafiline sõnumilühend: toimimisskeem
Praktikas kasutatavaid häid räsifunktsioone • SHA-1– konstrueeriti 1996. aastal MD4-l põhineva ideoloogia põhjal NSAs viimase turvalisust tugevdades. Räsi pikkus on 160 bitti (20 baiti) • RIPEMD-160– konstrueeriti 1990te algul Belgias, leiab 160-bitise räsi
Kõrgendatud turve: RIPEMD-256 ja SHA-2 • RIPEMD-256 on RIPEMD-160 edasiarendus, kus räsi pikkus on 256 bitti (ja seega murdmine palju raskem) • SHA-2 on räsifunktsioonide pere, kus SHA-1 on tugevama turbe saavutamiseks edasi arendatud ja räsi on pikem (224, 256, 384 või 512 bitti) RIPEMD-256 või SHA-2 on kaasajal mõtet kasutada kahel juhul: - on vaja tagada räsi pikaajaline (aastakümnete pikkune murdmatus) - on vaja tagada erakordselt tugev turve (erakordselt kõrge tasemega terviklus)
Dokument andmeallikana Korraldatud inimtegevus on aastasadu ja -tuhandeid põhinenud vahendatud (kuidagi üles kirjutatud) informatsioonil, mida nimetatakse kaandmeteks • Selliseid ülestähendusi, millel reeglina on • mingi (õiguslik) tähendus • kindel ning muutmatu seos • loojaga ja loomisajaga • nimetatakse dokumentideks Kuni viimase ajani mõeldi dokumendi all ilma erandita paberdokumenti
Dokumendi tõestusväärtus Dokument on andmekogum, millelt nõuame vähemalt kahte omadust: • peame suutma hiljem kindlaks teha dokumendi loojat (ja enamasti ka loomisaega) • peame veenduma, et peale dokumendi loomist ei ole seda enam muudetud Neid omadusi koos võib nimetada dokumendi tõestusväärtuseks (evidentiary value of a document) Kui mingi teabekogumi korral ei ole mõlemad eelmainitud omadused tagatud, siis ei saa seda võtet dokumentide loomisel, säilitamisel ja kasutamisel pruukida
Paberdokumendi tõestusväärtusetagamine • Paberdokumendi seob ta loojaga omakäeline allkiri (handwritten signature) • Nii dokumendi andmed ise (dokumendi sisu) kui ka nendele kantud allkiri on seotud andmekandjaga (data carrier) kui paberilehega; sellele kandmise tehnika seob need ka omavahel Paberkandjal dokumendi tõestusväärtus on tagatud, kui selles sisalduv teave vastab kindlatele vorminõuetele ning on varustatud allkirjaga
Digidokumendi tõestusväärtus: tõsine probleem Lähtekoht: Digitaalne andmekogum on arvutis üksnes bitijada ehk faili kujul, mis ei ole ühegi konkreetse andmekandjaga seotud. Nii dokumendi sisu kui ka ka allkirja saab mõlemat lihtsalt muuta Järeldus (karm reaalsus): digiteabe juures ei saa kasutada paberdokumentidest tuttavat (käsitsi kirjutatud) allkirja – puudub teabekandja ja seetõttu ei saa tagada allkirja autentsust (võltsimatust) ja seeläbi dokumendi tõestusväärtust
Terviklus Andmete terviklus(integrity) on andmete pärinemine autentsest allikast koos nende allika kindlaksmääramisega ning veendumine, et andmed pole peale loomist volitamatult muutunud Erinevalt paberdokumentide maailmast ei ole digimaailmas terviklus tagatud vaikimisi: selle saavutamiseks on vaja aktiivseid tegevusi Praktiliselt ainsaks võimaluseks on digisignatuuri ehk digitaalsignatuuri kasutamine, mis põhineb avaliku võtmega krüptograafial Bürkoraadid räägivad tõestusväärtusest, mis on suuresti identne terviklusega
Võimalik lahendus – digiallkiri Digitaalsete teabekogumite juures on alternatiivne võimalus kasutada sellist allkirjalaadset (allkirja omadustega) mehhanismi, mis on seotud matemaatiliste seoste abil teabe (bittide) endaga, mitte selle kandjaga Seda võtet nimetatakse digitaalallkirjaks (digiallkirjaks) (digital signature), mis on maailmas laialt kasutusel tavaallkirja asendajana
Digiallkiri vs digisignatuur Digiallkiri on juriidiline mõiste, mis annab temaga varustatud dokumendile tõestusväärtuse ja omakäelise allkirjaga sarnase staatuse Digisignatuur on tehniline konstruktsioon, mis põhineb avaliku võtmega krüptoalgoritmi kasutamisel tervikluse kaitseks • Digiallkirja osatakse kaasajal anda ainult digisignatuuril põhinevana • Iga digiallkiri on digisignatuur, kuid kaugeltki mitte iga digisignatuur pole digiallkiri - vaja on lisada täiendavaid tehnilisi võtteid ja subjekte (nt avaliku võtme infrastruktuur) ning õiguslikke regulatsioone) • Ingliskeelne oskusterminoloogia nendel termini mõttes vahet ei tee (digital signature)
Digiallkirja olemus Digiallkirja loomisel kasutatakse avaliku võtmega krüptograafia meetodeid (täpsemalt asümmeetrilist krüptoalgoritmi ja sellel põhinevat digisignatuuri) Digiallkiri (digital signature) on digidokumendile (digitaalkujul olevale andmekogumile) lisatav andmekogum, mille loob dokumendi allkirjastaja (signeerija) dokumendist ja tema ainuvalduses olevast privaatvõtmest (isiklikust võtmest) lähtudes
Avaliku võtmega krüptoalgoritm Avaliku võtmega krüptoalgoritm (public key cryptoalgorithm) ehk asümmeetriline krüptoalgoritm (asymmetric cryptoalgorithm) kasutab kahte võtit– esimese võtmega šifreeritud teave on dešifreeritav vaid teise võtmega ja vastupidi. Ühest võtmest teist ei ole võimalik leida Nimetatud võtmeid nimetatakse tavaliselt avalikuks võtmeks ja privaatvõtmeks (public and private key).
Avaliku võtmega krüptoalgoritmikasutamine signeerimisel (digiallkirja andmisel)
Digiallkirja andmise põhimõtted Digiallkirja andmiseks peab selle andjal olema (avaliku võtmega krüptoalgoritmi) võtmepaar (keypair), mis koosneb privaatvõtmest (isiklikust võtmest) avalikust võtmest Mõlemad võtmed on digitaalsed andmekogumid Privaatvõtmega antud digiallkirja ja saab sellele vastava avaliku võtmega verifitseerida
Krüptoräsi ehk sõnumilühend Krüprograafiline sõnumilühend ehk krüptoräsi(cryptographic message digest, hash, fingerprint) on ükskõik kui pikast sõnumist (failist) teatud matemaatiliste eeskirjade järgi arvutatav lühike (tavaliselt 160 bitti) teabekogum See seos on ühesuunaline (one-way): etteantud räsi korral ei ole võimalik tuletada faili, millele see räsi vastab Järeldus. Kui failiräsi vastab failile, võime olla igal juhul kindlad, et lühend on arvutatud kindlasti sellest failist ega mitte millestki muust etteantud faili
Krüptoräsi roll digiallkirjas Digiallkirja ei anta tavaliselt mitte pikale dokumendile, vaid selle dokumendist arvutatud räsile See võimaldab hoida kokku aega: pikale dokumendi allkirja andmisel võtab avaliku võtmega krüptoalgoritmi pruukimine palju aega Kuna krüptoräsi põhjal ei ole võimalik konstrueerida sõnumit, siis võime olla kindlad, et räsile antud digiallkiri on sama hea kui (pikale) dokumendile endale antu
Privaatvõti ja selle kasutamine NB! Seega tuleb privaatvõtit hoida väga hoolsalt, vältides selle volitamatut kasutamist Vahel hoitakse seda spetsiaalses riistvaraseadmes, nt kiipkaardis (chipcard) koos krüpteerimisalgoritmiga, millest ei saa seda välja lugeda, vaid üksnes kasutada Nt Eesti ID kaart ja Mobiil-ID kaart on kujundatud krüptograafilise kiipkaardina Igaüks, kel on olemas privaatvõti, saab sellega võtme omaniku nimel digiallkirju anda
Privaatvõti kiipkaardina Niisugust kiipi/seadet, mille siseehitusele ja sisemistele registritele kasutaja ligi ei pääse, nimetatakse pöördkonstrueerimatuks seadmeks (non-reverse-engineerabledevice)
Sertifitseerimisteenuse vajadus Eeltoodud võte (avaliku võtmega krüptograafia) võimaldab siduda dokumendi selle andja võtmepaariga (avaliku võtmega) Meid huvitab aga dokumendi sidumine allakirjutaga (täpsemini tema isikuandmetega, nt nimega, isikukoodiga vms) Lahendus: peame siduma isiku (isikuandmed) tema avaliku võtmega (mille kaudu ta on siis seotud ka digiallkirja endaga)
Sertifitseerimine, selle põhimõtted Sertifikaadi väljaandmisega tegelevad spetsiaalsed sertifitseerimiskeskused ehk sertifitseerimisteenuse osutajad (certification authorities, CA) Isiku isikuandmete sidumist tema avaliku võtmega) nimetatakse sertifitseerimiseks (certification) Digitaaldokumenti, mis seob isiku isikuandmed tema avaliku võtmega, nimetatakse sertifikaadiks (certificate)
Sertifikaat NB! Avalike võtmete asemel levitatakse üldjuhul sertifikaate. Igaühel, kes tahab digiallkirja kontrollida, peab allkirja andja sertifikaat olemas olema Sertifikaat (certificate) on sertifitseerimisteenuse osutaja poolt alla kirjutatud (signeeritud) digidokument, mis sisaldab sertifikaadi omaniku isikuandmeid, avalikku võtit ja sertifikaadiga seotud andmeid (sertifitseerimiskeskuse andmeid, kehtivusaega jm)
Eelnev mudel: tekkivad probleemid Lähtekoht: me ei saa välistada olukordi, kus privaatvõti (isiklik võti) väljub selle omaniku ainuvaldusest Kui see on toimunud, siis saab volitamata isik allkirja omaniku nimel (digi)allkirju anda Ainus lahendus: tuleb lubada sertifikaate tühistada Järeldus: me peame arvet pidama kõikide väljaantud sertifikaatide kehtivusaja üle ning panema igale sündmusele juurde tõestusomaduste ajalipikud
Lahendus probleemile: kaks vajalikku mehhanismi Lahenduseks vajalik nõue (dokumentide pikaajalise tõestusväärtuse nõue): kord digiallkirjaga varustatud dokumendi ehtsust võib sageli olla vajalik tõestada veel pikka aega kauges tulevikus Järeldus: tuleb kasutada mehhanisme, mis • võimaldavad hiljem tõestada sertifikaatide kehtivust mingil varasemal ajahetkel (kehtivuskinnitus, harva ka tühistuslist) • võimaldavad hiljem tuvastada dokumentide signeerimisaega (ajatempel)
Esimene mehhanism: ajatempel Ajatempel (time-stamp) on andmekogumile (dokumendile, failile vm) lisatud täiendav andmekogum, mis võimaldab selle loomisaega võrrelda teiste andmekogumite loomisaegadega (signeerimisaegadega) Ajatempleid väljastavad kindla funktsiooniga ajatemplikeskused ehk ajatempliteenuse osutajad (time-stamping authorities) Järjekordse ajatempli arvutab ajatempli teenuse osutaja kahest allikast: • talle saadetud andmekogumist • eelmisest väljaantud ajatemplist
Ajatempli põhimõtted Selline aheldamise võte võimaldab tekitada olukorra, kus juba väljaantud ajatemplite vahele ei saa hiljem välja anda uut ajatemplit ja juba väljaantud ajatempleid ei saa muuta: • kõik ajatemplid, nende väljastamise reeglid ja kasutatavad algoritmid on avalikud • Ajatempliteenuse osutajaga võetakse ühendust onlainis digiallkirja andmise hetkel
Esmapilgul kõlbav mehhanism: sertifikaatide tühistuslist Sertifikaatide tühistuslisti (certificates’ revocation list) võiks pidada sertifitseerimiskeskus, sinnasaaks kanda andmed kõikide väljaantud sertifikaatide kohta, mida saaks hiljem onlainis kontrollida Sellise listi olemasolu võimaldaks onlainis kontrollida (ja vahel ka tõestada) sertifikaatide kehtivust mingil varasemal ajahetkel Miks säärane lahendus on ikkagi väga ebasobiv?
Tühistuslisti suured puudused Dokumendi allkirja õigsuse kontrollimiseks on vaja sooritada onlain-päring sertifitseerimiskeskusse või mujale Raskused juhul, kui sertifitseerimiskeskus on oma tegevuse lõpetanud (dokument peab kehtima jääma, mitte õhku rippuma!) Kui sertifikaate on välja antud palju, siis on listi pidamine ja sellest teabe otsimine mahukas töö — ta vajab väga suure läbilaskevõimega infosüsteeme (iga kirja kontrollimise e verifitseerimise juures tehakse üks onlain-päring!) Dokumendi verifitseeritavus võiks säilida koos dokumendi endaga, mitte sellest lahus! Järeldus: tühistuslist ei eobi e-maailma!
Sobiv teine mehhanism: kehtivuskinnitus Kehtivuskinnituse saamine on digitõestuse saamine, et digiallkiri on moodustatud kehtivas sertifikaadis sisalduvale avalikule võtmele vastava privaatvõtmega Kujutab endast onlain-teenust, mis töötab iga sertifitseerimisteenuse osutaja juures Võimaldab üle saada tühistuslisti puudustest Ajalooliselt on seda nimetatud ka elektroonilise notari kinnituseks
Kehtivuskinnitus Kehtivuskinnituse võtmine tehakse onlainis ja tavaliselt vahetult pärast digiallkirja andmist.Selle eemärk on varustada digidokument vastava lisarekvisiidiga Kehtivuskinnituse olemasolu (allkirja sabas) tõestab, et dokumendile kantud digiallkiri on tehtud dokumendi signeerimisel kehtiva sertifikaadi baasil NB!Peale seda ei ole vaja digiallkirja verifitseerimiseks teha enam mingeid onlain-päringuid ega vajalik mingit võrguühendust!
Digiallkirjaga digidokument koos vajalike (lisa)rekvisiitidega
Sertifitseerimise taristu • Sertifitseerimise taristu (certification infrastructure) ehk avaliku võtme taristu(public key infrastructure, PKI) kujutab endast digiallkirja andmiseks ja kontrollimiseks vajaminevaid teenuseid, mida on viis: • privaatvõtit sisaldav seade + korraldus • sertifitseerimisteenus • ajatempli teenus • kehtivuskinnituse teenus • teenuste korraldamise ja koordineerimise teenus (tavaliselt riiklik) Digiallkirja turvaliseks andmiseks on hädavajalik kõigi nelja teenuse toimimine
Andmekogum (dokument) ja vorming Digitaalne andmekogum— informatsiooni esitus bitijadana, st jadana, mis koosneb märkidest 0 ja 1. (arvutis nimetatakse neid kogumeid tihti failideks) Vorming(format) — eeskiri andmete tõlgendamiseks kas vahetult informatsiooniks või mingiks traditsiooniliseks vahepealseks esituseks ehk teabe liigiks (tekst, pilt, heli, video) Igasugune informatsioon on arvutites (infotehnilistes seadmetes) esitatud alati digitaalkujul kindlates kokkuleppelistes vormingutes kogumitena (failidena)
Vorming ja tähendus, I Vorming (kokkuleppeline vorming) annab andmetele (andmekogumine, dokumendile) tähenduse • Arvutite ja digiandmetega seotud kontekstis on vorming eeskiri, kuidas mingi valdkonna informatsioon on esitatud digikujul ehk bitijoruna • Näiteks: • Tekstikujul teabe vormingud:DOC, RTF, TXT, WP jne • Pildikujul teabe vormingud:GIF, JPG , TIFF, BMP jne • Heli vormingud:WAv, AU, MP3, RM jne • Video vormingud:MPG (MPEG), RM, AVI jne
Vorming ja tähendus, II Erinevaid vorminguid toetavad arvutis erinevad programmid (tarkvaravahendid), mis lubavad teavet salvestada, inimesele kogetavaks teha (nt näidata), muuta jm Lõppkasutaja ei tea tavaliselt vormingu ”hingeelust” mitte midagi, ta seostab seda teatud tarkvaratootega, mis suudab teatud faili ”lugeda” Lõppkasutaja näeb tihti vaid ekraanipilti ehk adekvaatkuva (WYSIWYG – What You See Is What You Get)
Nõuded digiallkirjastatava dokumendi vormingule Digiallkiri on infotehniliselt seotud bitijadaga, kuid olemuse poolest tuleb ta siduda dokumendi sisuga (tekst, pilt, hüpertekst vm) Järeldus: digiallkirjaga varustatud dokumendil peab olema ühene tähendus: bitijada ei tohi saada interpreteerida mitut moodi • Kaks kohustuslikku tingimust: • Kasutatava failivormingu kirjeldus peab olema avalik • Dokumendi sees peab olema viide vormingule
Sobivad vormingud: näited Sobivad kõik, mille kirjeldused on avalikud ja üheselt mõistetavad; tekstivormingutest nt: • HTML (veebis kasutatav märgiskeel, vajalik viide versioonile) • XML (suure tulevikuga märgiskeel, märgised on erinevalt HTMList semantika-, mitte süntaktikapõhised, mis loob suured võimalused • RTF (Rich Text Format), praegu laiali kasutusel tekstivorming • ASCII (piirartud võimalustega “vana hea” tegija)
Mittesobiv vorming: Mircosofti DOC ja DOCX Peapuudus: vormingu kirjeldus ei ole avalik (küsige Microsoftilt, miks...) • iga MS Office’il on oma teistest erinev DOC(X) vorming, failist reeglina see ei selgu, millist on soovitud kasutada • saab koostada dokumendi, mille kuvand (adekvaatkuva) on igas erinevates Office’i versioonides drastiliselt erineb • saab koostada dokumendi, mille kuvand sõltub arvutist, kellaajast jpt asjadest • dokument võib sisaldada kasutaja eest peidetud osi, mida kuvandis ei näidata üldse
Õiguslik reguleerimine Digiallkirja juures vajavad õiguslikult reguleerimist: • tingimused, millele peab vastama võtmepaar • kes ja kuidas saavad teha sertifitseerimist • kes ja kuidas annavad välja ajatempleid • kes korraldab nimetatud tegevusi ja peab järelevalvet Alles tehnilise valmisoleku ja piisava õigusliku reguleerimise korral saame öelda, et digiallkirjaga varustratud digidokumentidel on samasugune õiguslik tähendus kui omakäelise allkirjaga varustatud paberdokumentidel