Síla hesla

Systémy, které k ověření používají hesla, musí mít nějaký způsob, jak zkontrolovat zadané heslo, aby získaly přístup. Pokud jsou platná hesla jednoduše uložena v systémovém souboru nebo databázi, získá útočník, který získá dostatečný přístup do systému, všechna hesla uživatelů, což útočníkovi umožní přístup ke všem účtům v napadeném systému a případně i dalším systémům, kde uživatelé používají stejné nebo podobná hesla. Jedním ze způsobů, jak toto riziko snížit, je uložit pouze kryptografický hash každého hesla namísto samotného hesla. Standardní kryptografické hashe, jako je řada Secure Hash Algorithm (SHA), je velmi těžké zvrátit, takže útočník, který se zmocní hodnoty hash, nemůže přímo obnovit heslo. Znalost hodnoty hash však umožňuje útočníkovi rychle otestovat odhady offline. Široce dostupné jsou programy na prolomení hesel, které budou testovat velké množství zkušebních hesel na základě kryptografické hodnoty hash.

Vylepšení výpočetní technologie neustále zvyšují rychlost, kterou lze testovat uhodnutá hesla. Například v roce 2010 vyvinul Georgia Tech Research Institute metodu mnohem rychlejšího rozbití hesel pomocí GPGPU. Společnost Elcomsoft vynalezla použití běžných grafických karet pro rychlejší obnovení hesla v srpnu 2007 a brzy podala odpovídající patent v USA. Do roku 2011 byly k dispozici komerční produkty, které uváděly schopnost otestovat až 112 000 hesel za sekundu na standardním stolním počítači s využitím špičkového grafického procesoru. Takové zařízení za jeden den prolomí jednopísmenné heslo se šesti písmeny. Všimněte si, že práce může být distribuována na mnoho počítačů pro další zrychlení úměrné počtu dostupných počítačů se srovnatelnými GPU. K dispozici jsou speciální hashe pro roztahování klíčů, jejichž výpočet trvá relativně dlouho, což snižuje rychlost, jakou může hádání probíhat. Ačkoli se za nejlepší postup považuje použití protahování klíčů, mnoho běžných systémů to neudělá.

Další situace, kdy je možné rychlé uhodnutí, je, když se k vytvoření kryptografického klíče použije heslo. V takových případech může útočník rychle zkontrolovat, zda uhádnuté heslo úspěšně dekóduje šifrovaná data. Například jeden komerční produkt tvrdí, že testuje 103 000 hesel WPA PSK za sekundu.

Pokud systém hesel ukládá pouze hodnoty hash hesla, může útočník předem vypočítat hodnoty hash pro běžné varianty hesel a pro všechny hesla kratší než určitá délka, což umožňuje velmi rychlé obnovení hesla, jakmile je získán jeho hash. Velmi dlouhé seznamy předem vypočítaných hash hesel lze efektivně ukládat pomocí duhových tabulek. Tuto metodu útoku lze zmařit uložením náhodné hodnoty zvané kryptografická sůl spolu s hodnotou hash. Sůl je při výpočtu hodnoty hash kombinována s heslem, takže útočník, který předpočítává tabulku duhy, by musel pro každé heslo ukládat hodnotu hash s každou možnou hodnotou soli. To je nemožné, pokud má sůl dostatečně velký rozsah, řekněme 32bitové číslo. Bohužel mnoho běžně používaných ověřovacích systémů nepoužívá soli a pro několik takových systémů jsou na internetu k dispozici duhové tabulky.

Entropie jako měřítko síly heslaEdit

Je to obvyklé v počítačový průmysl specifikovat sílu hesla, pokud jde o entropii informací, která se měří v bitech a je to koncept z informační teorie. Místo počtu odhadů potřebných k nalezení hesla s jistotou je uveden logaritmus základu-2 tohoto čísla, který se běžně označuje jako počet „entropických bitů“ v hesle, i když to není úplně stejné množství jako informační entropie. Takto vypočítané heslo s entropií 42 bitů by bylo stejně silné jako řetězec 42 bitů, který byl vybrán náhodně, například poctivým hodem mincí. Jinými slovy, heslo s entropií 42 bitů by vyžadovalo 242 (4 398 046 511 104) pokusů o vyčerpání všech možností při hledání hrubou silou. Zvýšením entropie hesla o jeden bit se tedy počet odhadů zdvojnásobí, což útočníkovi dvakrát znesnadní úkol. Útočník bude muset v průměru vyzkoušet polovinu možného počtu hesel, než najde správné.

Náhodná heslaEdit

Hlavní článek: Generátor náhodných hesel

