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ó:
Csak idő kérdése,
hogy kiderüljön minden.
/Sigmund Freud/
2012. június 17.  
 LinkedIn - LeakedOut 
   
Érdekes lista jelent meg a neten 2012. június 6-án: a 140 millió felhasználóval rendelkező LinkedIn üzleti közösségi oldal kb. 6.5 millió fiókjához tartozó jelszólenyomata került napvilágra (illetve a torrent hálózatra). A becsomagolva 120 MB-s állományban SHA-1 hash-ek sorakoznak egymás alatt, amelyek közül sok cégvezetőkhöz, az üzleti élet fontosabb szereplőihez kötődik. Éppen emiatt értékes a "zsákmány", hiszen könnyen elképzelhető, hogy a LinkedIn-nél használt jelszót más, akár saját céges rendszerében is használja az adott CEO, CIO. A 6.5 millió lenyomatból kb. 20 ezernél sikerült kitalálni a jelszót, amelyeket - egy részletes elemzéssel együtt - szintén közzétettek a pastebin.com oldalon. A jelszómegadási szokásokat ismerjük az átlagos felhasználói körben, több elemzést is lehet olvasni, amelyben sokadszor is kimutatják, hogy az "123456", a "qwerty" vagy az "abc123" jelszavak a leggyakoribbak. A LinkedIn esetében azonban egy talán képzettebb, a bizalmasságot komolyobban vevő rétegről kapunk képet. Látszik is, hogy a tankönyvekből megismert szabályokat megpróbálják betartani: legalább 8 karakter, szám vagy speciális karakter, illetve kis- és nagybetű van bennük, de valami miatt mégsem sikerültek megfelelően erősre. Néhány gyakori hiba (valós példákkal):
  • A "0230697865330" mutatja, hogy nem minden a hosszúság, a karakter-teret is jól kell megválasztani, nem lehet azt csak a számokra szűkíteni.
  • A "zse4rfvgy7ujmko0" is csak elsőre tűnik komplexnek, pedig hajszálra ugyanez felhasználónévként is felbukkan a Google Search eredményei között (vagyis vélhetőleg a LinkedIn felhasználónév is ez volt). A "qazwsx123#@!" vagy "zaqwsx!@#$%^" alapja ("qazwsx123", "zaqwsx") is létező felhasználónév, ezekből pedig mindig érdemes kiindulni bizonyos szabályokat (pl. számok hozzáillesztését) felhasználva.
  • A "Donthackmepls1" is elvérzett, hiába van benne szám, kis- és nagybetű, ha egyszer értelmes - szótárban fellelhető - szavakból összerakható. A "Crvenazvezda1" is értelmes szavakból áll, csak nem angol, hanem szerb szótárral kellett a kitaláláshoz felszerelkezni.







Mi az ami egyáltalán erős lehet? Hol tart ma a jelszótöréshez felhasználható számítási kapacitás? Lehet egy gép, vagy több (grid, cloud), lehet CPU vagy GPU: mindegyikre van használható jelszótörő alkalmazás. A "John the Ripper" ismert és széles körben használt jelszótörő. Ennek létezik egy elosztott - gridesített - változata is, a "GI John" egy magyar fejlesztőgárdának köszönhetően. Az "SHA-1 Collision Search Graz" egy BOINC-típusú grid, amely SHA-1 ütközést keres a Graz University of Technology - IAIK szervezésében. A grafikus kártyákban rejlő lehetőségeket többek közt Ivan Golubev "ighashgpu" alkalmazása vagy a "hashcat" is használja (ez utóbbit futtatták a LinkedIn esetében is), a mérési eredmények alapján pedig egészen figyelemre méltóan. A GPU-alapú alkalmazások elosztott architektúrában való működéséről egyelőre nincs információm, de valószínűleg a nemzetbiztonságiaknál már fut valami "GI John"-jellegű patch-csel módosított "ighashgpu" vagy "hashcat". A szakemberek a CPU és GPU modulok architektúrája, illetve a mérési eredmények alapján abban egyetértenek, hogy a grafikus kártyák alkalmasabbak lenyomatok számítására, mint a hagyományos processzorok. Csak egy gyors összehasonlítás: Az AMD Phenom II X6 1090T (Intel Core i7 2600-tal kb. egyenértékű) CPU-t használva, 6 szálon összesen 64 millió MD5, illetve 10 millió SHA-1 lenyomatot tud kiszámolni másodpercenként. Egy ilyen processzor ára kb. 60 eFt. Az ATI Radeon HD 6990 összesen 10323 millió MD5, illetve 2656 millió SHA-1 lenyomatot tud kiszámolni másodpercenként. Egy ilyen videokártya ára kb. 160 eFt. Vizsgáljuk akkor meg, hogy melyik GPU-ból mit lehet kihozni!

