Složitost (nebo síla , síla ) hesla je měřítkem doby, kterou je třeba strávit uhodnutím hesla nebo jeho výběrem jakýmkoli způsobem, například hrubou silou . Odhad, kolik pokusů (času) v průměru zabere útočníkovi uhodnout heslo. Další definicí pojmu je funkce délky hesla, jeho složitosti a nepředvídatelnosti.
Slabé heslo je heslo, které lze snadno uhodnout nebo vynutit hrubou silou. Silné heslo je heslo, které je obtížné uhodnout a jehož výběr pomocí hrubou silou trvá dlouho.
Použití složitých hesel prodlužuje dobu, kterou útočníkovi zabere uhodnutí hesla, ale neodstraňuje nutnost používat další bezpečnostní opatření. Účinnost hesla dané síly závisí na návrhu a implementaci softwaru autentizačních systémů , zejména na tom, jak rychle bude autentizační systém reagovat na útočníka, když se pokusí heslo uhodnout, a jak bezpečně jsou informace o hesle uloženy. a přenášeny. Rizika představují také některé prostředky prolomení zabezpečení počítače , které nesouvisejí se složitostí hesla. Jedná se o metody jako phishing , keylogging , telefonní odposlechy , sociální inženýrství , vyhledávání užitečných informací v koši, útoky postranním kanálem , zranitelnosti softwaru , zadní vrátka , exploity .
Existují dva faktory, které určují složitost hesla:
První faktor je určen tím, jak je heslo uloženo a k čemu se používá. Druhý faktor je určen délkou hesla, použitou znakovou sadou a způsobem vytvoření hesla.
Nejviditelnějším způsobem, jak otestovat odhad, je pokusit se použít uhádnuté heslo k získání přístupu ke zdroji chráněnému heslem. Tato metoda však může být pomalá nebo dokonce nemožná, protože je zcela běžné, že systémy zdrží nebo zablokují přístup k účtu po několika pokusech o zadání nesprávných hesel. Systémy, které používají hesla pro autentizaci, je musí ukládat v nějaké formě pro sladění s hesly zadanými uživateli. Obvykle se místo hesla ukládá hodnota kryptografické hašovací funkce hesla. Pokud je hashovací funkce dostatečně složitá, je obtížné vypočítat heslo z hashe hesla, což znamená, že útočník nemusí být schopen obnovit heslo z ukradeného hashe. Znalost hašování hesel a hašovací funkce však útočníkovi umožňuje rychle zkontrolovat uhodnutá hesla bez přístupu k napadenému systému.
Pokud je heslo použito ke generování kryptografického klíče používaného k šifrování dat, může útočník rychle ověřit správnost uhádnutého hesla tím, že zkontroluje, zda byla šifrovaná data úspěšně dešifrována.
Pokud systém ukládání hesel nepoužívá kryptografickou sůl , může útočník předem vypočítat hodnoty hash pro běžná hesla a pro hesla, která jsou kratší než určitá délka. Pomocí přijatých hashů může útočník rychle obnovit hesla ze své mezipaměti. Předem vypočítané hodnoty hash hesel lze efektivně uložit pomocí duhové tabulky . Takové tabulky jsou dostupné na internetu pro některé veřejné systémy ověřování hesel.
Hesla jsou generována buď automaticky (pomocí generátorů náhodných čísel ) nebo osobou. Sílu hesla k útoku hrubou silou lze přesně vypočítat. Ve většině případů jsou hesla vytvářena lidmi, například při vytváření účtů pro počítačové systémy nebo webové stránky. Lidé vytvářejí hesla na základě rad nebo souboru pravidel, ale mají tendenci řídit se vzory, které hrají útočníkovi do karet. Seznamy často volených hesel jsou běžné pro použití v programech na hádání hesel. Slovník jakéhokoli jazyka je takový seznam, takže slova ze slovníku jsou považována za slabá hesla. Několik desítek let analýzy hesel ve víceuživatelských počítačových systémech ukázalo [1] , že více než 40 % hesel lze snadno uhodnout pouze pomocí počítačových programů, a ještě více jich lze uhodnout, když se berou v úvahu informace o konkrétním uživateli. útok.
Automatické generování hesla, pokud je provedeno správně, pomáhá vyhnout se jakémukoli spojení mezi heslem a jeho uživatelem. Například je nepravděpodobné, že by takový systém vygeneroval jméno mazlíčka uživatele. Pro heslo zvolené z dostatečně velkého prostoru možností může být hledání hrubou silou téměř nemožné. Skutečně náhodná hesla však může být obtížné vygenerovat a obecně je pro uživatele obtížné si je zapamatovat.
Složitost hesla v počítačovém průmyslu se obvykle měří pomocí informační entropie (pojem z teorie informace ), měřené v bitech. Místo počtu pokusů potřebných k uhádnutí hesla se vypočítá základní 2 logaritmus tohoto čísla a výsledné číslo se nazývá počet "bitů entropie" v hesle. Takto vypočítané heslo s řekněme 42bitovou složitostí bude odpovídat náhodně vygenerovanému 42bitovému heslu . Jinými slovy, abyste hrubou silou našli heslo s 42bitovou složitostí, musíte vytvořit 2 42 hesel a pokusit se je použít; jedno z 242 hesel bude správné. Podle vzorce, pokud se délka hesla zvýší o jeden bit, počet možných hesel se zdvojnásobí, což útočníkovi dvakrát ztíží jeho úlohu. V průměru bude muset útočník zkontrolovat polovinu všech možných hesel, než najde to správné. Viz zákon velkých čísel .
Náhodná hesla jsou vytvářena náhodným výběrem libovolného počtu znaků z libovolné sady takovým způsobem, že výběr libovolného znaku ze sady je stejně pravděpodobný. Složitost náhodného hesla závisí na entropii použitého generátoru náhodných čísel; často se používají generátory pseudonáhodných čísel . Mnoho veřejně dostupných generátorů hesel používá generátory náhodných čísel, které se nacházejí v softwarových knihovnách, které nabízejí omezenou entropii. Většina moderních operačních systémů má však kryptograficky silné generátory náhodných čísel, které jsou vhodné pro generování hesel. K vygenerování náhodného hesla lze také použít běžné kostky . Programy navržené pro generování náhodných hesel často zaručují, že výsledek bude vyhovovat místní politice hesel; například vždy vytvořit heslo ze směsi písmen, číslic a speciálních znaků. Složitost náhodného hesla, měřená z hlediska informační entropie, bude rovna
kde N je počet možných znaků a L je počet znaků hesla. H se měří v bitech.
Sada znaků | Počet znaků, N | Entropie na symbol, H , bity |
---|---|---|
arabské číslice (0–9) | deset | 3,3219 |
Hexadecimální číslice (0-9, AF) | 16 | 4 0000 |
malá písmena latinky (az) | 26 | 4,7004 |
arabské číslice a malá písmena latinky (az, 0-9) | 36 | 5,1699 |
Malá a velká písmena latinské abecedy (az, AZ) | 52 | 5,7004 |
Arabské číslice, malá a velká písmena latinské abecedy (az, AZ, 0-9) | 62 | 5,9542 |
Všechny tisknutelné znaky ASCII | 95 | 6,5699 |
Lidé mají tendenci vytvářet hesla s nedostatečnou entropií. Někteří kouzelníci používají tuto lidskou vlastnost k pobavení a pobavení publika tím, že hádají domněle náhodná čísla, která publikum uhádlo.
Například jedna analýza tří milionů lidmi vytvořených osmiznakových hesel ukázala, že písmeno „e“ bylo v heslech použito 1,5 milionukrát, zatímco písmeno „f“ bylo použito pouze 250 000krát . Při rovnoměrném rozdělení by se každý znak vyskytoval 900 000krát . Nejběžnější číslo je "1", zatímco nejoblíbenější písmena jsou "a", "e", "o" a "r" [2] .
Národní institut pro standardy a technologie (USA) (NIST) navrhuje použít následující algoritmus k odhadu entropie hesla vytvořeného osobou a nezahrnující znaky z neanglických abeced:
Podle tohoto algoritmu bude entropie hesla vytvořeného člověkem složeného z 8 znaků, které neobsahují velká písmena ani neabecední znaky, asi 4 + 7 * 2 = 18 bitů . Algoritmus je založen na předpokladu, že lidé volí hesla se stejnou entropií jako prostý anglický text.
Pro praktické účely by hesla měla být jak přiměřeně složitá, tak funkční pro koncového uživatele, ale dostatečně komplexní, aby byla chráněna před úmyslným útokem. Složitá hesla lze snadno zapomenout a je pravděpodobnější, že se zapíší na papír, což znamená určité riziko. Na druhou stranu, pokud jsou uživatelé povinni si zapamatovat hesla, vymyslí si hesla jednodušší, což vážně zvýší riziko hacknutí.
Při hledání klíče použitého k šifrování dat metodou hrubé síly byla nalezena některá kritéria spolehlivosti . Tento problém není stejný, protože tyto metody zahrnují astronomický počet pokusů, ale výsledky vám mohou pomoci při rozhodování o volbě hesla. V roce 1999 členové Electronic Frontier Foundation prolomili 56bitovou šifru DES za méně než jeden den pomocí speciálně navrženého hardwaru [3] . V roce 2002 členové komunity distribution.net dokončili prolomení 64bitového klíče za 4 roky, 9 měsíců a 23 dní [4] . A 12. října 2011 komunita distribution.net odhadla, že prolomení 72bitového klíče pomocí tehdejších možností bude trvat 124,8 let [5] . Vzhledem k obrovské složitosti a omezením spojeným s naším chápáním fyzikálních zákonů nelze očekávat, že by žádný digitální počítač (nebo jejich kombinace) byl schopen prolomit 256bitovou šifru pomocí hrubé síly [6] . Tak či onak, teoreticky existuje možnost ( Shorův algoritmus ), že kvantové počítače budou schopny takové problémy vyřešit, ale zda to bude možné v praxi, není známo.
V důsledku toho nelze dát přesnou odpověď na poněkud jiný problém, problém optimální složitosti hesla. Národní institut pro standardy a technologie (USA) (NIST) doporučuje používat heslo s 80bitovou entropií pro nejlepší zabezpečení, kterého lze dosáhnout pomocí 95znakové abecedy (tj. znakové sady z ASCII ) 12znakové heslo (12 * 6,5 bitů = 78).
Doporučení pro výběr dobrého hesla jsou navržena tak, aby bylo heslo odolnější vůči různým trikům crackerů [7] [8] .
Některá doporučení doporučují heslo nikam nezapisovat, zatímco jiná s ohledem na existenci velkého množství systémů chráněných heslem, ke kterým musí mít uživatel přístup, upřednostňují myšlenku zapisování hesel, pokud ovšem seznam hesel bude na bezpečném místě.
Některá podobná hesla jsou slabší než jiná. Například rozdíl mezi heslem sestávajícím ze slovníkového slova a heslem sestávajícím ze zmateného slova (tedy slova, ve kterém jsou písmena nahrazena řekněme číslicemi podobného stylu, např.: „o“ až "0", "h" až "4") může prolomení hesel stát několik sekund navíc - přidává to heslu trochu na složitosti. Níže uvedené příklady ukazují různé způsoby, jak vytvořit slabá hesla. Metody využívají jednoduché vzory, což vysvětluje nízkou entropii výsledných hesel – snadnost jejich uhodnutí.
Existuje mnoho dalších možností, jak může být heslo slabé, soudě podle složitosti některých vzorců útoku; hlavní zásadou je, že heslo by mělo mít vysokou entropii a nemělo by být určeno nějakým chytrým vzorem nebo osobními informacemi. Online služby často poskytují možnost obnovení hesla, kterou může hacker použít ke zjištění hesla. Volba těžko uhodnutelné odpovědi na otázku pomůže ochránit vaše heslo.
Zásada hesla je sada pravidel navržená tak, aby:
Některé zásady vyžadují, aby:
Nastavení časového intervalu, během kterého lze heslo používat, slouží k zajištění toho, že:
Nejobtížněji prolomitelné heslo je takové, které se skládá z náhodných znaků, i když je známa délka hesla a sada platných znaků. Náhodné heslo kvůli vysoké entropii je nejen obtížné zapamatovat, ale také trvá dlouho vybrat hrubou silou. Požadavek na skládání složitých hesel může povzbudit zapomnětlivé uživatele, aby si zapisovali hesla na papír, mobilní telefony, PDA a sdíleli je s ostatními uživateli. Bruce Schneier doporučuje zapsat si hesla.
Lidé si již nemohou pamatovat hesla, která jsou dostatečně dobrá na to, aby se spolehlivě bránili slovníkovým útokům, a mnohem bezpečnější bude, když si vyberou heslo příliš těžké na zapamatování a zapíší si ho. Pro každého z nás je docela snadné udržet malý kousek papíru v bezpečí. Doporučuji, aby si lidé svá hesla zapsali na malý papírek a uschovali si ho s dalšími cennými papírky v peněžence.
Původní text (anglicky)[ zobrazitskrýt] Jednoduše si lidé již nemohou pamatovat hesla dostatečně dobrá na to, aby se spolehlivě bránili slovníkovým útokům, a jsou mnohem bezpečnější, pokud si vyberou heslo příliš složité na zapamatování a poté si ho zapíší. Všichni jsme dobří v zabezpečení malých kousků papíru. Doporučuji lidem, aby si svá hesla zapsali na malý papírek a uschovali si ho spolu s dalšími cennými papírky: v peněžence. — Bruce Schneier 2005Zásady hesel někdy nabízejí techniky, které lidem pomohou zapamatovat si hesla:
Lidem se obvykle doporučuje, aby si nikdy nikam nezapisovali svá hesla a nikdy nepoužívali stejné heslo pro různé účty. Přesto mohou mít běžní uživatelé desítky účtů a mohou používat stejné heslo pro všechny účty. Abyste si nepamatovali mnoho hesel, můžete použít speciální software - správce hesel, který vám umožní ukládat hesla v zašifrované podobě. Heslo můžete také zašifrovat ručně a zapsat si šifrování na papír, přičemž si zapamatujete způsob dešifrování a klíč. Hesla můžete mírně změnit i pro běžné účty a zvolit složitá a odlišná hesla pro účty s vysokou hodnotou, jako je například internetové bankovnictví .
Správce hesel je počítačový program , který umožňuje uživateli používat více hesel a může vyžadovat zadání jediného hesla pro přístup k uloženým heslům. Heslo do správce hesel by samozřejmě mělo být co nejsložitější a nemělo by být nikde zapisováno.