Heslo a entropie: Věda v pozadí vaší bezpečnosti

Zapomeňte na zastaralá pravidla pro hesla. Objevte Shannonovu teorii entropie, kvantovou hrozbu Groverova algoritmu a skutečné tipy OPSEC k zabezpečení vašich přístupů.

|

Doba čtení: 8 minut

Heslo a entropie: Věda v pozadí vaší bezpečnosti

« Vaše heslo musí obsahovat 8 znaků, velké písmeno, malé písmeno, číslici a speciální znak. »

Všichni toto pravidlo známe. A přesto se v kybernetické bezpečnosti nazývá “bezpečnostní divadlo”. Heslo jako P@ssw0rd1! všechna tato pravidla respektuje. Jde ale o běžné slovo s předvídatelnými záměnami, a to je přesně to, co nástroje na prolamování hesel zkoušejí jako první.

Skutečná bezpečnost není založena na svévolných vizuálních pravidlech, ale na neúprosné matematické realitě: entropii.

Entropie podle Clauda Shannona

Abychom pochopili sílu hesla, musíme se obrátit na Clauda Shannona, otce teorie informace. Entropie měří stupeň nejistoty nebo nepředvídatelnosti informace.

Aplikováno na hesla, entropie se počítá v bitech. Čím vyšší je počet bitů, tím nepředvídatelnější je heslo pro počítač. Zjednodušený vzorec pro entropii (E) náhodně vygenerovaného hesla je:

E = L × log2(R)

  • L je délka hesla.
  • R je velikost sady znaků (26 pro malá písmena, 62 s velkými písmeny a číslicemi, 94 se všemi tisknutelnými symboly). Čtyři sady znaků našeho generátoru dávají 91, protože jeho sada symbolů má 29 znaků.

Zvětšení sady znaků (přidání symbolů) zvyšuje entropii, ale zvětšení délky (přidání znaků) ji zvyšuje mnohem drastičtěji. Délka však poráží složitost pouze pod jednou podmínkou: že je heslo vygenerováno zcela náhodně.

Hrubá síla vs. Slovníkový útok

Pokud použijete slova nebo předvídatelné struktury, pravidlo čisté délky se hroutí.

Hackovací software nezkouší všechny kombinace písmen jednu po druhé (tzv. Hrubá síla). Používají obrovské seznamy skutečných hesel z dřívějších úniků dat, spolu s běžnými slovy a frázemi. To je Slovníkový útok.

Pokud je vaše heslo dlouhé, ale skládá se ze slov ze slovníku nebo předvídatelných substitucí, je jeho skutečná entropie dramaticky nižší než teoretická matematická entropie.

Tabulka níže používá jedno pravidlo: 100 miliard pokusů za sekundu, tedy rychlost, se kterou stránka našeho generátoru počítá pro offline útok na rychlý hash. Časy jsou průměrné (polovina všech možností) a zaokrouhlené dolů stejným vzorcem jako na té stránce. Nejrychlejší cesta pro každé heslo je vyznačena tučně:

HesloEntropie, kdyby byl každý znak náhodnýHrubá síla (průměr)Slovníkový útok (náš odhad)
password12356 bitů (11 znaků, malá písmena a číslice)7 dnůMéně než sekunda
S3cr3t!9958 bitů (9 znaků, všechny čtyři sady)24 dnůMéně než sekunda
correct horse battery staple133 bitů (28 znaků, malá písmena a mezera)Více než 1 bilion let1 minuta
gL7!pQ9z#vX278 bitů (12 znaků, všechny čtyři sady)51 tisíc letŽádná zkratka

Sloupec slovníku je odhad. Předpokládá, že pokusy útočníka sledují strukturu každého hesla a že každé základní slovo patří mezi 1 000 nejběžnějších:

  • password123: jedno běžné slovo a tři číslice. To je 1 000 × 1 000, asi milion pokusů.
  • S3cr3t!99: jedno běžné slovo, s velkým písmenem nebo bez, každé “e” nahrazené “3” nebo ne, pak libovolná tříznaková přípona. To je asi 7 miliard pokusů.
  • correct horse battery staple: čtyři běžná slova. Komiks xkcd, který ji proslavil, počítá 44 bitů pro čtyři slova ze seznamu 2 048 slov. Při stejné rychlosti je to v průměru 88 sekund, zaokrouhleno dolů na 1 minutu.
  • gL7!pQ9z#vX2: žádné slovo a žádný vzor, takže nejrychlejší cestou je hrubá síla.

