A jelszóválasztás nem is olyan könnyű feladat, mint hinnénk

2019. április 16. kedd, 10:02 • hirado.hu
A jelszavak feltörésének tudománya és művészete folyamatosan fejlődik, ahogyan a küzdelem is a webtervezők és hekkerek között.

Twitter megosztás
Cikk nyomtatása

Ha például egy rendszer hat kis betűből álló jelszót kér tőlünk, a lehetséges jelszavak száma máris 26 a hatodikon, vagyis 308 915 776. Az első betű esetén 26 választási lehetőségünk van – mivel ékezeteket nem használhatunk –, majd a másodiknál is, és így tovább a hatodikig.

A második példa esetén a hekkerek számára  kétmillió évig tartana egy számítógépen végigfuttatni  az összes lehetőségen. Létezik egy formula, amellyel képesek vagyunk kiszámolni, mekkora tárhelyen férne el ennyi lehetséges jelszó. N kettes alapú logaritmusának – ahol N az összes lehetséges variáció – egész alakját vesszük és hozzáadunk egyet.
 
Tehát a hat karakteres példa esetén log2(308 915 776) = 28.202638…, amelyből a tizedesjegyek elhagyhatók, így jön ki a 28. Ehhez hozzáadunk egyet, és így kapjuk meg a 29 bit eredményt. A 12 karakteres példánál ugyanez az érték 75 bit .
 
A French National Cybersecurity Agency (ANSSI), vagyis a Francia Nemzeti Kiberbiztonsági Ügynökség azt ajánlja, hogy a teljes biztonság érdekében a lehetséges jelszavaknak legalább 100 bit tárhelyet kell foglalniuk. Meghatározásuk szerint választásunknál a 64 bitesek a nagyon gyenge jelszavak, 64 és 80 bit között találhatók a gyengék, 80 és 100 között pedig a közepesen erősek.
 
Az ANSSI határozata szerint valóban erős jelszóhoz 16 karakter szükséges, amelyek mindegyikét 200 karakterből álló készletből kell kiválasztanunk. Ilyen hosszú jelszót azonban már aligha tudunk fejben tartani. Éppen ezért a rendszertervezők kisebb igényeket támasztanak a felhasználók felé, és elfogadják a meghatározás szerinti kicsit vagy közepesen erős jelszavakat is.
 
Vannak más módjai is annak, hogy megakadályozzuk jelszavunk feltörését. A legegyszerűbb az, amelyet a bankkártyák védelmére is alkalmaznak. Három sikertelen próbálkozás után a rendszer blokkolja a hozzáférést.
 
 
Fegyverként használt szótárak

A támadók viszonylag gyakran megszereznek titkosított jelszavakat egy adott rendszerből. Ha a trükk azonosítatlan marad, a betolakodónak napok vagy akár hetek is rendelkezésére állhatnak a tényleges belépési jelszavak megszerzésére.
 
A jelszavainkat jellemzően nem véletlenszerűen választjuk, nem tetszőleges karakterláncokat, hanem sokkal inkább könnyen megjegyezhető szavakat részesítünk előnyben. Mindez sebezhetővé teszi azokat az úgynevezett szótártámadásokkal szemben. A támadók a leggyakrabban használt jelszavak listáját – szótárát – végigpróbálva kísérlik meg feltörni fiókjainkat.
 
Ez a módszer figyelemreméltóan jól működik, mivel az emberek egyszerű szavakat, vezetékneveket, keresztneveket és rövid mondatokat szoktak választani, amely egyértelműen korlátozza a lehetőségek számát. Négy jegyből álló kódok választásánál – mint amilyen a pin- vagy a sim-kód – gyakran a könnyebben megjegyezhető struktúrákat alkalmazzuk, mint például a 13 ismétlésével a 1313.
 
Így válasszunk jelszót

A megfelelően tervezett Weboldalak elemzik az új jelszavakat a létrehozásuk alkalmával és elutasítják azokat, amelyek túl könnyen feltörhetők. A nyilvánvaló tanács tehát, hogy véletlenszerűen válasszuk ki jelszavunkat. A Pwned Passwords webes eszköz segítségével ellenőrizhetjük, hogy vajon meghekkelték-e már valamelyik jelszavunkat. Az eszköz adatbázisa több, mint 500 millió jelszót tartalmaz, amelyek különböző támadások után kerültek bele.
 
