Skip to main content

Mi a titkosítási funkció?

Anonim

A kriptográfiai hash függvény olyan algoritmus, amely adatokat, például egyéni fájlt vagy jelszót futtathat egy ellenőrzőösszegnek nevezett érték előállításához.

A kriptográfiai hash függvény fő felhasználása egy adatdarab hitelességének ellenőrzése. Két fájl feltételezhetően azonosnak tekinthető, ha az egyes fájlokból származó, azonos kriptográfiai hasítófüggvényt használó ellenőrzőösszegek azonosak.

Néhány általánosan használt kriptográfiai hasítófunkció az MD5 és az SHA-1, bár sok más is létezik.

A kriptográfiai hash függvényeket gyakran "hash függvényeknek" nevezik, de ez technikailag nem helytálló. A hash függvény egy általános kifejezés, amely magában foglalja a kriptográfiai hash függvényeket és egyéb algoritmusokat, például a ciklikus redundanciaellenőrzéseket.

Kriptográfiai Hash Funkciók: Egy felhasználási eset

Mondja, hogy letöltötte a Firefox böngésző legújabb verzióját. Valamilyen okból le kellett töltenie azt a Mozilla-tól eltérő webhelyről. Mivel nem tartják be a webhelyen a betartandó webhelyet, győződjön meg róla, hogy a letöltött telepítési fájl pontosan ugyanaz, mint az a Mozilla által kínált telepítési fájl.

Egy ellenőrzőösszeg-számológép segítségével kiszámít egy ellenőrző összeget egy adott kriptográfiai hash függvény használatával, például az SHA-2, majd hasonlítsa össze azt a Mozilla webhelyén közzétett értékkel. Ha egyenrangúak vagy, akkor biztos lehet abban, hogy a letöltés megegyezik a Mozilla-val.

A kriptográfiai Hash függvények megfordulhatnak?

A kriptográfiai hasítófunkciókat úgy tervezték meg, hogy megakadályozzák az általuk létrehozott ellenőrző összegek visszafordítását az eredeti szövegekhez. Annak ellenére, hogy gyakorlatilag lehetetlenné válik a visszafordulás, ők nem garantálják az adatok 100 százalékát.

A hackerek használhatják a szivárványtáblát, hogy kiderítsék az ellenőrzőösszeg egyszerű szövegét.

A szivárványtáblák olyan szótárak, amelyek a hozzá tartozó szöveges érték mellett több ezer, millió, vagy akár több milliárd ellenőrző összeget jegyeznek fel.

Bár ez nem technikailag megfordítja a kriptográfiai hash algoritmust, akkor is ugyanúgy lehet, mivel egyszerűen megtehető. A valóságban, mivel a szivárványtábla nem tartalmazhat minden létező ellenőrző összeget, általában csak egyszerű kifejezésekre, például gyenge jelszavakra támaszkodik.

Itt van egy szivárványtábla egyszerűsített változata, amely megmutatja, hogyan működik az SHA-1 kriptográfiai hash függvény használata:

Egyszerű szövegSHA-1 ellenőrző összeg
123458cb2237d0679ca88db6464eac60da96345513964
password1e38ad214943daad1d64c102faec29de4afe9da3d
szeretem a kutyámata25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

A hackernek tudnia kell, hogy melyik kriptográfiai hash algoritmust használták az ellenőrző összegek létrehozásához, hogy kitalálják az értékeket.

A további védelem érdekében egyes weboldalak, amelyek tárolják a felhasználói jelszavakat, további funkciókat hajtanak végre a kriptográfiai hash algoritmuson az érték létrehozása után, de a tárolás előtt. Ez a folyamat új értéket hoz létre, amelyet csak a webszerver ér, és nem felel meg az eredeti ellenőrzőösszegnek.

Például egy jelszó beírása után és az ellenőrzőösszeg létrehozása után több részre oszthatók, és átrendezhetők, mielőtt a jelszóadatbázisban tárolódnak, vagy bizonyos karakterek cserélhetők másokkal. Amikor a felhasználó legközelebb bejelentkezik a hitelesítésre, a webszerver megfordítja ezt a kiegészítő funkciót, és újra létrehozza az eredeti ellenőrzőösszeget annak ellenőrzésére, hogy a felhasználó jelszava érvényes-e.

Ezeknek a lépéseknek a megakadályozása korlátozza a hack hasznosságát, ahol az ellenőrző összegeket ellopták. Az ötlet egy ismeretlen funkció végrehajtása, tehát ha a hacker ismeri a kriptográfiai hash algoritmust, de nem az egyéni, akkor a jelszó-ellenőrző összegek ismerete nem megfelelő.

Jelszavak és titkosítási funkciók

