Kormányablak, Ügyfélkapu, magyarorszag.hu, kormany.hu
KORMÁNYABLAK, ÜGYFÉLKAPU - A ZÁRT AJTÓK MÖGÖTT...
(nem hivatalos e-kormányzati témájú oldal)
  
BEMUTATKOZÁS 
E-KÖZIGAZGATÁS 
IT BIZTONSÁG 
  
































  Mottó:
Drifternek igaza volt,
Alma az otthoni gépét
nem védte jelszóval,
így két kattintással már
bent voltak a Messengerben.
/Berg Judit: Drifter - A darknet árnyékában/
2019. február 5.  
 Safer Internet Day 2019: Rumini és a John the Ripper vs. Drifter és a darknet 
   
Ha a Voyager űrszondák aranylemezeire vésett ábrák és zeneszámok 1977-ben a kor lenyomatának számítottak, és emiatt szerepelt köztük Chuck Berry, Louis Armstrong, Mozart, Bach és Beethoven néhány alkotása (ez utóbbi felvételnél a Hubay Jenő hegedűművész által alapított Budapest String Quartet, azaz Budapesti Vonósnégyes is közreműködött), akkor azt hiszem, hogy "Berg Judit: Drifter - A darknet árnyékában" című könyve méltán lehet alkalmas a jelenkori technológia bemutatására (és ehhez kitűnő lektor volt dnet, azaz Veres-Szentkirályi András).

2019. február 5. Biztonságos Internet Nap. Az elnevezés kicsit félrevezető, hiszen nem az internet biztonságosabbá tételéről, hanem inkább az internetet használók biztonságtudatosságáról szól ez a nap. És remélhetőleg az év többi napja is.

A biztonságtudatosság növeléséhez vannak már tananyagok, amelyeket be lehet tenni informatika vagy osztályfőnöki óra tematikájába 7-8. osztályban, de jó, ha ez az ismeretanyag más csatornákon keresztül is felszívható. Éppen emiatt voltam kíváncsi a nemrég megjelent "Berg Judit: Drifter - A darknet árnyékában" című könyvre. Nos, ez a gyerekregény messze komolyabb lett, mint amire számítottam: konkrét szolgáltatások, konkrét technológiák kerülnek benne bemutatásra, amelyeket akár egyből ki is lehet próbálni. Kicsit furcsa is, hogy egy ennyire valós világba, hogy keveredik bele egy mesebeli szál, mert így a célcsoport korosztályát is nehéz megmondani: a kitalált sakkbirodalom inkább a fiatalabbaknak való, de amikor Google Images révén kell hasonló képeket keresni, böngészési előzmények alapján kell nyomozni, távolról kell mobilt feltörni, a Google Maps Street View felületen kell nézelődni, Luhn-algoritmusnak megfelelő bankkártyaszámot kell vadászni, akkor inkább 7-8. osztályosokra gondolnék olvasókként. De a felnőttek is átfogó képet kaphatnak arról, hogy mire képes a minket körülvevő technológia és mit is jelent, ha egy mesterséges intelligencián alapuló rendszernél bekövetkezik a szingularitás...

A könyv azonban messze túlmutat a virtuális világ lehetőségeinek és korlátainak, előnyeinek és hátrányainak bemutatásán, hiszen az óvatosság és kritikus gondolkodásmód a való világban is fontos a napjainkban állandósult "fake news cunami" közepette.

Az írónő egyébként nem először tévedt IT biztonsági területekre: "Berg Judit: Rumini Zúzmaragyarmaton" című könyvében a puccskísérlet áldozatául esett Miklós király, Rumini és társaik a Jégvár legmélyebb pontján levő jégcellában találják magukat. Onnan kijutni, kiszökni csak egy kóddal nyitható jégpáncélos ajtón keresztül tudnak. Miklós király maga is ismeri ennek a kódját, azonban az első próbálkozásnál kiderül, hogy a korábbi jelszó lecserélésre került, azaz a törvényes uralkodó elleni puccsal együtt a hozzáférési jogait is megvonta Rianástorky Jégcsap Hubert. Mit lehet akkor tenni? Ki kell találni az új, ismeretlen kódot! De mit lehet tudni róla? A kód az ABC betűiből és számjegyekből állhat, legalábbis erre utal, hogy ilyen gombok találhatók a jégpáncélos ajtó melletti vezérlőpanelen. Ruminiék csak manuálisan próbálkoztak, de mi tudunk automatizált eszközöket is használni: máris meg lehet adni John the Ripper barátunknak, hogy csak ezen karakterekkel próbálkozzon a brute-force támadás során! Szerencsére azonban a brute-force próbálkozások tere jelentősen csökkenthető, hiszen az új, ismeretlen kódot kitaláló Rianástorky Jégcsap Hubert uraságot kellően jól ismeri már a csapat. Balikó meg is jegyzi: "Hubi úr biztos sietett, hiszen ezer dolga van most. Biztos olyan kódot választott, amit könnyű megjegyezni, de nem könnyű kitalálni. Próbáljunk meg a fejével gondolkozni." Közben kiderül a kódról, hogy pontosan hét betűből és négy számból kell, hogy álljon, azaz még pontosabban lehet megadni John the Ripper barátunk számára, hogy milyen térben keresgéljen. Szerencsére vannak egyéb beépített logikák is, amelyek a keresést segítik: Ruminiék esetében a tippelt kód fordítottjának (visszafelé olvasott változatának) kipróbálása vezetett eredményre. Nem az első és nem is a második, vagy harmadik próba hozta meg a sikert, de végül "a kilincs magától kattant egyet, és az ajtó csendesen kinyílt".

Nézzük meg ezt a folyamatot lépésről-lépésre John the Ripper barátunk szemüvegén keresztül!

