Hogyan tárolják a szolgáltatók a jelszavaidat?
Minden regisztráció alkalmával meg kell adnod egy jelszót. Valószínűleg ezt már nagyon sokszor megtetted, így nagyon sok szolgáltató tudhatná pontosan, hogy milyen jelszót is használsz. De szerencsére nem tudják, hiszen a jelszavaid nem olvasható formában kerülnek eltárolásra, csupán egy-egy lenyomatot tárolnak belőle.
De mi is az a lenyomat?
A lenyomat, hash vagy más néven ellenőrző összeg lényege, hogy egy adathalmazból egy algoritmus előállít egy véletlenszerűnek tűnő fix hosszúságú szöveget. Ez a szöveg az angol ábécé betűit, valamint számokat tartalmaz. Például, ha egy "A" betűt adsz meg, akkor egy ilyen lenyomat készülhet: 7FC56270E7A70FA81A5935B72EACBE29. Ha pedig egy "B" betűt, akkor ez: 9D5ED678FE57BCCA610140957AFAB571. Látható, hogy teljesen más a kettő, annak ellenére, hogy csak 1 betűt változtatsz és azok is az ábécében egymás mellett szerepelnek.
Az alábbi hash-generátorral kipróbálhatod 4 algoritmus működését.
Visszafelé is működik?
A lenyomatot képző algoritmusok egyirányúan működnek, azaz nem tudják visszaállítani az eredeti adatot. Gondolj bele, hogy egy 500 karakteres szövegből készíthető egy 32 karakter hosszú lenyomat. Azonban a 32 karakterből mondhatni lehetetlen kitalálni/visszaállítani az eredeti, 500 karakteres szöveget. Ezért jó megoldás ezek használata a jelszókezelésben, hiszen a rendszereket üzemeltető szakértők sem ismerhetik meg a jelszavadat.
Miért gond, ha kiszivárog a jelszó lenyomata?
Léteznek úgynevezett szivárványtáblák, amik rengeteg jelszó és lenyomat párost tartalmaznak. Ezek a leggyakrabban használt jelszavakat, értelmes szavakat és különféle kombinációkat tartalmaznak. Így ha a jelszavad 12345678, akkor biztos, hogy egy hackernek pillanatok alatt sikerül visszafejtenie az ehhez tartozó lenyomatot, ha a szolgáltató egy standard hash algoritmust használt.
Akkor egy bonyolult szöveg lenyomata feltörhetetlen?
Igen is és nem is. Még a fejlett hash-algoritmusok is feltörhetőek lehetnek próbálgatásos (brute force) támadással. Viszont könnyű belátni, hogy pl. egy 128 karakter hosszú lenyomat esetén irdatlan sok variációt kellene végig próbálni, ami képtelenség. Azonban a biztonság fokozására több lehetőség is van, melyek közül a legismertebb az úgynevezett sózás. Ekkor véletlenszerű karaktereket adnak hozzá a jelszóhoz, így egy teljesen más lenyomat kerül majd eltárolásra. Az ilyen jelszavak feltörése ellen az általános szivárványtáblák használhatatlanok.
Hogyan működik egy bejelentkezés?
Amikor bejelentkezel egy weboldalra, akkor a jelszavadból generálódik egy lenyomat. Ezt a lenyomatot összehasonlítja a bejelentkezési folyamatot kezelő rendszer a regisztrációkor megadott jelszóból készült lenyomattal. Ha a két lenyomat megegyezik, akkor az azonosításod sikeres.
Konklúzió
A biztonsággal törődő szolgáltatók sosem tárolják olvasható szöveges formában a jelszavaidat. Törekednek arra, hogy minél nagyobb biztonságban legyenek azok. Felhasználói oldalról egy dologban tudsz magadon segíteni, hogy Te is törekszel a biztonságos és jó minőségű jelszó létrehozására, hogy megnehezítsd a hackerek dolgát.