M!®3 jó az 3яőS jel$zó?
2019. február 02. írta: Geek Peet

M!®3 jó az 3яőS jel$zó?

A nemrégiben feltöltött Apple bakival kapcsolatos bejegyzésem alatt élénk diskurzus bontakozott ki arról, hogy miért kellenek erős jelszavak egyáltalán, miért nem hagyják a rendszergazdák végre békén szegény felhasználókat és engedik a legtriviálisabb jelszavak használatát. Ennek kapcsán előkerestem egy 2014-es Microsoft tanulmányt, amiben már akkor arról értekezik a szerző, hogy mi a helyzet az erős és nem erős jelszavak szükségességével egy esetleg adatszivárgás esetén, és hogy mit érdemes egy rendszeradminisztrátornak tennie a biztonság érdekében. 

anon.jpg

Kép forrása: Unsplash

Mire hajtanak a hackerek?

Általában az információra. Ennek van manapság a legnagyobb értéke, ezért törnek fel és lopnak el adatbázisokat. Ezt megszerezhetik szoftveres, hardveres vagy fizikai támadás során, sőt, akár emberi manipulációval is. Az embereknek általában a szoftveres ugrik be rögtön, ha hackerekre gondol, pedig az adathalászatnak több módja is van. Emellett a jelszavak feltörése megint csak egy része a szoftveres próbálkozásoknak, hisz a hálózaton vagy közvetlen a felhasználón keresztül is megpróbálhatják egész egyszerűen ellopni a jelszavakat.

A Verizon minden évben – immár 11 éve – elkészít egy kimutatást az előző évből, egy adatszivárgási vizsgálati jelentést. Ez 2018-ban 53000 ismert adatszivárgás alapján készült, ami azért már elég nagy szám ahhoz, hogy reprezentatív következtetéseket vonjunk le belőle. A riport elég hosszú, ráadásul fizetős, de a lényeget mindenki megnézheti itt, én ennek is csak egy töredékét szeretném bemutatni. Ezek alapján a feltörések 76%-a esetén valamilyen anyagi ellenszolgáltatás reményében vágtak bele a nagy kalandba, és nagyjából ilyen arányban (73%) követték el külsősök. A leggyakrabban egyébként a ransomware-ek vagyis a zsarolóprogramok jártak sikerrel a maguk 39%-ával. Iparáganként változik a fenyegetés formája, de az mindenhol megfigyelhető, hogy a rendszerek korrumpálása percekbe, esetenként csak másodpercekbe telik. Ami viszont még ennél is ijesztőbb, hogy a cégek 68%-a hónapokig észre sem veszi, hogy valaki feltörte a rendszerüket, sőt gyakran nem is nekik tűnik fel, hanem egy harmadik félnek, a hatóságoknak, vagy ami a talán a legrosszabb: a felhasználóknak.

Jelszavak feltörése

A jelszavakat – jobb esetben – titkosított fájlokban, úgynevezett hash fájlokban tároljuk. Ezek nagyjából úgy keletkeznek, hogy egy matematikai formula segítségével egy megadott jelszó karaktereit egy véletlenszerű karaktersorozatra cserélik, és később ezt fogják tárolni és összehasonlítani azzal, amit a felhasználó belépéskor megad. Ha ugyanazt a jelszót adjuk meg, a hash ugyanaz lesz, de ha akár csekély mértékben is eltérünk tőle, akkor már gyökeresen más végeredményt kapunk. Ha egy jelszó hash-t megszerez valaki, akkor az már jó eséllyel vissza is fejthető. Egy 8 karakterből álló jelszót, amiben van kis- és nagybetű valamint szám is és a magyar ábécé betűiből áll, 5 óra alatt törnek fel egy arra alkalmas programmal. Drasztikusan javul a helyzet abban az esetben, ha növeljük a karakterek számát, illetve az is nagy szerepet játszik, hogy a hash készítése során milyen függvényt használtunk.

Míg régebben a visszafejtés hosszú-hosszú időt vett (volna) igénybe, az informatika fejlődésével ez az idő már a töredékére csökkent, mivel a számítógépek sokkal több számítást képesek másodpercenként elvégezni, ráadásul a neten egy csomó nyílt forráskódú program is elérhető, nem kell a régi módszereket alkalmazni vagy épp komoly szakértelemmel bírni. Mivel az emberek többsége nem fog és/vagy tud hosszú, értelmetlen karaktersorozatokat megjegyezni, hanem adott szavakat használnak, ezért a feltörés ideje csökken.

Online támadások

Az online támadások folytán weboldalakra próbálnak a hackerek belépni valaki más felhasználónevével és jelszavával. A támadások ezen formája eléggé gyakori, mert számos olyan adatbázis létezik, ami a leggyakrabban használt jelszavakat tartalmazza, amiket lefuttatni egy kifejezetten erre a célra fejlesztett programmal vagy scripttel egy adott rendszeren nem egy nagy feladat. Ezek a programok ráadásul ismerik még azokat a trükköket is, amiket az emberek használnak arra, hogy a karakterek lehetőleg felismerhetetlenek legyenek, tehát felejtsük el az ’e’ 3-ra cseréjét vagy az ’a’ helyett a @-ot, mert nem mi vagyunk az elsők, akiknek ez eszébe jutott és a Facebookon terjedő idióta „zseni vagy, ha ezt el tudod olvasni” kampányok ígéretével ellentétben, egy kicsit intelligensebb általános iskolás is simán kitalálja, nemhogy egy erre szakosodott bot.

Persze ezeknek az online támadásoknak vannak korlátai, tehát egy támadó sem próbálkozhat korlátlan alkalommal, egy-egy próbálkozást a rendszerek fenntartójának észre kell vennie, mert több ezerszeresére nőhet ezzel a belépési események száma az átlagos felhasználás mértékénél. Ha meg nem is tűnik fel, akkor összeomlik a rendszer, mert nem fogja bírni ezt a hatalmas forgalmat. Emellett egész nyugodtan kijelenthetjük, hogy egy mezei Facebook user accountjának a feltörése egyszerűen nem éri meg a fáradságot, én legalábbis biztosan nem vagyok kíváncsi Jóska-Pista levelezésére a hétvégi sörözésről, bár az is igaz, hogy nem mindenki ilyen nemtörődöm, mint én.

Egy kis matematika

A Microsoft dokumentuma szerint egy online támadással szemben álló jelszónak 1 millió próbálkozást kell tudnia visszaverni, nem többet. Erre már egy öt karakteres random jelszó is képes, tehát mondjuk ez a generált jelszó: 9xU"x is hónapokig feltörhetetlen lenne. Ezzel nagyjából kijelenthetjük azt, hogy ha egy oldal tulajdonosa ne adj isten szeretné szuper-biztonságossá tenni az oldalát, akkor annyi dolga van, hogy korlátozza a bejelentkezések számát mondjuk óránként ötre, és voilá, lehet próbálkozni, még a hacker unokája is beleőszül, mire eljut az 1 millió próbálkozásig.

Apró szépséghibája, hogy ugyanannak az öt karakteres jelszónak esélye sincs egy offline támadás esetén, ahol a több hónapos online védettség után mindössze 1 ezredmásodpercig bírná. Az offline próbálkozások esetén a fenti egymilliónál már jóval több próbálkozásra van szükség a biztonsághoz, ezt nagyjából 100 trillióra becsülik. Egy offline támadást persze marha nehéz kivitelezni, mert nagyjából minden biztonsági védőhálót meg kell tudni hozzá kerülni, mindezt észrevétlenül, és ha ez sikerül, akkor is van egy időablak, míg próbálkozhat.

Innentől minden a tároláson múlik. A fájl lehet sima szövegfájl, ebben az esetben nem szükséges feltörni, hisz ott van a lista előttünk. Beszélhetünk hash fájlról, amit direkt módon nem lehet ugyan olvasni, de az ún. szivárványtábláknak köszönhetően gyorsan visszafejthetők (a LinkedIn esetén például az ilyen formán tárolt jelszavak 90%-ánál 6 nap alatt sikerült ezt megtenni). Ha nem pusztán hash függvényt alkalmazunk, hanem annak a salted, sózott verzióját (amikor egy jelszó végére adunk egy kis sót, vagyis egy adott karaktersorozatot hozzáadunk még hash-elés előtt), akkor már számít, hogy az adott jelszó mennyi próbálkozásnak tud ellenállni. A negyedik, legbiztonságosabb mód, ha a fájl reverzibilisen titkosított, amihez már ismernünk kell a titkosítás során használt kulcsot. Amennyiben ezt megszerzi a hacker, újfent szükségtelen a tippelgetés, mert a kulccsal egyszerűen visszafejti és máris megszerezte a jelszavakat. Ha viszont nincs meg a kulcsa hozzá, akkor esélytelen feltörni még a legegyszerűbb jelszavakat is.

