Tak, ako mnoho iných používateľov internetu, aj ja mám desiatky, možno aj stovky účtov na rôznych stránkach. Vždy, keď si vytváram nový účet, pokiaľ nie je možnosť registrovať sa cez Google alebo Facebook, stránka odo mňa vyžaduje heslo. Vo väčšine prípadov musí mať minimálne 8 znakov, obsahovať aspoň jedno číslo, veľké písmeno a špeciálny znak. Navyše to má byť heslo, ktoré som ešte inde nepoužil. Otázkou je, ako si všetky tieto heslá zapamätať a udržať si pritom dostatočnú bezpečnosť.

Jednoduchou odpoveďou by bolo použitie ukladania cez prehliadač alebo doplnok/aplikáciu.

Sú však prípady, keď ocením, že si heslo pamätám z hlavy, napr. keď sa prihlasujem z nového (požičaného) zariadenia a nemusím sa pred tým prihlasovať do prehliadača. Nehovoriac o tom, že heslá uložené cez niektoré doplnky a aplikácie by som takto nepreniesol. Ťažko povedať, či je aj dostatočne bezpečné mať heslá kdekoľvek uložené – akonáhle by útočník získal prístup k tomuto jedinému miestu, získava heslá na všetky moje účty.

Predtým, než si naplním hlavu len heslami tak, že sa mi do nej nezmestí už vôbec nič, môžem si účty, pre ktoré si heslá vytváram, rozdeliť na dve kategórie:

  1. účty, ktoré chcem mať dobre zabezpečené a/alebo kam sa chcem rýchlo a bez problémov prihlásiť a
  2. účty, kde by mi ani nevadilo, ak heslo zabudnem alebo bude prelomené.

Pre druhú kategóriu môžem použiť prehliadač/doplnok/aplikáciu na uloženie hesla + použijem e-mail, na ktorý by som v prípade nutnosti poslal žiadosť o reset hesla a na ktorý sa viem prihlásiť z hlavy odkiaľkoľvek, ale aby samotné prihlásenie naň bolo bezpečné.

Stačí mi teda zapamätať si zopár hesiel, ale myslieť aj na to, že niektoré účty (napr. gSuite od Google) vyžadujú, aby som si heslo každých pár mesiacov menil na nové, ktoré som ešte predtým nepoužil – a to napriek tomu, že to bolo kritizované ako menej bezpečné (napr. pretože ľudia mali vo zvyku si heslá napísať na papierik, ktorý im mohla návšteva odfotiť) a viacerí, ako napr. Microsoft, od toho upúšťajú.

Je He$1o bezpečné?

V prvom rade treba povedať, že spomínané kritérium na aspoň jedno číslo, veľké písmeno a špeciálny znak vlastne nie je zďaleka tak bezpečné ako dlhšie heslo bez použitia týchto kritérií.

Jeden z autorov odporúčania amerického Národného inštitútu pre štandardy a technológie (NIST) z roku 2004 pre The Wall Street Journal priznal, že zložité a krátke heslá boli omyl.

Na základe týchto kritérií, v snahe o vytvorenie zapamätateľného hesla, si ľudia vytvárali ľahko prelomiteľné heslá. Napr. jedno slovo, v ktorom písmená l,o zamenili za čísla 1,0 a písmená a,s za znaky @, $.

Ďalším problémom krátkych hesiel (do 7 znakov) je ich potenciálne rýchla možnosť prelomenia pomocou metódy útoku hrubou silou (tzv. brute force attack). Väčšina účtov, ku ktorým zadávame heslá, je voči tejto metóde chránená. Avšak aj tu hrozí riziko, že útočník nájde pre danú službu bezpečnostnú dieru, cez ktorú sa mu môže podariť využiť túto metódu, takže je lepšie zvoliť heslo, ktoré bude bezpečné aj voči tomuto útoku.

Metóda spočíva v tom, že nejaký počítač bude rad za radom zadávať heslá vo všetkých možných kombináciách. Pre 5-znakové heslo, ktoré môže obsahovať malé a veľké písmená, čísla a špeciálne znaky, to je len 8 miliard kombinácií.

Súčasné počítače (ako na strane útočníka, ktorý heslá zadáva, tak na strane serveru, ktorý heslá prijíma) pri zohľadnení obmedzenia dátového prenosu zvládnu spracovať algoritmus, ktorý za jednu sekundu vyskúša veľké množstvo kombinácií. Prelomenie by teda trvalo len pár hodín (či dokonca minút).

Zatiaľ čo vyskúšať 2-krát také dlhé heslo (10 znakov), skladajúce sa len z malých písmen (bez čísel a špeciálnych znakov), predstavuje až 141 biliónov kombinácií (to je 17 625-krát viac) a takéto prelomenie metódou hrubej sily by trvalo podstatne dlhšie.

V presnejších číslach a pre lepšiu predstavu, pokiaľ by útočník skúšal heslá na vlastnom počítači bez obmedzení serveru, tak 5-znakové heslo zložené z malých a veľkých písmen, čísel a špeciálnych znakov by zvládol uhádnuť do 8 sekúnd, zatiaľ čo 10-znakové, zložené len z malých písmen, by mu zabralo 40 hodín. A pokiaľ by sa použilo 12 znakov (95 biliard kombinácií), trvalo by to už 3 roky.

Zdroj: https://web.archive.org/web/20180412051235/http://www.lockdown.co.uk/?pg=combi&s=articles

Pri použití 8 znakov, ktoré môžu obsahovať malé a veľké písmená, čísla a špeciálne znaky, to je síce viac ako 7 biliard kombinácií (a čas na prelomenie viac ako 83 dní), ale ja si určite ľahšie zapamätám a hlavne aj rýchlejšie napíšem 12 malých písmen, čo predstavuje napr. 2 až 3 slová, ako 8 znakov, kde sú aj veľké písmená, čísla a špeciálne znaky.