Náhodná hesla se skládají z řetězce symbolů určité délky převzatého z nějaké sady symbolů pomocí náhodného výběru proces, při kterém je stejně pravděpodobné, že bude vybrán každý symbol. Symboly mohou být jednotlivé znaky ze znakové sady (např. znaková sada ASCII), slabiky určené k vytváření vyslovitelných hesel nebo dokonce slova ze seznamu slov (čímž se vytvoří přístupová fráze) ).

Síla náhodných hesel závisí na skutečné entropii podkladového generátoru čísel; často však nejsou skutečně náhodná, ale pseudonáhodná.Mnoho veřejně dostupných generátorů hesel používá generátory náhodných čísel nalezené v programovacích knihovnách, které nabízejí omezenou entropii. Většina moderních operačních systémů však nabízí kryptograficky silné generátory náhodných čísel, které jsou vhodné pro generování hesel. Je také možné použít běžné kostky ke generování náhodných hesel. Viz silnější metody. Programy s náhodným heslem často mají schopnost zajistit, aby výsledné heslo bylo v souladu se zásadami místního hesla; například vždy vytvořením kombinace písmen, číslic a speciálních znaků.

U hesel generovaných procesem, který náhodně vybere řetězec symbolů délky, L, ze sady N možných symbolů, počet možných hesel lze zjistit zvýšením počtu symbolů na mocninu L, tj. NL. Zvýšení L nebo N posílí vygenerované heslo. Síla náhodného hesla měřená entropií informací je pouze logaritmus základny-2 nebo log2 počtu možných hesel, za předpokladu, že každý symbol v hesle je vytvořen samostatně. Informační entropie náhodného hesla, H, je tedy dána vzorcem:

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}}

kde N je počet možných symbolů a L je počet symbolů v hesle. H se měří v bitech. V posledním výrazu může být log na jakékoli bázi.

Entropie na symbol pro různé sady symbolů
Sada symbolů Symbol počet N Entropie na symbol H
arabské číslice (0–9) (např. PIN) 10 3,322 bitů
hexadecimální číslice (0–9, A – F) (např. klíče WEP) 16 4 000 bitů
malá a velká písmena latinka (a – z nebo A – Z) 26 4 700 bitů
malá a velká písmena alfanumerická (a – z nebo A – Z, 0–9) 36 5,170 bitů
Latinská abeceda citlivá na velká a malá písmena (a – z, A – Z) 52 5 700 bitů
citlivé alfanumerické znaky (a – z, A – Z, 0–9) 62 5,954 bitů
všechny tisknutelné znaky ASCII kromě prostoru 94 6 555 bitů
Všechny znaky doplňku Latin-1 94 6 555 bitů
Všechny tisknutelné znaky ASCII 95 6,570 bitů
Všechny rozšířené tisknutelné znaky ASCII 218 7 768 bitů
Binární (0–255 nebo 8 bitů nebo 1 bajt) 256 8 000 bitů
seznam slov v kostky 7776 12 925 bitů na slovo

Binární bajt se obvykle vyjadřuje pomocí dvou hexadecimálních znaků.

Chcete-li zjistit délku, L, potřebnou k dosažení požadované síly H, s heslem náhodně vylosovaným ze sady N symbolů, vypočítáme:

L = H log 2 ⁡ N {\ displaystyle L = {H \ over \ log _ {2} N}}

zaoblené až na další největší celé číslo.

Následující tabulka používá tento vzorec k zobrazení požadovaných délek skutečně náhodně generovaných hesel k dosažení požadovaných entropií hesel pro běžné sady symbolů:

Délka L skutečně náhodně generovaných hesel potřebných k dosažení požadované entropie hesla H pro sady symbolů obsahující N symbolů


Požadované heslo
entropie H
arabské
číslice
Hexadecimální Případ necitlivé velká a malá písmena všechny ASCII všechny rozšířené
ASCII
kostky Seznam
slov
Latina
abeceda
Alfa-
numerická
Latina
abeceda
alpha-
numerické
tisknutelné znaky
8 bitů (1 bajt) 3 2 2 2 2 2 2 2 1 slovo
32 bitů (4 bajty) 10 8 7 7 6 6 5 5 3 slova
40 bitů (5 bajtů ) 13 10 9 8 8 7 7 6 4 slova
64 bitů (8 bajtů) 20 16 14 13 12 11 10 9 5 slov
80 bitů (10 bajtů) 25 20 18 16 15 14 13 11 7 slov
96 bitů (12 bajtů) 29 24 21 19 17 17 15 13 8 slov
128 bitů (16 bajtů) 39 32 28 25 23 22 20 17 10 slov
160 bitů (20 bajtů) 49 40 35 31 29 27 25 21 13 slov
192 bitů (24 bajtů) 58 48 41 38 34 33 30 25 15 slov
224 bitů (28 bajtů) 68 56 48 44 40 38 35 29 18 slov
256 bitů (32 bajtů) 78 64 55 50 45 43 39 33 20 slov

