Hogyan lehet feltörni a jelszavakat

Rövid megjegyzés - ez a cikk a jelszavak feltörésének elméletéről szól. A számítógépes bűnözők támadásainak megértése rendkívül fontos ahhoz, hogy megértsük, hogyan lehet a rendszereket ilyen típusú támadások ellen biztosítani.

A nem saját rendszere feltörésének kísérlete valószínűleg jogellenes az Ön joghatósága alatt (ráadásul a saját rendszerei feltörése [és gyakran meg is sérti] az adott termékre vonatkozó garanciát).

Kezdjük az alapokkal. Mi a durva erő támadása?

Ez a fajta támadás magában foglalja a felhasználóként történő bejelentkezés ismételt próbálkozását minden lehetséges betű-, szám- és karakterkombináció kipróbálásával (automatizált eszközök használatával).

Ez történhet online módon (tehát valós időben, a különböző felhasználónév / jelszó kombinációk folyamatos kipróbálásával olyan fiókokon, mint a közösségi média vagy a banki oldalak), vagy offline módban (például, ha megszerzett egy kivonatolt jelszót és megpróbál feltörni offline).

Offline nem mindig lehetséges (kivonatolt jelszavak beszerzése nehéz lehet), de sokkal kevésbé zajos. Ennek oka az, hogy a biztonsági csapat valószínűleg sok-sok sikertelen bejelentkezési fiókot fog észrevenni ugyanazon fiókból, de ha offline módon feltörheti a jelszót, akkor nem lesz nyilvántartása a sikertelen bejelentkezési kísérletekről.

Ez viszonylag könnyű egy rövid jelszóval. Hosszabb jelszóval exponenciálisan nehezebbé válik a rengeteg lehetőség miatt.

Például, ha tudja, hogy valaki 5 karakter hosszú jelszót használ, amely csak kisbetűkből áll, a lehetséges jelszavak száma összesen 26 ^ 5 (26 lehetséges betű közül választhatunk az első betűre, 26 lehetséges választási lehetőség a másodikra) levél stb.), vagy 11 881 376 lehetséges kombináció.

De ha valaki 11 karakteres, csak kisbetűs jelszót használ, akkor a lehetséges jelszavak száma összesen 26 ^ 11 vagy 3 670 344 486 987 776 lehetséges jelszó.

Nagybetűk, speciális karakterek és számok hozzáadásával ez még nehezebb és időigényesebb lesz. Minél több lehetséges jelszó van, annál nehezebb valakinek sikeresen bejelentkeznie egy durva erő támadásával.

Hogyan védekezhet

Az ilyen típusú támadások ellen többféle módon lehet védekezni. Először is használhat elég hosszú, összetett jelszavakat (legalább 15 karakter). Az egyes számlákhoz egyedi jelszavakat is használhat (használjon jelszókezelőt!), Hogy csökkentse az adatsértések veszélyét.

A biztonsági csapat bizonyos számú sikertelen bejelentkezési kísérlet után zárolhat egy fiókot. Kényszeríthetnek egy másodlagos ellenőrzési módszert is, mint például a Captcha, vagy használhatnak 2 faktoros hitelesítést (2FA), amelyhez egy második kódra van szükség (SMS vagy e-mail, alkalmazásalapú vagy hardverkulcs alapú).

Íme egy cikk arról, hogyan lehet végrehajtani a durva erő támadását.

Hogyan lehet gyorsabban feltörni a jelszavakat?

A szótári támadás magában foglalja az ismételt bejelentkezés megkísérlését az előre lefordított 'szótárban' vagy a kombinációk listájában szereplő számos kombináció kipróbálásával.

Ez általában gyorsabb, mint egy durva erőszakos támadás, mert a betűk és számok kombinációit már kiszámolták, ezzel időt és számítási energiát spórolva.

