Jak se prolamují hesla?
K prolomení účtů dochází zřídka tak, jak to vykreslují filmy. V praxi se útočník k heslu dostane jedním ze tří způsobů. Heslo je prolomeno: zjištěno postupným zkoušením jednoho kandidáta za druhým, obvykle proti databázi hashů hesel odcizené z nějaké služby. Je odcizeno: zadáno na podvodné stránce nebo zkopírováno malwarem. Nebo je znovu zneužito: útočníci vezmou heslo z dřívějšího úniku a zkoušejí jej na jiných službách v naději, že je majitel použil i tam. Na tomto rozdílu záleží, protože proti každému způsobu pomáhá něco jiného. Tento článek prochází hlavní metody a uvádí, co proti každé z nich pomáhá.
Znovupoužitá hesla z úniků dat
Každý rok dochází k napadení služeb a jejich uživatelské databáze končí na prodej nebo jsou volně sdíleny. Útočníci vezmou dvojice e-mailu a hesla z jednoho úniku a automatizovaně je zkoušejí v bankách, u e-mailových poskytovatelů, v e-shopech a na sociálních sítích — tomuto útoku se říká credential stuffing. Neobsahuje vůbec žádné hádání a funguje ze zcela prostého důvodu: lidé používají stejná hesla opakovaně. V takovém případě nepomůže ani silné heslo, pokud je všude stejné.
Co pomáhá: jiné heslo pro každý účet, aby únik u jedné služby neotevřel nic dalšího.
Phishing
Phishingová stránka je kopií skutečné přihlašovací stránky na nepatrně odlišné adrese, na kterou se dostanete přes odkaz v e-mailu nebo zprávě, která zní naléhavě: zablokovaný účet, balíček, faktura. Cokoli tam zadáte, putuje rovnou k útočníkovi. Na délce ani náhodnosti hesla v tomto případě nezáleží, protože je zadáváte vy sami.
Co pomáhá: otevírejte weby ze svých vlastních záložek, nikoli z odkazů ve zprávách. Používejte správce hesel: nabízí vyplnění hesla pouze na té adrese, pro kterou bylo uloženo, takže pokud uložené heslo nenabídne, zkontrolujte adresu předtím, než je zadáte ručně. A zapněte dvoufázové ověření, díky němuž samotné ukradené heslo nestačí. Jednorázové kódy však lze vylákat phishingem stejně jako heslo. Přístupové klíče (passkeys) a bezpečnostní klíče FIDO2 to neumožňují, protože reagují pouze na pravý web — to je rozdíl, který NIST označuje jako odolnost proti phishingu.
Škodlivý software
Programy známé jako infostealery kopírují hesla uložená v prohlížeči společně s relačními cookies a odesílají je během několika sekund po spuštění, zatímco keyloggery zaznamenávají stisknuté klávesy. Ukradené relační cookie může útočníkovi umožnit přístup k již přihlášenému účtu bez znalosti hesla i bez druhého faktoru. Tyto programy se obvykle šíří prostřednictvím pirátského softwaru, falešných aktualizací a příloh v e-mailech.
Co pomáhá: instalace softwaru pouze z oficiálních zdrojů, udržování systému i prohlížeče v aktuálním stavu a zacházení s neočekávanou přílohou jako s rizikovou — což ovšem nepředstavuje stoprocentní záruku. Pokud bylo zařízení infikováno, konejte z jiného zařízení, o němž bezpečně víte, že je čisté: změňte hesla, využijte možnost odhlášení ze všech relací u každé služby a zkontrolujte, zda záchranný e-mail, telefonní číslo i nastavení dvoufázového ověření stále patří vám. Infikované zařízení vyčistěte dříve, než se na něm znovu přihlásíte.
Hádání v přihlašovacím formuláři
Zkoušení hesel přímo na webu je pomalé: dobře postavená služba po několika neúspěšných pokusech zavede zpoždění, zablokuje přístup nebo vyžaduje captchu. Kvůli tomu je neustálý útok na jeden účet neefektivní, a proto se často volí opačný přístup: hrstka nejběžnějších hesel — 123456, password, qwerty123 — se vyzkouší proti milionům účtů, čemuž se říká password spraying. Cílené hádání funguje podobně s osobními údaji: jména dětí a domácích mazlíčků, data narození, oblíbený sportovní tým, to vše lze snadno dohledat na sociálních sítích.
Co pomáhá: jakékoli heslo, které není běžné ani sestavené z údajů o vás — podívejte se, jak vytvořit silné heslo.
Hádání hesel z odcizených hashů offline
Správně postavená služba neukládá hesla v čitelné podobě. Ukládá hashe — výstup jednosměrné funkce, ze kterého nelze původní heslo zpětně vypočítat. Když taková databáze unikne, útočníci testují možná hesla: na vlastním hardwaru počítají hashe kandidátských hesel a porovnávají výsledky. Žádný přihlašovací formulář je nezpomaluje a rychlost závisí na hashovací funkci, kterou služba zvolila, a na jejím nastavení. U rychlých, zastaralých funkcí jako MD5 testuje jediná moderní grafická karta desítky miliard kandidátů za sekundu. Funkce navržené speciálně pro ukládání hesel — Argon2id, nebo v dřívějších systémech bcrypt — jsou záměrně pomalé a snižují tuto rychlost o mnoho řádů, a proto je uvádějí i současná doporučení.
Slovníkové útoky
Kandidáti nejsou náhodní. Nástroje pro prolamování začínají seznamy skutečných hesel z dřívějších úniků a slovníky slov a jmen, načež uplatňují pravidla napodobující lidské návyky: velké počáteční písmeno, rok nebo vykřičník na konci, písmeno nahrazené podobným symbolem. Heslo jako Summer2024! vypadá složitě, přitom patří mezi první zkoušené kandidáty. Solení (salting) — přidání jedinečné náhodné hodnoty ke každému heslu před hashováním — brání útočníkům v použití předpočítaných tabulek známých jako duhové tabulky (rainbow tables) i v prolomení všech identických hesel naráz, předvídatelné heslo však méně předvídatelným neučiní.
Útok hrubou silou (Brute force)
Když jsou slovníky vyčerpány, zbývá vyzkoušet každou kombinaci, a u náhodně vygenerovaného hesla rozhoduje o výsledku jeho délka. Pro ilustraci si vezměte rychlý hash a heslo, v němž je každý znak vybrán nezávisle a se stejnou pravděpodobností z 94 tisknutelných znaků ASCII, s vyloučením mezery. Takových hesel o 8 znacích existuje přibližně 6 × 1015; při rychlosti deseti miliard pokusů za sekundu trvá jejich vyzkoušení zhruba týden a v průměru se to správné objeví v polovině tohoto času. U 12 znaků by vyzkoušení všech kombinací na stejném hardwaru trvalo přibližně 1,5 milionu let a u 16 znaků toto číslo přesahuje jakékoli smysluplné srovnání. To je hlavní argument pro dlouhá náhodná hesla: slovníky jsou proti nim téměř k ničemu a za těchto předpokladů není zkoušení každé kombinace prakticky proveditelné. Náš generátor silných hesel je vytváří ve vašem prohlížeči a pro každé zobrazuje odhad entropie v bitech.
Co pomáhá: dlouhé heslo bez jakýchkoli lidských vzorců, což v praxi znamená vygenerované heslo. Nemůžete ovlivnit, jak služba vaše heslo ukládá, proto počítejte s nejhorším a zvolte takové, které odolá hádání i v případě, že je uloženo pomocí rychlé hashovací funkce.
Sledování přes rameno a sociální inženýrství
Nejstarší metody nevyžadují žádnou technologii. Heslo je přečteno přes rameno, opsáno z lístečku na monitoru nebo zachyceno při sdílení obrazovky ve videohovoru; případně si o něj útočník jednoduše řekne a vydává se za technickou podporu nebo kolegu — čemuž se říká sociální inženýrství. Žádná legitimní služba po vás heslo nikdy nebude požadovat telefonicky, e-mailem ani v chatu.
Co pomáhá: nikdy nikomu heslo neříkat ani neposílat a nenechávat je na místech, kde je mohou vidět ostatní.
Shrnutí
Různým útokům čelí různé návyky a tři pravidla pomohou nejvíce: jedinečné heslo pro každý účet, raději vygenerované než vymyšlené, doplněné o dvoufázové ověření — nebo přístupový klíč namísto hesla, pokud jej služba nabízí. Nepokrývají úplně vše — například ukradenou relaci — a proto mají stejnou váhu i výše uvedené rady týkající se malwaru. Další články najdete v našich materiálech o heslech.