hesla vytvořená člověkem Upravit

Lidé jsou notoricky chudí v dosahování dostatečná entropie k vytvoření uspokojivých hesel. Podle jedné studie zahrnující půl milionu uživatelů byla průměrná entropie hesla odhadována na 40,54 bitů. Někteří scéničtí kouzelníci tuto neschopnost pobavení využívají v menší míře tak, že rozdělují předpokládané náhodné volby (řekněme čísel) provedené členy publika.

Tudíž v jedné analýze více než 3 milionů osmimístných hesel bylo písmeno „e“ použito více než 1,5 milionkrát, zatímco písmeno „f“ bylo použito pouze 250 000krát. Jednotná distribuce by měla každý znak použit asi 900 000krát. Nejběžnějším používaným číslem je „1“, zatímco nejběžnější písmena jsou a, e, o a r.

Uživatelé zřídka plně využívají větší počet znakových sad při vytváření hesel. Například výsledky hackerství získané z phishingu MySpace v roce 2006 odhalily 34 000 hesel, z nichž pouze 8,3% používalo smíšená velká a malá písmena, čísla a symboly.

Plná síla spojená s používáním celé znakové sady ASCII ( číslice, smíšená velká písmena a speciální znaky) lze dosáhnout, pouze pokud je každé možné heslo stejně pravděpodobné. Zdá se, že to naznačuje, že všechna hesla musí obsahovat znaky z každé z několika tříd znaků, možná velká a malá písmena, čísla a nealfanumerické znaky. Ve skutečnosti je takový požadavek vzorem při výběru hesla a lze očekávat, že sníží „pracovní faktor“ útočníka (ve smyslu Clauda Shannona). Toto je snížení „síly“ hesla. Lepším požadavkem by bylo vyžadovat, aby heslo NENÍ obsahovalo žádné slovo v online slovníku nebo seznam jmen nebo jakýkoli vzor poznávací značky z jakéhokoli státu (v USA) nebo země (jako v EU). Pokud jsou vyžadovány vzorované volby, je pravděpodobné, že je lidé budou používat předvídatelnými způsoby, jako je psaní velkých písmen písmenem, přidávání jednoho nebo dvou čísel a speciální znak. Tato předvídatelnost znamená, že zvýšení síly hesla je ve srovnání s náhodnými hesly malé.

Speciální publikace NIST 800-63-2 Upravit

Speciální publikace NIST 800-63 z června 2004 (revize 2) navrhla schéma přibližující entropii hesel generovaných člověkem:

Při použití tohoto schématu se odhaduje, že osmimístné heslo vybrané člověkem bez velkých písmen a nealfabetických znaků NEBO s oběma ale ze dvou znakových sad bude mít 18 bitů entropie. Publikace NIST připouští, že v době vývoje bylo k dispozici málo informací o výběru hesel v reálném světě. Pozdější výzkum entropie hesla vybraného člověkem s využitím nově dostupných údajů ze skutečného světa prokázal, že schéma NIST neposkytuje platnou metriku pro odhad entropie hesel vybraných člověkem. Revize SP 800-63 (revize 3) z června 2017 tento přístup upouští.

Pokyny k použitelnosti a implementaci Upravit

Protože se národní implementace klávesnice liší, nelze použít všech 94 tisknutelných znaků ASCII všude. To může představovat problém mezinárodnímu cestujícímu, který se chtěl přihlásit do vzdáleného systému pomocí klávesnice na místním počítači. Viz rozložení klávesnice. Mnoho ručních zařízení, jako jsou tabletové počítače a chytré telefony, vyžaduje pro zadání speciálních znaků složité posloupnosti řazení nebo přepínání aplikací na klávesnici.

Autentizační programy se liší podle toho, jaké znaky v heslech povolí. Někteří nerozpoznávají rozdíly mezi písmeny (např. Velká písmena „E“ se považují za ekvivalent malých písmen „e“), jiná zakazují některé další symboly. V posledních několika desetiletích systémy povolily více znaků v heslech, ale stále existují omezení. Systémy se také liší maximální povolenou délkou hesel.

Z praktického hlediska musí být hesla rozumná a funkční pro koncového uživatele a dostatečně silná pro zamýšlený účel. Hesla, která si pamatujete příliš obtížně, mohou být zapomenuta, a proto je pravděpodobnější, že budou zapsána na papír, což někteří považují za bezpečnostní riziko. Jiní naopak tvrdí, že nutit uživatele, aby si pamatovali hesla bez pomoci, může pojmout pouze slabá hesla, a představuje tak větší bezpečnostní riziko. Podle Bruce Schneiera je většina lidí dobrá v zabezpečení peněženek nebo peněženek, což je „skvělé místo“ pro uložení písemného hesla.

Leave a Reply

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *