Andmeturve ja krüptoloogia, X Krüptograafilised sõnumilühendid. Krüptoprotokoll SSL
-
Upload
francis-short -
Category
Documents
-
view
78 -
download
0
description
Transcript of Andmeturve ja krüptoloogia, X Krüptograafilised sõnumilühendid. Krüptoprotokoll SSL
Andmeturve ja krüptoloogia, XAndmeturve ja krüptoloogia, X
Krüptograafilised sõnumilühendid. Krüptograafilised sõnumilühendid. Krüptoprotokoll SSL Krüptoprotokoll SSL
Andmeturve ja krüptoloogia, XAndmeturve ja krüptoloogia, X
Krüptograafilised sõnumilühendid. Krüptograafilised sõnumilühendid. Krüptoprotokoll SSL Krüptoprotokoll SSL
5. november 2001
Valdo Praust
Loengukursus IT Kolledžis2002. aasta sügissemestril
Krüptograafiline sõnumilühendKrüptograafiline sõnumilühendKrüptograafiline sõnumilühendKrü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
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: Krüptograafiline sõnumilühend: kasutusalakasutusala
Krüptograafiline sõnumilühend: Krüptograafiline sõnumilühend: kasutusalakasutusala
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
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
Krüptograafiline sõnumilühend: Krüptograafiline sõnumilühend: toimimisskeemtoimimisskeem
Krüptograafiline sõnumilühend: Krüptograafiline sõnumilühend: toimimisskeemtoimimisskeem
Räsifunktsioon ja sõnumilühendRäsifunktsioon ja sõnumilühendRäsifunktsioon ja sõnumilühendRä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
Sõnumilühend on täpsemini võtmeta räsifunktsiooni väljund, sõltudes vaid sõnumist
Algoritmi, mis sõnumilühendi tekitab, nimetatakse krüptograafilisteks räsifunktsiooniks (hash function)
Algoritmi, mis sõnumilühendi tekitab, nimetatakse krüptograafilisteks räsifunktsiooniks (hash function)
Räsifunktsioonilt nõutavad Räsifunktsioonilt nõutavad omadusedomadused
Räsifunktsioonilt nõutavad Räsifunktsioonilt nõutavad omadusedomadused
• 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 liigitusRäsifunktsioonide liigitusRäsifunktsioonide liigitusRäsifunktsioonide liigitus
Kaasajal nõutakse räsifunktsioonidelt reeglina kollisioonivabadust (tugevamaid omadusi)
Kaasajal nõutakse räsifunktsioonidelt reeglina kollisioonivabadust (tugevamaid omadusi)
• Ü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
SünnipäevaparadoksSünnipäevaparadoksSünnipäevaparadoksSü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
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 Sünnipäevaparadoksi mõju räsifunktsioonideleräsifunktsioonidele
Sünnipäevaparadoksi mõju Sünnipäevaparadoksi mõju räsifunktsioonidelerä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
Lihtsaimaks krüptoanalüütiliseks ründeks (ammendavaks otsinguks) on N-bitilise väljundiga räsifunktsiooni korral vaja 2N/2 variandi läbivaatamist
Praktikas kasutatavaid Praktikas kasutatavaid räsifunktsiooneräsifunktsioone
Praktikas kasutatavaid Praktikas kasutatavaid räsifunktsioonerä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 kirjeldusMD5: üldfakte ja kirjeldusMD5: üldfakte ja kirjeldusMD5: ü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 konstandid ja funktsioonidMD5 konstandid ja funktsioonidMD5 konstandid ja funktsioonidMD5 konstandid ja funktsioonid
MD5 esimesed 2 raundiMD5 esimesed 2 raundiMD5 esimesed 2 raundiMD5 esimesed 2 raundi
MD5: 3. ja 4. raundMD5: 3. ja 4. raundMD5: 3. ja 4. raundMD5: 3. ja 4. raund
MD5 turvalisusMD5 turvalisusMD5 turvalisusMD5 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
20 miljonit krooni maksev spetsiaalne riistvaraseade (arvuti) suudab MD5-l leida kollisiooni keskmiselt 24 päeva jooksul
• 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: üldfakte ja kirjeldusSHA-1: üldfakte ja kirjeldusSHA-1: üldfakte ja kirjeldusSHA-1: üldfakte ja kirjeldus
• 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
SHA-1: turvalisus ja kasutatavusSHA-1: turvalisus ja kasutatavusSHA-1: turvalisus ja kasutatavusSHA-1: turvalisus ja kasutatavus
• 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-160: üldfakteRIPEMD-160: üldfakteRIPEMD-160: üldfakteRIPEMD-160: üldfakte
• 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
RIPEMD turvalisusRIPEMD turvalisusRIPEMD turvalisusRIPEMD turvalisus
Pilk ajalukku: MD2 ja MD4Pilk ajalukku: MD2 ja MD4Pilk ajalukku: MD2 ja MD4Pilk 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
Järeldus: MD2 ja MD4 on lahti murtud – nad ei ole enam turvalised ega sobivad kasutada
Krüptograafiliste sõnumilühendite Krüptograafiliste sõnumilühendite kasutaminekasutamine
Krüptograafiliste sõnumilühendite Krüptograafiliste sõnumilühendite kasutaminekasutamine
• 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)
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 Krüptograafiliste protokollide vajadusvajadus
Krüptograafiliste protokollide Krüptograafiliste protokollide vajadusvajadus
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)
• 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üptograafilise protokolli olemusKrüptograafilise protokolli olemusKrüptograafilise protokolli olemusKrüptograafilise protokolli olemus
Krüptograafilisi protokolle on väga palju, üks kasutatavaim praktikas (Internetis) on SSL (Secure Socket Layer)
Krüptograafilisi protokolle on väga palju, üks kasutatavaim praktikas (Internetis) on SSL (Secure Socket Layer)
• 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
SSL: põhiomadused ja faktidSSL: põhiomadused ja faktidSSL: põhiomadused ja faktidSSL: põhiomadused ja faktid
SSLi kanalSSLi kanalSSLi kanalSSLi kanal
• 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)
SSL tekitab üle võrgu turvalise sidekanali (secure channel), millel on kolm omadust:
SSLi toimimispõhimõttedSSLi toimimispõhimõttedSSLi toimimispõhimõttedSSLi toimimispõhimõtted
Autentimisfaas sisaldab igal juhul serveri autentimist. Vajadusel järgneb sellele ka kliendi autentimine
Autentimisfaas sisaldab igal juhul serveri autentimist. Vajadusel järgneb sellele ka kliendi autentimine
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)
SSLi autentimisfaasSSLi autentimisfaasSSLi autentimisfaasSSLi 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)SSLi autentimisfaas (järg)SSLi autentimisfaas (järg)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)
• 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 autentimisfaas (järg)SSLi autentimisfaas (järg)SSLi autentimisfaas (järg)SSLi autentimisfaas (järg)
SSLi sidefaasSSLi sidefaasSSLi sidefaasSSLi sidefaas
• 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
Eeldus: A ja B hakkavad suhtlema ja veenduvad, et nad on autentimisfaasi juba läbinud ja vastav teave on neil olemas ja varem talletatud
SSL: turvalisus ja probleemidSSL: turvalisus ja probleemidSSL: turvalisus ja probleemidSSL: 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
Seda probleemi ei ole võimalik lahendada ära ainuüksi SSL protokolli sees
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)
SSLi võimalused ja rakendatavusSSLi võimalused ja rakendatavusSSLi võimalused ja rakendatavusSSLi võimalused ja rakendatavus
Hetkel on suurimad ja kasutatavaimad SSL-rakendused Eestis on telepanganduseteenused (https protokoll)
Hetkel on suurimad ja kasutatavaimad SSL-rakendused Eestis on telepanganduseteenused (https protokoll)