Ako si vytvoriť dostatočne silné a zapamätateľné heslo?

Autor pôvodných odporúčaní NIST uvádza, že omnoho bezpečnejšie je vytvoriť si heslo pozostávajúce z viacerých krátkych náhodných slov. Ako príklad uviedol heslo zo slov: správne, kôň, baterka, spinka (v origináli „correcthorsebatterystaple“). Takéto vytváranie hesiel je aj v súlade s aktuálnymi odporúčaniami NIST z roku 2017. Súhlasím, že takéto heslo je omnoho ťažšie na prelomenie, ale podľa môjho názoru až zbytočne dlhé a teda ťažšie na zapamätanie.

Ak by som použil menej slov, môžem naraziť na problém, že potenciálny útočník môže na prelomenie hrubou silou použiť databázu slovníka a rad za radom skúšať kombinácie všetkých slov (aj keď teraz by to ešte zrejme žiadny útočník neskúšal, pretože ľudia ešte nezačali takéto heslá vytvárať).

Faktom však je, že čelím obmedzeniu zo strany služieb, ktoré vyžadujú, napriek novým štandardom, použitie aj veľkého písmena, číslice a špeciálneho znaku.

Najjednoduchšie je teda použiť dve až tri slová a doplniť ich o tieto kritériá. Keďže sa počet kombinácií navýši, nemusím nutne vyberať úplne náhodné slová. Tieto kritériá môžem mať vo všetkých heslách pre všetky účty rovnaké a jediné, čo budem meniť, sú samotné slová.

Napr. si môžem určiť systém, kde miesto medzery použijem číslicu 7, prvé písmeno bude vždy veľké a ako posledný znak použijem @.

Ak by aj niekto zistil nejaké moje heslo, napr. „Biely7zajac@“, nevedel by v tom nájsť systém pre určenie hesla v inej službe, ktoré by bolo napr. „Horiaci7dom@“.

Treba sa, samozrejme, vyvarovať slovám, ktoré ľudia najčastejšie pri heslách používajú (slová ako „heslo“, „tajné“, „super“, „zámok“ a pod.). Pre zaujímavosť na tomto odkaze nájdete 500 najhorších hesiel – teda tých, čo ľudia najčastejšie používajú a sú ako prvé útočníkmi skúšané.

Ďalej odporúčam vyberať slová, ktoré nemajú diakritiku, pretože sa nebudem neskôr trápiť s tým, či som ju použil, a či mám napísať „Zelený7králik@“ alebo „Zeleny7kralik@“.

Síce menej bezpečné, ale stále extrémne zložité na prelomenie, je použiť pre všetky služby rovnaké heslo a doplniť ho o slovo pozostávajúce z názvu služby. Napr. použiť ako základ hesla výraz „Biely7@“ a doplniť ho o meno, ktoré začína rovnakým písmenom ako daná služba, t.j. „Biely7@fero“ pre Facebook, „Biely7@gregor“ pre Google, „Biely7@milan“ pre Martinus a pod.

Prípadne sa môžu tieto metódy skombinovať a napr. základ hesla „Biely7@“ budem používať napr. pri účtoch na eshopoch, zatiaľ čo pri ostatných službách použijem iný základ a pre najčastejšie používané účty, ako Facebook a Google, si zvolím úplne iné heslá.

Určite však neodporúčam použiť na 2 služby, pre ktoré chcem čo najlepšie zabezpečenie, úplne identické heslo. Nielenže môže moje heslo uniknúť zo služby, do ktorej sa prihlasujem, ale môže byť zachytené už v dobe zadávania hesla, pokiaľ sa napr. nepoužilo šifrované spojenie (https).

Problémom ešte ostávajú služby, ktoré ma nútia meniť si heslá. Treba si nájsť opäť nejaký systém. Praktické by bolo napr. ukončiť heslo len číslicou, ktorú budem postupne zvyšovať. Ak by však niekto zistil moje predchádzajúce heslo, môže mu ľahko napadnúť, aké je súčasné.

Bezpečnejšie by bolo napr. miesto čísel použiť písmená abecedy (ako idú za radom) a podľa toho použiť slovo s týmto začiatočným písmenom. Pre lepšie zapamätanie môže ísť opäť napr. o mená alebo názvy zvierat. Ako prvé heslo pre Google by som teda mohol použiť napr. „Biely7@gregorantilopa“, druhé by bolo „Biely7@gregorbocian“, tretie „Biely7@gregorcibeta“…

Tieto tipy uvádzam pre heslá, ktoré si chcete dôkladne zabezpečiť. Pre účty, kde nepotrebujete maximálnu bezpečnosť (a kde nie je nutné, aby obsahovali špeciálny znak a číslicu) si môžete systém zjednodušiť, aby ste si vedeli heslo lepšie zapamätať – použiť napr. 3 slová („kapustanapive“, „loptapadlavon“…). Aj takéto heslo bude bezpečnejšie ako 8-znakové, ktoré obsahuje špeciálne znaky, veľké písmená a čísla. Lepšie si ho zapamätám a viem ho rýchlejšie napísať (čo ocením hlavne na telefóne).

Každému, samozrejme, bude vyhovovať iný systém, vďaka ktorému si heslá lepšie zapamätá. Môj tip spočíva v tom, nájsť si čas a vymyslieť si vlastný systém. Môžete tým docieliť, že budete vedieť heslá sypať z hlavy namiesto generovania náhodných zhlukov znakov, ktoré sú nezapamätateľné.