330 likes | 552 Views
Andmeturve ja krüptoloogia, X Krüptograafilised sõnumilühendid. Krüptoprotokoll SSL. 5. november 2001 Valdo Praust vpraust@delfi.ee Loengukursus IT Kolled ž is 2002. aasta sügissemestril. Krüptograafiline sõnumilühend.
E N D
Andmeturve ja krüptoloogia, XKrüptograafilised sõnumilühendid. Krüptoprotokoll SSL 5. november 2001 Valdo Praust vpraust@delfi.ee Loengukursus IT Kolledžis 2002. aasta sügissemestril
Krüptograafiline sõnumilühend Krüprograafiline sõnumilühend (cryptographic message digest, hash, fingerprint) 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üptograafiline sõnumilühend: kasutusala Kui meil on olemas sõnum/sõnumilühend paar, kus sõnumilühend vastab failile, võime olla igal juhul kindlad, et lühend on arvutatud kindlasti sellest failist ega mitte millestki muust Sõnumilühendite peamine kasutusala on autentimisel ja tervikluse tagamisel digitaalallkirja juures ja mujal
Räsifunktsioon ja sõnumilühend Krüptograafiline sõnumilühend on mõeldud pikast sõnumist püsipikkusega lühikese bitijada, nn sõnumilühendi (message digest) tekitamiseks, millel oleksid teatud eriomadused Algoritmi, mis sõnumilühendi tekitab, nimetatakse krüptograafilisteks räsifunktsiooniks (hash function) Sõnumilühend on täpsemini võtmeta räsifunktsiooni väljund, sõltudes vaid sõnumist
Räsifunktsioonilt nõutavad omadused • algse sõnumi mistahes muutused peavad põhjustama muutuse ka sõnumilühendis • sõnumilühend peab olema lihtsate protseduuridega leitav • sõnumilühend ei tohi olla pööratav: etteantud lühendi korral ei tohi saada leida sellega sobivat algset sõnumit • etteantud sõnumi korral ei tohi olla leitav teist sõnumit, mis annaks sama lühendi –nõrk kollisioonivabadus • ei tohi olla leitav sellist sõnumitepaari, mis annaks sama sõnumilühendi –kollisioonivabadus
Räsifunktsioonide liigitus • Ühesuunaline (one-way) on selline räsifunktsioon, mis ei ole pööratav ja on nõrgalt kollisioonivaba • Kollisioonivaba (collision-free) on selline räsifunktsioon, millel on lisaks veel kollisioonivabaduse omadus Kaasajal nõutakse räsifunktsioonidelt reeglina kollisioonivabadust (tugevamaid omadusi)
Sünnipäevaparadoks Sünnipäevaparadoks: tõenäosus, et N inimesel langeb kahel sünnipäev omavahel kokku, kasvab N kasvades suurusega N2 võrdeliselt ehk väga kiiresti Põhjus: uute elementide lisamisel tekib juurde järjest rohkem elementide paare (sidemeid nende vahel) N korral on neid paare N2– N N=23 juures on see tõenäosus ½.
Sünnipäevaparadoksi mõju räsifunktsioonidele Järeldus sünnipäevaparadoksist: kui räsifunktsiooni väljund on N bitine, siis tõenäosus, et K katsel saadakse vähemalt kaks identset sõnumilühendit on K = 1,17 2N/2 Lihtsaimaks krüptoanalüütiliseks ründeks (ammendavaks otsinguks) on N-bitilise väljundiga räsifunktsiooni korral vaja 2N/2 variandi läbivaatamist
Praktikas kasutatavaid räsifunktsioone • MD5– välja töötatud Ron Rivesti poolt. Leiab 128-bitise sõnumilühendi • SHA-1– konstrueeriti 1996. aastal MD4-l põhineva ideoloogia põhjal turvalisust tugevdades. Lühendi pikkus on 160 bitti (20 baiti) • RIPEMD-160– konstrueeriti 1990te algul, leiab 160-bitise lühendi • MD2, MD4– MD5 eellased, välja töötatud samuti Ron Rivesti poolt, leiab 128-bitise lühendi. NB! Ei ole kaasajal enam turvalised,on leitud kollisioone.
MD5: üldfakte ja kirjeldus • Sõnumilühendi pikkus on 128 bitti • On koostatud 1991 Ron Rivesti poolt • On omal ajal kuulutatud Interneti de facto standardiks RFC 1324 • Algoritm koosneb neljast üksteisest erinevast raundist (round), mille vältel sõnumit töödeldakse 512 biti kaupa • Iga raundi alguses võetakse eelmise raundi lõpptulemus ja “segatakse” sellesse järgmised 512 bitti
MD5 turvalisus Ei peeta kõikidel kriitilistel juhtudel enam päris turvaliseks. Ei ole teada küll murdmisvõtteid, mis nõuaksid vähem kui 2128/2 = 264 variandi läbivaatamist, mida nõuab ammendav otsing, kuid seda on ikkagi vähe (vrd sümmeetriliste algoritmide 80 biti piir) 20 miljonit krooni maksev spetsiaalne riistvaraseade (arvuti) suudab MD5-l leida kollisiooni keskmiselt 24 päeva jooksul
SHA-1: üldfakte ja kirjeldus Sarnaneb väga paljus MD5ga On koostatud 1996. aastal MD5 eelkäijat MD4 eeskujuks võtteks, kuid turvalisemaks tehes Sõnumilühendi pikkus on suurem, 160 bitti Muudes detailides sarnaneb suurelt osalt MD5ga – neli raundi, iga raundi alguses võetakse eelmise raundi lõpptulemus ja “segatakse” sellesse järgmine osa, spetsiaalsed teisendusfunktsioonid
SHA-1: turvalisus ja kasutatavus On palju turvalisem kui MD5 ja palju laiemalt kasutuses Masin, mis maksab 1 miljard krooni, leiab SHA1 kollisiooni mitte kiiremini kui tuhandete aastatega On ANSI X.90 standardi osa Väikeste muudatustega on SHSi (Secure Hash Standard) osa, mis on spetsifitseeritud USA standardis FIPS PUB 180
RIPEMD-160: üldfakte On koostatud 1990te algul Hans Dobbertini, Antoon Bosselaersi ja Bart Preneeli poolt Lühendi pikkus on 160 bitti Muus osas on enam-vähem sarnased MD5 ja SHA-1ga (raundide arv on suurem, 5) On olemas modifikatsioonid RIPEMD-128 (see oli RIPEMD-160 eellane), RIPEMD-256 ja RIPEMD-320, vastavalt 128, 256 ja 320 bitilise lühendi tarbeks
RIPEMD turvalisus RIPEMD-128 ei peeta enam turvaliseks. 1994 koostasid Paul van Oorschot ja Mike Wiener 10 miljonit dollarit maksva masina plaani, mis murraks selle ammendava otsinguga kuuga Praegu kuluks sellise masina ehitamisele veidi üle poole miljoni dollari (Moore’i reegel: protsessori hind kahaneb pooleteise aastaga kaks korda) RIPEMD-160 arvatakse olevat veel vähemalt 10 aastat turvaline, ei ole leitud efekti andvaid krüptoanalüütilisi võtteid
Pilk ajalukku: MD2 ja MD4 • On koostatud Ron Rivesti poolt 1989 ja 1990 • Sarnanevad MD5ga nii lühendi pikkuselt (128 bitti) kui ka ehituselt (raundid, sõnumi perioodiline töötlemine) • Alates 1994-95 on mõlemal leitud kollisioone. MD4-l osatakse neid kaasajal leida tavalise personaalarvutiga juba mõne sekundiga Järeldus: MD2 ja MD4 on lahti murtud – nad ei ole enam turvalised ega sobivad kasutada
Krüptograafiliste sõnumilühendite kasutamine • On kasutatavad peamiselt tervikluse tagamisel, kus nad on väga olulised mehhanismid • Nende väga suur kasutusala on digitaalsignatuuride ja ajatemplite juures Me ei pea hoolitsema enam mahuka andmekogu, programmi vm volitamata muutmiste eest, vaid võime leida sõnumilühendi ja hoolitseda selle muutumatuse eest (mida saame edaspidi alati vajadusel suure kogumiga võrrelda)
Krüptograafiliste protokollide vajadus Kui kaks või enam osapoolt võrgu vahendusel turvaliselt suhtlevad, siis on tavaliselt vajalik terve hulga tingimuste täitmine: • üks osapool peab saama autentida teist, st olla kindel, kellega ta suhtleb • vahel on vajalik kahepoolne autentimine (nt pangateenus veebis), vahel piisab ühepoolsest (nt veebilehelt seaduse lugemine) • tihti on vaja vahetada salajaseks sideks pruugitavat võtit • vahel on vaja tagada keerukaid lisaomadusi (digitaalraha, jaotatud salastatus jm)
Krüptograafilise protokolli olemus Protokollid (protocol) määravad ära,mis teave millises järjekorras liigub ja kuidas seda teisendatakse Sellega tagavad nad vajalikud omadused (autentimine, võtmevahetus jm) Protokollis sisaldavad reeglina hulga krüptoalgoritme (sümmeetrilisi, asümmeetrilisi, räsifunktsioone), nende kasutamisi ning võtmete genereerimisi Krüptograafilisi protokolle on väga palju, üks kasutatavaim praktikas (Internetis) on SSL (Secure Socket Layer)
SSL: põhiomadused ja faktid on projekteeritud töötama Internetis, st TCP/IP protokollil toimivas võrgus transpordiprotokollile (nt TCP) toetudes võimaldab kasutajatel üksteist autentida võimaldab vahetada võtme teabe krüpteeritud edastamiseks ja seda teavet krüpteeritult edastada kuulub reeglina kõrgema taseme protokollide koosseisu, lisades funktsionaalsusele turvalisuse: telneti asemel ssh http asemel https ftp asemel secure ftp
SSLi kanal SSL tekitab üle võrgu turvalise sidekanali (secure channel), millel on kolm omadust: • Kanal on privaatne. Pärast seda kui osapooled on vahetanud šifreerimisvõtmeid, on kõik edastatavad andmed krüpteeritud • Kanal on autenditud. Mõlemad pooled saavad üksteist autentida, kuid võimalik on ka ühepoolne autentimine • SSL suudab kontrollida andmete puutumatuna päralejõudmist (hädavajalik võrgu pakettresiimi – nt TCP/IP protokolli – korral)
SSLi toimimispõhimõtted SSLi ühenduses võib eristada kahte faasi: • autentimisfaas (handshaking) • teabe vahetamisfaas Tavaliselt toimub ühendus kahe ebavõrdse poole vahel (klient ja server), mida SSL veidi eristab (kuigi on võimalik ka võrdse poole teabevahetus) Autentimisfaas sisaldab igal juhul serveri autentimist. Vajadusel järgneb sellele ka kliendi autentimine
SSLi autentimisfaas Lihtsustatult sisaldab see järgmisi tegevusi (server A hakkab suhtlema kliendiga B): • A ütleb B-le tere ja ütleb et ta on A ja mainib, milliseid krüptoalgoritme ta kasutab • B vastab ja ütleb A-le, et ta tõestaks et on A • A tekitab teksti “mina olen A”, teeb sellest sõnumilühendi • lüh(“mina olen A”) • A signeerib lühendi oma privaatvõtmega, saades • siga (lüh(“mina olen A”))
SSLi autentimisfaas (järg) • A saadab B-le oma avaliku võtme, teksti • “mina olen A” ning signatuuri • siga (lüh(“mina olen A”)) • B, saades need need kätte verifitseerib signatuuri, veendudes et ta vestluspartner on ikka A. Samas paneb B A avaliku võtme oma kataloogi • Sellega on B A autentinud. • Kui vaja, võib A ka B-d samamoodi autentida (vahel seda tehakse)
SSLi autentimisfaas (järg) A genereerib sümmeetrilise krüptoalgoritmi võtme (primaarvõtme), paneb selle oma andmebaasi ja saadab selle oma privaatvõtmega krüpteeritult B-le B dešifreerib saadud salajase primaarvõtme ja paneb ka oma baasi Sellega on autentimisfaas lõppenud: mõlemad osapooled on üksteist “tundma õppinud” ja vastava teabe endale talletanud
SSLi sidefaas Eeldus:A ja B hakkavad suhtlema ja veenduvad, et nad on autentimisfaasi juba läbinud ja vastav teave on neil olemas ja varem talletatud • A genereerib seansi võtme ja krüpteerib selle sümmeetrilist krüptoalgoritmi kasutades, misjärel saadab ta selle B-le • B teeb oma primaarvõtmega seansi võtme lahti • Seejärel saavad A ja B suvalist teavet seansi võtme abil krüpteeritult omavahel turvaliselt vahetada
SSL: turvalisus ja probleemid • Kui A on B-le oma avaliku võtme ja sellele vastava privaatvõtmega signeeritud teabe saatnud, võib olla sellest hetkest kindel, et keegi ei suuda B-le enam hiljem A-d teeselda (tal ei ole A privaatvõtit) • Keegi ei saa hiljem liine pealt kuulates ega sinna sekkudes A ja B vahelist teavet ka pealt kuulata (ta ei tea primaarvõtit) • Jääb aga probleem: kui B-ga hakkas algusest peale suhtlema A nime all keegi teine, siis ei suuda B seda avastada Seda probleemi ei ole võimalik lahendada ära ainuüksi SSL protokolli sees
SSLi võimalused ja rakendatavus SSL suudab ilma sertifikaatide ja seda toetava infrastruktuurita vaid tõestada, et järgmise ühenduse tegija oli sama, kes tegi eelmise ühenduse Et midagi lisaks nõuda, peab olema lisateavet (nt sertifikaate, paroole jm) Hetkel on suurimad ja kasutatavaimad SSL-rakendused Eestis on telepanganduseteenused (https protokoll)