Myslím, že každému jsou jasná základní pravidla, která říkají, že heslo musí být dlouhé, komplexní a neobsahovat slova ze slovníku. Takže spíše nějaké poznámky, které nejsou moc známé.
Na různých účtech různá hesla
Tohle si člověk moc neuvědomuje. Ale představte si tohle. Nákaza napadne jeden počítač. Spustí se pod libovolným lokálním, nebo dokonce omezeným doménovým účtem. Ale jako lokální admin nebo SYSTEM. Z paměti vykrade heslo, nebo hash hesla, případně to vybere z IIS nebo služeb. A okamžitě to začne zkoušet na okolní počítače a další účty, které si načte z Active Directory.
Seznam uživatelů a jejich loginů z Active Directory může číst jakýkoliv ověřený uživatel, nebo doménový počítač. Takže nejen doménový admin. Kdokoliv, ve výchozím stavu. Jestli máte na nějakém účtu stejné heslo, počítejte s tím, že ho použije.
To stejné platí pro různé internetové služby. Uvědomte si, že každou službu někdo spravuje. Totální anonym, kterého jste v životě neviděli. Má přístup na vaše plaintextové heslo. Co brání indovi, nebo špatně placenému supporťákovi, aby si prostě místo nudy bral postupně různé účty a zkoušel ta hesla do facebooku, gmailu, seznamu, centrumu, paypalu a kamkoliv jinam. Login máte všude stejný, ne? Většina služeb používá mailovou adresu.
Musí být hesla "úplně" jiná? Nebo stačí jenom malinká změna? Stačí malinká. Pokud se nelišíte jen číslem na konci, tak to nelze zkoušet jinak, než prostě zkusit brute-force, všechny možnosti.
Aspoň jeden speciální znak
80% hesel na světě je pouze alfa-numerických. Jestli někdo zkouší hesla, určitě začne vždycky s hesly, která neobsahují speciální znaky. Má vcelku velkou šanci na úspěch.
Heslo dlouhé alespoň 15 znaků
Už jsem tu psal o vykrádání plain-textových hesel z paměti. Takže zrovna v tomhle případě to není žádná ochrana. Ale přecejenom se tím sami chráníte proti možnému vygenerování LM hash - tedy takové té strašlivě nebezpečné hash, kterou lze kreknout během pár minut. Její generování a případně použití při přenosu přes síť se dá omezit pomocí Group Policy. Jenže nikdy nevíte, jaká ta politika kde je.
Zdá se, že když bych se přihlašoval čipovou kartou, že mě heslo nezajímá. Ale to není pravda. I čipové karty podporují NTLM ověřování, které používá vždycky hash hesla. I když se přihlásíte čipovou kartou, a vy sami to heslo neznáte, DC vaše heslo zná a pošle vám jeho hash, jako součást TGT tiketu (součást PAC - privilege attribute certificate).
Když si nastavíte heslo alespoň 15 znaků, LM hash se prostě nevygeneruje a nemusíte to řešit.
Jinak už jsem tu psal, že osmiznaková hesla jsou tragicky nebezpečná, ale že už 12 znaků dlouhé heslo se dá považovat za bezpečné (podobně jako SHA-1) - tedy pokud máte LM hash vypnutou.
Jak vyrobit slušné heslo?
Vemte dvě dlouhá slova. Spojte je za sebe. Jedno písmeno velké, do každého slova jeden speciální znak a nějaké číslo - do každého slova, ať se zbavíte slovníkových zkoušeček.
To se krásně zapamtuje a přitom je to neprůstřelné.
Zamykání účtů?
Jak moc je potřeba přehánět zamykání účtů? Skoro vůbec. Pojďme to zpočítat. Například jen šestiznakové heslo, zámek po 70 špatných pokusech na dobu jedné minuty:
počet hesel: cca 80^6 = 262 144 000 000
polovina, kterou musí útočník statisticky vyzkoušet: 131 072 000 000
počet zamknutí po 70 špatných pokusech: 1 872 457 142
kolik let to bude trvat vyzkoušet při zámku na jednu minutu: 3 562 let
Z toho je snad vidět, že vynucovat zamykání po třech špatných pokusech je hrozné násilí na lidech :-)