Az adatbázis a felhasználói jelszavakat a szivárványtáblahoz hasonló módon menti. Amikor beírja a jelszavát, az ellenőrző összeget generálja, és összehasonlítja a felhasználónévvel ellátott rekordot. Ezután hozzáférést kap, ha a kettő azonos.

Tekintettel arra, hogy egy kriptográfiai hash függvény visszafordíthatatlan ellenőrzőösszeget hoz létre, akkor biztonságban van, hogy egyszerű jelszót 12345, ahelyett 12@34$5egyszerűen azért, mert maguk a ellenőrző összegek nem érthetők meg? Nem, és ezért van.

Ez a két jelszó egyszerre lehetetlen megfejteni, csak az ellenőrző összegeknél:

MD5 az 12345 esetében: 827ccb0eea8a706c4c34a16891f84e7b

MD5 12 @ 34 $ 5-ért: a4d3cc004f487b18b2ccd4853053818b

Első pillantásra úgy gondolja, hogy a jelszavak bármelyikét használhatja. Ez akkor igaz, ha egy támadó megpróbálta kitalálni a jelszavát azzal, hogy kitalálta az MD5 ellenőrzőösszeget, amit senki nem tesz, de nem igaz, ha egy brute force vagy szótár támadást hajtanak végre, ami általános taktika.

A brute force támadás akkor fordul elő, ha több véletlenszerű szúrás történik a jelszó kitalálásakor. Ebben az esetben könnyű kitalálni 12345, de elég nehéz véletlenszerűen kitalálni a másikat. A szótáros támadás hasonló ahhoz, hogy a támadó megpróbálhat minden szót, számot vagy kifejezést a közös (és nem túl gyakori) jelszavak listájából, és12345 az egyik ilyen közös jelszó.

Annak ellenére, hogy a kriptográfiai hasítófunkciók nehezen lehetetlen kitalálni ellenőrző összegeket eredményeznek, továbbra is összetett jelszót kell használnia minden online és helyi felhasználói fiókhoz.

További információ a kriptográfiai Hash függvényekről

Úgy tűnhet, hogy a kriptográfiai hasítófüggvények a titkosításhoz kapcsolódnak, de a kettő különböző módon működik.

A titkosítás kétirányú folyamat, ahol valami titkosítva olvashatatlanná válik, majd később visszafejtésre kerül, hogy újra normálisan használják. Lehet, hogy titkosítja a tárolt fájlokat, hogy azok, akik hozzáférnek hozzájuk, nem tudják használni őket, vagy a fájl átviteli titkosítását titkosítja a hálózaton átköltözött fájlok titkosítására, például az Ön által feltöltött vagy letölthető fájlokra.

A kriptográfiai hasítófunkciók eltérően működnek, mivel az ellenőrzőösszegeket nem úgy tervezték, hogy megfordítsák a speciális dehashing jelszót. Az egyetlen célra szolgáló kriptográfiai hash függvények két adat összevetése, például fájlok letöltése, jelszavak tárolása és adatbázisból történő adatgyűjtés.

Lehetséges, hogy egy kriptográfiai hash függvény ugyanazon ellenőrző összeget hozza létre a különböző adatelemek számára. Amikor ez megtörténik, úgy nevezik az ütközést, ami egy hatalmas probléma, mivel a kriptográfiai hash függvény teljes pontját figyelembe véve egyedi ellenőrzőösszegeket kell létrehozni minden adatbevitelhez.

Az ütközés azért lehetséges, mert minden egyes kriptográfiai hash függvény határozott hosszúságú értéket ad a bemeneti adatoktól függetlenül. Például az MD5 kriptográfiai hash függvény létrehozza a 827ccb0eea8a706c4c34a16891f84e7b, az 1f633b2909b9c1addf32302c7a497983 és az e10adc3949ba59abbe56e057f20f883e három teljesen különböző adatblokkot.

Az első ellenőrző összeg származik 12345. A második több mint 700 betűből és számból származott, a harmadik pedig 123456.

Mindhárom bemenet különböző hosszúságú, de az eredmények mindig csak 32 karakter hosszúak, mivel az MD5 ellenőrzőösszeget használták.

Nincs korlátozás a létrehozandó ellenőrzőösszegek számára, mivel a bemenet mindegyik apró változása teljesen eltérő ellenőrzőösszeget eredményez. Mivel az egyik kriptográfiai hash függvény által létrehozott ellenőrzőösszegek száma korlátozott, mindig fennáll annak a lehetősége, hogy összeütközésbe kerül.

Ezért hoztak létre más kriptográfiai hasítófunkciókat. Amíg az MD5 32 karakteres értéket generál, az SHA-1 40 karaktert generál és az SHA-2 (512) 128-at generál. Minél nagyobb az ellenőrző összeget, annál kevésbé valószínű az ütközés.