You are on page 1of 7

NetAcademia-tudstr

Hash!
Most egy igazn haszontalan algoritmusokrl rok nknek: olyasmir l, ami kizrlag az adatok sszekavarsra s szttrancsrozsra alkalmas: a hash, vagy magyarul trdel algoritmusokrl. Egy biztonsggal foglalkoz knyvben olvastam azt a hasonlatot, hogy a hash algoritmus olyan, mint a hsdarl, a belhelyezett adat szttrancsrozdik. A folyamat egyirny: nylbl knnyedn kszthet fasrt, de fasrtbl nyl? (A hash sz jelentse sz szerinti fordtsban: darlk, darlths.)

Ez a dokumentum a NetAcademia Kft. tulajdona. Vltoztats nlkl szabadon terjeszthet . 2000-2003, NetAcademia Kft. 1

NetAcademia-tudstr

Egy hash algoritmus blokkdiagramja :-) Mindennapjaink adatainak hasznossghoz nem fr ktsg; dokumentumaink, adatbzisaink, tblzataink, jelszavaink nlkl lehzhatnnk a rolt. De vajon mi a csudra j egy word dokumentum, vagy egy jelsz fasrtja? Ha ez a fasrt kznsges, felismerhetetlen hstrutym lenne, bizony nem lehetne rtelmesen felhasznlni, azonban a hash algoritmusok kimenete olyan darlkot ad, mely (jobbra) egyrtelm en utal az eredeti adatokra, de legalbb az a felttel teljesl, hogy egy adott dokumentumbl mindig ugyanaz a hash llthat el . minden megismtelt futsra azonos. Az algoritmus viselkedse determinisztikus. A megismtelt futsnak klns jelent sge van elosztott krnyezetekben, ahol ugyanaz a hash algoritmus a hlzat klnbz gpein, egymstl fggetlenl futkos. nem teszi lehet v az eredeti adatok el lltst. Fasrtbl ne lehessen nyulat alkotni! Id r l id re felrppennek hrek bizonyos algoritmusok feltrsr l, s ilyenkor mindig titkostsok megtrsre gondolunk, pedig egy hash algoritmus feltrse legalbb olyan izgalmas feladat. Ha a fasrtbl visszallthat a nyl, a hash feltrtnek tekinthet . Mire j? Ahogy a fasrt univerzlis tel, gy a hash eredmnye is igen sokoldalan hasznosthat. Az albbi nhny plda rvilgt a mltatlanul lenzett darlt hs informatikai felhasznlsnak sokoldalsgba: 1. Jelent s szerepet kap hlzati bejelentkezseinknl, hogy jelszavainkat ne kelljen olvashat formban tvinni a hlzaton. Ilyenkor titkosts helyett hasznljuk, mert megfelel en ravasz mdon felhasznlva ugyanolyan biztonsgos jelsztvitelt tesz lehet v, mint egy titkostalgoritmus, s mg csak kulccsereberre, vagy biztonsgi tanstvnyra (Certificate) sincs szksg. 2. Napjaink oly divatos technolgija, a digitlis alrs sem ltezne megfelel hash algoritmus nlkl. Itt az algoritmus visszacsinlhatatlansgt aknzzuk ki. 3. Minl olcsbb a RAM, annl tbb van bel le, s minl tbbet hasznlunk, annl tbb adatunk kerl gyorstrolkba (cache). A hash algoritmusok dbbenetes mdon szerepet kapnak a cache memrik kezelsben nlklk huszadakkora teljestmnyre lennnk kpesek. 4. Mg az adatbziskezel k is profitlnak a fasrtbl. Az SQL Server hash-joint hasznl hatalmas s rendezetlen tblk kztti kapcsolatok (join) megvalstsnl. Remlem sikerlt ha rdekl dst nem is, de legalbb gyanakvst kelteni a hash algoritmusok irnt, gy ttrhetnk a konkrtumokra. 1. felhasznls: autentikci Napjaink ezergpes vllalati hlzatainl nlklzhetetlen, hogy minden er forrs felhasznlst szemlyre szabottan tudjuk belltani, engedlyezni s tiltani. Ehhez nincs is msra szksg, mint a hlzat szmtgpei el tt ldgl felhasznlk egyszer s egyrtelm azonostsra. Sokfle mdszer szbajhet, de manapsg egyrtelm en a nv+jelsz tpus bejelentkezsi forma a legelterjedtebb, mivel nmi knyelmetlensg rn megfelel en stabil felismersi lehet sget biztost amg a jelszavak nem kerlnek kzkzre. Ez ellen nyilvnvalan gy vdekezhetnk, hogy nagy vben elkerljk a titkostatlan jelsztvitel sszes formjt, s lemondunk tbbek kztt az FTP-r l Titkostsunk! Mivel? Ht pl. 3DES-sel, mert az j er s! Ha a titkostott tvitel mellett dntnk, felmerl egy valban bosszant problma: mivel napjaink sszes populris titkostalgoritmusnak (DES, 3DES) minden rszlete, s t forrskdja is ismert, knytelenek volnnk a titkostkulcsok rejtegetsvel biztostani az illetktelenek tvoltartst, hisz ha nem gy tennnk, sajt 3DESkkel olyan szpen visszafejtenk a jelszt, hogy ihaj! A bejelentkezs megkezdse el tt teht titokban el kellene juttatni a munkallomsokra a megfelel (random), egyszerhasznlatos 3DES titkostsi kulcsot. Igen m, de hogyan? Hlzaton? Ahhoz el bb el kellene juttatni egy msik titkos kulcsot, aminek titkos eljuttatshoz egy harmadik kulcs kellene, amit titkostva viszont csak egy negyedik kulccsal juttathatnnk t, amihez kellene egy tdik Milyen j is lenne, ha a kezd 3DES kulcsot valahogy gy oda lehetne Ez a dokumentum a NetAcademia Kft. tulajdona. Vltoztats nlkl szabadon terjeszthet . 2000-2003, NetAcademia Kft. 2

NetAcademia-tudstr varzsolni a munkallomsokra, hogy Hacker Henry s Claudia Sniffer ne kaphassa el! Mondjuk postagalambbal? Ejnye, a szimmetrikus titkostalgoritmusok gy t nik felsltek! s ekkor egy hirtelen tlettel esznkbe jutnak a szintn publiklt, kzismert (MD4, MD5, SHA) hash algoritmusok. Hogyan lehetne ezekkel dolgozni? Az tlet alapja az a tny, hogy a hash algoritmusok egyirnyak. Egy jelszhash-t (fasrt) minden tovbbi nlkl kirakhatunk a hlkbelre, mert ha ezt valaki elkapja, maximum mgegyszer ledarlhatja, hogy finomabb legyen de nyuszimuszi az letben nem lesz bel le.

Jelszellen rzs bejelentkezskor A jelszkirtkels menete a kvetkez : (1) a munkalloms bekri a felhasznl jelszavt, s (2) rereszti a maga hash algoritmust. A vgeredmnyt a felhasznlnvvel egytt elkldi a tartomnyvezrl nek (3), aki szintn nem tud fasrtbl nyulat eszkblni, de neki is van egy nyula! Meg van nla van ugyanis a jzer ppen rvnyes jelszava (4). Ledarlja (5), s a nyl borzalmas fldi maradvnyait sszehasonltja (6) a hlzaton t megkapott fasrttal. Ha a kett egyezik, a kt nyl is egyforma volt. Fantasztikusan egyszer ugye? s radsul feltrhetetlen?! s a L0pthCrack? Ht igen. Az [1] cmr l letlthet L0pthCrack (ejtsd: luftkrekk) mr vek ta tudja mindazt, ami lehetetlen: hash algoritmussal titkostott jelszavakat visszafejteni. Valban megmondja a hlzaton ltott hessek alapjn az eredeti jelszt, de NEM visszafejtssel, hanem sok-sok nyl egyms utni ledarlsval, mskppen prblkozssal. (Mgpedig ktfle mdon: sztrral, majd ha az kimerlt, szisztematikusan vgigprblgatva a lehetsges kombincikat. Ez utbbit brute force mdszernek hvjk. A [2] cmr l letlthet tr sztr a magyar nyelvhez kszlt, a weben leggyakrabban el fordul szavak szerepelnek benne) S ami tz vvel ezel tt mer fikci volt, az t ve mr bizonytottan br lassan m kdtt, ma pedig szguld. Az egyre nagyobb teljestmny gpek nyilvnvalan egyre tbb nyulat darlnak le egysgnyi id alatt, gy a jelszfeltrs is egyre knnyebb feladat. A rgi tpus OS2/Windowsos (LanMan) jelszavak knny feltrhet sghez azonban mg egy fontos dolog hozzjrult. Security by obsurity Avagy a kdstses titkosts. Ha valaki titkostsi algoritmus bevezetsn gondolkodik, izz vassal kergesse el azokat a sarlatnokat, akik sajt fejleszts , hiperer s megoldsokkal jelentkeznek, de nem ruljk el az er ssg mibenltt. Ezek az alakok az esetek 108%-ban egyszer en tl ostobk ahhoz, hogy megrtsk a meglv algoritmusokat, ezrt hekkelnek valami cskasgot, s azt hiszik, hogy mivel senki nem ismeri az algoritmust (XOR, eltolva az bcben, s t, szorozva a gondolt szm hromszorosval s hasonl gyksgok), tkolmnyuk mindjrt megfejthetetlen is. Sokszor meglv algoritmusokon tikostanak mg egyet, ami a butasg legmagasabb foka. Ezek azok az algoritmusok, melyek pofonegyszer kriptoanalzissel (gyakorisgfigyels stb.) gy nylnak, mint a sunfiajt a szlben. Azt hihetnnk, hogy ebbe a csapdba nagy-nagy cgek nem stlnak bele. Nos, ez nem gy van. Az IBM-Microsoft du ltal kifejlesztett LanMan hashalgoritmus egyik er ssgt az adta, hogy nem publikltk az algoritmust. Ez az er hnapokig tartott, utna egyszer en visszafejtette a kdot egy lelkes egyetemista, s kitette az Internetre. Ennek nyolc ve. Ma mr a Windows a szabvnyos Kerberos autentikcis protokollt hasznlja, de Lan Managerek, OS/2-k s Windowsok generciinak kipusztulst kell kivrni, hogy mindennnen elt njn a LanMan (s az NTLM).

