Kriptográfia Kilencedik előadás A hitelesítésről általában Dr. NémethN L. Zoltán SZTE, Számítástudom studomány Alapjai Tanszék 2008 ősz
Üzenet hitelesítés (Message Authentication) az üzenet hitesítésének összetevői: az üzenet sértetlenss rtetlenségének nek biztosítása sa az üzenet eredetének = feladójának ellenőrz rzése letagadhatatlanság (viták k eldönt ntése) három alternatív v módszer m használatos: az üzenet titkosítása sa üzenethitelesítő kód d (message( authentication code MAC) hash-függv ggvény (tördel rdelő függvény, lenyomatképz pző függvény, hash h function)
Biztonságot kell nyújtani az alábbiakkal szemben tartalom felfedése (disclosure isclosure) forgalomelemzés s (traffic( analysis) megszemélyes lyesítés s (masquerade( masquerade) tartalom módosm dosítás s (content( modification) sorrend módosm dosítás s (sequence( modification) üzenet idejének módosm dosítása sa (timing( modification) küldés s letagadása (source( repudiation) megkapás s letagadása (destination( repudiation)
A hitelesítés alapszközei zei (primitívei) 1. Hitelesítés titkosítással ssal szimmetrikus kulcsú algoritmussal nyílt kulcsú algoritmussal 2. MAC (üzenethitelesítő kód) algoritmusok 3. Hash (tördel rdelő) ) függvf ggvények
1. Üzenet titkosítása sa I. maga az üzenet titkosítása sa is szolgálhat lhat hitelesítésk sként ha szimmetrikus titkosítást st használunk lunk: mivel a kulcsot csak a feladó és s a címzett c ismeri a címzett c biztos lehet a feladó személy lyében és s az üzenet sértetlenss rtetlenségében is (nem változtathatta v senki se meg) feltéve, hogy az üzenet elégs gséges ges struktúrával, vagy redundanciával rendelkezik, ahhoz hogy felismerjük ha megváltoztatt ltoztatták, pl. nem egyetlen véletlen v kulcs önmagában
1. Üzenet titkosítása sa II. ha azonban nyilvános nos kulcsú titkosítás történt: maga a titkosítás, s, nem igazolja a feladó személy lyét hiszen a nyilvános nos kulcshoz bárki b hozzáférhet ha a azonban a feladó aláí áírja az üzenetet a magánkulcs nkulcsával majd a címzett c nyilvános nos kulcsával titkosítja tja azt, akkor mind a bizalmasság, mind a hitelesség g fennáll szintén n meg kell tudni különbk nböztetni az értelmes üzenetet a véletlen v jelsorozattól a költsk ltsége a teljes üzenet kétszeri aszimmetrikus titkosítása sa a feleknek persze biztosnak kell lenni, hogy valóban egymás s nyilvános nos kódjk dját t birtokolják (kulcselosztás s! )
2. Üzenethitelesítő kód Message Authentication Code (MAC) egy MAC algoritmussal (C)( ) egy rövid, r rögzített hosszú blokkot generálunk, mely függ f az üzenettől: M és egy közös k s titkos kulcstól: K hasonló a titkosításhoz, shoz, de nem kell visszaáll llíthatónak lennie egyfajta kriptográfiai ellenőrz rző összeg az üzenet végére v illesztjük és MAC kódnakk (aláí áírásnak) hívjuk: h MAC = C(K,M) a címzett c a titkos kulcs és s az üzenet birtokában ban újra kiszámítva a MAC kód k értékét ellenőrizheti a feladó hitelességet és s az üzenet sértetlenségét, t, beleértve az üzenet sorszámát (sequence number), stb.
2. MAC alkalmazása titkosítás nélkül Itt II az egymás után illesztés jele.
A MAC tulajdonságai a MAC kriptográfiai ellenőrz rző összeg (cryptographic checksum) MAC = C K (M) összesűríti a tetszőleges hosszú M üzenetet egy K titkos kulcs használat latával egy rögzített hosszú hitelesítő pecsétre nem lehet egyértelm rtelmű függvény potenciálisan végtelen v sok üzenet fog tartozni ugyanahhoz a MAC értékhez de azt szeretnénk, nk, hogy két t ilyet nagyon nehéz z legyen találni lni
Követelmények figyelembe véve v ve a támadt madási típusokatt a MAC-nek telejítenie tenie kell: 1. az az üzenet és s a MAC ismeretében keresztülvihetetlen egy másik m azonos MAC-kel rendelkező üzenetet találni lni 2. a MAC-ek egyenletes eloszlásúak 3. a MAC egyenlő mértékben függf az üzenet minden bitjétől
A MAC alkalmazása mint láttuk l a MAC-kód csak hitelesítést st biztosít de titkosítás s mellett is használhatjuk általában külön n kulcsokat használva a MAC kód d a titkosítás előtt és s után n is számíthat tható de jobb a titkosítás s előtt alkalmazni A MAC nem digitális aláí áírás (nem letagadhatatlan, mindkét t fél f l elkész szítheti) Mikor érdemes használni? (a titkosítással ssal törtt rténő hitelesítéssel ssel szemben) érdemes szétv tválasztani a bizalmasságot és s a hitelesítést st néha csak hitelesítés s szüks kséges,, titkosítás s nem pl. alkalomszerű ellenőrz rzés s (gyorsításért), rt), programkód hitelesítés, s, hálózat h menedzselés s (SNMPv3) a MAC hitelességet hosszabb időre tudja biztosítani, tani, mint a titkosítást, st, a megfejtés s után n a nyílt szöveg tárolhatt rolható a MAC kóddal együtt
Szimmetrikus titkosítók használata MAC készítésére bármely szimmetrikus titkosítóval készk szíthetünk MAC-et et,, ha a CBC (cipher( block chaining) módban az utolsó blokkot használjuk MAC-ként a Data Authentication Algorithm (DAA) széles körben volt használatban, ez egy MAC algoritmus, mely a DES-t t használja CBC módban a kezdővektor: IV=00.0 ha szüks kséges az üzenetet 0-kal 0 kell kiegész szíteni, hogy egész számú 64 bites blokkból álljon titkosítsuk tsuk az üzenetet DES-sel CBC módban az utolsó 64 bites eredmény a MACM érték vagy csak annak a legelső M bites blokkját (16 M 64) 64) de a végsv gső MAC mérete túl l rövidr a biztonsághoz Majd látjuk: l a brute force ellen hosszabb MAC kell mint szimmetrikus titkos kulcs!
Az adat hitelesítő algoritmus (Data Authentication Algorithm DAA) Nem más mint a DES CBC módban.
3. Hash-függv ggvények tetszőleges üzenetet rögzített hosszra sűrítenek h = H(M) nincs szüks kség g kulcsra szemben a MAC-kel,,egyirány nyúak = a jój hash függvényt reménytelen nytelenül nehéz invertálni nyilvános nos algoritmusok jelzik az üzenet megváltoz ltozását többféleképpen használhat lhatóakak leggyakrabban elektronikus aláí áírás (digital signature) ) készk szítéséhez
Hash függvény egy használata csak hitelesítésre sre Az üzenet nincs titkosítva csak aláírva.
Hash függvények alkalmazásai I
Hash függvények alkalmazásai II
Követelmények hash h függvényekkel szemben 1. tetszőleg méretű M üzenetre alkalmazhatóság 2. rögzített méretm retű h kimenetet adjon 3. h=h(m)-et könnyű legyen kiszámítani 4. h ismeretében kivitelezhetetlen olyan x-et találni, lni, melyre H(x)=h egyirány nyú tulajdonság (one-way property) 5. ismert x-re kivitelezhetetlen olyan y-t találni, lni, melyre H(y)=H(x) gyenge ütközésmentesség (weak collision resistance) 6. kivitelezhetetlen két k t olyan x,y-t találni lni melyre H(y)= )=H(x) erős ütközésmentesség (strong collision resistance)
Egyszerű hash függvények több javaslat született egyszerű függvényekre az üzenet blokkjainak XOR-ol olásával nem biztonságosak gosak,, mert könnyk nnyű bármely üzenetet úgy módosm dosítani, hogy a hash érték k változatlan v maradjon, vagy kívánt k érték k legyen erősebb kriptográfiai függvf ggvényekre van szüks kség
Szület letésnap elvű támadások (Birthday Attacks) azt gondolnánk, nk, hogy egy 64-bit bites hash biztonságos de a Szület letésnap paradoxon (Birthday Paradox) miatt ez nincs így ahhoz hogy találjunk ljunk két k t azonos napon született embert legalább 50%-os valséggel csak 23 ember kell! ez általánosítható úgy is, ha két k t csoportból l (mondjuk fiúk-lányok) akarunk egy olyan párt p találni, lni, akik véges v sok érték k közül k l közös k s tulajdonsággal rendelkeznek így pl. 64 bites hash esetén n 2 64 hash érték k van, de csak két t 2 32 nagyságú csoportot kell képeznk peznünk, nk, ahhoz, hogy legalább 50%-os valséggel egyezést találjunk. ljunk. Műveletgény: : 2 33 hash érték k számítás
Szület letésnap elvű támadások (Birthday Attacks) A szület letésnap elvű támadás: 32 db az ellenfél l generál 2 32 db variáci cióját t egy valós üzenetnek lényegében ugyanazzal a jelentéssel (pl. szinonimákkal vagy szóközökkel) kkel) az ellenfél l szintén n generálja 2 32 variáci cióját t a hamis üzenetnek,, amire ki akarja cserélni a szület letésnap paradoxon miatt legalább 50% annak a valósz színűsége, hogy a két k üzenetcsoportban talál l két k azonos hash értékkel rendelkezőt ezután n aláí áírathatja a valós üzenetet a küldk ldővel, amit aztán kicserélhet az azonos hash értékű hamis párjával Nagyobb MAC/Hash értékek szüks kségesek!!!
Egy levél 237 változat ban
Blokktitkosítók, k, mint hash függvények a blokktitkosítók hash függvényként nt is használhat lhatók: IV=H 0 :=00 0 az üzenet végének v föltöltésse 0-kal (padding( padding) számítás: H i = E [H M i i-1], ahol M i az i-dik blokk az utolsó blokk értéke használhat lható hashként hasonlít t a CBC módra, de kulcs nélkn lkülili nyként nt adott hash túl rövid (64,, 128-bit) mind a szület letésnap elvű támadás mind a középen k találkoz lkozó meet-in-the-middle támadás s veszélyezteti az eredményk Más s variáci ció is sérülékenyeks Jó hash függvényekhez más m s megközel zelítés s kell.
Hash függvények és MAC algoritmusok biztonsága támadástípusok mint a blokktitkosítókn knál teljes kipróbálás s (brute( brute-force) hash: : erős ütközésmentesség g ellen csak: 2 m / 2 javasoltak hardvert MD5 törésérere 128-bit sérülékeny, 160-bit már r jobb MAC: : nehezebb támadni, t mert ismert üzenet - MAC érték k párok p kellenek támadható a kulcstér r vagy direkt a MAC érték legalább 128-bit bites MAC kell a biztonsághoz
Hash függvények és MAC algoritmusok biztonsága kriptográfiai támadt madások a függvf ggvény egyirány nyúságát t támadjt madják cél, hogy ne lehessen a brute force-nál jobbat adni pl. 2004: MD5 nem erősen ütközésmentes!!! 2006: MD5-höz z egy percen belül l egy laptopon kétk azonos hash értékű üzenet találhat lható számos analitikus támadt madás s ismert iterált hash függvényekre is (a körfk rfüggvényt kell visszafejteni elég g sok körön k n keresztül).
Felhasznált lt irodalom Virrasztó Tamás: Titkosítás és s adatrejtés: Biztonságos kommunikáci ció és s algoritmikus adatvédelem, delem, NetAcademia Kft., Budapest, 2004. Online elérhet rhető: http:// ://www.netacademia.net/book.aspx?id=1# William Stallings: Cryptography and Network Security,, 4th Edition, Prentice Hall, 2006. (Chapter 11) Lawrie Brown előad adás s fólif liái i (Chapter( 11)