Tyto odhady počítají s tím, že útočník heslo nezná. Každé heslo v tomto článku je teď veřejné, takže každé patří do slovníku. Zveřejněné heslo je spálené heslo.

Iluze Leetspeaku a pravidla mutací

Vezměme si příklad S3cr3t!99. Vizuálně se zdá být složité a robustní. Přesto jde jednoduše o slovo ze slovníku “secret”, kde jsou ’e’ nahrazena ‘3’, s přidáním velmi běžné přípony (!99). Tomu se říká leetspeak.

Proti slovníkovému útoku toto heslo vydrží méně než sekundu, ne 24 dnů, které by naznačovala jeho délka. Moderní crackovací software (jako Hashcat) se nespokojí s testováním pevných seznamů slov; automaticky aplikují pravidla mutací. Vezmou každé slovo ze svého slovníku, otestují všechny možné kombinace leetspeaku, převrátí velká písmena a přidají roky nebo symboly. Leetspeak nabízí falešný pocit bezpečí.

Trik s posunem klávesnice (Keyboard Shift)

Ke zkomplikování zapamatovatelné fráze používají někteří trik s posunem rozložení klávesnice. Pamatujete si například frázi my-cat. Ale v okamžiku psaní položíte prsty na fyzickou klávesnici QWERTZ (českou), zatímco máte operační systém nastaven na QWERTY (anglickou).

  • Zamýšlené slovo: my-cat
  • Napsaný výsledek: mz/cat (Klávesa ‘y’ se stane ‘z’ a ‘-’ se stane ‘/’).

Je to dobrý nápad v OPSEC? Ne, tato metoda není sama o sobě dostatečná. Stejně jako leetspeak je posun rozložení pevná záměna: útočník, který ji tuší, použije stejné mapování na každý pokus. V OPSEC je to bezpečnost skrze nejasnost: zdrží to amatérského útočníka, ale nezastaví to cílený a vybavený útok.

Ve spojení s heslem, které už silné je (třeba dlouhá náhodná heslová fráze), přidá málo. I když útočník vyzkouší tisíc dvojic rozložení, přidá to méně než 10 bitů, protože log2(1 000) ≈ 9,97. Síla pořád pochází z heslové fráze pod tím.

Sestavení hlavního hesla (~250 bitů)

Pokud mají seznamy slov, leetspeak a triky s psaním své limity, jak sestavit hlavní heslo, které vydrží? Náš generátor už hodnotí 80 bitů jako “Silné” a 100 bitů jako “Velmi Silné”. Pro hlavní heslo, které má vydržet desítky let, míří tento článek mnohem výš: na přibližně 250 bitů entropie. Kvantová část níže vysvětluje proč a co tato rezerva nezajistí.

Existují dva způsoby, jak toho dosáhnout v závislosti na vašich potřebách:

1. Náhodné znaky (pro správce hesel)

Řetězec znaků vygenerovaný zcela náhodně, bez vzoru, který by stroj mohl využít: 8}8,_$-p)M&n,XvUCT0o+.5hDE6P^w6b@U-evS0 39 znaků vylosovaných z 91 znaků našeho generátoru: generátor zobrazí “Počet bitů: ≈ 253”. Toto heslo bylo vylosováno pro tento článek, takže je teď veřejné. Nikdy ho nepoužívejte.

2. Náhodná heslová fráze (pro heslo, které si pamatujete)

Náhodná slova se pamatují snáz než náhodné znaky. Každé slovo vylosované ze seznamu EFF o 7 776 slovech přidá asi 12,9 bitu, takže entropii určuje počet slov. Dvanáct slov dává “Počet bitů: ≈ 155”, daleko nad prahem “Velmi Silné” našeho generátoru. Samotná slova překročí 250 bitů až při 20 slovech.