Emellett ott van még az is, hogy növelni a jelszavak bonyolultságát egyszerűen szükségtelen ilyen esetekben, mert szignifikánsan nem növeli a feltörés nehézségét. A felhasználói oldal tehát közel sem tud annyit tenni az adatai biztonsága érdekében, mint az üzemeltető, ahol viszont sajnos általános jelenség, hogy a jelszavakat helytelenül vagy nem a legújabb biztonsági előírásoknak megfelelően tárolják.

De hát akkor mit használjak?

A legújabb ötletek szerint már nem jelszavakat érdemes használni, hanem úgynevezett passphrase-eket, vagyis jelmondatokat, és érdemes rangsorolni azt is, hogy az adott oldalon történt regisztrációnk mennyire fontos számunkra. A jelmondatnál előnyt jelent a mezei random generált jelszóval szemben, hogy könnyű megjegyezni, elég hosszú, és nehezebb is kitalálni, mint egy egyszerű szót. 

A rendszergazdák által előírt jelszó policyk sok esetben tehát egyszerűen nem működnek, feleslegesen terhelik vele a felhasználókat. Ha az üzemeltetők a jelszófájlokat megfelelően tárolnák és a rendszerük feltörését időben észrevennék, hatékonyan és gyorsan reagálnának, akkor a felhasználók ellennének akár egy 4 számjegyes jelszóval is. Ami miatt ez nem jó ötlet, amit fent is vázoltam: nem pusztán brute force jelszófeltörés létezik. A legegyszerűbb jelszavak használata egyszerűen kerülendő, mert nem tudhatjuk, hogy az adott weboldal milyen biztonsági előírásokkal tárolja a jelszavainkat, illetve azt sem, hogy a mellettünk ülő kolléga mikor dönt úgy, hogy belép a gépünkbe, míg mi ebédelni vagyunk. Még a legbiztonságosabb módszerek mellett is előfordulhatnak bakik, hisz sokszor épp az emberi tényező az, ami miatt kiszolgáltatottakká válunk, hiába teszünk meg mindent a saját és adataink biztonsága érdekében.

biztonsag.jpg

Kezeld a jelszavad úgy, mint a fehérneműdet: ne oszd meg másokkal, változtasd rendszeresen, ne tartsd az asztalon!

A bejegyzés trackback címe:

https://geekgyik.blog.hu/api/trackback/id/tr4114602484

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

kommentEmber 2019.02.02. 10:26:10

Szerintem nem a felhassználók felelőtlenek, hanem a rosszul tervezett programok kényszerítik őket lehetetlen helyzetbe.

Erős jelszó - gyenge jelszó: miért nem korlátozzák a programok a jelszó próbálkozások gyakoriságát eleve kb. 5-10 másodpercre? Egy emberi felhasználó ennél sűrűbben nem tudja a jelszót újra begépelni. Néhány téves próbálkozás után exponenciálisan lehetne növelni az időt. Ha ez így lenne, lehetne bármilyen gyors kompjutere a hackernek, nem érne vele semmit.

Jelszó változtatás előírása 6 hónaponként: ez a halálom. Megromlik a jelszó, ha sokat áll? Egy átlagfelhasználónak rengeteg különféle fontosságú jelszava lehet. Féltucat nagyon fontos: bankszámlák, értékpapírkezelők, ügyfélkapu, mail account, facebook. Néhány tucat közepes: pl. webshopokhoz. Sok-sok kevésbé fontos, pl. regisztráció honlapok használatához.
Ennyit lehetetlen megjegyezni, még kulcsmondatokkal is. Három jelszót még fejben lehet tartani a különböző fontossági szintekhez. Kicsit meg kell variálni pl. az intézmény név első (vagy utolsó) két betűjének hozzáadásával.

