Ugrás a tartalomhoz
TextArray

Mi az a hash? MD5, SHA-256 és amikor valóban szüksége van HMAC-ra

Blog /

A hash-függvények bármilyen bemenetet rögzített hosszúságú ujjlenyomattá alakítanak, de nem minden hash jön létre egyenlően. Az MD5, az SHA-256 és a HMAC közötti választás azt jelenti, hogy különbséget kell tenni a működő biztonsági ellenőrzés és a hangtalanul sikertelen biztonsági ellenőrzés között. Ez az útmutató elmagyarázza, hogy mindegyik mit csinál, mikor kell használni, és hogyan ellenőrizheti saját kivonatait közvetlenül a böngészőben.

Mi az a hash függvény?

A hash függvény tetszőleges mennyiségű adatot – szöveget, fájlt, jelszót – felvesz, és rögzített hosszúságú karaktersorozatot állít elő. Ugyanaz a bemenet mindig ugyanazt a kimenetet produkálja, ami hasznossá teszi a kivonatokat az ellenőrzéshez. Módosítson akár egy karaktert is a bevitelben, és a hash teljesen megváltozik. Ez az egyirányú tulajdonság (nem fordíthatja meg a hash-t az eredeti adatok visszaszerzéséhez) teszi hasznossá a biztonság szempontjából.

MD5: gyors, de törött

MD5 128 bites hash-t állít elő, és egykor az ellenőrző összegek és a fájlellenőrzés szabványa volt. Ma kriptográfiailag megszakadt – az ütközéseket (két különböző bemenet ugyanazt a hash-t állítják elő) gyorsan megtalálják. Az MD5 továbbra is megjelenik a régebbi rendszerekben és a nem biztonsági ellenőrző összegeknél, de soha nem a hitelesítésnél vagy a jelszavaknál. Használja a Hash generátor az MD5 kimenet megtekintéséhez, de bármiért nyúljon az SHA-256-hoz.

SHA-256: a jelenlegi szabvány

SHA-256 (az SHA-2 család része) 256 bites hash-t állít elő, és a modern választás a kriptográfiai munkákhoz. A legtöbb alkalmazáshoz elég gyors, ellenáll az ismert támadásoknak és széles körben támogatott. Majd meglátod SHA-256 blokklánc-rendszerekben, tanúsítvány ujjlenyomatokban és jelszókivonatokban használják. A Hash generátor támogatja az SHA-256-ot alapértelmezett algoritmusként.

HMAC: ha titokra van szüksége

A sima hash függvény determinisztikus – bárki ellenőrizheti a hash-t. An HMAC (Hash-alapú üzenet-hitelesítő kód) titkos kulcsot kever, így csak az tudja előállítani a megfelelő hash-t, aki ismeri a kulcsot. Ez elengedhetetlen az API-k számára: a szerver és a kliens megoszt egy titkot, mindegyik aláírja vele üzeneteit, a címzett pedig ellenőrzi, hogy az aláírás egyezik-e. Ez azt bizonyítja, hogy az üzenet az igényelt feladótól érkezett, és nem manipulálták. A HMAC generátor lehetővé teszi ennek tesztelését a saját titkos kulcsával.

Mikor kell alkalmazni az egyes megközelítéseket

  1. Használjon sima SHA-256 fájlok integritásának ellenőrzéséhez, jelszókivonatoláshoz (sóval és lassú funkcióval, mint például a bcrypt) és nyilvános ujjlenyomatvétellel.
  2. Használat HMAC API-kérés aláírásához, webhook-ellenőrzéséhez és minden olyan forgatókönyvhöz, amelyben mindkét fél megoszt egy titkot.
  3. Kihagyás MD5 bármire, ami biztonsággal kapcsolatos. Csak akkor használja, ha olyan régebbi rendszerekkel kommunikál, amelyek ezt igénylik.

Adatai az eszközön maradnak

Mind a Hash generátor és HMAC generátor teljes egészében a böngészőjében futhat. A szöveg soha nem kerül elküldésre a szerverre – helyileg kivonatolja az eszközön, az oldal betöltése után offline is működik, és nem igényel fiókot vagy bejelentkezést. Ez azt jelenti, hogy biztonságosan kivonatolja az érzékeny információkat, például az API-kulcsokat teszteléshez anélkül, hogy kitenné őket az internetre.

Bónusz: mérje meg az entrópiát

Ha titkokat vagy jelszavakat generál, a Shannon entrópia A számológép megmutatja, hogy mennyi véletlenszerűség (és ezáltal biztonság) van egy karakterláncban. A magasabb entrópia azt jelenti, hogy nehezebb kitalálni. Használja annak ellenőrzésére, hogy a generált titkok valóban véletlenszerűek-e, mielőtt telepítenék őket.