Jak je to s hesly (nejen) na webu

Internet mě překvapuje denně. O to víc je situace nemilá, když jde o to, jak se internetové aplikace chovají k mým osobním informacím, konkrétně k heslu.

Do internetového obchodu CZC jsem se už dlouho nepřihlašoval. Když jsem to po delší době zkoušel, zjistil jsem, že si prostě nevzpomenu na heslo. Použil jsem tedy magický odkaz „zapomenuté heslo“ a nemohl se vynadivit, že mi e-mailem přišlo moje původní heslo v čistém textovém formátu. To je špatně a od tak velké firmy, jako je <acronym title=„Czechcom­puter“>CZC</a­cronym> bych rozhodně čekal lepší přístup.

Přístup poskytovatelů služeb

To, že mi přišlo e-mailem staré heslo znamená jednu věc – CZC má v databázích obchodu hesla uložena v čistém textovém formátu. Pokud by se teoreticky někdo dostal k databázi, může si přečíst hesla všech uživatelů. Vzhledem k tomu, že většina uživatelů internetových aplikací používá stejné heslo na různých stránkách, situace se začíná přiostřovat – ten, kdo hesla získá, může jednoduše (pokud ví i pár informací o osobě, kterou chce napadat) procházet účty nebožáka a zle je poškodit, nebo zneužít. Napadlo mě, proč poskytovatelé internetových služeb, kde je potřeba přihlašování, neinformují své uživatele o úrovni zabezpečení. Bojí se snad <acronym title=„Fear, Uncertainty and Doubt“>FUD</a­cronym> efektu? Snížení návštěvnosti? Kolik úsilí by stálo, zabezpečit data ve svých aplikacích alespoň těmito způsoby:

Hesla do databáze ukládat jako výstup hashovací funkce

hashovací funkce má pro jakýkoliv řetězec různý výsledek (v ideálním případě, kolize jsou známy). Nezáleží na délce řetězce, může být dlouhý i stovky a více znaků. Délka hashe je přesto stále stejná (při použití stejné funkce). Nejpoužívanější funkcí je v současnosti asi algoritmus md5 – pro příklad, md5 hash řetězce finwe je 7fffe7e8bf40c­3cd3549718e186dd370. Při ověřování hesla se pak porovná hash zadaného hesla s položkou v databázi (kde je uložen také hash) – pokud se shodují, přihlášení bylo úspěšné. Z takto ošetřených hesel nelze zjistit heslo původní, které by se mělo zadat do formuláře.

Hesla jsou „solena“

při hashování nastává problém – mají-li dva uživatelé stejné heslo, je stejný i hash. Pokud známe jedno heslo a jeho hash, není pak problém dohledat stejné hashe → a tudíž i stejná hesla (a divili byste se, kolik lidí si dá heslo „heslo“).
Řešením je solení – před heslo se připojí jiný text, pro každého uživatele odlišný, například přihlašovací jméno, a výsledný řetězec se prožene hashovací funkcí. pokud mají uživatelé user1 a user2 stejné heslo (např. heslo), hash soleného (user1heslo a user2heslo) se bude lišit.

Poskytovatel zveřejní informace o způsobu nakládání s daty (hesly)

Nikde na webu jsem neviděl, že by poskytovatel napsal (třeba při registraci uživatele), jak je nakládáno s hesly (krom zpovědi Seznamu.cz, těsně poté, co jistý student odposlouchal na školní síti 8 hesel a média to nafoukla do obřích rozměrů). Stačil by krátký dokument podobný tak oblíbeným prohlášením o přístupnosti, ve kterém by byl například text:

Vážený uživateli, uživatelko
v naší aplikaci neukládáme Vaše heslo do databáze v čisté podobě, ale šifrujeme jej jednocestnou šifrovací funkcí. Pokud heslo zapomenete, bude vám vygenerováno heslo nové a to zasláno e-mailem na adresu, kterou uvedete v registračním formuláři. Celý tento proces má zvýšit bezpečnost hesel našich klientů 

nebo


v naší aplikaci z technických důvodů ukládáme heslo do databáze v čistě textovém formátu. Doporučujeme vám proto zvolit heslo, které nepoužíváte v jiné aplikaci…

Výše zmíněné metody samy o sobě samozřejmě nemohou zaručit bezpečnost dat v databázi, ale velmi minimalizují možnost, že se někdo dostane k čistým heslům uživatelů jinou, než social-engineering metodou.

Přístup uživatelů aplikací

Výborný článek Analyzing 20,000 MySpace Passwords (v angličtině) vypovídá o tom, jaká hesla si nastavují uživatelé amerického serveru MySpace (který poskytuje administrační rozhraní pro osobní stránky zdarma + komunitní služby). Uživatelé se přihlašují pomocí e-mailu (jakéhokoliv) a hesla (specifického pro MySpace). Převážná většina uživatelů ale zvolí hesla stejná. Když potom přijde phishingový e-mail, a nachytá se 20,000 uživatelů, útočník rázem získá hesla nejen k účtům na MySpace, ale i k mnoha e-mailovým schránkám.

Zajímavá je i statistika síly (složitosti) hesla – nejčastěji mají hesla 6–7 znaků, jsou pouze malými písmeny a obsahují čísla. Silné heslo je ale pramálo užitečné, když ho používáte všude a třeba jen jedna z aplikací má mizerné zabezpečení (viz výše). Pak se „hacker“, který získá vaše heslo, dostane na všechny vaše účty – při nejhorším, je-li hodně šikovný a vy nemáte různá hesla, třeba i k tomu bankovnímu. I zde ale stačí dodržovat několik jednoduchých pravidel:

Používat různá hesla

jednoduše, nepoužívejte pro aplikace, u kterých neznáte způsob zabezpečení, stejná hesla.

Používejte silná hesla…

…a slabší jen při problémech s pamětí

Rozdělte si internetové (a jiné) aplikace podle důležitosti. Pro každou důležitost používejte jiné heslo (s důležitostí může růst i síla hesla):

Autor článku výše používá nejméně sílu hesla 3, a to i pro fóra a „nedůležité“ weby. Pro bankovnictví vždy 4.

Další rady a poznatky

Computer$, (Web)design

Komentáře

kukulich

15. 11. 2006, 9.33

Tak Czech Computer mě před nedávnem překvapili úplně stejně. Minulý týden navíc uplně stejně i Kasa. Skoro už mám pocit, že u internetových obchodů je to nějaký standard.


eda

25. 6. 2007, 12.25

To me se treba docela libi system ebnky.Tamsi clovek dokonce hesla ani nevybira sam.ALe jsou mu pro kazde prihlaseni ci operaci generovana a zasilana na mobl(pokud ma pristup pres mobil)


Vložit komentář

K tomuto příspěvku není povoleno přidávat komentáře.