És akkor jön az egyik site, hogy változtasd meg a jelszavad! Az összeset az adott szinten? Innetől lehetetlen fejben tartani a jelszavakat. Le kell írni egy file-ba vagy jelszókezelőt kell használni. Ez növeli a biztonságot? A többség előbb-utóbb eljut oda, hogy a böngészőben letárolja a jelszavakat. És nem ő tehet róla, hanem a nem felhasználóbarát környezet.

Nazareus 2019.02.03. 15:04:43

@kommentEmber: "Erős jelszó - gyenge jelszó: miért nem korlátozzák a programok a jelszó próbálkozások gyakoriságát eleve kb. 5-10 másodpercre?" - erröl volt szó a cikkben: online véd, de offline próbálkozás ellene nem.

Nazareus 2019.02.03. 15:07:57

@kommentEmber: "Jelszó változtatás előírása 6 hónaponként: ez a halálom. Megromlik a jelszó, ha sokat áll? "

Tulajdonképp igen. Sajnos az emberek hajlamosak ugyanazt a jelszót vagy néhány jelszót használni sok helyen és emiatt ha egy helyröl kikerül, akkor kapásból sok helyre be lehet lépni vele. Még én is sokszor használom ugyanazt a jelszót különbözö site-okon, igaz megvan a maga logikája: egy olyan site, ahova nem vagy ritkán térek vissza, simán mehet egy gyenge jelszóval. A fontosabb site-okat meg más jelszóval védem. És igen, jelszókezelöt kell használni, van néhány száz jelszavan... és a jelmondatokkal is egyetértek: könnyebb visszafejteni a "%!fgj54" jelszót, mint a "KiskacsaFürdikVilágoskékTóban" jelszót. És melyiket könnyebb megjegyezni?

midnightcoder2 2019.02.03. 20:02:02

Ha neked már offline támadást tudnak végrehajtani, az többé-kevésbé azt jelenti, hogy benn vannak a rendszeredben. Ha pedig benn vannak a rendszeredben, akkor a jelszavad kb. a legkevésbé érdekes dolog, amihez hozzáférhetnek.

midnightcoder2 2019.02.03. 20:04:23

@Nazareus: Minél gyakrabban kell változtatni és minél macerásabb jelszót kell használni, a userek annál elõbb írják ki a monitor mellé cetlire. Mert hogy senkinek sem az a fõállása hogy 20-25 jelszót menedzseljen párhuzamosan.

Nazareus 2019.02.03. 21:24:27

@midnightcoder2: Igazad van, feltéve, hogy a jelszóhitelesitö azonos gépen van más érzékeny adatokkal. El tudom képzelni, hogy csak hitelesitett jelszóval lehet "beljebb" jutni.

A jelszóváltoztatással is igazad van, ezért kell rávenni a user-eket jelszókezelö program használatára. Ami egy fokkal neheziti a dolgot...

kommentEmber 2019.02.04. 00:46:25

@Nazareus: "...ha egy helyröl kikerül, akkor kapásból sok helyre be lehet lépni vele..."

Bár semmi jelentősége nincs annak, amit itt írunk, de a jelszóváltoztatás kényszere annyira irritál, hogy mondok még egy-két érvet.

A kötelező jelszóváltoztatás milyen védelmet ad az egyik helyről ellopott jelszó esetén? Azt, hogy csak néhány hónapig fogja a hacker használni?

Ezért túl nagy ár az, hogy emiatt nem lehet megjegyezni a jelszavakat Az első hozzászólásomban leírt módszerrel sem.

A jelszó lényege, hogy csak egyetlen helyen legyen meg: a user fejében. A jelszókezelő nem felel meg ennek az elvnek. Emberek írták, semmi sem garantálja, hogy nincs olyan jelszókezelő-utánzat, amelyik kiküldi a netre a jelszavakat.

A jelmondat jó dolog, de annyi jelmondatot, amennyi jelszava van az embernek, nem lehet fejben tartani.

Abzug jelszóváltoztatás!