Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

33
Andmeturve ja krüptoloogia, VII Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS Krüptoprotokollid, TLS 26. veebruar 2013 Valdo Praust [email protected] Loengukursus IT Kolledžis 2014. aasta kevadsemestril õhtustele tudengitele

description

Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS. 26. veebruar 2013 Valdo Praust mois @ mois .ee Loengukursus IT Kolled ž is 2014. aasta kevadsemestril õhtustele tudengitele. Krüptograafia olemus ja roll kaasajal. - PowerPoint PPT Presentation

Transcript of Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

Page 1: 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 

[email protected]

Loengukursus IT Kolledžis2014. aasta kevadsemestril õhtustele tudengitele 

  

26. veebruar 2013

Valdo Praust 

[email protected]

Loengukursus IT Kolledžis2014. aasta kevadsemestril õhtustele tudengitele 

  

Page 2: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 3: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 4: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 5: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 6: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 7: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

Salajase võtmega kSalajase võtmega krüptorüptoalgoritmalgoritm

Page 8: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 9: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 10: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 11: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 12: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmialgoritmikasutamine kasutamine turvalisel võtmevahetuselturvalisel võtmevahetusel

Page 13: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmialgoritmikasutamine signeerimisel (digitaalallkirja kasutamine signeerimisel (digitaalallkirja

andmisel)andmisel)

Page 14: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 15: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 16: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 17: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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)

Page 18: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 19: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 20: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 21: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 22: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

• 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)

Page 23: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

• 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

Page 24: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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:

Page 25: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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)

Page 26: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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”))

Page 27: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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)

Page 28: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

• 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

Page 29: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 30: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

• 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

Page 31: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 32: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

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

Page 33: Andmeturve ja krüptoloogia, VII Krüptoprotokollid, TLS

• 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