Miért kell aggódnia, ha egy szolgáltatás jelszavas adatbázisa kiszabadul
„A jelszó adatbázisunkat tegnap ellopták. De ne aggódj: a jelszavakat titkosítottuk. ”Rendszeresen látunk ilyen kijelentéseket online, köztük tegnap is, a Yahoo-tól. De valóban ezeket a biztosítékokat névértéken kell figyelembe venni?
A valóság az, hogy a jelszó adatbázis kompromisszumok vannak aggodalomra ad okot, függetlenül attól, hogy egy vállalat hogyan próbálhatja meg. De van néhány dolog, amit tehetsz azért, hogy szigetelje magát, függetlenül attól, hogy milyen rossz a vállalat biztonsági gyakorlata.
Hogyan kell tárolni a jelszavakat
Az alábbiakban bemutatjuk, hogy a cégeknek hogyan kell tárolni a jelszavakat egy ideális világban: létrehozunk egy fiókot, és jelszót adunk meg. A jelszó tárolása helyett a szolgáltatás „jelzést” generál a jelszóból. Ez egy egyedi ujjlenyomat, amelyet nem lehet megfordítani. Például a jelszó „jelszó” olyan lehet, ami inkább úgy néz ki, mint a „4jfh75to4sud7gh93247g…”. Amikor beírja a jelszavát a bejelentkezéshez, a szolgáltatás hash-t generál belőle, és ellenőrzi, hogy a hash-érték megfelel-e az adatbázisban tárolt értéknek. A szolgáltatás soha nem mentette a jelszavát a lemezre.
A tényleges jelszó meghatározásához az adatbázishoz hozzáféréssel rendelkező támadónak először ki kell számítania a közös jelszavak hash-jét, majd ellenőriznie kell, hogy léteznek-e az adatbázisban. A támadók ezt a keresési táblázatokkal - hatalmas listákkal látják el, amelyek megfelelnek a jelszavaknak. A hashokat ezután össze lehet hasonlítani az adatbázissal. Például egy támadó ismeri a „jelszó1” hash-ját, majd nézze meg, hogy az adatbázisban lévő fiókok használják-e ezt a hash-t. Ha igen, a támadó tudja, hogy a jelszava „jelszó1”.
Ennek megakadályozása érdekében a szolgáltatásoknak „sóvá” kell tenniük a hashokat. Ahelyett, hogy a jelszót egy jelszóval hozza létre, egy véletlenszerű sztringet adnak hozzá a jelszó elejéhez vagy végéhez, mielőtt megkapnák. Más szóval, a felhasználó adja meg a jelszót, és a szolgáltatás hozzáadná a sót és a hash jelszót, amely inkább úgy néz ki, mint a "password35s2dg". Minden egyes felhasználói fióknak saját egyedi sóval kell rendelkeznie, és ez biztosítja, hogy minden felhasználói fiók egy másik hash-értékkel rendelkezne a jelszavukban az adatbázisban. Még ha több jelszót használtak a jelszó "jelszó1" -nek, a különböző sóértékek miatt különböző hasadások vannak. Ez legyőzi a támadót, aki megpróbálta kiszámítani a jelszavakat. Ahelyett, hogy képesek lennének létrehozni a hashákat, amelyek egyszerre az egész adatbázisban minden felhasználói fiókra vonatkoztak, egyedi felhasználói kódokat kell létrehozniuk minden felhasználói fiókhoz és egyedi sójához. Ez sokkal több számítási időt és memóriát vesz igénybe.
Ez az oka annak, hogy a szolgáltatások gyakran azt mondják, hogy ne aggódjanak. A megfelelő biztonsági eljárásokat használó szolgáltatásnak azt kell mondania, hogy sózott jelszót használnak. Ha egyszerűen azt mondják, hogy a jelszavakat „megzavarták”, ez aggasztóbb. Például a LinkedIn meggyengítette a jelszavát, de nem sózták el őket, így nagy dolog volt, amikor 2012-ben a LinkedIn elvesztette a 6,5 millió hasogatott jelszót.
Rossz jelszó gyakorlatok
Ez nem a legnehezebb dolog végrehajtani, de sok webhely még mindig sokféle módon elrontja:
- Jelszavak tárolása egyszerű szövegben: Ahelyett, hogy zavarnának a hasítással, a legrosszabb bűncselekmények elkövetői csak egyszerű szöveges formában dobhatják le a jelszavakat egy adatbázisba. Ha egy ilyen adatbázis veszélybe kerül, akkor a jelszavai nyilvánvalóan veszélybe kerülnek. Nem számít, milyen erősek voltak.
- A jelszavak megkötése a só nélkül: Bizonyos szolgáltatások a jelszavakat megcsonkíthatják, és ott adhatnak fel, úgy, hogy nem használnak sókat. Az ilyen jelszó adatbázisok nagyon érzékenyek lennének a keresési táblázatokra. A támadó sok jelszót hozhat létre, majd ellenőrizheti, hogy léteznek-e az adatbázisban - mindegyik számlán egyszerre tudnák ezt elvégezni, ha sót nem használtak.
- A sók újrafelhasználása: Egyes szolgáltatások sót használhatnak, de ugyanazon sót használhatják minden felhasználói fiók jelszavához. Ez értelmetlen - ha minden felhasználó ugyanazt a sót használta, akkor két azonos jelszóval rendelkező felhasználónak ugyanaz a hash.
- Rövid sók használata: Ha csak néhány számjegyű sókat használunk, akkor lehetséges lenne olyan keresési táblázatok létrehozása, amelyek minden lehetséges sót tartalmaznak. Például, ha egy számjegyet só formájában használnak, a támadó könnyen összeállíthat olyan hashákat, amelyek minden lehetséges sót beépítettek.
A vállalatok nem mindig mondják meg az egész történetet, így még ha azt is mondják, hogy a jelszót hasogatták (vagy hasogatták és sózották), előfordulhat, hogy nem használják a legjobb gyakorlatokat. Mindig tévedjen az óvatosság oldalán.
Egyéb aggályok
Valószínű, hogy a sóérték szintén megjelenik a jelszó adatbázisban. Ez nem annyira rossz, ha minden felhasználó számára egyedi sóértéket alkalmaztak, a támadóknak hatalmas mennyiségű CPU teljesítményt kell eltölteniük az összes jelszó megszakításával.
A gyakorlatban annyi ember használ nyilvánvaló jelszavakat, hogy valószínűleg könnyű lenne meghatározni számos felhasználói fiók jelszavát. Például, ha egy támadó ismeri a hash-ját, és ismerik a sót, könnyen ellenőrizhetik, hogy a leggyakoribb jelszavakat használják-e.
Ha egy támadó kihozza magát, és meg akarja törni a jelszavát, akkor azt brutális erővel tudják megtenni, mindaddig, amíg ismerik a só értékét, amit valószínűleg megtesznek. Helyi, offline hozzáféréssel a jelszó adatbázisokhoz, a támadók alkalmazhatják a kívánt erőszakos támadásokat.
Más személyes adatok is valószínűleg szivárognak, ha egy jelszó adatbázist ellopnak: Felhasználónév, e-mail cím stb. A Yahoo szivárgás esetén biztonsági kérdések és válaszok is kiszivárgtak - ami - mint mindannyian tudjuk - megkönnyíti a hozzáférést valakinek fiókjához.
Segítség, mit kell tennem?
Bármi legyen is a szolgáltatás, amikor a jelszó adatbázist ellopják, akkor a legjobb feltételezni, hogy minden szolgáltatás teljesen képtelen és megfelelően cselekszik.
Először ne használjon többszörös weboldalakon a jelszavakat. Használjon olyan jelszókezelőt, amely minden egyes webhelyre egyedi jelszavakat generál. Ha egy támadó észleli, hogy egy szolgáltatáshoz tartozó jelszavát „43 ^ Sd% 7uho2 # 3”, és csak a megadott jelszót használja az adott webhelyen, nem tanultak semmit hasznosnak. Ha ugyanazt a jelszót használja mindenhol, hozzáférhetnek a többi fiókhoz. Ez az, hogy hány ember számlája „csapkodott”.
Ha egy szolgáltatás veszélybe kerül, győződjön meg róla, hogy megváltoztatja az ott használt jelszót. Meg kell változtatnia a jelszót más oldalakon is, ha újra használja azt - de nem kellene ezt először megtenni.
Azt is fontolóra kell vennie, hogy használjon kétfaktoros hitelesítést, amely akkor is megvédi Önt, ha a támadó megtanulja a jelszavát.
A legfontosabb dolog nem a jelszavak újrafelhasználása. A sérült jelszó-adatbázisok nem árthatnak meg, ha mindenhol egyedi jelszót használ - hacsak nem tárolnak valami fontosat az adatbázisban, mint a hitelkártyaszám.
Képhitel: Marc Falardeau a Flickr-nél, Wikimedia Commons