V nedávném článku Password managery jsou pohodlné, cílenému útoku se ale neubrání jsme vám představili možnosti různých trezorů na hesla, které vám usnadní správu velkého množství přihlašovacích informací k řadě služeb.
S hesly se však pojí mnoho jiných problémů, proti jejich bezpečné správě podobnými manažery stojí pokusy o útok. Nabízí se vám několik možností, jak vyzkoušet odolnost vámi zvolených hesel i zabezpečení vámi používaných programů.
Programů pro lámání hesel existuje velké množství, musíte si ale ve správný okamžik vybrat ten správný. Začněte na Slunečnici v kategorii Hesla.
Zapomněli jste heslo ke svým datům, nebo je prostě jen chcete z jakéhokoliv jiného důvodu prolomit? Lámání hesel si kdokoliv může bez problémů vyzkoušet v případě lokálních souborů, resp. uživatelských účtů, do této kategorie nejčastěji spadají rozličné dokumenty Office, účty Windows, případně heslem chráněné komprimované archivy. Jakmile máte takto chráněný soubor, stačí objevit správnou aplikaci, která si s ním poradí. Zvláštní pozornost pak zasluhují programy a metody útočící přímo na hash kódy. Oproti útokům na online účty a přihlašovací formuláře má lokální lámání chráněných souborů výhodu v tom, že vás někdo jen stěží vystopuje, nejste při svých kouscích nikomu na očích.
Právě na možnosti lokálního lámání hesel se na následujících řádcích detailně podíváme, dozvíte se, jaké techniky ochran se ve kterých případech používají, a především jak se s nimi vypořádat. To, zda prolomení hesel (vznešeněji často nazývané jako rekonstrukci) využijete pro léčbu vlastní zapomnětlivosti, nebo se pokusíte nabourat do cizích dat, bude na vás. Pamatujte však na to, že pokud už někdo druhý vybraný dokument, jiný soubor nebo uživatelský účet ochránil heslem, nejspíš k tomu měl dobrý důvod!
Ještě špetku soli, prosím
Ještě než se pustíme do popisu konkrétních ochran a představení programů pro jejich lámání, je dobré si udělat přehled o významu hesla při ochraně dokumentů. Z uživatelského pohledu se totiž vždy setkáte s jednoduchým principem – při ochraně zadáte heslo, jímž data budou chráněna, pro jejich pozdější zpřístupnění tak učiníte naprosto stejně. Rychlé ověření, na jehož pozadí však heslo může projít různým zpracováním:
- Jednoduchý zámek – základní ochrana, kdy heslo slouží k autorizaci prostou kontrolou jedna ku jedné. V praxi si můžete tuto obranu představit jako program, který při spuštění vyžaduje vložení přístupového hesla a ten má pevně definován ve svém kódu. Heslo si nemůžete změnit, programová data bez něj ale nezpřístupníte.
- Jednoduchý zámek s ochranou – rozšíření uvedeného modelu, kdy však heslo můžete změnit, a to je pak co možná nejbezpečnějším způsobem uloženo (hash, hash + sůl, šifrování apod.). K prolomení je zapotřebí například extrahovat odpovídající část s chráněným heslem a na tu vést konkrétní útok, samozřejmě i třebas metodou pokus omyl testovat různé kombinace.
- Šifrování s použitím hesla – uživatelem zadané heslo se použije jako šifrovací klíč pro některý kryptografický algoritmus, a chrání se tedy nejen přístup k datům, ale také samotná data. Pro zvýšení náročnosti případného útoku, může jít o derivát hesla, případně s doplněním některých dalších statických dat. Algoritmus na podobném principu funguje například u heslem chráněných komprimovaných ZIP archivů, kdy lze aktivovat ochranu symetrickou šifrou AES.
Pokud jste se někdy dostali do nesnází u konkrétní webové služby, jelikož jste zapomněli heslo, vedly vaše kroky nejspíš k následování odkazu pro zaslání nového na přidružený e-mail. Důležitý je zde požadavek, že by heslo mělo být zasláno opravdu nové, jelikož tak máte větší jistotu, že provozovatel přístupové údaje ukládá ve formě, jejíž prolomení je výpočetně nemožné, hodně složité. Pokud by se hesla na serveru ukládala v jednoduché tabulce o dvojicích (login; heslo), zadělává si provozovatel při útoku na pořádné problémy.
Nastavení hesel vám může zvýšit zabezpečení komprimovaných archivů, stejně jako natropit lapálie při jejich zapomenutí
Jeden z často používaných přístupů pro bezpečné ukládání hesel na straně serveru proto představuje takzvané solení, kdy se k datům přidá (náhodně) generovaný řetězec, což je právě ona sůl, a z výsledné kombinace pak vytvoří hash kód. Základní vlastností hash kódů je jejich jednosměrnost, a tak z výsledného otisku není možné získat původní data. Jakmile se přihlásíte, přidá se předem určená sůl a porovnají se až dva výsledné otisky. Na serveru tak nemusí být původní heslo uložené v žádné otevřené či snadno prolomitelné podobě. Kdyby se v tabulce hesel objevila dvě naprosto shodná (při pokusu o útok i mimo něj), budou díky soli výsledné otisky různé, na shodu se tak snadno nepřijde. A když si necháte heslo v případě zapomenutí obnovit e-mailem, vygenerují se zcela nové údaje, staré se přepíšou, jsou nepoužitelné.
Silou i slovníkem
Bezpečnost hesla jako takového se dá určit třemi základními požadavky, a to jeho délkou, složitostí a dobou, po které musí být změněno. Požadavek délky je zřejmý – čím delší heslo, tím větší prostor, který musí být prohledán při útoku hrubou silou (brute-force). Ruku v ruce s tímto faktem slouží pro obranu před brute-force i slovníkovým útokem dostatečná složitost hesla. Asi není těžké dojít k závěru, že hesla typu pepik nebo pejsek budou pro útočníky snadným soustem.
Útok hrubou silou spočívá v testování všech možných slov nad zvolenou abecedou s případnými omezujícími podmínkami. Zde je dobré si uvědomit dopad délky hesla a velikosti použité abecedy na počet všech možných variant. Pokud máme heslo o osmi znacích a použitá abeceda zahrnuje malá písmena anglické abecedy plus číslice, pak všech možných kombinací je 368. Pokud ale abecedu rozšíříte i o velká písmena a speciální znaky (?, !, …), složitost útoku výrazně vzroste. Útočník navíc většinou nezná délku hesla, a proto mu nezbývá nic jiného, než postupně „zbytečně“ vyzkoušet všechny jednopísmenné, dvoupísmenné a další varianty.
Slovníkový útok naproti tomu může slavit úspěch všude tam, kde uživatelé spoléhají na snadno zapamatovatelná hesla, a proto volí běžná slova, případně je doplňují číslicemi. Na internetu je k dispozici celá řada slovníků, většinou se jedná o prostý textový soubor. Ten si buď zpracujete ve vlastním lamači hesel, nebo jej importujete do specializovaného programu.
Hesla Windows na počkání
Vyzbrojeni nezbytnou teorií se v dnešním článku naučíte obejít heslo Windows, tedy jej lokálně prolomit. S tím, jak se tento systém během dlouhých let vyvíjel v různých verzích, podléhaly evoluci také techniky ukládání jednotlivých hesel. Prehistorická vydání 95/98/ME volily jednoduchou metodu prostřednictvím souborů PWL. Tyto soubory se používaly pro ověření uživatelského vstupu, nejprve došlo k jejich dešifrování vloženým heslem, a pokud souhlasil výsledný otisk dat, byl uživateli povolen přístup.
Vylepšenou metodu volí pozdější systémy, jež se zakládají na LM a NTLM hash kódech. Varianty NTLM nabízejí vyšší zabezpečení, starší LM kódy nacházejí uplatnění hlavně kvůli případným požadavkům na zpětnou kompatibilitu s původními systémy. Hlavní důvod, proč bylo a je relativně snadné zaútočit na LM kódy, spočívá v tom, že se heslo doplní do délky čtrnácti znaků prázdnými znaky (drtivá většina hesel je mnohem kratších), poté se rozdělí na dvě části po sedmi znacích a každá z nich se zpracuje zvlášť. Lámání hesla je tedy zjednodušeno tím, že útoky vedou na dvě kratší varianty.
Abyste si útok sami osahali a vyzkoušeli jej třeba na svém vlastním počítači, využijte z dostupných programů Proactive Password Auditor. Nabízí několik možností načtení chráněných hesel a poté již můžete přejít k jejich lámání – mezi jeho výhody patří velice jednoduché použití a detailní průvodce v grafickém rozhraní.
Rekonstrukce hesla má výhodu, že zjistíte původní heslo, nicméně u složitých variant se pořádně načekáte. Jinými slovy, pokud jde o cizí heslo, obelstěný uživatel vaši taktiku a luštění nezjistí, jelikož se s jeho heslem fyzicky nic nestane, výsledek úspěchu je ale dost nejistý. Jestliže jen čestně potřebujete bleskově zcela odstranit zapomenuté heslo, aby při startu Windows nebylo zapotřebí a mohli jste zadat nové, využijte „tvrdý“ reset například pomocí linuxové distribuce Trinity Rescue Kit. V offline režimu po nabootování z CD nebo USB si poradí s odstraněním hesla i ve Windows 7, magickým příkazem je zde winpass. Jeho syntaxe a použití je jednoduchá, postup najdete na domovských stránkách.
Díky dnešnímu dílu máte přehled o technikách ukládání hesel a možnostech útoku na ně, zvládnete i rychlé obejití hesel Windows s lokálním přístupem. V příštím závěrečném pokračování se dozvíte detaily o takzvaných duhových tabulkách a útocích, stejně jako typech ochran a jejich obejití v balíku Office nebo komprimovaných archivů.