De ha a jelszó kellően bonyolult (például 1098324ukjbfnsdfsnej), és nem jelenik meg a "szótárban" (az előre összeállított kombinációk listája, amelyből dolgozol), akkor a támadás nem fog működni.

Gyakran sikeres, mert gyakran, amikor az emberek jelszavakat választanak, gyakran választanak szavakat vagy variációkat ezekre a szavakra (például „jelszó” vagy „p @ SSword”).

Egy hacker akkor is használhatja ezt a típusú támadást, ha tudja vagy kitalálja a jelszó egy részét (például egy kutya nevét, a gyermekek születésnapját vagy az évfordulót - olyan információkat, amelyeket egy hacker megtalálhat a közösségi oldalakon vagy más nyílt forráskódú forrásokban).

A nyers erőszakos támadásokkal szemben a fentiekhez hasonló védelmi intézkedések megakadályozhatják az ilyen típusú támadások eredményességét.

Mi van, ha már van egy kivonatolt jelszavak listája?

A jelszavakat az / etc / shadow fájl tárolja Linux és C: \ Windows \ System32 \ config fájl Windows számára (amelyek az operációs rendszer indításakor nem érhetők el).

Ha sikerült megszereznie ezt a fájlt, vagy ha más módon szerzett be egy jelszó-kivonatot, például szippantotta a forgalmat a hálózaton, megpróbálhatja az 'offline' jelszó feltörését.

Míg a fenti támadásokhoz többször is meg kell próbálni a bejelentkezést, ha van egy kivonatolt jelszavak listája, megpróbálhatja feltörni őket a gépén anélkül, hogy engedélyezné az ismételt sikertelen bejelentkezési kísérletek által generált figyelmeztetéseket. Ezután csak egyszer próbálkozik a bejelentkezéssel, miután sikeresen feltörte a jelszót (és ezért nincs sikertelen bejelentkezési kísérlet).

Használhat durva erőszakos vagy szótári támadásokat a hash fájlok ellen, és sikeres lehet attól függően, hogy milyen erős a hash.

Várjon egy percet - mi a keverés?

35D4FFEF6EF231D998C6046764BB935D

Felismeri ezt az üzenetet? Azt mondja: "Szia, a nevem megan"

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Ez a cikk első bekezdése. Igen, ostobaságnak tűnik, de valójában egy "hash".

A hash függvény lehetővé teszi a számítógép számára, hogy beírjon egy karakterláncot (betűk, számok és szimbólumok valamilyen kombinációja), felvegye ezt a karakterláncot, összekeverje és rögzített hosszúságú karakterláncot adjon ki. Ezért mindkét fenti karakterlánc azonos hosszúságú, annak ellenére, hogy a karakterláncok bemenetei nagyon különböző hosszúságúak voltak.

A hashokat szinte bármilyen digitális tartalomból lehet létrehozni. Alapvetően az összes digitális tartalom binárisra, vagy 0 és 1 sorozatra csökkenthető. Ezért az összes digitális tartalom (képek, dokumentumok stb.) Kivonatolható.

Számos különböző hash funkció létezik, amelyek közül néhány biztonságosabb, mint mások. A fenti hasheket MD5-gyel állítottuk elő (az MD jelentése "Message Digest"). A különböző funkciók az általuk előállított kivonat hosszában is különböznek.

Ugyanazon hash függvény ugyanaz a tartalma mindig ugyanazt a hash-t hozza létre. Még egy apró változtatás is teljesen megváltoztatja a kivonatot. Például,

2FF5E24F6735B7564CAE7020B41C80F1

A „Szia, Megan a nevem” hash-t kapja. Csak az M betű nagybetűvel történő meganírozása teljesen megváltoztatta a hash-t felülről.

A hashek egyirányú függvények is (vagyis nem fordíthatók meg). Ez azt jelenti, hogy a kivonatok (egyedi és egyirányúak) használhatók a tartalom digitális ujjlenyomatának egyik típusaként.

Mi a példa a hashek használatára?

