Mi az a hash? MD5, SHA-256 és amikor valóban szüksége van HMAC-ra
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
- Használjon sima
SHA-256fá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. - Használat
HMACAPI-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. - Kihagyás
MD5bá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.