Az alábbi táblázat Ivan Golubev oldalán található, s bár hozzávetőlegesnek mondja az eredményeket ("Single MD5 speed", "Single SHA1 speed"), a saját videokártyámmal ("mezei", 5.000 Ft-os nVidia GeForce 8400 GS 512MB, ami a listában szereplő nVidia GeForce 205-tel nagyjából egyenértékű) alá tudom támasztani az adatokat.



Az MD5 lenyomatoknál a számítási sebesség 26-27 millió darab másodpercenként a videokártyámmal. Egy 5 karakteres (kis- és nagybetű, szám) jelszót az MD5 lenyomat alapján legfeljebb 35 másodperc alatt ki tud találni.



Az SHA-1 lenyomatoknál a számítási sebesség 8-9 millió darab másodpercenként a videokártyámmal. Egy 5 karakteres (kis- és nagybetű, szám) jelszót az SHA-1 lenyomat alapján legfeljebb 2 perc alatt ki tud találni.



A saját mérések alapján Ivan Golubev adatai jónak tűnnek, ezért megnéztem, hogy a legerősebb videokártya önmagában mire képes. Az ATI Radeon HD 6990 bár nem olcsó ($700), de a leírások szerint 10323 millió MD5, illetve 2656 millió SHA-1 lenyomatot számol ki egy másodperc alatt. Ha ez igaz, akkor egy 8 karakteres, számokat, kis- és nagybetűket tartalmazó jelszót legfeljebb - MD5 esetén - 6 óra vagy - SHA-1 esetén - 22 óra alatt talál meg brute-force módszerrel. Na, de ki mondta, hogy csak egy ilyen videokártyát használnak? Az amerikai nemzetbiztonság biztos tudott néhány ezer, millió dollárból videokártyákat venni...



A jelszavak összetettsége és megjegyezhetősége az embernél nagyjából elérte a korlátokat, nem lehet sokkal többet elvárni a felhasználóktól. A karakter-tér is általában erre a 62-re korlátozódik (kis- és nagybetűk, illetve számok), mivel a speciális karaktereknél probléma lehet, hogy minden billentyűzet-kiosztásnál máshol helyezkednek el. Az emberi memória működési korlátai miatti egyszerűsítések (post-it cetli a monitoron, böngészővel megjegyeztetett jelszavak stb.) miatt akár még erre a témára is igaz Sigmund Freud állítása: "Az emberek nem tudnak titkot tartani. A szemükből, a szavaikból, minden rezdülésükből, a pórusaikból szivárog szörnyű titkuk. Csak idő kérdése, hogy kiderüljön minden." Ha valaki biztonságosabb rendszert szeretne létrehozni, akkor a felhasználó hitelesítést nem lehet ilyen statikus jelszóra alapozni, vagy ha mégis, akkor a szerver oldalon erősebb algoritmusokat (SHA-512), "salt"-ot (előre létrehozott "rainbow table" ellen jó), a kliens oldalon pedig hosszabb jelszavakat (min. 10 karakter kis- és nagybetűvel, illetve számmal) kellene alkalmazni.

A végére hagytam xkcd egyik témába vágó képregényét:



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