Ez a dokumentum a NetAcademia Kft. tulajdona. Vltoztats nlkl szabadon terjeszthet . 2000-2003, NetAcademia Kft. 3

NetAcademia-tudstr Kitr : a jelszalap bejelentkezs halla? A fenti gondolatmenetb l kvetkez en (egyre gyorsabb gpek, egyre rvidebb brute force) egyre kzelebb rnk ahhoz a jv beni pillanathoz, amikor a jelszalap hitelestsnek vgleg befellegzik. Kzdhetnk a gpek ellen, de sajnos az egyetlen megolds, ha a jelszavak egyre bonyolultabb vlnak. Egy jelsz legyen hossz, bonyolult s knnyen megjegyezhet Ez a hrom szempont krlbell annyira elgthet ki egyszerre, mint amit egy k m vessel szemben tmasztunk (munkja legyen gyors, olcs s j min sg ). Hiszen ha egy jelsz hossz s bonyolult, akkor nem knny megjegyezni, kirjuk a monitorra. Ha hossz s megjegyezhet , akkor az emberi gyarlsg miatt nem bonyolult stb. Kiutat a SmartCard logon jelent, ahol a jelsz a nyilvnos kulcsunk, ami minimum 512 bit. Az emberi jelszavakhoz kpest vgtelenl hossz, hatrtalanul bonyolult, s meg sem kell jegyezni! 2. felhasznls: digitlis alrs Amit tudni akartl a digitlis alrsrl, de nem merted megkrdezni: mi teszi lehet v, hogy egy dokumentumrl teljes bizonyossggal kijelenthetjk, hogy X.Y. rta, s azt senki meg nem mdostotta? Ht bizony a hash. Egszen pontosan az alr privt kulcsval titkostott hash. (Lm, hamarosan meg kell rnom az RSA algoritmust is.) Mit tud biztostani a digitlis alrs? Pontosan azt, amit a hagyomnyos szign: a dokumentumot brki elolvashatja, de a rendelkezsre ll er forrsokkal s id kerettel gazdlkodva kptelen lesz meghamistani. Ennek m kdse nagy vonalakban a kvetkez (deszkamodell): 1. vgy egy elektronikus dokumentumot 2. titkostsd sajt privt kulcsoddal 3. kldd el mindenkinek, de tedd mell a publikus kulcsodat Minden cmzett kpes lesz ezek utn a mellkelt publikus kulcs segtsgvel dekdolni s elolvasni az zenetet, de egyikk sem lesz kpes elolvass utn mdostani S jra visszakdolni, mivel a privt kulcs mindvgig nlam van, volt s lesz. Deszkamodellnk risi htrnya, hogy nem h en tkrzi a valsgot. Ennek oka a nylt kulcs titkostsban keresend : vgtelenl lassan lenne kpes akrcsak egy nhny tz kilobjtos dokumentumot titkostani (mert a titkosts egyik lpse a dokumentum, mint irdatlan hossz binris szm felemelse a kulcsadik hatvnyra). Kellene ide egy olyan adatka, mely kicsi s aranyos (villmgyorsan vgez vele az RSA), m egyrtelm en sszefggsbe hozhat az eredeti dokumentummal. Na mi ez a szmocska? A dokumentumbl kpezett hash! gy a digitlis alrskpzs valsgh modellje a kvetkez :

