További Szoftver cikkek
Milyen a jó jelszó? Hosszú, tartalmaz kis- és nagybetűket, számokat, lehetőleg nincs benne értelmes szó, és nehezen jegyezhető meg. Például "Fgpyyih804423" - erre a legháklisabb rendszergazda is jó eséllyel elismerően bólintana, annak biztos tudatában, hogy napokba, talán hetekbe telne egy kódtörő programnak, mire megfejti. Képzeletbeli rendszergazdánk valószínűleg heves csuklással reagálna az interneten szabadon elérhető Ophcrack programra, ami ezt a jelszót pontosan 160 másodperc alatt törte fel a Coding Horror blog tesztjében. Mi is kipróbáltuk: nálunk 190 másodperc kellett programnak a Windows XP adminisztrátor-jelszavának megfejtéséhez. (A pánikhangulat elkerülése végett: csak azokat a jelszavakat lehet így feltörni, amik a saját gépünkön tárolódnak; amikkel például weboldalakra lépünk be, azokat a szerver tárolja, tehát nincsenek veszélyben).
Hogyan lehet ilyen pokolian gyors egy kódfejtő program? Úgy, hogy nem a nyers erő útján, minden lehetséges karakterkombinációt kipróbálva megy neki a védelemnek. Pontosabban igen, de nem a védelem első vonalát ostromolja, hanem a másodikat. Hogy ezt megértsük, látnunk kell, hogyan tárolja az operációs rendszer a jelszavakat.
Itt a jelszó, hol a jelszó?
Minden jelszónak valahol ott kell lenni a gépen, hiszen valamivel össze kell hasonlítani a beírt jelszót, hogy megtudja a rendszer, jót írtunk-e be. A szivárványtábla (rainbow table) módszer, amit az Ophcrack is használ, ezt az adatbázist támadja meg. Az itt tárolt jelszavak természetesen kódolva vannak, méghozzá egy olyan, hash-nek nevezett eljárással, ami csak egy irányban működik: a hashelt jelszóból nem lehet előállítani az eredetit. A szivárványtábla nem más, mint egy hatalmas adatbázis, ami különféle karakterkombinációkból hash eljárással készült kódokat tartalmaz - ezeket hasonlítja össze a program az operációs rendszerből kibányászott kódokkal. Ha megvan az egyező hash-pár, megvan a jelszó is.
Semmi nincs ingyen
A szivárványtábla elkészítése szörnyű idő- és erőforrásigényes folyamat, de ha egyszer készen van, a kódok összehasonlítgatása már gyorsan megy. A legkisebb szivárványtábla ingyen hozzáférhető a neten, közel 400 MB a mérete, és legfeljebb 14 karakter hosszú, betűket és számokat tartalmazó jelszavakat tör, 99 százalékos eséllyel. A nagyobb szivárványtáblák már pénzért szerezhetők be, a fullextrás közel 9 gigabájtos (ami a gépünkben is legalább ennyi memóriát igényel), megkülönbözteti a kis- és nagybetűket, ismeri a speciális karaktereket is, és 240 dollár az ára.
Ha hozzáférünk a rendszerfájlokhoz, az Ophcrack minden jelszót képes kibogarászni belőlük, amit hash módszerrel titkosítottak. A dolog működik hálózaton keresztül is: ha sikerül belépnie egy távoli gépre (vagyis az adminisztrátor jelszó már megvan), ott már a gép összes felhasználójának összes jelszavát megszerezheti a szivárványtábla-hacker. A kulcs tehát az, hogy valamilyen szintű hozzáférés szükséges a feltörendő géphez - akár az, hogy fizikailag odaülünk elé, akár az, hogy egy jelszót már tudunk.
Mit tehetünk?
Vége mindennek? A jelszavaink óhatatlanul is hackerek birtokába jutnak és visszatérhetünk a papírhoz meg a ceruzához, különben lőttek a fontos adatainknak?
Ennyire azért nem súlyos a helyzet. Először is, a töréshez meg kell szerezni a jelszóhash-t, amihez pedig hozzá kell férni a Windows rendszerfájljaihoz. Az extrahosszú jelszavak, és a speciális karakterek alaposan megnehezítik a törést: egy % karakter odabiggyesztése a jelszó mögé máris kiakasztotta a legkisebb szivárványtáblával dolgozó törőprogramot (a kilencgigásnak már ez sem lett volna akadály). A legmegnyugtatóbb pedig, hogy a rendszer egyelőre csak a Lan Manager hash algoritmussal bír el, a Windows Vista és a Windows Server 2008 pedig már az eggyel modernebb, NT hash algoritmussal titkosít. Igaz, előbb-utóbb elkészülnek ehhez is a megfelelő szivárványtáblák.
Védelmet jelenthet még a Salt algoritmus, ami egy véletlenszerűen generált karaktersorral (ami tulajdonképpen egy második jelszó, csak a felhasználó sem tud róla) kombinálja az eredeti jelszót a kódolás előtt, a feltöréséhez szükséges időt a sokszorosára emelve (mivel így a jelszó garantáltan extrahosszú és a leghülyébb karakterekkel megszórt lesz). Ha ezt beleépítik a jelszóellenőrző rendszerekbe, egy ideig megint nyugtunk lesz. Addig igyekezzünk úgy alakítani a dolgainkat, hogy senki ne férhessen a rendszerfájljainkhoz.