Na jednom moc zajímavém semináři o bezpečnosti se jeden docela známý hacker rozzesmál nad složitostí vytváření hesel, protože se stále bojuje mezi "jednoduché na zapamatování, aby si to člověk nemusel psát" X "těžké na prolomení".
On dal návod, který mne povbavil:
délka hesla je vlastně hlavním bezpečnostním opatřením. Když ho postavíme na nějaké známé frázi (např. z písničky) , ale tu frázi pozměníme, dostaneme velmi bezpečné heslo. Např.
"kockalezediroupesstrechounebudeliprsetumoknem"
- neobsahuje kapitálky
-neobsahuje zvláštní znaky
- neobsahuje čísla
ale
- je zapamatovatelné
- je tak dlouhé, že je téměř neprolomitelné
- není sociálním inženýringem zjistitelné (není to písnička od mé oblíbené skupiny apod)
- není prorazitelné slovníkovým útokem
Tohle se sice celkem často tvrdí, ale neřekl bych, že je to tak úplně pravda. Pokud to budu lámat po písmenech, tak opravdu není šance. Ale co když zkusím vzít jako základní kameny běžná slova ze slovníku? Pak už těch možností k vyzkoušení nebude až tak astronomicky moc. Můžete to sice opepřit "překlepy", ale ty zase může testovat i útočník (jako to dělá třeba John the Ripper). Tady navíc vycházíte ze známé dlouhé fráze, kterou pouze mírně obměníte.
A v neposlední řadě je tu i otázka praktičnosti takové fráze. Pokud je to fráze, kterou budete používat jen ve výjimečných situacích, tak to není problém, ale pokud by to měla být třeba fráze k něčemu jako password store, budete ji muset psát denně nebo dokonce několikrát denně a to nebude nic příjemného.
- _urcite_ nebrat existujici pisnicku
- cela slova jsou IMO plytvani
Radeji nejakou dementni frazi, co si snadno zapamatuju. A treba prvni pismena.
"Nejhorsi na slabych heslech je to, ze jsou slaba. Entropie, entropie; pokazde si f*ndu myje." -> Nnshjt,zjs.E,e;psf*m.
Porad nic moc (zrovna to rozlozeni prvnich pismen neni zadny zazrak, mozna to bude lepsi trebas u tretich?).
Jen poznámka z praxe. Rozmyslete si, odkud budete na daný systém přistupovat. Dávat do hesla speciální znaky se může vymstít, pokud se potřebujete přihlásit na nějakém nestandardním terminálu (konkrétně třeba vmware). Plete se CZ / ENG klávesnice apod. Úplné žůžo je přistupovat na vmware terminál ze vzdálené plochy z českých widlí z rdesktopu z linuxu s EN klávesnicí.
Takže nakonec je lepší zvolit abecedu jen malá písmena a projistotu se vyhnout i z/y, protože kde kdo rád nastavuje qwertz českou klávesnici.
A udělat to heslo prostě delší. Delší heslo se opisuje překvapivě snadněji, než řešit vše uvedené výše (v některých kombinacích terminálů hvězdičku prostě nenapíšete).
To je v zásadě přístup podle xkcd 936. Lepší než používat nějakou známou písničku s drobnou obměnou je provést náhodný výběr slovníkových slov, třeba 4096 nejpoužívanějších slov. Každé slovo tak dá dvanáct bitů entropie, tedy zhruba jako ve dvou zcela náhodných alfanumerických znacích (6 bitů na znak při 64 možných znacích). Pokud těch slov vylosujete pět za sebe, může vám vyjít naprosto nesmyslná věta typu Correct horse battery staple, kterou si ale snadno zapamatujete a bude mít sílu srovnatelnou s desetiznakovým silným heslem.
Problém je, že to je dlouhé heslo, které rozhodně není dobré například na odemykání obrazovky počítače. Ale třeba na odemykání správce hesel vhodné je.
Problém tohohle přístupu je, že to řeší čistě jen útok hrubou silou. Ale třeba proti nedokonalému odpozorování hesla už to odolné není – útočník bude pravděpodobně schopen chybějící/nejasné části doplnit.
Na druhou stranu, nějaké master heslo ke správci hesel obvykle pořád ještě potřebujeme, a pořád lepší takovéhle heslo, než slovníkové heslo.
Pár takových hesel jsem si vygeneroval už kdysi na základce.
Sestavil jsem relativně náhodná slova do vět tak, že se to nějak rýmovalo, a zároveň se to dalo přečíst, i když to nedávalo žádný smysl.
Přesně jak je v XKCD, udělal jsem si tehdy 4, a dodnes si je pamatuji. Jsou dlouhá, takže se hodí právě jako heslo ke keepassu, a víceméně nezapomenutelná.
Má to ale háček. Takováhle říkanka se tak dobře vyslovuje, jak prochází přes řečová centra v mozku, že má člověk tendenci jej vyslovit. A to stačí udělat jednou. Navíc jak je snadno zapamatovatelné a nesmyslné, zaujme to případného posluchače, ale to je stejně irelevantní - jakmile je takové heslo vysloveno nahlas, je po něm.
Navíc si myslím, že tím, že se nad heslem zamyslím a tím ho v duchu vyslovím, bude relativně snadno zjistitelné nějakým skenováním chodu mozku. Pokud ze mě tedy někdo bude chtít heslo dostat, stačí mě narvat pod nějaký šikovný přístroj a o tom hesle se mimochodem zmínit nebo ho jinak připomenout. Mně se pak v duchu automaticky prožene "Nepleť mouchy s hermelínem, přejedeš katedrálu s mlýnem", přičemž si myslím, že se to jako lehké nervové vzruchy dostane až ke svalům (mám ten pocit), a je vymalováno. Nebo stačí nějaký pozměněný stav mysli, třeba drogy, aby to člověk i zamumlal. To se u nevyslovitelného hesla nestane.
> Navíc si myslím, že tím, že se nad heslem zamyslím a tím ho v duchu vyslovím, bude relativně snadno zjistitelné nějakým skenováním chodu mozku...
A není klasická pendreková kryptoanalýza trochu reálnější? :D I od agentury, co má přístup k mimozemským technologiím, hrozí spíš waterboarding někde ve sklepě.
To samozřejmě je, ale po waterboardingu člověk alespoň ví, že to heslo už sdělil, takže jej nebude dále používat. Předpokládám, že pendreková kryptoanalýza prolomí každé zapamatovatelné heslo.
Takhle se to ale s trochou fantazie dá udělat skrytě, i když je to pořád technicky daleko složitější než keyloger.
Otázka není, jestli se něco dá s trochou fantasie udělat skrytě. Otázka je, kdo a proč by něco takového dělal. Jaký druh útočníka se dá předpokládat? A co získá tím či oním druhem útoku? K čemu chce to heslo použít? Nejde místo nějakého extra sofistikovaného útoku ta data získat nějakým jiným kanálem se zlomkem námahy?
Vaše hypotetické čtení myšlenek nebo drogy jsou extrémně komplikované útoky. To nebude dělat jen tak někdo pro pár peněz. Jak máte pojištěné, aby se útočníkovi vyplatilo nechat vás dýchat?
Pokud je to master heslo pro uchovávání ostatních hesel, a ta ostatní hesla mají nějaký význam, což si lze vcelku snadno představit (můžu takhle mít třeba zašifrovanou utajovanou dokumentaci), tak to znamená, že útočník se k datům nejen dostane, ale ještě k tomu nepozorovaně a případně je může i sledovat v čase, než se rozhodne například k útoku.
Pokud mě zabije, zbytečně tím vyvolá pozornost.
Jasně, jsou to všechno hypotetické a dost extrémní představy.
Jenom bych připomněl, že „sestavil jsme relativně náhodná slova“ dost snižuje entropii, protože lidský mozek ta slova ani náhodou neumí vybrat náhodně. „Rýmuje se“ také snižuje entropii, „dalo se to přečíst“ rovněž. Takže entropie takového hesla je mnohem nižší, než by odpovídalo „počtu slov ve slovníku na počet slov v hesle“.
Ne že by takové heslo bylo vyloženě slabé, dneska nejspíš pořád ještě útoku hrubou silou odolá, ale k síle hesla z opravdu náhodně vybraných slov má dost daleko.