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 CZC bych rozhodně čekal lepší přístup.
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 FUD 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:
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
7fffe7e8bf40c3cd3549718e186dd370. 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.
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.
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.
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:
jednoduše, nepoužívejte pro aplikace, u kterých neznáte způsob zabezpečení, stejná 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.
RSS feed komentářů k tomuto článku
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)
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.