A jelszó összetettsége (vagy erőssége , erőssége ) a jelszó kitalálásával vagy bármilyen módszerrel, például nyers erővel történő kiválasztásával eltöltött idő felmérése . Becsült, hogy átlagosan hány próbálkozás (idő) szükséges ahhoz, hogy a támadó kitalálja a jelszót. A fogalom másik meghatározása a jelszó hosszának, összetettségének és kiszámíthatatlanságának függvénye.
A gyenge jelszó olyan jelszó, amely könnyen kitalálható vagy brutálisan kikényszeríthető. Az erős jelszó olyan jelszó, amelyet nehéz kitalálni, és hosszú időt vesz igénybe a brute-force kereséssel történő kiválasztása.
Az összetett jelszavak használata megnöveli a támadónak a jelszó kitalálásához szükséges időt, de nem szünteti meg más biztonsági intézkedések alkalmazásának szükségességét. Egy adott erősségű jelszó hatékonysága a hitelesítő rendszer szoftverének kialakításától és megvalósításától függ , különösen attól, hogy a hitelesítő rendszer milyen gyorsan reagál a támadóra, amikor megpróbálja kitalálni a jelszót, és mennyire biztonságosan tárolják a jelszóadatokat. és továbbítják. Kockázatot jelentenek a számítógépes biztonság feltörésének bizonyos módjai is , amelyek nem kapcsolódnak a jelszó összetettségéhez. Ezek olyan módszerek, mint az adathalászat , a billentyűnaplózás , a telefonlehallgatás, a social engineering , a hasznos információk keresése a kukában, az oldalsó csatornás támadások , a szoftversebezhetőségek , a hátsó ajtók , a kihasználások .
A jelszó összetettségét két tényező határozza meg:
Az első tényezőt a jelszó tárolásának módja és felhasználása határozza meg. A második tényezőt a jelszó hossza, a használt karakterkészlet és a jelszó létrehozásának módja határozza meg.
A találgatás tesztelésének legkézenfekvőbb módja, ha megpróbálunk egy kitalált jelszót használni, hogy hozzáférjünk egy jelszóval védett erőforráshoz. Ez a módszer azonban lassú vagy akár lehetetlen is lehet, mivel meglehetősen gyakori, hogy a rendszerek késleltetik vagy blokkolják a hozzáférést egy fiókhoz, miután többször is megpróbálták beírni a helytelen jelszavakat. A hitelesítéshez jelszavakat használó rendszereknek azokat valamilyen formában el kell tárolniuk a felhasználók által beírt jelszavakkal való egyeztetéshez. Általában a jelszó helyett a jelszó kriptográfiai hash függvényének értéke kerül tárolásra. Ha a hash függvény kellően összetett, akkor nehéz kiszámítani a jelszót a jelszókivonatból, ami azt jelenti, hogy a támadó nem tudja visszaállítani a jelszót az ellopott hashből. A jelszókivonat és a hash funkció ismerete azonban lehetővé teszi a támadó számára, hogy gyorsan ellenőrizze a kitalált jelszavakat anélkül, hogy hozzáférne a támadott rendszerhez.
Ha jelszót használnak az adatok titkosításához használt kriptográfiai kulcs létrehozásához, a támadó gyorsan ellenőrizheti, hogy a kitalált jelszó helyes-e, ha megnézi, hogy a titkosított adatok sikeresen visszafejtve.
Ha a jelszótároló rendszer nem használ kriptográfiai sót , akkor a támadó előre kiszámíthatja a hash értékeket a gyakori jelszavakhoz és a bizonyos hosszúságnál rövidebb jelszavakhoz. A kapott kivonatok segítségével a támadók gyorsan visszaállíthatják a jelszavakat a gyorsítótárukból. Az előre kiszámított jelszókivonatok hatékonyan tárolhatók egy szivárványtábla segítségével . Ilyen táblázatok elérhetők az interneten néhány nyilvános jelszó-hitelesítési rendszerhez.
A jelszavakat vagy automatikusan ( véletlenszám-generátorok segítségével ), vagy egy személy generálja. A brute force támadáshoz tartozó jelszó erőssége pontosan kiszámítható. A legtöbb esetben a jelszavakat emberek hozzák létre, például számítógépes rendszerek vagy webhelyek fiókjainak létrehozásakor. Az emberek tanácsok vagy szabályok alapján hoznak létre jelszavakat, de hajlamosak olyan mintákat követni, amelyek a támadó kezére játszanak. A gyakran választott jelszavak listája gyakori a jelszókitaláló programokban. Bármely nyelv szótára egy ilyen lista, ezért a szótári szavak gyenge jelszavaknak minősülnek. A többfelhasználós számítógépes rendszerekben végzett jelszavak több évtizedes elemzése kimutatta [1] , hogy a jelszavak több mint 40%-a könnyen kitalálható csak számítógépes programok segítségével, és még több kitalálható, ha egy adott felhasználóra vonatkozó információkat figyelembe veszünk egy támadást.
Az automatikus jelszógenerálás, ha megfelelően történik, segít elkerülni a kapcsolatot a jelszó és a felhasználó között. Például nem valószínű, hogy egy ilyen rendszer generálja a felhasználó kedvencének nevét. A kellően nagy lehetőségek közül választott jelszó esetén a brute-force keresés szinte lehetetlenné válhat. A valóban véletlenszerű jelszavakat azonban nehéz előállítani, és általában nehéz megjegyezni a felhasználó számára.
A jelszavak bonyolultságát a számítógépiparban általában az információs entrópiával (az információelméletből származó fogalommal ) mérik, bitekben mérve. A jelszó kitalálásához szükséges próbálkozások száma helyett a rendszer ennek a számnak a 2-es logaritmusát számítja ki, és a kapott számot a jelszó "entrópiabitjeinek" nevezik. Az így kiszámított, mondjuk 42 bites bonyolultságú jelszó egy véletlenszerűen generált 42 bites jelszónak felel meg . Más szóval, ahhoz, hogy nyers erővel 42 bites összetettségű jelszót találjon, létre kell hoznia 2 42 jelszót, és meg kell próbálnia használni; a 242 jelszó közül az egyik helyes lesz. A képlet szerint, ha a jelszó hosszát egy bittel megnöveljük, a lehetséges jelszavak száma megduplázódik, ami kétszeresen nehezíti meg a támadó dolgát. A támadónak átlagosan az összes lehetséges jelszó felét kell ellenőriznie, mielőtt megtalálná a megfelelőt. Lásd a nagy számok törvényét .
A véletlenszerű jelszavak úgy jönnek létre, hogy tetszőleges számú karaktert véletlenszerűen választanak ki bármely halmazból oly módon, hogy a készlet bármely karakterének kiválasztása egyformán valószínű. A véletlenszerű jelszó összetettsége a használt véletlenszám-generátor entrópiájától függ; pszeudo-véletlenszám-generátorokat gyakran használnak . Sok nyilvánosan elérhető jelszógenerátor a korlátozott entrópiát kínáló szoftverkönyvtárak véletlenszám-generátorait használja. A legtöbb modern operációs rendszer azonban rendelkezik titkosításilag erős véletlenszám-generátorokkal, amelyek alkalmasak jelszógenerálásra. A szokásos kocka véletlenszerű jelszó generálására is használható . A véletlenszerű jelszavak generálására tervezett programok gyakran garantálják, hogy az eredmény megfelel a helyi jelszószabályzatnak; például mindig betűk, számok és speciális karakterek keverékéből hozzon létre jelszót. Egy véletlenszerű jelszó összetettsége az információs entrópiában mérve egyenlő lesz
ahol N a lehetséges karakterek száma, L pedig a jelszó karaktereinek száma. A H bitben van mérve.
Karakterkészlet | Karakterek száma, N | Entrópia szimbólumonként, H , bit |
---|---|---|
arab számok (0-9) | tíz | 3.3219 |
Hexadecimális számjegyek (0-9, AF) | 16 | 4.0000 |
Kisbetűs latin betűk (az) | 26 | 4.7004 |
Arab számok és kis latin betűk (az, 0-9) | 36 | 5.1699 |
A latin ábécé kis- és nagybetűi (az, AZ) | 52 | 5.7004 |
Arab számok, a latin ábécé kis- és nagybetűi (az, AZ, 0-9) | 62 | 5,9542 |
Minden nyomtatható ASCII karakter | 95 | 6,5699 |
Az emberek általában elégtelen entrópiával hoznak létre jelszavakat. Egyes bűvészek ezt az emberi tulajdonságot használják a közönség szórakoztatására és szórakoztatására, és kitalálják a vélt véletlenszerű számokat, amelyeket a közönség kitalált.
Például egy hárommillió ember által létrehozott nyolc karakterből álló jelszó elemzése kimutatta, hogy az "e" betűt 1,5 millió alkalommal, míg az "f" betűt csak 250 000-szer használták . Egyenletes eloszlás esetén minden karakter 900 000-szer fordulna elő . A leggyakoribb szám az „1”, míg a legnépszerűbb betűk az „a”, „e”, „o” és „r” [2] .
A National Institute of Standards and Technology (USA) (NIST) a következő algoritmus használatát javasolja egy személy által létrehozott jelszó entrópiájának becslésére, amely nem tartalmazza a nem angol ábécé karaktereit:
Ezen algoritmus szerint egy 8 karakterből álló, nagybetűket és nem alfabetikus karaktereket nem tartalmazó, ember által létrehozott jelszó entrópiája körülbelül 4 + 7 * 2 = 18 bit . Az algoritmus azon a feltételezésen alapul, hogy az emberek olyan jelszavakat választanak, amelyek entrópiája megegyezik az egyszerű angol szöveggel.
Gyakorlati okokból a jelszavaknak ésszerű összetettségűnek és a végfelhasználó számára működőképesnek kell lenniük, de elég összetettnek kell lenniük ahhoz, hogy megvédjék a szándékos támadásokat. Az összetett jelszavakat könnyen elfelejthetjük, és nagyobb valószínűséggel írják le őket papírra, ami bizonyos kockázattal jár. Másrészt, ha a felhasználóknak meg kell jegyezniük a jelszavakat, akkor könnyebb jelszavakat fognak kitalálni, ami komolyan növeli a feltörések kockázatát.
Néhány megbízhatósági kritériumot találtak, amikor az adatok nyers erő módszerrel történő titkosításához használt kulcsot keresték . Ez a probléma nem ugyanaz, mivel ezek a módszerek csillagászati számú próbálkozást igényelnek, de az eredmények segíthetnek a jelszó kiválasztásában. 1999-ben az Electronic Frontier Foundation tagjai kevesebb mint egy nap alatt feltörték az 56 bites DES -rejtjelet speciálisan tervezett hardver segítségével [3] . 2002-ben a distributed.net közösség tagjai 4 év, 9 hónap és 23 nap alatt feltörtek egy 64 bites kulcsot [4] . 2011. október 12-én pedig a distributed.net közösség becslése szerint 124,8 évbe telne egy 72 bites kulcs feltörése az akkori képességekkel [5] . A fizika törvényeinek megértésével összefüggő óriási bonyolultság és korlátok miatt várhatóan egyetlen digitális számítógép sem (vagy ezek kombinációja) képes feltörni egy 256 bites titkosítást nyers erővel [6] . Így vagy úgy, elméletben megvan a lehetőség ( Shor algoritmusa ), hogy a kvantumszámítógépek képesek lesznek ilyen problémákat megoldani, de hogy ez a gyakorlatban lehetséges lesz-e, azt nem tudni.
Ebből kifolyólag egy kissé eltérő problémára, az optimális jelszókomplexitás problémájára nem lehet pontos választ adni. A National Institute of Standards and Technology (USA) (NIST) a legjobb biztonság érdekében 80 bites entrópiájú jelszó használatát javasolja, amely 95 karakteres ábécé (vagyis ASCII -ből származó karakterkészlet) 12 karakteres használatával érhető el. jelszó (12 * 6 ,5 bit = 78).
A jó jelszó kiválasztására vonatkozó ajánlások célja, hogy a jelszó ellenállóbbá váljon a crackerek különféle trükkjeivel szemben [7] [8] .
Egyes ajánlások azt tanácsolják, hogy ne írják le sehova a jelszót, míg mások, tekintettel arra, hogy nagyszámú jelszóval védett rendszer létezik, amelyekhez a felhasználónak hozzá kell férnie, a jelszavak feljegyzését részesítik előnyben, ha természetesen A jelszavak listája biztonságos helyen lesz.
Egyes hasonló jelszavak gyengébbek, mint mások. Például a szótári szóból álló jelszó és a zavaros szóból álló jelszó közötti különbség (vagyis olyan szó, amelyben a betűket mondjuk hasonló stílusú számok helyettesítik, például: "o" - A „0”, „h” és „4” között) a jelszófeltörőnek néhány extra másodpercbe kerülhet – ez egy kicsit bonyolultabbá teszi a jelszót. Az alábbi példák különféle módokat mutatnak be gyenge jelszavak létrehozására. A módszerek egyszerű mintákat használnak, ami megmagyarázza a kapott jelszavak alacsony entrópiáját - a kitalálás egyszerűségét.
Számos más lehetőség is van arra, hogy egy jelszó gyenge legyen, bizonyos támadási minták összetettségéből ítélve; A fő elv az, hogy a jelszónak nagy entrópiájúnak kell lennie, és nem valamilyen intelligens minta vagy személyes információ határozza meg. Az online szolgáltatások gyakran biztosítanak jelszó-helyreállítási lehetőséget, amellyel a hacker megtudhatja a jelszót. Ha nehezen kitalálható választ választ egy kérdésre, az segít megvédeni jelszavát.
A jelszóházirend olyan szabályok összessége, amelyek célja:
Egyes irányelvek előírják, hogy:
A jelszó használatának időtartamának beállítása a következők biztosítására szolgál:
A legnehezebben feltörhető jelszó véletlenszerű karakterekből áll, még akkor is, ha a jelszó hossza és az érvényes karakterkészlet ismert. A nagy entrópia miatt véletlenszerű jelszót nemcsak nehéz megjegyezni, hanem a nyers erővel történő kiválasztása is sok időt vesz igénybe. Az összetett jelszavak összeállításának követelménye arra ösztönözheti a feledékeny felhasználókat, hogy írják le jelszavaikat papírra, mobiltelefonra, PDA -ra, és osszák meg más felhasználókkal. Bruce Schneier azt javasolja, hogy írja le jelszavait.
Az emberek már nem tudnak emlékezni azokra a jelszavakra, amelyek elég jók ahhoz, hogy megbízhatóan védekezzenek a szótári támadások ellen, és sokkal biztonságosabb lesz, ha olyan jelszót választanak, amelyet túl nehéz megjegyezni és leírni. Mindannyiunk számára nagyon könnyű biztonságban tartani egy kis papírdarabot. Azt javaslom, hogy az emberek írják fel jelszavaikat egy kis papírra, és tartsák a többi értékes papírral együtt a pénztárcában.
Eredeti szöveg (angol)[ showelrejt] Egyszerűen az emberek már nem tudnak elég jó jelszavakra emlékezni ahhoz, hogy megbízhatóan védekezzenek a szótári támadások ellen, és sokkal nagyobb biztonságban vannak, ha túl bonyolultan megjegyezhető jelszót választanak, majd leírják. Mindannyian ügyesek vagyunk a kis papírdarabok rögzítésében. Azt javaslom, hogy az emberek írják le jelszavaikat egy kis papírra, és tartsák a többi értékes kis papírral együtt: a pénztárcájukban. – Bruce Schneier 2005A jelszóházirendek néha olyan technikákat kínálnak, amelyek segítenek az embereknek megjegyezni a jelszavakat:
Általában azt tanácsolják az embereknek, hogy soha ne írják le jelszavaikat sehova, és soha ne használják ugyanazt a jelszót különböző fiókokhoz. Ennek ellenére a hétköznapi felhasználók több tucat fiókkal rendelkezhetnek, és minden fiókhoz ugyanazt a jelszót használhatják. Annak érdekében, hogy ne emlékezzen sok jelszóra, használhat speciális szoftvert - jelszókezelőt, amely lehetővé teszi a jelszavak titkosított formában történő tárolását. A jelszót manuálisan is titkosíthatja, és a titkosítást papírra írhatja, miközben megjegyzi a visszafejtési módszert és a kulcsot. A szokásos számlák jelszavait kissé módosíthatja, és összetett és különböző jelszavakat választhat a nagy értékű számlákhoz, például az internetes banki szolgáltatásokhoz .
A jelszókezelő egy számítógépes program , amely lehetővé teszi a felhasználó számára, hogy több jelszót is használjon, és a tárolt jelszavak eléréséhez egyetlen jelszó megadása szükséges. A jelszókezelő jelszavának természetesen a lehető legösszetettebbnek kell lennie, és nem szabad sehova leírni.