Jak jsou ukládána naše hesla na webových serverech?

Dnes se můžeme na moha webových stránkách a internetových službách zaregistrovat a získat tak další zajímavé služby. Jak jsou ale naše uživatelské údaje, které webovým stránkám poskytneme, zabezpečeny?

V minulém článku jsme si popsali, jak si jednoduše můžeme ověřit, zdali nebylo kompromitováno naše heslo. To se hodí tehdy, pakliže máme podezření, že se naše přihlašovací údaje dostaly do nepovolaných rukou resp. staly se součástí vykradení nějaké databáze hesel. Toto není nic neobvyklého. Poskytlo to mnoho známých společností jako například Yahoo, Sony, LinkedIn atd.

Volba silného hesla je dnes stále jedním z hlavních faktorů, jak znesnadnit útočníkům jejich pokusy o zneužití uživatelských účtů. Většina z nás se chová přesně naopak. Zvolit si co nejjednodušší heslo, abychom si ho dobře zapamatovali. Pokud ale například zvolíme heslo v podobě jména např: ivana01, je to v podstatě to samé, jako bychom žádné heslo neměli. Překonání takového heslo je otázkou okamžiku.

Proto se důrazně doporučuje volit hesla o minimální délce osmi znaků, která by měla obsahovat alespoň jedno velké písmeno, číslice a speciální znaky. Jedním takový může být například heslo, které jsme si vygenerovali v generátoru hesel v rámci aplikace LastPass.

I přesto,že si vygenerujeme silné heslo, nemáme rozhodně vyhráno. Další roli za bezpečnost našich uživatelských dat totiž ve velké míře přebírá samotný poskytovatel služby, nebo správce webu. Pokud jsou totiž naše údaje ukládána v rozporu s bezpečnostními pravidly, je nám silné heslo k ničemu. V současné době je zřejmě nejlepší formou zabezpečení hesel pomocí tzv. Salted Hashe . Kromě hashe samotného hesla se ještě přidává extra řetězec před, nebo za hash. Samotný hash hesla již dnes nemusí být natolik bezpečný, protože útočníci používají generování tabulek hashů, díky kterým jsou schopni hesla odhalit.

Ukažme si to na příkladu. Dejme tomu, že si X uživatelů zvolí stejné heslo například ve formátu: heslo01. Hash řetězec pro toto heslo by pak byl: a6f0c4c16f04e6ed7473e6241cdc5743. V tomto formátu je pak uložen na serveru. Útočníci ale používají generátory tabulek hashů, které dokáží generovat hashe pro hesla a s těmi pak porovnávají hashe uložené na serverech poskytovatelů.

Pokud však samotný hash je ještě zabezpečen metodou Salt, je pak samozřejmě mnohem obtížnější heslo získat, protože by musel útočník použít mnohem více času a samozřejmě i výpočetního výkonu a to většinu odradí. Salted hash pro heslo01 by pak mohl vypadat třeba takto: a6f0c4c16f04e6ed7473e6241cdc57434Hs*9dyt, kdy samotný hash pro heslo01 byl doplněn Salt řetězcem: Hs*9dyt. 

Metoda opatření hashe salte je znázorněna i na obrázku níže. V horní částí jsou hesla ukládána pouze v hash podobě. Níže jsou pak hesla opatřena náhodným saltem.

Jak vypadá salted hash

Tato metoda tedy řeší i situaci, kdy si může více uživatelů zvolit stejné heslo, ale díky Saltu je hash pro tato hesla v každém případě unikátní.

Jak jsme si už ale řekli, ani salt metoda není všemocná. Útočníky může odradit, zpomalit, ale nikoliv úplně zastavit. Vždy by ale měli všichni poskytovatelé služeb a webů, kteří nabízejí zadávání uživatelských údajů, používat ideálně tuto metodu. Níže si ukažme, jaké jsou možnosti ukládání údajů v praxi na serverech poskytovatelů:

  • ukládání v prostém textu (tzv. plain text) – nejhorší varianta. Hesla jsou ukládána v prostém textu tak, jak jsou
  • používání hash metody – hesla jsou sice heshovaná, pokud ale útočník použije tabulky pro porovnávání heshů, jsou poměrně snadno odhalitelná
  • použití hash metody s použitím již použitého saltu – použití saltu sice vylepšuje zabezpečení, ale použité salty nejsou unikátní, tudíž je míra zabezpečení značně snížena. Opakované použití stejného saltu pak může vést k prolomení hesel více uživatelů.
  • použití salted hash metody s jednoduchým unikátním saltem  – sice je použit unikátní salt, ale pakliže je jednoduchý (například číslice), opět může být snadno prolomitelný

Z výše uvedeného vyplývá, že by měl být používán pouze silný salt, aby byla tato forma zabezpečení opravdu účinná. Pokud tedy opět někdy zaslechnete, že došlo k úniku databáze hesel nějaké známé společnosti, zbystřete! V databázi se totiž mohlo nacházet vaše heslo, které jste nepoužily pouze v tomto případě. Důrazně v takovém případě doporučujeme heslo změnit.

 

 
Jakub Sobotka

Jakub Sobotka

IT geek, milovník mobilních technologií, blogger ... Ve volném čase sedlá horský bajk, rád fotí a tráví čas se svou rodinou ..... šéfredaktor a zakladatel webu Techbrain.cz

Nový komentář