Mivel a jelszótörés egy igencsak erőforrás-igényes folyamat, ezért minden ötletet értékelni kell, amivel a kipróbálandó kombinációk számosságát csökkenteni lehet! Jó ötletnek tűnik, ha a "brute-force" módszer, azaz az összes lehetséges karakter végigpörgetése helyett valamilyen "dictionary", azaz szótár kifejezésein megyünk végig, hiszen a humán felhasználók általában valamilyen értelmes, szótári alakként létező fogalmat használnak jelszó gyanánt is. Rianástorky Jégcsap Hubert is így tett "Berg Judit: Rumini Zúzmaragyarmaton" című könyvében, hiszen szótári alakként létező fogalmakat használt a jelszó létrehozásánál - [R]ianástorky [J]égcsap [H]ubert [Z]úzmara[GY]armat [K]irálya - igaz, hogy aztán ezen szavaknak csak a kezdőbetűit használta fel (egyfajta rövidítésként), ami viszont már nem feltétlenül szerepel egy szótárban.

Szerencsére, John the Ripper barátunk intelligens: tudja jól, hogy a legtöbb netes portálon érvényes jelszószabály megkövetel számokat (és/vagy más speciális karaktereket) is egy erős jelszóban. Éppen ezért lehetőség van néhány jelszótörési szabály alkalmazására a john.conf állományban. Rianástorky Jégcsap Hubert is a születési időpontot használta fel, hogy erősítse jelszavát, igaz, évszám helyett a hónapot és a napot adta meg: szeptember 28., azaz "928". Az ismert jelszószabály miatt (7 alfabetikus + 4 numerikus) a születési időpontot ki kellett egészíteni 4 digitesre, így lett "0928" az érték.

Mit is látunk a szótár alapú jelszótörés konfigurációjánál a john.conf állományban? Csak azt a szótári kifejezést veszi figyelembe a listából, ami 8 karakternél rövidebb (de 0-nál hosszabb), megnézi a csupa kisbetűs és csupa nagybetűs változatot (sőt, azt is kipróbálja, ha csak az első karakter kisbetűs vagy nagybetűs), ezen felül kiszámítja a megfordított változatot is, illetve a végéhez hozzábiggyeszt 3 vagy 4 számjegyet is (pl. születési évszámot).

A jelszótörés során az éppen próbált értéken végre kell hajtani a jelszóképző-algoritmust, és a kimenetet össze kell vetni a jelszóállományban (passwd vagy shadow állomány) található értékkel. Ha egyeznek, akkor megvan a jelszó. Ha nem egyeznek, akkor tovább kell folytatni a próbálkozást. Persze, ehhez szükség van egy jelszóállományra is... Ha pedig van jelszóállomány, akkor nem árt, ha ránézésre tudja a támadó, hogy milyen jelszóképző-algoritmussal kell próbálkozni, mert a végrehajtási idő szempontjából ez nem mindegy. Egyáltalán nem mindegy. Ezek a tárolt jelszavak DES algoritmuson alapuló transzformáción mentek keresztül:

Ezek a tárolt jelszavak MD5 algoritmuson alapuló transzformáción mentek keresztül (ld. "$1$"):

És hogy mennyit számít, ha célzottan, adott jelszóképző-algoritmussal történik a jelszótörés? Ha a tárolt jelszavak DES algoritmuson alapuló transzformáción mentek keresztül, akkor a teszt adatok végigpörgetéséhez közel 0 másodperc elegendő.

Ha a tárolt jelszavak MD5 algoritmuson alapuló transzformáción mentek keresztül, akkor a teszt adatok végigpörgetéséhez kb. 4 másodperc szükséges ugyanolyan környezetben. Nagyobb szótár és több szabály esetén látványosabb a különbség, de talán így is látszik, hogy mik az arányok.

Na, de akkor mi a helyzet a nem szótár (dictionary) alapú támadásoknál? Mennyi szamítási idő kell a nyers erőn (brute-force) alapuló támadáshoz? Egy ilyen jelszótörésnél is vannak konfigurációk: a jelen esetben elegendő a nagybetűk (26) és számjegyek (10) készlete, azaz összesen 36 karakterrel érdemes próbálkozni, a jelszószabály alapján (7 alfabetikus + 4 numerikus) pedig a 11 karakteres teret kell végigpróbálni, de gyakorlati okok miatt (meg azért, mert nem béreltem ki az Amazon EC2 cloud GPU-s gépeit, meg nem GPU-s oclHashcat vagy IGHASHGPU alkalmazást, vagy célorientált FPGA vagy ASIC eszközt használtam), maradtam a 6 karakteres jelszóhossznál.

A 6 karakteres jelszó megtalálásához - ha a tárolt jelszavak DES algoritmuson alapuló transzformáción mentek keresztül - kb. 15 perc volt szükséges, de ennél sokkal (sokkal!) több számítási kapacitás kellett volna, ha a 11 (7+4) karakteres teret kell végigpörgetni, és nem DES, hanem MD5 algoritmuson alapuló transzformációt kell alkalmazni.

Rumini és barátai kiszabadultak a jégcellából a sikeres jelszótörés révén, Drifter és barátai (elsősorban Mets révén) ennél is messzebbre mentek annak érdekében, hogy megoldhassák a rejtélyt. De a lényeg, hogy a technológia ismerete (hogy lehet élni vele és hogy nem lehet visszaélni vele) nem csak a műszaki informatika, hanem mindennapi életünk legtöbb területén fontos lehet, ezért érdemes róla beszélni, írni.

Kapcsolódó anyagok:
 vissza 
   
  info@kormanyablak.org
info@ugyfelkapu.info