Jak fungují útoky hrubou silou

Proč záleží na délce: výpočty a protiopatření.

Při brute-force útocích se útočníci pokoušejí uhodnout heslo systematickým vyzkoušením všech možných kombinací znaků. Základní myšlenka je jednoduchá: otestovat co nejvíce kombinací za sekundu – ideálně na GPU nebo v distribuovaných systémech. Hovoří se také o vyčerpávajícím vyhledávání (exhaustive search).

V praxi jsou takové útoky bohužel často úspěšné, protože mnoho hesel je příliš krátkých, omezuje se na několik skupin znaků (pouze písmena) nebo se vyskytuje ve seznamech slov. To drasticky zmenšuje prostor pro hledání a usnadňuje uhádnutí. Ještě důležitější je rozlišovat mezi online útoky (proti přihlašovacím formulářům, kde pomáhá omezení počtu pokusů/blokování účtů) a offline útoky (proti ukradeným hashům hesel, kde o době útoku rozhoduje hash funkce a síla hesla).

Prolomení hesel (offline) ≠ „dešifrování“

Hesla se nešifrují, ale ukládají se jako hash hodnoty a pak se hledají pomocí hádání + hashování (brute force, slovníkové/maskové útoky). Výpočetní rychlost moderního hardwaru se pohybuje v miliardách za sekundu (pro rychlé hashové procesy), proto jsou rozhodující dlouhá a pomalých postupů (např. Argon2, scrypt, PBKDF2, bcrypt) hashovaná hesla.

Kombinace a délka hesla

Následující příklady ukazují vliv délky a výběru znaků. Pro ilustraci se počítá s 2 miliardami pokusů za sekundu (velmi výkonný samostatný počítač; skutečné hodnoty se silně liší v závislosti na hardwaru a – v offline případě – hashování).

Typické skupiny znaků:

  • Čísla (10: 0–9)
  • Písmena (52: A–Z a a–z)
  • Zvláštní znaky (≈ 32; závisí na povolené znakové sadě služby)

Počet možných kombinací se vypočítá takto:

Možné kombinace = (množina znaků)délka hesla

Důležité: Tabulka uvádí maximální dobu vyhledávání. V průměru je skutečná doba přibližně poloviční. Kromě toho slovníkové, pravidlové a maskové útoky výrazně zmenšují prostor pro vyhledávání, zatímco pomalé hashovací metody hesel drasticky snižují efektivní rychlost.

Heslo se skládá z Možné kombinace (vzorec) Potřebný čas (při 2 miliardách/s)

5 znaků
(3 malá písmena,
2 číslice)

( 53) × 263 × 102 =
17 576 000

17 576 000 / 2 000 000 000 =
0,008788 sekundy

7 znaků
(1 velké písmeno,
6 malých písmen)

( 71) × 261+6 =
56 222 671 232

56 222 671 232 / 2 000 000 000 =
28,111335616 sekund

8 znaků
(4 malá písmena,
2 speciální znaky,
2 číslice)

( 84) × ( 42 ) × 264 × 322 × 102 =
19 653 623 808 000

19 653 623 808 000 / 2 000 000 000 =
9 826,811904 sekund =
≈ 2,73 hodiny

9 znaků
(2 velká písmena,
3 malá písmena,
2 číslice,
2 speciální znaky)

( 92 ) × ( 73) × ( 42 ) × 262+3 × 102 × 322 =
9 197 895 942 144 000

9 197 895 942 144 000 / 2 000 000 000 =
4 598 947,971072 sekund =
≈ 53,23 dní

12 znaků
(3 velká písmena,
4 malá písmena,
3 speciální znaky,
2 číslice)

( 123) × ( 94 ) × ( 53) × 263+4 × 323 × 102 =
7 295 525 784 083 496 960 000

7 295 525 784 083 496 960 000 / 2 000 000 000 =
3 647 762 892 041,74848 sekund =
≈ 115 590,63 let

14 znaků
(4 velká písmena,
4 malá písmena,
3 číslice,
3 speciální znaky)

( 144 ) × ( 104) × ( 63 ) × 264+4 × 103 × 323 =
28 768 690 008 569 256 345 600 000

28 768 690 008 569 256 345 600 000 / 2 000 000 000 =
14 384 345 004 284 628,1728 sekund =
≈ 455 812 387,64 let

Závěr: Každý další znak znásobuje vyhledávací prostor. Délka předčí pravidla složitosti – zejména proti offline útokům – za předpokladu, že služby používají vhodné, pomalé hashové procedury se solí.

Ochrana před útoky hrubou silou

Nejúčinnějším opatřením uživatele je dlouhé, náhodné hlavní heslo nebo heslo (např. několik náhodných slov) – jedinečné pro každou službu. Password Depot pomáhá při generování a zobrazuje odhadovanou dobu útoku, která kromě délky/znakovací sady zohledňuje také slabiny slovníku.

  • Aktivujte MFA/2FA (např. aplikace TOTP nebo hardwarový token) – pokud je to možné, jsou passkeys ještě lepší. Viz BSI‑Hinweise.
  • Žádné recyklace hesel. Každý účet potřebuje vlastní silné heslo.
  • Dlouhá hesla místo povinné složitosti. Služby by měly povolovat dlouhá hesla/heslové fráze (minimálně 64 znaků) a blokovat kompromitovaná hesla (černá listina).
  • Pomalé hashování na straně serveru (např. Argon2, scrypt, PBKDF2, bcrypt) s saltem a přiměřenými pracovními faktory; rychlé hashování jako MD5/SHA-1 je nevhodné pro ukládání hesel.
  • Omezení rychlosti/throttling a blokování: Online útoky musí být brzděny omezeným počtem neúspěšných pokusů, progresivními čekacími dobami a případně CAPTCHA.

Password Depot navíc ztěžuje pokusy o online útoky tím, že po nesprávném zadání krátce zablokuje vstupní masku pro hlavní heslo – s prodlužující se čekací dobou při opakovaných nesprávných pokusech.

Další zdroje