Digitlis alrs kpzse 1. 2. 3. 4. vgy egy elektronikus dokumentumot kpezz bel le egy csinos kis hash-t a hash-t titkostsd sajt privt kulcsoddal a kvetkez ket csomagold egybe, s kldd el mindenkinek a. a dokumentumot b. a hash-t c. a publikus kulcsodat

Az alrs valdisgnak ellen rzse pedig gy trtnik: 1. vedd ki a csomagbl a dokumentumot 2. kpezz bel le hash-t 3. vedd ki a csomagbl a publikus kulcsot s a titokhash-t 4. nyisd ki a titokhash-t a publikus kulccsal 5. hasonltsd ssze az ltalad a msodik lpsben ksztett hashrtket azzal, amit pp az imnt dekdoltl 6. ha a kt rtk egyezik, a dokumentum rintetlen 3. felhasznls: cache Ez a dokumentum a NetAcademia Kft. tulajdona. Vltoztats nlkl szabadon terjeszthet . 2000-2003, NetAcademia Kft. 4

NetAcademia-tudstr A cache magyarul gyorstttr. Vagyis clja valamilyen m velet gyorstsa. Trivilisan hangzik, de a cl elrshez sokat kell gondolkodni! Minl nagyobb ugyanis a gyorsttr, annl lehetetlenebb benne villmgyorsan megtallni, hogy egy ignyelt objektum benne van-e, vagy mgiscsak utna kell szaladni az eredeti trolhelyre. Szndkosan nem nevezem nevn az eredeti trolhelyet, mert a RAM, mint lass trol gyorstrazsa is b ven tallunk pldt a processzorok ilyen-olyan gyorstrai esetben. Az lenne az idelis, ha nulla rjelciklus alatt megllapthat lenne, hogy amit keresnk, az kesselve van-e mr, ehhe viszont arra lenne szksgnk, hogy a cache minl intelligensebben meg tudja mondani, mi van benne. Evilgi pldval lve: keressk, hogy melyik nebul rakott rggumit a tantnni szkre. Nhny csibsz esetn majdnem mindegy, hogy nknt jelentkezik-e a b ns, vagy egyesvel ki kell faggatnunk ket, de ha trtnetesen negyvenezer rosszcsontunk van, n az nkntes megoldsra szavaznk: Pistike igenis lljon fel! Az nkntes megoldst asszociatv memrival rhetjk el, melynek m kdse a becsletes csibszek gylekezethez hasonl: egyszer kell feltenni a krdst, s a kvetkez pillanatban Pistike mr fel is ll. Egyszer en nem kell vgigkeresni a halmazt! Micsoda fantasztikus memria! Vajon mirt nem ilyet hasznlunk mindenhol? Mit vacakolunk mindenfle keressi algoritmusokkal? Mert - finoman szlva - nem olcs mulatsg. Ahol azonban a keresgls rombadnten a gyorsttr teljestmnynvel hatst, ott igenis tallkozunk vele, a Pentium processzorok Translation Look-aside Buffer-e pldul asszociatv memrit hasznl. Err l a mltkori mesterkurzuson a memriakezelssel kapcsolatban tettem emltst. Amikor azonban egyszer merevlemezadatokat kesselnk , akkor olcs, ezerforintos RAM-ban gondolkodunk, amely sajnos egyet jelent azzal, hogy Pistiknek esze gban sincs bevallani tettt, s nknt jelentkezni. Keresglnnk kell. Egyszer sten a sok kis taknyos kivallatst, ha le tudnnk sz kteni valahogy a krt azokra az rdgfikkra, akik biztosan kpesek lennnek elkvetni a rggumis csnyt. (Ett l a ponttl kezdve a hasonlatom kiss kirekeszt v vlik, brmely vlt hasonlsg ismert szemlyekkel kizrlag a vletlen m ve! Ne feledjk: nem is rakott senki rgt a tantnni szkre!) Alkossunk halmazokat: a vilgrt sem tennnek ilyet a szemvegesek, s a lnyok, azonban a kcos haj s a szepl s fik gyansak nekem! Vallasuk ki el szr a szepl seket, s ha egyikk sem vllalja, akkor a kcosokat. n gy gondolom, hogy mr a szepl sk megrkatsa is eredmnnyel jrna, a tbbiek akr haza is mehetnek. IT terminolgival a trtnet gy szl: van egy objektumigny (blokk olvassa egy fjlbl), rendelkezsre ll az objektumkrst egyediv tev adathalmaz (fjlnv, beolvassi pozci), s ezek alapjn meg kell llaptanunk, hogy a gyorsttrban ugyanebb l a fjbl ugyanez a darabka megtallhat-e. A gyorsttr minden eleme termszetes mdon magn viseli sajt egyedi azonostjt (fjlnv+pozci), s ez alapjn gyorsan meg is lehetne tallni ha nem lenne negyvenezer ilyen elem a trban. Kpezznk bel lk csoportokat! Itt egy olyan hash algoritmus segt, amelyik nem egyedi rtkeket ad, hanem a bemen adatok egy bizonyos csoportjra mindig ugyanazt (szemvegesek), ms csoportokra mst (lnyok). (Egy ilyen algoritmus pldul a modulo 5, mely minden ttel oszthat szmot a nulls vdrbe rak, az egy maradk rn oszthatakat az egyes vdrbe stb.) Valjban ez a fajta csoportosts nem a keress pillanatban trtnik meg, hanem az elem mr eleve a maga csoportjba kerl, mikor bekerl a gyorsttrba. A csoportok neve: hash bucket, azaz fasrtosvdr.

