Mennyire fontos a jelszó hosszának titokban tartása
Kritikus jelszó fenntartása a biztonság fenntartása mellett?

Tudja valaki, hogy jelszava 17-es, hogy a jelszót sokkal könnyebb kényszeríteni?
10 válasz
Nos, kezdjük a matekkal: Ha feltételezzük, hogy jelszava süllyedésekből, arcokból és számokból áll, akkor 62 karakter közül választhat (csak a matematika megkönnyítése érdekében a valós jelszavak szimbólumokat is használnak). Az 1 hosszúságú jelszónak 62, a 2 hosszúságú jelszónak 62 ^ 2 lehetősége van. az n hosszú jelszónak 62 lehetősége van.
Tehát ez azt jelenti, hogy ha tudom, hogy a jelszavának pontosan 17 karaktere van, akkor kihagyhatok minden 17-nél rövidebb jelszót, és csak 62 ^ 17 jelszót lehet kipróbálni.
De hány olyan jelszó létezik, amelynek hossza kevesebb, mint 17, szemben a 62 ^ 17 jelszóval?
Nos, ha összeadjuk a 62 ^ n értéket és elosztjuk 62 ^ 17-vel, akkor megkapjuk (az összeg n = 1-től n = 16-ig a 62 ^ n-ből)/62 ^ 17 = 0,016 (link a számításhoz), tehát csak a hosszú jelszavakat ellenőrizzük 17. csak 1,6% -kal gyorsabb mint az összes jelszó ellenőrzése 17-ig
Ha van jelszó sémánk, amely mind a 95 nyomtatható ASCII karaktert lehetővé teszi, akkor az a megtakarítás, hogy nem kell 17-nél rövidebb jelszavakat kipróbálni, a 1,06% (link a számításhoz).
Érdekes matematikai interakció az n-nél rövidebb jelszavak számának az n hosszúságú jelszavak számához viszonyított arányával kapcsolatban az, hogy egyáltalán nem függ n-től. Ez annak köszönhető, hogy már nagyon közel vagyunk az 1/95 = 0,0105 aszimptotához. . Tehát a támadó ugyanolyan relatív vagy százalékos időmegtakarítást kap ettől a trükkötől, függetlenül a jelszó hosszától; mindig 1% - 2% között van. Bár természetesen az abszolút idő nagyság szerint növekszik minden egyes hozzáadott karakterrel.
A fenti matematika egy egyszerű nyers erőszakot feltételez, amely megpróbálja a, b, c, aa, ab,. Ami jó modell (ish) a számítógép által generált jelszavak helyes megszakításához, de ez egy szörnyű modell az emberek által létrehozott jelszavak kitalálásához.
Igazi jelszó-feltörők szótáralapú, próbálkozó szavak (és szavak kombinációi) az angol szótárból, a kiszivárgott jelszavak listája stb., ezért ezeket a számításokat egy szem sóval kell elvégezni.
A hosszának megismerésének másik hatása az, hogy nem kell semmilyen jelszót kipróbálnia több mint 17, ami a szótári szóösszetételeket kipróbáló algoritmusok nyers kényszerítésére valójában hatalmas megtakarítást jelenthet.
Ahogy @SteveSether, @xeon és @CountIblis említette, a jelszó hosszának (vagy entrópiájának) feltárása szintén hatással lehet, ha a támadó megpróbálja feltörni a jelszavát, elriasztva őket az erős jelszavaktól, és ahelyett, hogy vonzza őket. a gyenge. Tehát, ha tudod, hogy erős jelszavad van, fedd fel! A jelszavak hosszának (vagy entrópiáinak) feltárása a rendszer minden felhasználója számára azt eredményezi, hogy az erős jelszavak erősebbek, a gyengék pedig gyengébbek lesznek.
Alsó sor:
Nem a legrosszabb dolog, amit megtehetsz, ha valakinek elmondod a jelszavad hosszát, de mégsem tenném meg.
A @Mike részletes matematikáján kívül úgy gondoljuk, hogy a jelszó hossza mindenhol elkerülhető:
Gépeléskor egy fényes résztvevő megtanulhatja, akár a képernyőn a * * számolással, akár a billentyűleütések meghallgatásával (utóbbi esetben okostelefonnal rögzítheti a hangot, és szabadidős tevékenységként játszhat).
Klasszikus "webböngésző" szcenárió esetén a felhasználónevet és a jelszót a szerverre küldjük a HTTPS POST-on keresztül. Az SSL réteg titkosítja az adatokat, de az SSL nem rejti el az adatok hosszát, így egy passzív hálózati megfigyelő is megtanulja a jelszó hosszát.
A felhasználói felület és a fogadó rendszer egyaránt feldolgozza a jelszót olyan funkciókkal, amelyek végrehajtási ideje és a memória elérési mintái a jelszó hosszától függenek. Azok a támadók, akik képesek szinkronizálási intézkedéseket végrehajtani, ezekből az intézkedésekből általában levezethetik a jelszó hosszát.
Ezért alapos megközelítés a jelszó hosszának nyilvános adatnak tekintése. Néhány támadó nem fér hozzá (az a támadó, aki a szerver adatbázis másolatát készítette); mások tudni fogják. Nagyon nehéz megtudni, mennyire titkos a jelszó hossza, és mivel a biztonság a dolgok számszerűsítéséhez kapcsolódik, jó azt feltételezni, hogy minden támadó tudja a jelszó hosszát. Annak a hite, hogy titokban tarthatja, és a biztonság ezen elképzelés alapján történő becslése túl veszélyes lenne.
A jelszó hosszának felfedezése elárul valamit a jelszó erejéről. Tehát lényegében javaslatot ad valakinek arra, hogy milyen nehéz lenne kitalálni.
Tehát, ha a jelszava nagyon hosszú (a példájában 17 karakter), akkor az információk nagyrészt haszontalanok. Ha a jelszó rövid, (6 karakter), akkor azt mondja a támadónak, hogy megtámadhatják. A támadók a legkönnyebb célpontok után mennek.
Nem értek egyet az elfogadott válasszal. Igaz, hogy a jelszó hossza szinte felesleges, ha az összes jelszót véletlenszerűen hozza létre egy gép. Ez már nem így van, ha a jelszavakat egyszerű emberek hozzák létre: a szótárban szereplő szavak alapján keverje össze a kisbetűket, cseréljen néhány karaktert számokra vagy speciális karakterekre, és adjon hozzá előtagokat és utótagokat (pl. "! 1") stb.
Vizsgáljunk meg két forgatókönyvet, az egyik az, hogy 10 000 000 jelszavunk van, és arra törekszünk, hogy minél több jelszót találjunk meg az ilyen típusú levelezéshez. A másik egy hash jelszó, amelyet meg akarunk szakítani. Mindkét forgatókönyv esetében a különbség jelentősnek bizonyul. Szokás szerint minden információ visszaélhet egy támadásban, még akkor is, ha első pillantásra nem tűnik .
1. forgatókönyv: A 10 000 000 jelszó közül sokat létrehoz korlátozott erőforrásokkal.
Csak akkor próbálhatunk meg minden jelszó-kivonatot a bruteforce-támadásokkal, anélkül, hogy megkülönböztetnénk őket, ha nem tudjuk a jelszó hosszát.
Ha kimerítő bruteforce támadást alkalmazunk (amely garantáltan megtalálja a jelszót), akkor a jelszó hosszának ismerete csak nagyon minimális nyereséget kínál. Miért? A mind a 7 jegyű jelszavak durva kikényszerítése körülbelül 1-2% -ot vesz igénybe, mind a nyolcjegyű jelszavak durva kikényszerítése. Az egyetlen dolog, amit a hosszúság ismeretében nyerünk, az, hogy nincs szükségünk mind a 7 számjegyből álló (és kisebb) jelszavak erőszakára, ha már tudjuk, hogy a jelszó 8 számjegyből áll. Kivéve, hogy egy bruteforce támadáshoz végtelen erőforrásokra van szükség (számítási erő és/vagy idő), és ezért nem tehetünk vagy fogunk tenni.
Ehelyett egy "valószínű" jelszó sorozatát teszteljük minden jelszóhosszra. Ennek egyik módja a szótári támadás. A valószínű jelszavak tesztelése több nagyságrenddel olcsóbb, mint a kimerítő durva erő alkalmazása, de óriási hátránya van: Miután kipróbáltuk az összes "valószínű" 7 jegyű jelszót egy jelszó kivonatával, de még nem találtuk meg a megfelelő jelszót, nem találunk tudd meg, hogy a jelszó kivonatának megfelelő jelszó hosszabb-e 7 számjegynél. Tehát, hacsak nem tudjuk biztosan, hogy a jelszó nem hosszabb 7 számjegyből, akkor is tesztelnünk kell a jelszó kivonatát az összes "valószínűleg" 8 jegyű jelszóval, 9 jegyű jelszóval, 10 jegyű jelszóval stb. kimerítő bruteforce, a hosszabb jelszavak tesztelésének költségei exponenciálisan nőnek. Mivel ma már tudjuk, hogy a jelszó 7 számjegy hosszú, nem kell tesztelnünk a valószínű 8, 9, 10, 11, 12 számjegyű és még hosszabb jelszavakkal szemben, így valóban hatalmas mennyiségű munkát takaríthatunk meg.
Jobb lesz. Miután minden jelszót teszteltünk, mondjuk 20 számjegyig terjedő valószínűséggel, most a fennmaradó erőforrásokat egy erőteljes támadásra fordíthatjuk ezeknek a jelszó-hashoknak, egy kis jelszóhosszal, amelyet keresésünk előző a "valószínű" jelszavakra. Azt mondjuk, hogy 2.000.000 kéretlen jelszó van hátra, és közülük 100.000-nél kevesebb, mint 6 jegyű jelszó van. Ne feledje, hogy korlátozott költségvetésünk van. A 6 jegyű jelszavak olcsón feltörhetők. De mivel tudjuk, mi a 100 000, legfeljebb 6 számjegy, most durva 100 000 hatjegyű jelszót kell kényszerítenünk a 100 000 törésére, ahelyett, hogy durván arra kényszerítenénk a 2 000 000 jelszót, hogy 100-at törjenek 000 6 digitális szó. Ez ugyanazon eredményért végzett munka 5% -a!
Ha az összes elõnyt együttesen vizsgáljuk, akkor a jelszóhosszak ismeretében kapott pontos nyereség függ a "valószínû" jelszavak tesztelésének módszerünk sebességétõl, az esetleges jelszavak teszteléséhez használt módszerünk megfelelõ sikerrátájától, a jelszóhosszak eloszlása a feltörni kívánt jelszó-hash gyűjteményben és a rendelkezésre álló erőforrások mennyisége (számítási sebesség, idő). De a jelszavak hosszának ismeretében könnyedén megnövelhetjük a megtalált jelszavak számát egy adott erőforrásmennyiséggel többszörösen - ha a számok erőteljesen nekünk működnek, akkor csökkenthetjük a jelszavak 30% -ának feltörésével kapcsolatos erőforrásköltséget nagyságrenddel vagy annál nagyobb mértékben.
2. forgatókönyv: Töröljön egyetlen jelszót egy célzott támadásban
Ha nem ismerjük a jelszó hosszát, akkor meg kell osztanunk erőforrásainkat a raw között, az összes kulcsot rövidre kényszerítve, és a jelszavakat hosszabb hosszúsággal tesztelve. Feltéve, hogy erőforrásaink felét mindegyikre költjük, tudva, hogy a jelszó hossza lehetővé teszi, hogy teljesen áttérjünk a kettő egyikére, és ezáltal megkétszerezzük a rendelkezésre álló erőforrásainkat.
További információkat szerzünk, amelyek rendkívül értékesek lehetnek egy célzott támadásban:
Ha a jelszó elég rövid ahhoz, hogy brutálisan kényszerítse, akkor megadhatunk egy felső határt arra, hogy mennyi időbe telik a jelszó megszerzése. Ez arra késztethet minket, hogy olyan támadásokat kíséreljünk meg, amelyeket egyébként nem vettünk volna figyelembe.
Kiszámíthatjuk a jelszó feltörésének valószínűségét is. Ha tudjuk, hogy nem valószínű, hogy feltörjük a jelszót, akkor erőforrásainkat más módszerek keresésére fordíthatjuk a rendszer veszélyeztetésére.
Ha 2 különböző jelszavunk van ugyanattól a felhasználótól, láthatjuk, van-e esély arra, hogy valójában ugyanaz a jelszó legyen. Ha csak 2-3 számjeggyel változik, akkor udvarias ötletet kaphatunk arról, hogy a hosszabb jelszó megegyezhet a rövidebbel, plusz egy előtag vagy egy utótag.
Ha még több információt kapunk a jelszóról, az nagyobb nyereséget eredményezhet, mint a 2 különálló darab. . Például, ha megtudjuk, hogy a jelszó egyetlen szó az Oxford szótárban, akkor is van esélye a jelszó biztonságának megőrzésére, ha például percenként csak egy jelszót tudunk kikényszeríteni. De ha azt is tudjuk, hogy a jelszó hossza 17 számjegy, akkor vége.