1 / 43

Krüptoprotokollid

Krüptoprotokollid. Algoritmid ja andmestruktuurid Loeng 7. Raamat. Bruce Schneier. Applied Cryptography. Protokollid, algoritmid ja lähtekoodid C-s Teine väljaanne (1996). Krüptoprotokollid. Kokkuleppelised sõnumivahetusreeglid Kõigi osaliste poolt üheselt mõistetavad

trina
Download Presentation

Krüptoprotokollid

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Krüptoprotokollid Algoritmid ja andmestruktuurid Loeng 7

  2. Raamat Bruce Schneier. Applied Cryptography. Protokollid, algoritmid ja lähtekoodid C-s Teine väljaanne (1996)

  3. Krüptoprotokollid • Kokkuleppelised sõnumivahetusreeglid • Kõigi osaliste poolt üheselt mõistetavad • Rollid: protokollide osaliste tegevused ja nende otstarve

  4. Protokollirollid (kokkulepe) • Alice – esimene osaline • Bob – teine osaline • Carol – 3. osaline (keerukamad) • Dave – 4. osaline (keerukamad) • Eve – kurikael, kes püüab pealt lugeda • Mallory – kurikael, kes püüab häkkida (aktiivne) • Trent – usaldusväärne notar • Walter (Warden) – valvab Alice ja Bobi tegevust mõnedes protokollides • Peggy – tõestaja • Victor – kontrollija

  5. Protokolli nõuded • Iga osaline teab ette kõiki protokolli samme ja reegleid • Iga osaline täidab neid reegleid • Protokoll on kõigile üheselt arusaadav • Protokoll on täielik

  6. Protokollide liigid • arbiitriga protokollid • on nn kolmas asjast mittehuvitatud osapool, kelle korrektsuses on teised veendunud (notar) ja kes osaleb kogu sõnumivahetuses • kohtunikuga protokollid • komas osapool osaleb ainult vaidluses (kohtunik) • autonoomsed protokollid • protokoll ise tagab korrektsuse

  7. Protokollirünne • passiivne rünne – protokolli pealkuulaja proovib saadud informatsiooni kasutada • aktiivne rünne – protokolli pealtkuulaja proovib muuta sõnumeid, nende järjekorda või lisada uusi

  8. Protokoll sümmeetrilise võtmega • Alice ja Bob lepivad kokku süsteemi • Alice ja Bob vahetavad võtme • Alice arvutab C = E(k,M) • Alice saadab C Bobile • Bob loeb M = D(k,C) samm 2 peab olema salaja sooritatud!!!

  9. Assümeetriline võti (PKI) • Alice ja Bob lepivad kokku süsteemi • Bob saadab Alice’ile oma ka • Alice arvutab C = E(ka,M) • Alice saadab C Bobile • Bob arvutab M = D(kp, C) assümeetrilised algoritmid on aeglased!!!

  10. Hübriidprotokoll • Bob saadab Alice’ile oma ka • Alice genereerib sessioonivõtme k • Alice saadab Bobile CK = E(ka,k) • Bob arvutab k = D(kp, CK) • Alice arvutab C = E(k,M) • Alice saadab C Bobile • Bob loeb M = D(k,C) • ... jne

  11. Avaliku võtme infrastruktuur • Alice võtab andmebaasist Bobi ka • Alice genereerib sessioonivõtme k • Alice saadab Bobile CK = E(ka,k) • Bob arvutab k = D(kp, CK) • Alice arvutab C = E(k,M) • Alice saadab C Bobile • Bob loeb M = D(k,C) • ... jne

  12. Digiallkiri • Alice koostab sõnumi M • Alice arvutab S = E(kp, M) • Alice saadab Bobile M+S • Bob arvutab M1 = D(ka, S) • Bob võrdleb M == M1 • Bob saadab Carolile M+S • Carol arvutab H = D(ka, S) • Carol võrdleb M == M1

  13. Digiallkiri Hashiga • Alice koostab sõnumi M ja arvutab H(M) • Alice arvutab S = E(kp, H) • Alice saadab Bobile M+S • Bob arvutab H = D(ka, S) ja H(M) • Bob võrdleb H == H(M) • Bob saadab Carolile M+S • Carol arvutab H = D(ka, S) ja H(M) • Carol võrdleb H == H(M)

  14. Allkirjafunktsioonid (tähised) • Signeerimine • S(k,M) või S(kp, M) või Sk(M) • Valideerimine • V(k,S) või V(ka, S) või Vk(S)

  15. Mitu allkirja • Kaks võimalust • M+S1(M)+S2(M)+... • sõnumile lisatakse mitu allkirja, sõltumatu allkirjastamine • (M+S2)+S1(M+S2) • allkirjastatakse allkirjaga sõnum (allkirja kinnitamine)

  16. Signeerimine ja krüpteerimine • S(E(M)) – enne signeerimist sõnum krüpteeritakse. • E(S(M)) – enne krüpteerimist allkirjastatakse. • Sel juhul saab valideerida sõnumi sisu NB! Signeerimiseks ja krüpteerimiseks ei kasutata sama võtmepaari

  17. Sõnumi kinnitus • Alice allkirjastab sõnumi (oma isikliku), šifreerib (bobi avaliku võtmega) ja saadab Bobile EB(SA(M)) • Bob dešifreerib (oma isikliku) ja valideerib (Alice’i avaliku võtmega) VA(DB(EB(SA(M)))) • Bob allkirjastab sõnumi šifreerib ja saadab tagasi Alice’ile • Alice dešifreerib ja valideerib. Alice teab, et Bob on saanud õige sõnumi ja selle läbi lugenud

  18. Sõnumi kinnitus ja rünne • kui allkirjastamiseks ja valideerimiseks kasutada sama võtmepaari, on võimalik algortim murda (sama algoritmi puhul Vx = Ex ja Sx = Dx

  19. Võtmevahetus ja PKI • Alice saadab Bobile oma avaliku võtme • Bob saadab Alice’ile oma avaliku võtme • Alice genereerib sessioonivõtme ja saadab Bobile • Edasine suhtlus sessioonivõtmega

  20. Võtmevahetusrünne • Mees keskel – Mallory • Alice saadab Bobile oma avaliku võtme. Mallory püüab selle kinni ja saadab selle asemele oma avaliku võtme • Bob saadab Alice’ile oma avaliku võtme. Mallory püüab ja vahetab ka selle • Alice saadab sessioonivõtme “Boby” (tegelikult Mallory) avaliku võtmega. Mallory saadab selle Bobile edasi Boby avaliku võtmega. • Malloryl on sessioonivõti. Mõlemad arvavad, et suhtlevad omavahel, tegelikult suhtlevad Malloryga

  21. Katkestusega protokoll • Alice ja Bob vahetavad avalikud võtmed • Alice saadab Bobile pool oma sõnumist • Bob saadab Alice’ile pool oma sõnumist • Alice saadab Bobile teise poole oma sõnumist • Bob dešifreerib selle • Bob saadab Alice’ile teise poole oma sõnumist. Alice dešifreerib selle

  22. Katkestusega protokoll • sõnumi poolitamise võimalused • paaris ja paaritud bitid • IV (initsialiseerimisvektor – hiljem) • sõnumi hash • Mallory raskus?

  23. Allkirjastatud võtmed • Bob, Alice, Carol, Dave ei vaheta avalikke võtmeid vaid säilitavad neid usaldusväärses andmebaasis • Kõigil on andmebaasi avalik võti (juba ammu) • Alice saadab andmebaasi päringu Bobi avalikule võtmele • Andmebaasist tuleb vastuseks Bobi avalik võti signeeritud andmebaasi salajase võtmega • Alice valideerib Bobi võtme andmebaasi avaliku võtmega

  24. Autentimine • Kui Alice suhtleb serveriga H, siis server peab saama veenduda, et Alice on Alice. • Kui Alice suhtleb serveriga H, siis peab ta olema kindel, et server H on server H

  25. Paroolid ja sõnastikrünne • Server hoiab kasutajate nimesid ja paroole. Kui saada kätte see nimestik on käes ka paroolid. • Server hoiab kasutajate nimesid ja hashe. Sõnastikuga saab läbi proovida suhteliselt lihtsalt. • Nimi, Hash ja Sool. Paroolile lisatakse juhuslik string. arvuttaakse hash ja hoitakse andmebaasis koos selle stringiga. Sõnastikrünne on palju raskem (aga mitte võimatu)

  26. SKEY • Alice sisestab juhuarvu R • Server arvutab 101 korda • P1=f(R) P2=f(f(R)) p3=f(f(f(R))) jne • f on ühesuunaline funktsioon • server prindib P1-P100 ja salvestab P101 • Alice sisestab parooli (P100) • server kontrollib f(Px) == P • server salvestab P = Px • Alice tõmbab P100 loetelust maha • Järgmine kord kasutab Alice parooli P99 jne

  27. Autentimine ja PKI • H saadab Alice’ile juhusliku stringi S • Alice saadab vastu EA(S)+A (A on Alice’i nimi) • H leiab baasis Alice’i avaliku võtme, dešifreerib ja võrdleb • Protokoll on nõrk! • Protokolli tugevdamiseks saadab Alice alguses serverile juhusliku stringi

  28. SKID symmetric cryptography identification protocol eeldab, et on varem jagatud võtit K • Alice leiab juhuarvu Ra ja saadab Bobile • Bob leiab juhuarvu Rb ja saadab Alice’ile Rb, Hk(Ra, Rb, B) • Alice Arvutab H ja võrdleb ja teab, et suhtleb Bobiga • Alice saadab Bobile Hk(Rb, A) • Bob arvutab H ja võrdleb ja teab, et suhtleb Alice’iga

  29. Autentimine ja võtmevahetus • protokollipere turvaliseks suhtluseks • kasutavad usaldusväärset kolmandat (Trent) • eesmärk vahetada sessioonivõti • osalistel on (varem jagatud) ühisvõti Trendiga (igal oma)

  30. Autentimine ja võtmevahetus Sümbolid A – Alice’i nimi B – Bobi nimi EA – krüpteerimine Trenti ja Alice’i ühisvõtmega EB – krüpteerimine Trenti ja Bobi ühisvõtmega I – indeks K – sessioonivõti TA, TB – ajatempel RA, RB – juhuarvud (Alice’i ja Bobi valitud)

  31. Wide-Mouth Frog • Lihtsaim sümmeetriline notariga protokoll. Alice’il ja Bobil on mõlemal Trendiga varem vahetatud sümmeetriline võti • Alice Trentile A, EA(TA, B, K) • Trent Bobile EB(TB, A, K) • Kõige nõrgem koht on sessioonivõti K. Me peame lootma, et Alice’il on väga hea juhuarvude generaator

  32. Yaholom • Tingimused samad • Alice Bobile oma nime ja juhuarvu A, RA • Bob Trentile B, EB(A, RA, RB) • Trent Alice’ile EA(B, K, RA, RB), EB(A,K) • Alice loeb ja kontrollib kas RA on õige • Alice Bobile EB(A,K), EK(RB) • Bob loeb ja veendub, et RB on õige

  33. Needham-Shroder • Alice Trentile • A, B, RA • Trent Alice’ile • EA(RA, B, K, EB(K, A)) • Alice loeb ja kontrollib RA • Alice Bobile • EB(K, A) • Bob Alice’ile uue juhunumbri • EK(RB) • Alice Bobile • EK(RB-1) // RB-1 on RB-st genereeritud uus arv • Bob kontrollib RB-1

  34. Needham-Shroder • Peamine nõrkus on vana sessioonivõtme K kehtivus. Kui Malloryl on õnnestunud vana sessioonivõti K kätte saada, siis • Mallory Bobile EB(K, A) • Bob Alice’ile // Mallory püüab kinni EK(RB) • Mallory Bobile EK(RB-1) • Bob on veendunud, et räägib Alice’iga

  35. Otway-Rees • Alice Bobile I, A, B, EA(RA, I, A, B) • Bob Trentile I, A, B, EA(RA, I, A, B), EB(RB, I, A, B) • Trent Bobile I, EA(RA, K), EB( RB, K) • Bob Alice’ile I, EA(RA, K) Kui indeks ja juhunumbrid klapivad, siis OK

  36. Kerberos variant Needham-Shroederist • Alice Trentile A, B • Trent Alice’ile EA(T, L, K, B), EB(T, L, K, A) • Alice Bobile EK(A, T), EB(T, L, K, A) • Bob Alice’ile EK(T+1) Kellad peavad olema sünkroonis!!!

  37. Neumann-Stubblebine Yahalomi täiendus Alice Bobile A, RA Bob Trentile B, RB, EB(A, RA, TB) Trent Alice’ile EA(B, RA, K, TB), EA(A, K, TB), RB Alice Bobile EB(A, K, TB), EK(RB) Kellade sünkroonsus ei ole oluline Jätkuvõimalus!!!

  38. Neumann-Stubblebine jätkamine • Alice Bobile EB(A, K, TB), R’A • Bob Alice’ile R’B, EK(R’A) • Alice Bobile EK(R’B) mingi aja jooksul saavad Alice ja Bob ilma Trenti kasutamata taasautentida

  39. DASS distributed authentication security service Alice’il ja Bobil on oma isiklik võti Trentil on signeeritud koopia avalike võtmetega DEC-i välja töötatud kasutab sümmeetrilist ja assümmeetrilist

  40. DESS • Alice Trentile B • Trent Alice’ile ST(B, KB) //signeeritud avalik võti • Alice Bobile // võtmepaar, timestamp ja lifetime EK(TA), SKA(L, A, KP), SKP(EKB(K)) • Bob Trentile (või Trenti vennale) A • Trent Bobile ST(A, KA) • Bob Alice’ile EK(TB)

  41. Denning-Sacco • Alice Trentile A, B • Trent Alice’ile ST(B, KB), ST(A, KA) • Alice Bobile EB(SA(K, TA)), ST(B, KB), ST(A, KA) • Bob loeb, kontrollib ja mõlemad saavad suhelda, aga... Bob võib hakata Caroli ees Alice’it mängima

  42. Denning-Sacco (järg) • Bob Trentile B, C • Trent Bobile ST(B, KB), ST,(C, KC) • Bob Carolile // eelmiselt lehelt EC(SA(K, TA)), ST(A, KA), ST(C, KC) Carol on veendunud, et räägib Aliceiga Lobiseb välja, mis ta sellest Bobist arvab

  43. Järgmine nädal uurime neid algoritme endid proovime C-s või C#-s neid kasutada

More Related