A három teherhordó tulajdonság az elsőkép-ellenállás (a kivonat nem árul el semmit a bemenetéről), a második előkép-ellenállás (egy adott bemenethez nem található ugyanolyan kivonatú másik bemenet) és az ütközésállóság (egyáltalán nem található két ugyanolyan kivonatú bemenet). Az olyan algoritmusok, mint az MD5 és az SHA-1, megbuktak ezekben a tulajdonságokban, és ott, ahol számítanak, nem szabad őket használni.
A hashelés a biztonság egész területén megjelenik: integritás-ellenőrzésekben és manipulációs bizonyítékokban, a teljes üzenet helyett kivonatokat aláíró digitális aláírásokban, tartalomcímzésben, és — tudatos többletmunkával — a jelszótárolásban. A jelszavakhoz sózott, számításigényes függvények kellenek, mint a dedikált jelszó-hash algoritmusok; egy gyors, általános célú hash ehhez a konkrét feladathoz rossz eszköz.
Legfontosabb pontok
Integritási használatAz egyező kivonat megerősíti, hogy a tartalom a kivonat kiszámítása óta nem változott — feltéve hogy magát a kivonatot megbízható csatornán szerezték be.
JelszótárolásA gyors hashek helyett sózott, lassú hash-kivonatokat tároljon; a só legyőzi az előre számítást, a költség pedig a tömeges brute-force-ot.
AlgoritmusválasztásHasználjon aktuális, jóváhagyott családokat (SHA-2, SHA-3), és biztonsági szempontból kezelje az MD5-öt és az SHA-1-et feltörtnek — csak nem ellenséges ellenőrzőösszegekhez maradnak elfogadhatóak.
Fontos korlátA hash csak azt bizonyítja, hogy két bemenet egy függvény alatt, egy időpontban egyezett. Nem ad bizalmasságot — egy kitalálható bemenet kivonata jelöltek kipróbálásával triviálisan visszafordítható —, és egy nem megbízható csatornán számított hash a tartalommal együtt kicserélhető, amelynek kezeskedik.