Náš generátor končí na 12 slovech. Chcete-li překročit 250 bitů s menším počtem slov, zaškrtněte “Náhodná číslice po každém slově” a jako oddělovač zvolte “Číslice + Symbol”. 11 slov pak dává “Počet bitů: ≈ 260”: depletion78$sporting14~overlap11>macaw86>paced95,paramedic41}blot41$flagstone07;uncanny92/broadways77#say2 Vylosováno pro tento článek, přesně s těmito nastaveními. Zveřejněné heslo je spálené heslo: nikdy nepoužívejte toto ani žádný příklad, který čtete. Počítá se jen to, co je vylosováno náhodně. Velké písmeno na začátku každého slova nepřidá nic a slova, která si vyberete sami, jsou mnohem slabší než náhodná.

Kvantová hrozba: Groverův algoritmus

Proč cílit na 250 bitů, když 128 bitů již dnes blokuje superpočítače? Odpověď spočívá ve vyhlídce na velké kvantové počítače.

V kryptografii umožňuje Groverův algoritmus kvantovému počítači prohledávat netříděnou databázi mnohem rychleji než klasický počítač. Konkrétně Grover efektivně snižuje úroveň zabezpečení symetrického klíče nebo hesla na polovinu.

Tváří v tvář kvantovému počítači s Groverovým algoritmem by heslo s entropií 128 bitů teoreticky nabídlo odolnost odpovídající jen 64 bitům. To je mnohem tenčí rezerva.

Zdvojnásobení entropie rezervu zachová: zhruba 256 bitů by proti Groverovi stále ponechalo zhruba 128 bitů. Odtud pochází cíl 250 bitů v tomto článku. Je to opatrnost, kterou volí tento článek, ne číslo převzaté z nějakého standardu.

Rezerva má své meze. Groverovo zrychlení je kvadratické, ne neomezené. Každý jeho krok musí stále spočítat hash hesla daného webu, a to na kvantovém počítači dost velkém, aby ho zvládl. Pro srovnání: při 100 miliardách pokusů za sekundu, se kterými počítá stránka našeho generátoru, trvá průměrné hledání ve 100 bitech už nejméně 200 miliard let.

Logika připomíná Harvest Now, Decrypt Later (HNDL): ukradenou databázi hashů hesel lze dnes uschovat a napadnout později, lepšími stroji. Větší rezerva proti tomu zvyšuje laťku. Není to trvalá záruka.

Arpokrat Password Generator: Vytvořte si vlastní

Nenechávejte bezpečnost svých přístupů náhodě. Náš bezplatný generátor vytváří náhodná hesla a heslové fráze. U každého zobrazí entropii v bitech a průměrnou dobu, kterou by hledání trvalo.

Pouze generuje: heslo, které už používáte, nehodnotí. Pro výše uvedený cíl 250 bitů zvolte heslo o 39 znacích se všemi čtyřmi sadami znaků. Generátor ho zobrazí jako “Počet bitů: ≈ 253”.

👉 Arpokrat Password Generator

Běží ve vašem prohlížeči. To, co vygeneruje, se nikdy neodesílá ani neukládá.

Poslední slabý článek: Recyklace a správa přístupů

Matematická entropie nechrání před lidskou chybou. Heslo o síle 250 bitů ztrácí svou hodnotu, jakmile unikne, pokud je znovu použito na více webech (útok zvaný Credential Stuffing) nebo pokud není chráněno druhým faktorem ověření (2FA).

Zlatým pravidlem digitální hygieny je pamatovat si pouze jedno heslo: vaše hlavní heslo o 250 bitech (náhodná heslová fráze, viz výše). Všechny vaše ostatní přístupy (banka, sociální sítě, servery) musí používat jedinečná náhodná hesla, vygenerovaná speciálně pro ně.

K uložení všech těchto hesel, která si nemůžete pamatovat, použijte správce hesel. Vyberte takového, který šifruje váš trezor na vašem zařízení ještě před synchronizací (často se tomu říká zero-knowledge), nejlépe takového, který je open source a nezávisle auditovaný.