Hash buckets Amikor egy j krs kiszolglsa el tt el kell dnteni, hogy egy krt elem hol van, r kell ereszteni a krt adat azonostjra a hash algoritmust, hogy kiderljn a hovatartozsa. Ha ez megvan, igen rvid id alatt eldnthet , hogy bent van-e a kivlasztott vdrben, vagy nincs. 4. felhasznls: hash join Ez a felhasznlsi md igen hasonlatos a harmadikhoz, vagyis gigantikus, mde rendezetlen halmazokban gyorstja a keresst. m ltom kollgimat integetni itt a stdiban az vegfalon tlrl, hogy tllptem az id keretet, gy most ttrnk az ismertebb hash algoritmusok elemzsre. grem, visszatrek az SQL Server hash joinjaira, de ezt egy kln cikkben, a join stratgik elemzsben teszem meg valamikor mg ebben az vben.

Ez a dokumentum a NetAcademia Kft. tulajdona. Vltoztats nlkl szabadon terjeszthet . 2000-2003, NetAcademia Kft. 5

NetAcademia-tudstr Elterjedt hash algoritmusok Az albbiakban nhny klnosen elterjedt hashalgoritmus m kdsr l lebbentem le a ftylat. Hihetetlen, de igaz: egy jl megtervezett hash algoritmus egyszerre primitv (gyors) s hatkony. gy darl, hogy azt senki utna nem csinlja! Ez all taln csak a LanMan kivtel, mely kizrlag primitv, de egyltaln nem hatkony. LanMan s NTLM Kezdjk a sort a sokat szenvedett LanMan, NTLM prossal. Prban, kzenfogva jrnak a hlzaton (amg le nem tiltjuk ket), elvileg azrt, hogy a hitelest kiszolgl kivlaszthassa az ltala ismert hash-t a bejelentkezsb l. Ennek az a gyakorlati hackerhaszna, hogy a kt, egyenknt is gyenge hash egymst rulja el. Ami nem derthet ki az egyikb l, megmondja a msik s vica versa. A security by obscurity tkletes mintapldnyai k, akik az algoritmus napvilgra kerlsvel pillanatok alatt nevetsgess vltak. Hogy mirt? Mert pldul a nagy hekkelsben beljk fejleszt dtt egy olyan megolds, ami gyesen meglkeli a hossz jelszavak ltal elrhet biztonsgnvekedst azltal, hogy azokat htkarakteres csoportokra bontja, s kln-kln vgzi el a titkostst (a jelszavak maximlis hossza 14 karakter). gy nem meglep , hogy egy nyolckarakteres jelsz semmivel sem biztonsgosabb egy htkarakteresnl, hisz a nyolcadik karakter nll csoportot alkot, kln titkosul. Ez meg is magyarzza, hogy a L0phtCrack mirt olyan fura mdon fejti meg a jelszavakat, hogy a vge (a hetediken tli rsz) mr rg megvan, az elejvel meg mg mindig 4 ra munkja van htra. Szintn nem vlik dics sgre e prosnak, hogy az res jelszavak semmilyen ellenllst sem tanstanak, azonnal visszafejthet k. Ez pedig annak a kvetkezmnye, hogy az regebbik, a LanMan a hash lefuttatsa el tt minden jelszt ht karakteresre kerekt, legyen az brmilyen hossz. A LanMan lpsei: a jelsz nagybet ss konvertlsa (sic!) kiegsztse szkzkkel, hogy 14 bjtos legyen a 14 bjtbl 2 db DES kulcs kszl (14 bjt = 112 bit = 2*56 bit) a kt 56 bites DES kulccsal titkostjuk a 0x4B47532140232425 mgikus1 szmot (sic!) az eredmny 2*8 bjtnyi, sszesen 16 bjtos hash Hogy ez mit l hash, amikor DES? Ne krdezzk. Security by obscurity s pont. A fenti lpssorozat folyomnya, hogy ha a jelsz rvidebb, mint 8 karakter, a 7-14 bjtok mindig 0xAAD3B435B51404EE-re hessel dnek :-) Az res jelsz titkostott vltozata megegyezik ht darab szkz titkostott kimenetvel. A LanMan hash teht megadja Claudia Sniffernek a jelszavak nagybet s vltozatt, s ezeket rprblva az NTLM-re (MD4 alap), pillanatok alatt megvan az eredeti jelsz. Mindenki srg sen trjen t Windows 2000-re, vagy legalbbis tiltsa le a LanMant, s az NTLM-b l is az j vltozatot (NTLMv2) hasznlja! (Az NTLMv2 egyel re llja az ostromot (MD4 helyett HMAC-MD5-t hasznl), belltsrl terjedelmes cikknk jelent meg tavaly novemberben.) MD5 (Message Digest 5) Az MD5 algoritmus trsai kzl gyorsasgval s hatkonysgval t nik ki (br egy fokkal lassabb feltrt el djnl, az MD4nl). Az RSA trsasg ksztette (Rivest, Shamir, Adleman matematikusok). Ha elrulom a m kdst (s mirt ne tennm, RFC 1321, a [3] cmen olvashat, s mg C nyelv forrskd is van hozz) nem fogjuk elhinni, hogy ez gy brmire is j, s valban egyedi rtkeket ont magbl. A futsi sebessg megkveteli, hogy ne legyen benne semmi rendkvli. Van ngy dugattyja, melyek 32 bites szmokon vgeznek primitv, fl rajeles m veleteket, s ezeken mintegy ttoljuk a trancsrozand adatot. (Persze a fl rajeles primitv fggvnyek nagyon is bonyolult matematika eredmnyei.)

Az MD5 algoritmus m kds kzben

Ez a dokumentum a NetAcademia Kft. tulajdona. Vltoztats nlkl szabadon terjeszthet . 2000-2003, NetAcademia Kft. 6

NetAcademia-tudstr A 32 bites egyszer m veletek iszonyatos sebessget klcsnznek az algoritmusnak, a ngy munkahenger pedig tbb processzoros rendszerben a valdi prhuzamos vgrehajts lehet sgt teremti meg. Anlkl, hogy rszleteznm a teljes m kdst, tekintsk meg a dugattyk feladatt: P = F(X,Y,Z) = XY v not(X) Z Q = G(X,Y,Z) = XZ v Y not(Z) R = H(X,Y,Z) = X xor Y xor Z S = I(X,Y,Z) = Y xor (X v not(Z)) A dugattyk sszevrnak hrom 32 bites szmot, s akkor robban a keverk. A figyelmes szemll d szreveheti, hogy F() nem ms, mint bitenknti if (If X then Y else Z), mg H() egy paritsfggvny a hrom bemen adatra. A feldolgozs vgeredmnye mindig egy 128 bites szm. Az MD5 (egyel re) nincs feltrve, azaz mg soha senkinek sem sikerlt kt olyan klnbz doksit felmutatnia, amelyeknek az MD5 hash-e megegyezett volna. Ez nem is csoda, hisz ha a 128 bitet egyszer en sorszmozsra hasznlnnk, segtsgvel a fld minden ngyzetcentimterre tzezer egyedi dokumentum lenne elhelyezhet (lsd mg: GUID)! SHA-1 (Secure Hash Algorithm) Lapzrta utn (1997-ben :-) rkezett a hr: az MD5 mgiscsak rogyadozik: MD5 has been recently shown to be vulnerable to collision search attacks [Dobb]. Kell ht valami j, valami megbzhatbb. SHA-1 appears to be a cryptographically stronger function. (A kt idzet a HMAC RFC-b l val (RFC 2104, [4] cm), az SHA RFC-je pedig a 3174-es, s az [5] cmen olvashat). Az SHA algoritmus is az MD4 utdjaknt szletett, s brmilyen bemen adatra 160 bites outputot szolgltat Szerz i kzt szerepel a Cisco trsasg. Kthengeres, de itt mr nem ngy, hanem nyolcvan (80!) fggvny dolgozik gy, hogy a hengerekben menet kzben cserlnk dugattyt. Salt A hashalgoritmusok egyik er ssge, hogy ugyanazokon az adatokon vgrehajtva ugyanazt a kimenetet produkljk. Ez nha - klnsen titkostsi felhasznlskor - visszafel slhet el, hisz a gyakran ismtelt mintk (pldul az res jelsz hash-e) knnyedn felismerhet v vlnak. Ezt elkerlend egyes hash (emlkezznk: fasrt!) algoritmusok lehet v teszik, hogy paramterezzk ket: zls szerit megf szerezhetjk az outputot. A paramterezs vszzados tlet, az NTLM challenge/response azonostsnl el szeretettel hasznljk. A 8 bjtos challenge valjban nem ms, mint salt, melyet az NTLM algoritmus futsa sorn a jelszhoz kevernk. Az egyik legismertebb salt a HMAC algoritmus, melyet gy terveztek, hogy a meglv s bevlt algoritmusokkal vltoztats nlkl egyttm kdjn. gy jn ltre a HMAC-MD5, HMAC-SHA-1, melyek az eredeti algoritmusok szott vltozatai. A nevekb l taln kikvetkeztethet , hogy a HMAC el feldolgozst vgez az adatokon, s annak kimenett juttatja el az eredeti MD5, SHA-1 vagy tetsz leges algoritmushoz. Enkapszulci. A salt a hash algoritmusok sava-borsa! Fti Marcell marcellf@netacademia.net MCSE, MCT, MCDBA, MZ/X A cikkben szerepl URL-ek: [1] L0PhtCrack http://www.atstake.com/research/lc3/index.html [2] Tr sztrak http://wordlists.security-on.net/download.html [3] Message Digest, MD5, RFC 1321 http://www.ietf.org/rfc/rfc1321.txt [4] Keyed-Hashing for Message Authentication, HMAC, RFC 2104 http://www.ietf.org/rfc/rfc2104.txt [5] Secure Hash Algorithm, SHA-1, RFC 3174 http://www.ietf.org/rfc/rfc3174.txt

Ez a dokumentum a NetAcademia Kft. tulajdona. Vltoztats nlkl szabadon terjeszthet . 2000-2003, NetAcademia Kft. 7

You might also like