bybence
Kapcsolat
← ByBence Academy

kriptografia · 8 perc

Hash függvények: mi a hash, és mire használható?

Kriptográfiai hash függvények érthetően: SHA-256, ellenőrzőösszeg, jelszótárolás és az egyirányúság valódi jelentése.

A hash függvény egy bemeneti adatból meghatározott méretű értéket állít elő. Ugyanaz a bemenet ugyanazzal az algoritmussal ugyanazt az eredményt adja. A kriptográfiai hash célja többek között az, hogy a bemenetből ne lehessen gyakorlatiasan visszakövetkeztetni az eredeti adatra, és ne legyen könnyű két különböző bemenethez azonos értéket találni.

Hash és titkosítás: nem ugyanaz

A titkosítás megfordítható a megfelelő kulcs birtokában. Egy kriptográfiai hash viszont nem ilyen módon dekódolható. Nem „titkosított szöveg”, és nincs hozzá általános visszafejtőkulcs. Rövid, gyenge vagy jól kitalálható bemenetekre ugyanakkor lehetséges előre kiszámított hasheket keresni vagy jelölteket próbálgatni.

SHA-256: mit jelent a 256 bit?

Az SHA-256 fix, 256 bites (32 bájtos) kivonatot állít elő, függetlenül attól, hogy a bemenet rövid szöveg vagy nagyobb adat. A hossz önmagában nem jelenti azt, hogy minden felhasználásra megfelelő: a jelszótárolás más követelményeket támaszt, mint egy fájl ellenőrzése.

Mire jó a hash egy webalkalmazásban?

  • Fájl integritásának ellenőrzése: a letöltött állomány kivonata összevethető az elvárt értékkel.
  • Azonos tartalom felismerése: a kivonat segíthet duplikátumok felkutatásában, de hibátlan azonossági bizonyítéknak nem minden esetben elegendő.
  • Digitális aláírások és hitelesítési protokollok részeként a hash a bemenő adatok sűrített reprezentációját adhatja.
  • Jelszavaknál kifejezetten erre tervezett, sózott, költséges jelszó-hash algoritmusra van szükség, például Argon2id-re; a sima SHA-256 önmagában nem megfelelő tárolási megoldás.

A hash nem teszi automatikusan anonimmá a személyes adatot

Ha egy emailcímet egyszerűen SHA-256-tal hash-elnek, attól még sok esetben visszaköthető a személyhez. A korlátozott bemeneti tér és szótáras próbálkozás miatt a személyes adatok védelméhez nem elég „lekódolni” az adatot. Az adatvédelmi besorolást a konkrét feldolgozás alapján kell értékelni.

Mit biztosít a Web Crypto API?

A böngészőben elérhető crypto.subtle.digest() támogat több SHA-algoritmust, és Promise formában adja vissza a kivonatot. Az API HTTPS-t igénylő biztonságos környezetben érhető el, de nem helyettesíti a szerveroldali bizalmi és jogosultsági döntéseket.

Összefoglalva

  • Hash: meghatározott méretű kivonat, nem visszafejthető titkosított adat.
  • SHA-256 jó lehet integritásellenőrzésre, de nem közvetlen jelszótárolásra.
  • Azonos hash nem minden helyzetben abszolút bizonyíték a bemeneti adatok azonosságára.
  • A hash-elés önmagában nem jelent anonimizálást.

A Web Crypto API működését és a támogatott algoritmusokat a Mozilla dokumentációja írja le.

MDN: SubtleCrypto.digest→

A ByBence egyedi webes rendszerek fejlesztésével is foglalkozik.

Egyedi webfejlesztés→
További Academy-leckék →