Ismét egy ismeretterjesztő cikk következik.
Sokszor hallani, hogy ne válasszunk túl egyszerű jelszót. De mégis, mi számít túl egyszerűnek, és miért baj az, ha az a jelszavad, hogy password, nem pedig az, hogy Pa55W0rD?
Ahhoz, hogy ezekre a kérdésekre válaszoljunk, induljunk el egy újabb kérdéssel: hogy lehet az, hogy (állítólag) még a bankon belül sem tudja senki a jelszavamat? Akkor mégis hogyhogy csak az én jelszavammal lehet belépni az internetbankba, ha a bankban sincs tárolva egyetlen adatbázisban sem a jelszavam?
A megoldás kulcsa a hash függvény. Hogy ezek pontosan mit is csinálnak, annak a matematikai részleteibe ne menjünk bele, mert én sem igazán értem, de a lényeg az, hogy ezek olyan függvények, amik az egyik irányban viszonylag gyorsan kiszámolhatók, az inverzét viszont rendkívül hosszú ideig tartana kiszámolni. Miért jó ez?
Tegyük fel, hogy az a jelszavad, hogy "password" (ami egyébként az egyik leggyakoribb jelszó a világon!), és az MD-5 hash függvényt használja az internetbank. Amikor te beállítod, hogy az legyen a jelszavad, hogy "password", akkor az internetbanki rendszer kiszámolja ennek az MD-5 hash-ét, ami az, hogy "5f4dcc3b5aa765d61d8327deb882cf99", és ezt menti el az adatbázisba. Amikor te be akarsz lépni az internetbankba, és megadod a jelszavad, akkor megint kiszámolja a rendszer a megadott jelszó MD-5 hash-ét, és ha az megegyezik azzal, ami az adatbázisban van, beenged, ha nem egyezik meg, nem enged be. Viszont a bankban senki nem tudja, hogy mi a jelszavad, csak azt, hogy mi a jelszavad MD-5 hash-e. Akkor miért baj az, ha az a jelszavad, hogy "password"?
Azért, mert a világ tele van hackerekkel, akik megpróbálják visszafejteni a hash-eket. Igen ám, de mint mondtam, ez rendkívül időigényes lenne. Ezért aztán ezt úgy csinálják, hogy fognak egy szótárt, és az összes létező szónak, számnak, és ezek gyakori kombinációjának kiszámolják a hash-ét. De nem csak kiszámolják, sokan közzé is teszik a neten az így létrejött hash-szótárakat. Így aztán, ha rákeresel a Google-on arra, hogy "5f4dcc3b5aa765d61d8327deb882cf99", már az első találatból kiderül, hogy ez a "password" MD-5 hash-e.
Tehát, ha szeretnéd megtudni, hogy nem túl gyenge-e a jelszavad, próbáld ki, hogy kiszámolod az MD-5 hash-ét (ehhez rengeteg MD5 hash generátor oldal áll rendelkezésre, pl. ez), majd rákeresel a kapott hash-re a Google-ban. Ha kapsz találatot, akkor javaslom, hogy sürgősen cseréld le a jelszavad. OK, de akkor hogyan lehet könnyen megjegyezhető, mégis biztonságos jelszót készíteni?
Az egyik lehetőség, ha a példaként említett "Pa55W0rD" mintájára fogsz egy szót, és a benne szereplő betűk egy részét az azokra hasonlító számokra cseréled, néhány betűt pedig nagybetűsre cserélsz. A "Pa55W0rD" MD-5 hash-e "3e18e11ffca9c2c7e6f4d53097cf810f", és erre már nem ad találatot a Google. (Update 2016.03.03: Most már erre is ad találatot a Google, konkrétan ezt az oldalt.)
A másik lehetőség, ha fogsz egy szöveget, pl. egy verset, de csak a szavak kezdőbetűit írod le, és esetleg még a végére írsz egy számot. Pl. az Anyám tyúkja alapján egy 8-betű+2 számból álló jelszó: EmaktkAs01. (Ennek a hash-ére sem ad találatot a Google.) Ez a módszer akkor igazán hasznos, ha rendszeresen változtatni kell a jelszót, mert folyamatosan mehetsz tovább a versben.
Végezetül, ha azt hiszed, hogy rajtad kívül úgysem jut eszébe senkinek az a szó, amit jelszónak adtál, akkor valószínűleg tévedsz, az egyik leggyakoribb jelszó az, aminek a hash-e "cad77c7dffc10fcacc77ff0690f2897a". A Google-ban megtalálod, mi az. :-)