Autentizace: správa hesel
Z prognózy vývoje autentizace v dalších letech vyplývá, že hesel se jen tak nezbavíme, a vzhledem k jejich rostoucímu počtu se musíme zamyslet nad tím, jak je efektivně spravovat.
Ukládat hesla v počítači nebo v zařízení, které musí být s počítačem spojeno v okamžiku, kdy chcete dané heslo použít, není bez ohledu na to, jestli jsou hesla v daném úložišti šifrována či nikoliv, úplně ideální, stejně jako zapsat si všechna svá hesla na papírek, který můžete ztratit. Když si ale dokážete zapamatovat jedno komplexní heslo, tak si již žádná další hesla nemusíte pamatovat.
Hesla, která budete k přihlášení do jednotlivých systémů používat, budou totiž složena ze dvou částí. Z komplexního hesla, které budete mít uloženo jen ve své hlavě a z komplexních hesel pro jednotlivé systémy, která si někam zapíšete. Útočník, který by se k médiu se zapsanými hesly dostal, se však tak snadno nepřihlásí, protože by musel nejen znát, jaké uživatelské jméno a k jaké službě používáte, ale také jaká je ta druhá část hesla, kterou máte uloženou jen ve své hlavě.
Nehledě na to, že hesla mohou být na médiu zapsána v podobě seznamu, který se bude skládat z několika delších řetězců, a jen vy budete vědět, jak je heslo dlouhé, na jaké pozici začíná, zda jednotlivé znaky hesla následují v řetězci po sobě atd. Vy si můžete v podstatě vymyslet jakýkoliv algoritmus, a v hlavě provádět ještě nějakou transformaci. Je to sice security by obscurity přístup, ale plní dobře svůj účel. Možná je ale toto opatření zbytečné, protože pravděpodobnost, že by útočník bez jakýchkoliv indicií přišel na to, k čemu a komu daný seznam hesel slouží, je, přiznejme si to, mizivá. To je ostatně i důvod, proč je nesmyslné uživatelům zakazovat si hesla někam poznamenat.
První podmínka by mohla být splněna jen v okamžiku, kdy by útočníkem byla osoba, která vás zná. Pokud by útočník heslo odchytil při přenosu nebo by kompromitoval systém, do kterého se hlásíte, získal by jen heslo k danému systému. Do jiných systémů útočník nemá šanci se přihlásit, protože z odchyceného hesla není schopen odvodit hesla ostatní. Útočník by mohl být úspěšný jen v jednom jediném případě a to, že by odchytil jedno z hesel a zároveň by získal přístup k médiu, na kterém máte části hesel k jednotlivým systémům zapsána.
Pak by se již jednalo o cílený útok na vaší osobu, a v takovém případě by vás nejspíš nezachránila ani dvoufaktorová autentizace. Tím nechci říci, že dvoufaktorová autentizace pomocí nějakého tokenu nemá smysl. Má, ale upřímně řečeno, její hlavní výhoda spočívá především v tom, že token nelze jednoduše zkopírovat a když vám ho někdo ukradne, tak na to zpravidla brzy přijdete. Potíž je, že jsou systémy, které prostě jiný způsob autentizace než autentizaci heslem nenabízí.
Nyní si uveďme konkrétní příklad. Nejdříve si vymyslíme komplexní heslo, v duchu již výše odkazovaného příspěvku, ve kterém píšeme o tom, jak si vytvořit bezpečné heslo. Naším master heslem bude třeba „#P!Bm0“ Nyní již jen musíme vygenerovat ke každému systému, ke kterému se budeme hlásit, jedinečné komplexní heslo. Přičemž v hesle může být i zakódováno pro přihlášení k jaké službě dané heslo slouží. Zkuste si zahrát na útočníka a přijít na to, k jakým službám slouží tato tři hesla: w$4gEr, hg7Tm*, k2fW+3.
Když jsme si kladli otázku, jak dlouhé by měly být jednotlivé části hesla, vycházeli jsme z toho, že kdyby byla jedna část hesla kompromitována, musel by útočník druhou část hesla uhádnout. V případě, že by každá část hesla byla dlouhá přesně 6 znaků, znamenalo by to, že by útočník musel vyzkoušet minimálně 95^6 různých hesel a to by mu při rychlosti zkoušení 1000 hesel za sekundu trvalo několik let. Uhádnout heslo tímto způsobem je prakticky nemožné, viz příspěvek lámání hesel. Zde jen dodám, že i kdybyste disponovali botnetem čítajícím více jak tisíc strojů, tak vám to nepomůže, protože většina systémů je během sekundy stejně schopna obsloužit jen něco mezi 100 až 1000 uživatelů.
Pokud by se útočník dostal přímo k hashi takto konstruovaného hesla, musel by provést útok hrubou silou na heslo o délce 12 znaků a to by znamenalo vyzkoušet 95^12 různých hesel a to by trvalo až několik desítek let. Hlavní výhoda tohoto přístupu ke správě hesel spočívá v tom, že nepotřebujete žádný HW ani SW, a kompletní heslo není nikde uloženo ani se nezobrazuje v čitelné podobě na obrazovce.
Pozor: V okamžiku, kdy ztratíte médium, na kterém máte uložená jednotlivá hesla, tak se už nepřihlásíte, proto si raději udělejte jeho kopii a tu si uložte na bezpečném místě.
Pokud se rozhodnete, že pro správu hesel použijete nějaký SW nástroj, můžete svá hesla svěřit např. nějakému nástroji pro správu hesel, tzv. password manager, který hesla šifruje a pro přístup k nim vyžaduje zadání tzv. master hesla. Takovým řešením je např. KeePass nebo LastPass. Nevýhodou těchto řešení pro správu hesel je, že vaše hesla jsou uložena v paměti daného zařízení a následně i zobrazována na obrazovce. Kromě toho může být toto zařízení kompromitováno.
Jako bezpečnější řešení se proto jeví použití SW nástroje např. SuperGenPass, který hesla nikam neukládá, nýbrž hesla generuje v okamžiku, kdy zadáte název systému, do kterého se chcete autentizovat a své master heslo. Toto řešení využívá hashovací funkce, které jako parametr předáte master heslo, které se spojí s názvem systému (může jím být URL daného webu, název serveru nebo aplikace, to záleží zcela na vás), a pro tento řetězec se pak spočte hash, který se následně převede na komplexní heslo o určité délce. O tomto řešení se můžete dočíst více na rootu nebo blackhole. Nevýhodou tohoto řešení je, že se heslo zobrazuje v čitelné podobě na obrazovce.
Závěr: Všechny výše uvedené způsoby správy hesel jsou poměrně bezpečné a uživateli stačí si zapamatovat jen jedno, tzv. master heslo. Jak bude dlouhé, záleží především na něm, nicméně jako master heslo doporučujeme používat komplexní heslo o minimální délce 6 znaků. Ať už použijete jakékoliv řešení, nedoporučuji hesla uchovávat nebo generovat na zařízení, ze kterého se autentizujete.
A jak svá hesla spravujete vy? Už jste hlasovali v naší anketě?
Štítky: autentizace
K článku “Autentizace: správa hesel” se zde nenachází žádný komentář - buďte první.
Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.