Kriptoprotokollok alapjai Támadások és kivédésük Protokoll Kommunikációs szabály gyjtemény Üzenetek formája Kommunikáló felek viselkedése Leírás üzenet formátumok szekvencia diagramok állapotgépek
Pénz feldobás telefonon... Egymástól távoli felek kommunikációs közeg Fej vagy írás választás Pénz feldobás az egyik félnél Eredmény megosztása és verifikálás csalás megakadályozása... és a protokoll El"készületek f(.) egyirányú függvény x páros->fej, páratlan->írás Protokoll.lice választ egy véletlen egészet x-et, és kiszámítja f(x)-et, közli telefonon Bobbal.Bob közli tippjét, hogy x páros vagy páratlan. lice közli x-et. Bob ellen"rzi f(x) kiszámolásával
Üzenet megbízhatóság utentikált kulcs-csere probléma megoldása protokollok hibái és a lehetséges támadások Felek: lice, Bob Megbízható harmadik fél: Trent Támadó: Malice 5 From lice to Bob protokoll lice: kezdeményez" (initiator) Bob: válaszoló (responder) lice Trent Bob. lice generates K at random, { K} KT, sends to Trent : lice,bob, { K} KT. Trent finds K T, K decrypts { K} KT, creates { K} K, sends to Bob : lice,bob, { K} K. Bob decrypts { K} K, sends to lice { Hello lice, I'm Bob. } K 6
Problémák lice generálja a kulcsot elég er"s-e? Bob nem feltétlenül ismeri lice-t, megbízhatósága kérdéses 7 Kulcs Trenttl protokoll lice Trent Bob. lice sends to Trent : lice,bob. Trent finds K T,K, generates K at random, sends to lice : { K} KT,{ K} K. lice decrypts { K} KT, sends to Bob : Trent, lice, { K} K. Bob decrypts { K} K, sends to lice : { Hello lice, I'm Bob. } K 8
Támadás lice Malice Trent Bob 5. lice sends to Malice(Trent) : lice,bob. Malice(lice) sends to Trent : lice, Malice. Trent finds K T,K MT, generates K at random, sends to lice : {K}K,{K}K T MT. lice decrypts {K}K, sends to Malice(Bob) : Trent, lice,{k}k T MT 5. Malice(Bob) decrypts {K}K, sends to lice : {Hello lice, I'm Bob.}K MT 9 Javítás? Kulcs Trentt"l javítása. lice sends to Trent : lice, {Bob} Továbbra is támadható K T. Malice(lice) sends to Trent : lice, {Malice}K T Másik támadás. Malice(Trent) sends to lice : {K"}K,... T =>Szükséges az üzenetek autentikációja 0
Üzenet autentikáló protokoll lice Trent Bob. lice sends to Trent : lice,bob. Trent finds K T,K, generates K at random, sends to lice : { Bob,K} KT,{ lice,k} K. lice decrypts { Bob,K} KT, checks Bob's identity, sends to Bob : Trent, { lice,k} K. Bob decrypts { lice,k} K, checks lice's identity, sends to lice : { Hello lice, I'm Bob. } K Támadási lehetség Hosszú távon használt autentikációs kulcsok Rövid távú session kulcsok Malice elfogja lice kezdeményez" kérését és visszajátszik egy korábbi protokoll futást lice és Bob között (message replay attack) ezt a session kulcsot Malice visszafejtette
Javítás Kihívás-válasz protokoll (Needham-Schroeder) nonce: number used once lice Trent Bob 5. lice sends to Trent : lice,bob,n { }}. Trent generates K at random, sends to lice : N,,K,Bob, T,K, lice K,Bob,{{K,lice }K }K K T K T. lice decrypts, checks Bob's identity, sends to Bob : Trent,{K, lice}k. Bob decrypts, checks lice's identity, creates random N B, sends to lice : {I'm Bob.,N B}K 5. Malice(lice) sends to Bob : {I'm lice. N B "}K Támadás lice Malice Trent Bob ' 5. lice creates N a random, sends to Trent : lice,bob,n {. Trent generates K at random, sends to lice : N,K,Bob,{K, lice}k } K T. lice decrypts, checks N, checks Bob's identity, sends to Malice(Bob) : Trent,{K, lice}k '. Malice(lice) sends to Bob : Trent,{K ", lice}k. Bob decrypts, checks lice's identity, creates random N B, sends to Malice(lice) : {I'm Bob.,N B}K " 5. Malice(lice) sends to Bob : {I'm lice. N B #}K "
Javítás Bob nem tudja ellen"rizni Trent él"ségét Id"bélyegek alkalmazása. lice sends to Trent : lice,bob {. Trent generates K at random, sends to lice : Bob,K,T,{T,K, lice}k }. lice decrypts, checks Bob's identity, sends to Bob : Trent,{T,K, lice}k K T... 5... Clock " T < #t + #t #t : clock offset #t : network delay 5 Nyílvános kulcsú authentikációs protokoll. lice sends to Trent : lice,bob. Trent sends to lice : {K B,Bob}K " T. lice verifies Trent's signature, creates nonce N at random, sends to Bob : {N,lice}K B. Bob decrypts, checks lice's identity, sends to Trent : Bob, lice 5. Trent sends to Bob : {K,lice}K " T 6. Bob verifies Trent's signature, creates nonce N B at random, sends to lice : {N,N B}K 7. lice decrypts, and sends to Bob : {N B}K B. K nyílvános kulcsával titkosítva. {}. K privát kulcsával titkosítva. {} " 6
Támadás Logikailag két önálló protokoll összefzése:,,,5 nyílvános kulcsok továbbítása,6,7 autentikálás lice Malice Bob - {N,lice}K - M {N,lice}K B -6-6 {N,N B}K {N,N B}K -7 {N B}K M -7 {N B}K B 7 Javítás válaszoló azonosítójának az elhelyezése az üzenetben: -6: Bob sends to lice:{bob,n,n } B K 8