Azoknak a rendszereknek, amelyek jelszavakat használnak a hitelesítéshez, valamilyen módon ellenőrizniük kell a belépett jelszavakat a hozzáféréshez. Ha az érvényes jelszavakat egyszerűen egy rendszerfájlban vagy adatbázisban tárolják, akkor a támadó, aki elegendő hozzáférést szerez a rendszerhez, megszerzi az összes felhasználói jelszót, hozzáférést biztosítva a támadóhoz a támadott rendszer összes fiókjához és esetleg más olyan rendszerekhez, ahol a felhasználók ugyanazt vagy hasonló jelszavakat. A kockázat csökkentésének egyik módja az, hogy az egyes jelszavakból csak egy kriptográfiai kivonatot kell tárolni a jelszó helyett. A szokásos rejtjelezési kivonatokat, például a Secure Hash Algorithm (SHA) sorozatot nagyon nehéz visszafordítani, ezért egy támadó, aki birtokolja a kivonatolási értéket, nem tudja közvetlenül helyreállítani a jelszót. A hash érték ismerete azonban lehetővé teszi, hogy a támadó offline módon gyorsan tesztelje a találgatásokat. Jelszófeltörő programok széles körben elérhetőek, amelyek nagyszámú próbajelszót tesztelnek egy lehúzott kriptográfiai hash ellen.
A számítástechnika fejlesztése folyamatosan növeli a kitalált jelszavak tesztelésének sebességét. Például 2010-ben a Georgia Tech Research Institute kifejlesztett egy módszert a GPGPU használatára a jelszavak sokkal gyorsabb feltörésére. Az Elcomsoft 2007 augusztusában feltalálta a közös grafikus kártyák használatát a jelszó gyorsabb helyreállításához, és hamarosan benyújtotta a megfelelő szabadalmat az Egyesült Államokban. 2011-re olyan kereskedelmi termékek álltak rendelkezésre, amelyek azt állították, hogy másodpercenként akár 112 000 jelszót tesztelhetnek egy szabványos asztali számítógépen, csúcskategóriás grafikus processzor segítségével. Egy ilyen eszköz egy nap alatt feltör egy 6 betűs, egyszeres jelszót. Ne feledje, hogy a munka sok számítógépen elosztható további gyorsulás érdekében, összehasonlítva az elérhető GPU-kkal rendelkező számítógépek számával. Speciális kulcsfeszítő hashek állnak rendelkezésre, amelyek kiszámítása viszonylag hosszú időt vesz igénybe, csökkentve ezzel a találgatás sebességét. Bár a bevált gyakorlatnak tekinthető a kulcsfeszítés használata, sok általános rendszer nem.
Egy másik helyzet, amikor gyors találgatás lehetséges, az, amikor a jelszóval kriptográfiai kulcsot készítenek. Ilyen esetekben a támadó gyorsan ellenőrizheti, hogy egy kitalált jelszó sikeresen dekódolja-e a titkosított adatokat. Például egy kereskedelmi termék azt állítja, hogy másodpercenként 103 000 WPA PSK jelszót tesztel.
Ha egy jelszórendszer csak a jelszó kivonatát tárolja, a támadó előre kiszámíthatja a hash értékeket a közös jelszóváltozatokhoz és az összeshez egy bizonyos hosszúságnál rövidebb jelszavak, lehetővé téve a jelszó nagyon gyors helyreállítását, miután a hash-t megszerezték. Az előre kiszámított jelszó-kivonatok nagyon hosszú listái hatékonyan tárolhatók a szivárványos táblázatok segítségével. Ez a támadási módszer meghiúsulhat egy véletlenszerű érték, az úgynevezett kriptográfiai só tárolásával, a hash-szal együtt. A kivonat kiszámításakor a sót a jelszóval kombinálják, így a szivárványos táblázatot előre kiszámító támadónak minden jelszónál minden lehetséges sóértékkel el kell tárolnia a kivonatát. Ez akkor válik kivitelezhetetlenné, ha a só elég nagy tartományú, mondjuk 32 bites szám. Sajnos sok közhasznú hitelesítési rendszer nem alkalmaz sót, és több ilyen rendszerhez szivárványos táblázatok állnak rendelkezésre az interneten.
Az entrópia a jelszó erősségének mértékekéntEdit
Ez általában a számítástechnikai ipar meghatározza a jelszó erősségét az információs entrópia szempontjából, amelyet bitekben mérnek és az információelmélet fogalma. A jelszó biztos megtalálásához szükséges találgatások száma helyett ennek a számnak az alap-2 logaritmusát adják meg, amelyet általában a jelszóban szereplő “entrópia bitek” számának neveznek, bár ez nem pontosan azonos mennyiség mint információs entrópia. Az így kiszámított 42 bites entrópiájú jelszó ugyanolyan erős lehet, mint egy véletlenszerűen kiválasztott 42 bites sztring, például egy tisztességes érmefeldobással. Másképp fogalmazva: egy 42 bites entrópiával rendelkező jelszóhoz 242 (4 398 046 511 104) kísérletre lenne szükség ahhoz, hogy minden lehetőséget kimerítsen egy durva erőkutatás során. Így a jelszó entrópiájának egy bitrel történő növelésével a kitalálások száma megkétszereződik, ami kétszer megnehezíti a támadó feladatát. Átlagosan a támadónak a lehető legtöbb jelszó felét kell megpróbálnia, mielőtt megtalálja a megfelelőt.
Véletlen jelszavakSzerkesztés
A véletlenszerű jelszavak meghatározott hosszúságú szimbólumláncból állnak, amelyet véletlenszerű kiválasztással használnak egyes szimbólumkészletek. folyamat, amelynek során minden szimbólum egyformán valószínű, hogy kiválasztásra kerülnek. A szimbólumok lehetnek karakterkészletből különálló karakterek (pl. ASCII karakterkészlet), kiejthető jelszavak kialakítására tervezett szótagok, vagy akár szavakból álló szavak (így jelszót alkotva) ).
A véletlenszerű jelszavak erőssége az alapjául szolgáló számgenerátor tényleges entrópiájától függ, azonban ezek gyakran nem valóban véletlenszerűek, hanem álvéletlenek.Sok nyilvánosan elérhető jelszógenerátor véletlenszám-generátorokat használ, amelyek a korlátozott entrópiát kínáló programozási könyvtárakban találhatók. A legtöbb modern operációs rendszer azonban kriptográfiailag erős véletlenszám-generátorokat kínál, amelyek alkalmasak jelszó előállítására. A véletlenszerű jelszavak előállításához hétköznapi kocka is használható. Lásd az erősebb módszereket. A véletlenszerű jelszóprogramok gyakran képesek biztosítani, hogy a kapott jelszó megfeleljen a helyi jelszó irányelveknek; például úgy, hogy mindig betűk, számok és speciális karakterek keverékét állítja elő. a lehetséges jelszavak száma megtalálható a szimbólumok számának L hatványra, azaz NL-re való emelésével. Az L vagy az N növelése megerősíti a generált jelszót. A véletlenszerű jelszó erőssége az információ-entrópiával mérve csupán a lehetséges jelszavak számának alap-2 logaritmusa vagy log2-je, feltételezve, hogy a jelszóban szereplő minden egyes szimbólumot egymástól függetlenül állítják elő. Így egy véletlen jelszó információs entrópiáját, H, a következő képlet adja meg:
H = log 2 NL = L log 2 N = L log N log 2 {\ displaystyle H = \ log _ {2} N ^ {L} = L \ log _ {2} N = L {\ log N \ over \ log 2}}
ahol N a lehetséges szimbólumok száma, L pedig a jelszóban található szimbólumok száma. H bitben mérve. Az utolsó kifejezésben a napló bármelyik bázisra lehet.
Jelképkészlet | Szimbólum számlálja N | Entrópia szimbólumonként H |
---|---|---|
Arab számok (0–9) (pl. PIN) | 10 | 3,322 bit |
hexadecimális számok (0–9, A – F) (pl. WEP kulcsok) | 16 | 4.000 bit |
Kis- és nagybetűk nélküli latin ábécé (a – z vagy A – Z) | 26 | 4.700 bit |
Kis- és nagybetűk nélküli alfanumerikus (a – z vagy A – Z, 0–9) | 36 | 5.170 bit |
Kis- és nagybetűk érzékeny latin ábécé (a – z, A – Z) | 52 | 5.700 bit |
érzékeny alfanumerikus (a – z, A – Z, 0–9) | 62 | 5.954 bit |
Az összes ASCII nyomtatható karakter a szóköz kivételével | 94 | 6.555 bit |
Minden Latin-1 kiegészítő karakter | 94 | 6,555 bit |
Minden nyomtatható ASCII karakter | 95 | 6.570 bit |
Minden kiterjesztett ASCII nyomtatható karakter | 218 | 7,768 bit |
bináris (0–255 vagy 8 bit vagy 1 bájt) | 256 | 8.000 bit |
Diceware szójegyzék | 7776 | 12,925 bit szavanként |
A bináris bájt általában két hexadecimális értékkel van kifejezve karakter.
A kívánt H erősség eléréséhez szükséges L hosszúság megtalálásához N szimbólumkészletből véletlenszerűen kihúzott jelszóval ki kell számítani:
L = H log 2 N {\ displaystyle L = {H \ over \ log _ {2} N}}
kerekítve a következő legnagyobb egész számig.
Az alábbi táblázat ezt a képletet használja a valóban véletlenszerűen generált jelszavak szükséges hosszának megjelenítésére a kívánt jelszó-entrópia eléréséhez a közös szimbólumkészletekhez:
Kívánt jelszó entrópia H |
Arab számok |
Hexadecimális | Eset érzéketlen | Kis- és nagybetűk megkülönböztetése | Minden ASCII | All Extended ASCII |
Diceware szavak listája |
||
---|---|---|---|---|---|---|---|---|---|
latin ábécé |
alfa- numerikus |
latin ábécé |
alfa- numerikus |
nyomtatható karakter | |||||
8 bit (1 bájt) | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 szó |
32 bit (4 bájt) | 10 | 8 | 7 | 7 | 6 | 6 | 5 | 5 | 3 szó |
40 bit (5 bájt) ) | 13 | 10 | 9 | 8 | 8 | 7 | 7 | 6 | 4 szó |
64 bit (8 bájt) | 20 | 16 | 14 | 13 | 12 | 11 | 10 | 9 | 5 szó |
80 bit (10 bájt) | 25 | 20 | 18 | 16 | 15 | 14 | 13 | 11 | 7 szó |
96 bit (12 bájt) | 29 | 24 | 21 | 19 | 17 | 17 | 15 | 13 | 8 szó |
128 bit (16 bájt) | 39 | 32 | 28 | 25 | 23 | 22 | 20 | 17 | 10 szó |
160 bit (20 bájt) | 49 | 40 | 35 | 31 | 29 | 27 | 25 | 21 | 13 szó |
192 bit (24 bájt) | 58 | 48 | 41 | 38 | 34 | 33 | 30 | 25 | 15 szó |
224 bit (28 bájt) | 68 | 56 | 48 | 44 | 40 | 38 | 35 | 29 | 18 szó |
256 bit (32 bájt) | 78 | 64 | 55 | 50 | 45 | 43 | 39 | 33 | 20 szó |
Ember által létrehozott jelszavakSzerkesztés
Az emberek köztudottan gyengén teljesítenek elegendő entrópia a megfelelő jelszavak előállításához. Egy félmillió felhasználóval végzett tanulmány szerint az átlagos jelszó entrópiát 40,54 bitre becsülték. Egyes színpadi bűvészek ezt a szórakozásra való képtelenséget kisebb mértékben kihasználják a közönség tagjai által feltételezett véletlenszerű választások (mondjuk a számok) elosztásával.
Így több mint 3 millió nyolc karakteres jelszó egy elemzésében , az “e” betűt több mint 1,5 milliószor használták, míg az “f” betűt csak 250 000-szer. Egységes eloszlás esetén az egyes karaktereket körülbelül 900 000 alkalommal használták volna. A leggyakrabban használt szám az “1”, míg a leggyakoribb betűk az a, e, o és r.
A felhasználók ritkán használják ki teljes mértékben a nagyobb karakterkészleteket a jelszavak kialakításakor. Például a MySpace adathalász sémájából 2006-ban elért hackelési eredmények 34 000 jelszót tártak fel, amelyeknek csak 8,3% -a használt vegyes betűket, számokat és szimbólumokat.
A teljes ASCII karakterkészlet használatához kapcsolódó teljes erő ( számok, vegyes betűk és speciális karakterek) csak akkor érhető el, ha minden lehetséges jelszó egyformán valószínű. Ez arra utal, hogy az összes jelszónak tartalmaznia kell a karakterek mindegyikét a több karakterosztályból, esetleg nagy és kis betűket, számokat és nem alfanumerikus karaktereket. Valójában egy ilyen követelmény a jelszó megválasztásának mintája, és várhatóan csökkenti a támadó munkakörülményeit (Claude Shannon kifejezésével). Ez a jelszó “erősségének” csökkenése. Jobb követelmény az lenne, ha olyan jelszót követelne meg, amely NEM tartalmazhat egyetlen szót sem az online szótárban, sem a névlistában, sem a rendszámmintát bármely államban (az Egyesült Államokban) vagy országban (mint az EU-ban). Ha mintázatos választásokra van szükség, akkor az emberek valószínűleg kiszámítható módon használják őket, például nagybetűvel írnak egy, két számot és egy speciális karaktert. Ez a kiszámíthatóság azt jelenti, hogy a jelszóerősség növekedése csekély a véletlenszerű jelszavakhoz képest.
NIST 800-63-2Edit különkiadás
A 2004. júniusi NIST 800-63. kiadvány (2. változat) javaslatot tett egy sémára az ember által létrehozott jelszavak entrópiájának közelítésére:
Ezzel a sémával egy nyolc karakterből álló, ember által kiválasztott jelszó nagybetűk és nem ábécés karakterek nélkül VAGY a két karakterkészlet bármelyikével, de a becslések szerint 18 bit entrópiával rendelkezik. A NIST kiadvány elismeri, hogy a fejlesztés idején kevés információ állt rendelkezésre a jelszavak valós világban történő kiválasztásáról. Az ember által kiválasztott jelszó-entrópiával kapcsolatos, az újonnan rendelkezésre álló valós adatok felhasználásával végzett későbbi kutatások kimutatták, hogy a NIST-séma nem nyújt érvényes mérőszámot az ember által kiválasztott jelszavak entrópia-becsléséhez. Az SP 800-63 2017. júniusi felülvizsgálata (3. változat) elveti ezt a megközelítést.
Használhatósági és megvalósítási szempontokSzerkesztés
Mivel a nemzeti billentyűzet megvalósításai eltérnek, nem minden 94 ASCII nyomtatható karakter használható mindenhol. Ez problémát jelenthet egy olyan nemzetközi utazó számára, aki egy helyi számítógép billentyűzetével szeretett volna bejelentkezni a távoli rendszerbe. Lásd a billentyűzetkiosztást. Számos kézi eszköz, például táblagépek és okostelefonok, összetett váltási sorrendet vagy billentyűzet-alkalmazás cserét igényelnek a speciális karakterek beírásához.
A hitelesítési programok eltérnek attól, hogy mely karaktereket engedélyezik a jelszavak. Vannak, akik nem ismerik fel a kis- és nagybetűk különbségeit (például a nagy “E” betű egyenértékű a kis “e” betűkkel), mások tiltják a többi szimbólum egy részét. Az elmúlt évtizedekben a rendszerek több karaktert engedélyeztek a jelszavakban, de még mindig vannak korlátozások. A rendszerek a megengedett jelszavak maximális hosszában is eltérnek.
Gyakorlatilag a jelszavaknak ésszerűnek és funkcionálisnak kell lenniük a végfelhasználó számára, valamint elég erősnek kell lenniük a rendeltetésüknek megfelelően. A túl nehezen megjegyezhető jelszavakat el lehet felejteni, és így nagyobb valószínűséggel papírra írják, amelyeket egyesek biztonsági kockázatnak tartanak. Ezzel szemben mások azzal érvelnek, hogy a felhasználók arra kényszerítése, hogy segítség nélkül emlékezzenek a jelszavakra, csak a gyenge jelszavakat képesek elhelyezni, és ezáltal nagyobb biztonsági kockázatot jelent. Bruce Schneier szerint a legtöbb ember jól tudja biztosítani pénztárcáját vagy pénztárcáját, ami “remek hely” az írott jelszó tárolására.