Nem könnyű feladat olyan könnyen megjegyezhető jelszót kitalálnunk, amelyet az adatbázis nem tartalmaz. Eredetinek lenni még így sem lehetetlen. Ha újdonságnak vélt jelszót találtunk ki, elég csak leellenőriznünk az eszközzel, hogy törtek-e már fel valamilyen fiókot azzal a jelszóval.

Mindegyik betűnél szabad a választás, ismételhetjük is magunkat.  Ha 12 karakteres jelszót választunk, amely kis- és nagybetűt, valamint tíz számot vagy szimbólumot is tartalmaz, akkor a lehetséges jelszavak száma több mint 62 billiárdszorosa az első eset lehetőségeinek – írja a Scientific American.
 

Tanácsok a weboldalak számára

A weboldalak is számos szabályt alkalmaznak. A National Institute of Standards and Technology, vagyis a Nemzeti Technológiáért és Szabványokért Felelős Intézet nemrég nyilvánosságra hozott közleményében azt javasolja számukra, hogy a szótárakat az új felhasználók jelszavainak szűrőjeként használják.
 
A szabályok közül, amelyet biztosan be kell tartania egy jó webszerver-tervezőnek, az egyik legfontosabb az, hogy ne tároljon jegyzetet a felhasználónevekkel és jelszavakkal azon a számítógépen, amelyet a weboldal működtetésére használ.
 
Az egyik lehetséges megoldás a jelszavak titkosítása a szerveren. Ez a módszer működik, de két hátránya is van. Az egyik, hogy minden belépés alkalmával vissza kell fejteni a jelszót, amely nem praktikus. A másik – ennél súlyosabb probléma –, hogy ez a visszafejtő kulcsok tárolásával jár a weboldalt irányító szerveren. Ebből adódóan a hekkerek képesek azonosítani, és ez visszavezet az eredeti problémára.
 
Jó megoldás lehet az „ujjlenyomat” és a „sózás” használata

Egy jobb eljárás a jelszavak tárolására a tördelő vagy sűrítő funkciók alkalmazása, amely „ujjlenyomatokat” hoz létre. Egy fájl mindegyik adatára – amelyet jelöljünk F-el – létrehoz egy ujjlenyomatot az adott funkció. A h(F) ujjlenyomat egy az F-hez kapcsolódó meglehetősen rövid szó, de olyan módon lett létrehozva, hogy lehetetlen a h(F)-ből az F-t kikövetkeztetni. Az F-ből könnyű h(F)-t létrehozni, de visszafelé gyakorlatilag lehetetlen. Ezekkel a módszerekkel tehát biztonságosan lehet tárolni a jelszavakat egy számítógépen.
 
Még így sincsen üzembiztos megközelítés, ahogy azt a fontos oldalak hekkeléséről szóló beszámolók is kiemelik. Például 2016-ban egymilliárd felhasználói fiókot tartalmazó adatbázist loptak el a Yahoo!-tól.
 
A magasabb fokú biztonság érdekében az úgynevezett sózás módszerét alkalmazzák, hogy megakadályozzák a hekkereket a felhasználónév-ujjlenyomat párok listájának hasznosításában. Az egyedi eljárás biztosítja, hogy ha két felhasználó ugyanazt a jelszót választja, akkor is különböző ujjlenyomatokat kapjanak.
 
A szerveren lévő lista így három elemet fog tartalmazni: a felhasználónevet; az ujjlenyomatot, amit a só jelszóhoz adása után származtatnak; és magát a sót – a jelszóhoz adott véletlenszerű karaktereket. Amikor a szerver ellenőrzi a beírt jelszót, hozzáadja a sót, kiszámítja az ujjlenyomatot és az eredményt összeveti az adatbázissal. Ez a módszer még gyenge jelszó esetén is jelentősen megnehezíti a hekkerek dolgát.