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ů |
(
53)
× 263 × 102 = |
17 576 000 / 2 000 000 000 = |
|
7 znaků |
(
71)
× 261+6 = |
56 222 671 232 / 2 000 000 000 = |
|
8 znaků |
(
84)
× (
42
) × 264 × 322 × 102 = |
19 653 623 808 000 / 2 000 000 000 = |
|
9 znaků |
(
92
) × (
73)
× (
42
) × 262+3 × 102 × 322 = |
9 197 895 942 144 000 / 2 000 000 000 = |
|
12 znaků |
(
123)
× (
94
) × (
53)
× 263+4 × 323 × 102 = |
7 295 525 784 083 496 960 000 / 2 000 000 000 = |
|
14 znaků |
(
144
) × (
104)
× (
63
) × 264+4 × 103 × 323 = |
28 768 690 008 569 256 345 600 000 / 2 000 000 000 = |
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
- NIST SP 800‑63B (Rev. 4), Appendix: Strength of Passwords – délka, hesla, offline útoky (miliardy hashů/sek.) a koncept omezení rychlosti.
- NIST SP 800‑63B (Rev. 3) – mimo jiné minimální délka, povolení dlouhých hesel (≥ 64), černé listiny, povolení vkládání; omezení rychlosti/throttling s omezením na max. 100 po sobě jdoucích neúspěšných pokusů.
- OWASP Password Storage Cheat Sheet – vhodné postupy (Argon2, scrypt, PBKDF2, bcrypt), faktory Salt/Work.
- OWASP Authentication Cheat Sheet – pokyny pro zadávání hesel, délku, černé listiny a blokovací mechanismy.
- BSI: Vytváření bezpečných hesel – mimo jiné dlouhá/složitá hesla a fráze; praktické tipy.
- BSI‑Presse 31.01.2025 – žádné vynucené pravidelné změny hesel; upřednostňujte 2FA/hesla.
- distributed.net RC5 / aktuální stav proxy – názorný příklad vyčerpávajícího vyhledávání a distribuovaného výpočetního výkonu.