190 likes | 361 Views
Modelovanie a anal ýza kryptografických protokolov. Marián Novotný. Kryptografické protokoly. pozostávajú z výmeny niekoľkých správ zabezpečujú autentifikáciu účastníkov zriadenie kľúčov utajenie, integritu dát nepopierateľnosť správy, anonymitu účastníkov...
E N D
Modelovanie a analýza kryptografických protokolov Marián Novotný
Kryptografické protokoly • pozostávajú z výmeny niekoľkých správ • zabezpečujú • autentifikáciu účastníkov • zriadenie kľúčov • utajenie, integritu dát • nepopierateľnosť správy, anonymitu účastníkov... • využívajú kryptografické mechanizmy • symetrické, asymetrické šifrovanie • digitálne podpisy, hašovacie funkcie • príležitostné slová (nonce), časové pečiatky...
Protokoly pre autentifikáciu a zriadenie kľúčov • nutná existencia už zriadeného „zabezpečeného kanálu“ • prostredníctvom dôveryhodného servera • on-line server • účastníci zdieľajú kľuč s DS • symetrická kryptografia • certifikované verejné kľúče • off-line server • asymetrická kryptografia • účastníci zdieľajú tajný kľúč
Yahalom protokol • Dôveryhodný server J zdieľa symetrické kľúče s jednotlivými účastníkmi (funkcia ServerKey) • A má rolu „Iniciátor“, generuje Na • B má rolu „Responder“ , generuje Nb • J vygenerujekľúčKab
Modelovanie protokolu • nutná abstrakcia • Ako budeme reprezentovať správy? • postupnosti bitov alebo symbolické dáta • reprezentácia funkcií ... • Budeme reprezentovať určité algebraické vlastnosti (ktoré a ako) ? • Diffie-Hellman (g^a)^b=(g^b)^a • RSA encr(x)=x^k mod N • encr(x*y)=encr(x)*encr(y) • Ako namodelujemekomunikáciučestných účastníkov? • definícia komunikačnej siete • Model útočníka • predpoklad dokonalej kryptografie?
Dolev-Yao model • útočník predstavuje komunikačnú sieť • cez neho smerujú všetky správy • môže • zachytiť, • zmeniť, • zablokovať, • zopakovať správu, • vytvoriť novú správu, • inicializovať spojenie... • limitovaný dokonalou kryptografiou • útočník nemôže používať kryptoanalýzu na zašifrované správy • zašifrovanú správu môže dešifrovať len ak vlastní vhodný kľúč
Úvod do jazyka CSP • Communicating Sequential Processes (Hoare 1978) • jednoduchý jazyk pre popisovanie systémov na abstraktnej úrovni • procesy • vykonávajú rôzne akcie, udalosti • viditeľné • neviditeľné • komunikujú s prostredím, s inými procesmi • Základné princípy • deklaratívne programovanie • komunikácia prostredníctvom synchronizácie procesov • udalosti sa vykonajú • okamžite – časový interval je reprezentovaný čas.“momentom” • len keď to procesy a prostredie umožnia • nerozlišuje medzi “paralelným” a “sekvenčným” procesom • každý “paralelný” proces ( taký, čo vznikol paralelným operátorom ) je ekvivalentný určitému “sekvenčnému” • nástroje • FDR • ProBe • PVS
CSP operátory • STOP najjednoduchší proces, ktorý nerobí nič • prefixing • rekurzia • choice • external • internal –nedeterministický výber • Paralelné operátory • úplná synchronizácia • cez rozhranie • interleaving –žiadna synchronizácia • Premenovanie • Schovanie
Trace model • zaznamenáme sekvencie viditeľných udalostí, ktoré proces môže vykonať v konečnom čase • špecifikácia • refinement(Q vylepšuje P)
Modelovanie protokolu Yahalom pomocou CSP • abstraktné dátové typy • rozlišujeme typy dát- agenti, nonce, kľúče, šifrovanie, sekvencie,... • Fact=Encrypt.Key.Fact | Sq.Fact* | Key.k | Nonce.n | Agent.a • čestní účastníci komunikujú prostredníctvom kanálov send , receive • (send.Agent.Agent.Fact) • kanál Signal bude slúžiť na špecifikáciu bezpečnostných vlastností
Útočník • X reprezentuje množinu faktov, ktoré môže útočník vygenerovať • messages – množina správ ktoré môžu byť generované alebo akceptované čestnými účastníkmi pri komunikácii • close – funkcia, ktorá odvádza nové fakty pomocou odvodzovacích pravidiel napr.
Tajnosť • kľúč Kab by mal byť tajný • do definície procesov Iniciator, Responder pridáme signal.Claim_Secret.a.b.Kab • do kanála leak pôjdu fakty, ktoré vlastní útočník
Autentifikácia účastníkov • pridáme signály commit, running • každý výskyt signálu commit, musí predchádzať výskyt signálu running
Verifikácia protokolu – hľadanie útoku • máme všeobecne definovaný protokol a bezpečnostné špecifikácie • zredukujeme počet účastníkov, kľúčov, príležitostných slov na zopár konštánt • konštanty Anne, Bob, Jeeves, Yves, Na , Nb, Serverkey, Kab ... • definujeme množinu počiatočných faktov útočníka Yvesa • určíme roly účastíkov • iniciátor Anne, responder Bob • iniciátor Anne, responder Anne • iniciátor Anne, responder Anne, iniciátor Bob • iniciátor Anne, responder Anne, responder Bob • iniciátor Anne, responder Bob, responder Bob • iniciátor Anne, iniciátor Anne, responder Bob • pomocou model checkingu(FDR) overíme či platí bezpečnostná špecifikácia, ak nie tak FDR nám ukáže stopy (traces),kedy to neplatí – našli sme útok na protokol • automatizácia pomocou CASPER/FDR(Gavin Lowe) • nie je nutná znalosť CSP • špecifikácia protokolu • popis (jednotlivé správy), definícia procesov (napr. Initiator(a,na) knows serverKey(a) ) • bezpečnostné špecifikácie (napr. Secret(a, Kab, [b,s])) • Definícia funkcií, algebraických ekvivalencií • Definícia konkrétneho modelu analýzy
Porovnanie s analýzou pomocou logík vier • predpoklad perfektnej kryptografie • v BAN logike sú všetci účastníci čestní • skúma sa idealizovaný protokol t.j. prepísaný do formalizmu logiky • útočník nie je explicitne formulovaný • z predpokladov a správ sa pomocou odvodzovacích pravidiel odvádzajú viery účastníkov • Sú naplnené ciele protokolu? Aké predpoklady sú potrebné?