A hasheket felhasználhatja annak ellenőrzésére, hogy egy üzenet nem változott-e meg.

Ha például e-mailt küld, akkor kivonatolhatja a teljes e-mailt, és elküldheti a kivonatot is. Ezután a címzett ugyanazon hash funkción keresztül futtathatja a kapott üzenetet, hogy ellenőrizze, hogy az üzenetet manipulálták-e szállítás közben. Ha a két kivonat egyezik, az üzenetet nem módosították. Ha nem egyeznek, az üzenet megváltozott.

A jelszavakat tároláskor általában kivonatolják. Amikor a felhasználó megadja a jelszavát, a számítógép kiszámítja a kivonatolási értéket, és összehasonlítja azt a tárolt kivonatolási értékkel. Így a számítógép nem tárolja a jelszavakat egyszerű szövegben (tehát néhány orros hacker nem tudja ellopni őket!).

Ha valaki képes ellopni a jelszófájlt, az adatok haszontalanok, mert a funkciót nem lehet megfordítani (bár vannak olyan módszerek, mint például a szivárványos táblák, hogy kiderítsék, mi a sima szöveg hozza létre az ismert hash-t).

Mi a probléma a hashokkal?

Ha egy kivonat bármilyen hosszúságú vagy tartalmú adatot képes befogadni, korlátlan lehetőség van az adatok kivonatolására.

Mivel a kivonat ezt a szöveget rögzített hosszúságú tartalommá alakítja (például 32 karakter), a kivonatnak véges számú kombinációja van. Nagyon sok lehetőségről van szó, de nem végtelenről.

Végül két különböző adatsor ugyanazt a kivonatolási értéket adja. Ezt hívják ütközésnek.

Ha van egy kivonatod, és megpróbálsz minden lehetséges egyszerű szövegértéket átnézni, hogy megtaláld a hash-nak megfelelő sima szöveget, akkor ez nagyon hosszú, nagyon nehéz folyamat lesz.

Mi van azonban akkor, ha nem érdekel, melyik két hash ütközik össze?

Ezt hívják a matematika „születésnapi problémájának”. A 23 tanulóból álló osztályban annak valószínűsége, hogy valakinek egy adott napon születésnapja van, körülbelül 7%, de annak valószínűsége, hogy bármely két embernek ugyanaz a születésnapja, körülbelül 50%.

Ugyanazon típusú elemzés alkalmazható a kivonatfüggvényekre annak érdekében, hogy megtalálja a két illeszkedő kivonatot (a másiknak megfelelő kivonat helyett).

Ennek elkerülése érdekében használhat hosszabb kivonatolási funkciókat, például SHA3, ahol kisebb az ütközések lehetősége.

Itt megpróbálhatja létrehozni saját hash függvényeit az SHA3 és az MD5 számára.  

Megpróbálhatod az erőszakos hasításokat, de ez nagyon sok időt vesz igénybe. Ennek gyorsabb módja az előre kiszámított szivárványos táblázatok használata (amelyek hasonlóak a szótári támadásokhoz).

Nagyon könnyűnek tűnik feltörni. Aggódnom kellene?

A hackeléssel kapcsolatban a legfontosabb megjegyezni, hogy senki sem akar több munkát végezni, mint amennyit meg kell tennie. Például a nyers erőszakos kényszerítés rendkívül időigényes és nehéz lehet. Ha van egyszerűbb módja a jelszavának megszerzésére, akkor valószínűleg egy aljas színész megpróbálja először.

Ez azt jelenti, hogy az alapvető kiberbiztonsági bevált gyakorlatok engedélyezése valószínűleg a legegyszerűbb módja annak, hogy megakadályozzák a feltörést. Valójában a Microsoft nemrégiben arról számolt be, hogy a 2FA engedélyezése pusztán az automatizált támadások 99,9% -át blokkolja.

További olvasmányok:

Népszerű jelszó feltörési eszközök