Andmeturve ja krüptoloogia, I Sissejuhatus , info turbe olemus
Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS
description
Transcript of Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS
Andmeturve ja krüptoloogia, VIIAndmeturve ja krüptoloogia, VII
Krüptoprotokollid, TLSKrüptoprotokollid, TLS
Andmeturve ja krüptoloogia, VIIAndmeturve ja krüptoloogia, VII
Krüptoprotokollid, TLSKrüptoprotokollid, TLS
26. veebruar 2013
Valdo Praust
Loengukursus IT Kolledžis2014. aasta kevadsemestril õhtustele tudengitele
26. veebruar 2013
Valdo Praust
Loengukursus IT Kolledžis2014. aasta kevadsemestril õhtustele tudengitele
Krüptograafia olemus Krüptograafia olemus ja roll ja roll kaasajalkaasajal
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
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 Kaasaja krüptograafia teabe teisenduse tüüpvõttena 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
Selle vaatlemine erivahendina on lõplikult ja jäädavalt ajalugu
Krüptoalgoritmide peamised Krüptoalgoritmide peamised liigidliigid
Krüptoalgoritmide peamised Krüptoalgoritmide peamised liigidliigid
1. Sümmeetrilised ehk salajase võtmega krüptoalgoritmid (on traditsioonilised e ajaloolised)
2. Asümmeetrilised ehk avaliku võtmega krüptoalgoritmid (levinud viimase 20 aasta jooksul)
3. Krüptograafilised sõnumilühendid jms sellesarnased funktsioonid
4. Eriotstarbega algoritmid tõestusteks, autentimisteks, ajatempli jaoks jm
Salajase võtmega krüptoSalajase võtmega krüptoalgoritmalgoritm
Tuntuimad esindajad: • AES ehk Rjindael (128, 192 või 256
bitine võti)• IDEA (128 bitine võti) • Skipjack (80 bitine võti) • DES (56 bitine võti)
Salajase võtmega krüptoalgoritm (secret key cryptoalgorithm) ehk sümmeetriline krüptoalgoritm (symmetric cryptoalgorithm), on selline, kus nii šifreerimisel kui ka dešifreerimisel kasutatakse sama (salajast) võtit
Salajase võtmega krüptoalgoritm (secret key cryptoalgorithm) ehk sümmeetriline krüptoalgoritm (symmetric cryptoalgorithm), on selline, kus nii šifreerimisel kui ka dešifreerimisel kasutatakse sama (salajast) võtit
Krüpteerimine ehk šifreerimine (encryption, encipherment) nõuab teatud salajase võtme (key) kasutamist.
Vastupidine tegevus on dešifreerimine (decryption, decipherment), mille käigus taastatakse sama salajase võtme kaasabil algsed andmed
Ilma ühte sama võtit teadmata on mõlemad tegevused võimatud
Ilma ühte sama võtit teadmata on mõlemad tegevused võimatud
Võtme osa Võtme osa ššifreerimises ja ifreerimises ja dedeššifreerimisesifreerimises
Võtme osa Võtme osa ššifreerimises ja ifreerimises ja dedeššifreerimisesifreerimises
Salajase võtmega kSalajase võtmega krüptorüptoalgoritmalgoritm
Salajase võtmega Salajase võtmega krüptokrüptoalgoritm: turvalisusalgoritm: turvalisus
Kaasajal loetakse piisavalt tugevaks vähemalt 80 biti pikkuse salajase võtmega algoritme
Kaasajal loetakse piisavalt tugevaks vähemalt 80 biti pikkuse salajase võtmega algoritme
DES on seega kaasajal nõrguke, kuna ei vasta sellele tingimusele. Lahendus on 3kordse DESi kasutamine
Lisaks võtmepikkusele ei tohi algoritmil olla tuntavaid efekte andvaid krüptoanalüütilisi ehk murdmisvõtteid
Salajase võtmega Salajase võtmega krüptokrüptoalgoritm: kasutusaladalgoritm: kasutusalad
Neid on kaks:
• konfidentsiaalse teabe edastamiseks üle (mitte pealtkuulamiskindlate) võrkude
• konfidentsiaalsete teabekogumite salvestamine avalikus keskkonnas sooviga teabe saajate hulka piirata
Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmalgoritmAvaliku võtmega krüptoAvaliku võtmega krüptoalgoritmalgoritm
Üldreegel: ühest võtmest teist ei ole võimalik praktikas leida
Teoreetiliselt on see võimalik (üksühene seos), aga see võtab aega miljoneid ja enam aastaid
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
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
Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritm: algoritm: võtmedvõtmed
Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritm: algoritm: võtmedvõtmed
Avaliku võtmega krüptoalgoritmi võtmeid nimetatakse reeglina avalikuks võtmeks ja privaatvõtmeks (public and private key)
Avaliku võtmega krüptoalgoritmi võtmeid nimetatakse reeglina avalikuks võtmeks ja privaatvõtmeks (public and private key)
• Avalik võti on tavaliselt piiranguteta kõigile soovijaile teada
• Privaatvõti on reeglina aga subjekti (inimese, tehnilise seadme, programmi vms) ainuvalduses
Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmialgoritmikasutamine kasutamine turvalisel võtmevahetuselturvalisel võtmevahetusel
Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmialgoritmikasutamine signeerimisel (digitaalallkirja kasutamine signeerimisel (digitaalallkirja
andmisel)andmisel)
KrüptoKrüptoräsi ehk krüptoräsi ehk krüptograafiline graafiline sõnumilühendsõnumilühend
KrüptoKrüptoräsi ehk krüptoräsi ehk krüptograafiline graafiline sõnumilühendsõ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
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üptoKrüptoräsiräsi: kasutusala: kasutusalaKrüptoKrüptoräsiräsi: kasutusala: 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
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üptoKrüptoräsi ehk krüptoräsi ehk krüptograafiline graafiline sõnumilühend: toimimisskeemsõnumilühend: toimimisskeemKrüptoKrüptoräsi ehk krüptoräsi ehk krüptograafiline graafiline sõnumilühend: toimimisskeemsõnumilühend: toimimisskeem
Räsifunktsioon ja sRäsifunktsioon ja selle tulemelle tulemRäsifunktsioon ja sRäsifunktsioon ja selle tulemelle tulemKrüptoräsi ehk krüptograafiline sõnumilühend on mõeldud pikast sõnumist püsipikkusega lühikese bitijada, nn sõnumilühendi ehk räsi (message digest) tekitamiseks, millel oleksid teatud eriomadused
Räsi ehk 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 lühendis (räsis)
• ka pika sõnumi räsi peab olema lihtsate protseduuridega leitav
• räsi leidmise algoritm ei tohi olla pööratav: etteantud räsi korral ei tohi praktikas olla võimalik leida sellega sobivat sõnumit
• etteantud räsi korral ei tohi olla leitav teist sõnumit, mis annaks sama räsi – nõrk kollisioonivabadus
• ei tohi olla leitav sellist sõnumitepaari, mis annaks sama räsi – kollisioonivabadus
• tihendusfunktsioon F peab olema kollisioonivaba – pseudo-kollisioonivabadus
Nõuded turvalisele Nõuded turvalisele krüptoräsifunktsioonilekrüptoräsifunktsioonile
Nõuded turvalisele Nõuded turvalisele krüptoräsifunktsioonilekrüptoräsifunktsioonile
• Räsi peab olema vähemalt 160 bitti (20 baiti) pikk, pikaajalise turvavajaduse korral või kõrgendatud turbe korral aga 256 bitti (32 baiti) pikk
• Ei räsifunktsioonil ega ka selle tihendusfunktsioonil ei tohi olla teada kollisioone
Praktikas kasutatavaid häid Praktikas kasutatavaid häid räsifunktsiooneräsifunktsioone
Praktikas kasutatavaid häid Praktikas kasutatavaid häid räsifunktsioonerä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
Praktikas keelatud (või äärmiselt Praktikas keelatud (või äärmiselt ebasoovitavaid) räsifunktsioone ebasoovitavaid) räsifunktsioone Praktikas keelatud (või äärmiselt Praktikas keelatud (või äärmiselt ebasoovitavaid) räsifunktsioone ebasoovitavaid) räsifunktsioone
• MD5 – välja töötatud Ron Rivesti poolt. Leiab 128-bitise räsi ehk sõnumilühendi
• MD2, MD4 – MD5 eellased, välja töötatud samuti Ron Rivesti poolt, leiab 128-bitise räsi
Räsi on lühike. On leitud kollisioone ja praktilisi murdmsvõtteid. Sellest hoolimata on eriti just MD5 siiski kahjuks senini masskasutuses praktikas
Räsi on lühike. On leitud kollisioone ja praktilisi murdmsvõtteid. Sellest hoolimata on eriti just MD5 siiski kahjuks senini masskasutuses praktikas
• 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üptoprotokolli olemusKrüptoprotokolli olemusKrüptoprotokolli olemusKrüptoprotokolli olemus
Krüptograafilisi protokolle on väga palju, üks kasutatavaim praktikas (Internetis) on TLS (Transport Layer Security)
Krüptograafilisi protokolle on väga palju, üks kasutatavaim praktikas (Internetis) on TLS (Transport Layer Security)
• 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
TLS: põhiomadused ja faktidTLS: põhiomadused ja faktidTLS: põhiomadused ja faktidTLS: põhiomadused ja faktid
TLSi kanalTLSi kanalTLSi kanalTLSi 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
• TLS suudab kontrollida andmete puutumatuna päralejõudmist (hädavajalik võrgu pakettresiimi – nt TCP/IP protokolli – korral)
TLS tekitab üle võrgu turvalise sidekanali (secure channel), millel on kolm omadust:
TLSi toimimispõhimõttedTLSi toimimispõhimõttedTLSi toimimispõhimõttedTLSi 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
TLSi ühenduses võib eristada kahte faasi:
• autentimisfaas (handshaking)• teabe vahetamisfaas
Tavaliselt toimub ühendus kahe ebavõrdse poole vahel (klient ja server), mida TLS veidi eristab (kuigi on võimalik ka võrdse poole teabevahetus)
TLSi autentimisfaasTLSi autentimisfaas, I, ITLSi autentimisfaasTLSi autentimisfaas, I, I Lihtsustatult sisaldab see järgmisi tegevusi
(klient A hakkab suhtlema serveriga B):
• A ütleb B-le tere ja mainib, milliseid krüptoalgoritme ta kasutab
• A ütleb B-le, et B tõestaks et ta on B
• B tekitab teksti “mina olen B”, teeb sellest räsi ehk sõnumilühendi
lüh(“mina olen B”)
• B signeerib räsi oma privaatvõtmega, saades
sigb (lüh(“mina olen B”))
TLSi autentimisfaasTLSi autentimisfaas, II, IITLSi autentimisfaasTLSi autentimisfaas, II, II
• B saadab A-le oma avaliku võtme, teksti
“mina olen B” ning signatuuri
sigb (lüh(“mina olen B”))
• A, saades need need kätte verifitseerib signatuuri, veendudes et ta vestluspartner on ikka B. Samas paneb A B avaliku võtme oma kataloogi
• Sellega on klient A serveri B autentinud.
• Kui vaja, võib B ka A-d samamoodi autentida (vahel seda tehakse, kui server peab ka klienti autentima, alati pole seda vaja)
• A genereerib sümmeetrilise krüptoalgoritmi võtme (primaarvõtme), paneb selle oma andmebaasi ja saadab selle B avaliku võtmega krüpteeritult B-le
• B dešifreerib saadud salajase primaarvõtme oma privaatvõtmega ja paneb ka oma baasi
• Sellega on autentimisfaas lõppenud: mõlemad osapooled on üksteist “tundma õppinud” ja vastava teabe endale talletanud
TLSi autentimisfaasTLSi autentimisfaas, III, IIITLSi autentimisfaasTLSi autentimisfaas, III, III
TLSi sidefaasTLSi sidefaasTLSi sidefaasTLSi 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
• TLS 1.1 on detailselt kirjeldatud RFC 4346-s (aprill 2006)
• võrreldes SSL3ga on TLSis mitmed puudused ja turvanõrkused kõrvaldatud
• SSL1 ja SSL2 juures on leitud turvaauke ja nende kasutamine on praktikas keelatud
SSL SSL versusversus TLS TLSSSL SSL versusversus TLS TLS
TLS (Transport Layer Security) on SSLi edasiarendus, kus on mitmed puudused ja ebakõlad kõrvaldatud
TLS (Transport Layer Security) on SSLi edasiarendus, kus on mitmed puudused ja ebakõlad kõrvaldatud
TLS: turvalisus ja probleemidTLS: turvalisus ja probleemidTLS: turvalisus ja probleemidTLS: turvalisus ja probleemid• Kui B on A-le oma avaliku võtme ja sellele vastava
privaatvõtmega signeeritud teabe saatnud, võib olla sellest hetkest kindel, et keegi ei suuda A-le enam hiljem B-d teeselda (tal ei ole B 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 A-ga hakkas algusest peale suhtlema B nime all keegi teine, siis ei suuda A seda avastada
Seda probleemi ei ole võimalik lahendada ära ainuüksi TLS protokolli sees
Seda probleemi ei ole võimalik lahendada ära ainuüksi TLS protokolli sees
SSL/TLS 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, püsiparoole jm) – reeglina on selleks sertifikaat
TLSi võimalused ja rakendatavusTLSi võimalused ja rakendatavusTLSi võimalused ja rakendatavusTLSi võimalused ja rakendatavus
• DNSSEC (Domain Name Sysrem Security Extensions) – asendamaks tavalist ebaturvalist DNSi
• IEEE 802.11 – traadita lokaalvõrgu protokoll
• IPSec (IP Security Protocol)• S/MIME (Secure MIME) – andmete
turvaliseks ja autenditud edastamiseks• SSH (Secure Shell) – turvaline
kaugpöördus• ... (ja palju-palju muid)
Teisi krüptoprotokolleTeisi krüptoprotokolleTeisi krüptoprotokolleTeisi krüptoprotokolle