Článek popisuje problematiku hesel, hashů, ale i jejich možné prolomení. Dotýká se tak přímo problematiky, kterou se v systému BOINC zabývá hned několik projektů: HashClash, SHA colision search Graz a TMRL DRTG.
Se svolením redakce i autora byl článek přetištěn ze serveru živě.cz.
Klasická hesla nás na toulkách počítačovým i okolním světem provázejí prakticky na každém kroku. Cestičku napříč různými bezpečnostními mechanismy mají pevně vyšlapanou již dlouhou dobu, lhostejno, zda se jedná o přístupy do operačních systémů, rozličné PIN kódy nebo další formy. A stejně jako v kterémkoli jiném odvětví počítačové bezpečnosti, také v případě hesel jsou proti sobě postaveny dva základní tábory: na straně jedné návrháři co možná nejbezpečnějších implementací, na straně druhé pak ti, kdo se hesla pokoušejí různými způsoby prolomit.
Hesla tak představují jeden z autentizačních prostředků, a díky tomu se staví po bok dalších dvou forem, tokenů a biometrik. Ve srovnání s nimi přinášejí řadu výhod i handicapů, ty nejzákladnější z nich shrnuje následující tabulka:
Způsob autentizace | Výhody | Nevýhody |
Hesla | nejrozšířenější, uživatelé jsou na ně zvyklí, snadná implementace | komplikovaná správa, lze je zapomenout, odpozorovat |
Tokeny | nelze je odpozorovat ani zapomenout ve smyslu hesel | dají se ztratit, nebezpečí krádeže, možnost zapůjčení |
Biometriky | pevně svázány s uživatelem, nelze je zapomenout, ztratit, odpozorovat | častá nedůvěra uživatelů, vyšší realizační náklady |
Prvně uvedená výhoda v podobě největší rozšířenosti hesel je spíše přidruženou vlastností, nicméně jednoznačně se zasloužila o to, že uživatelé s hesly pracují naprosto bezprostředně, nemají k nim „vrozenou“ nedůvěru. Právě tento bod je v poměrně silném kontrastu s některými moderními biometrickými technologiemi, které občas narážejí na trable s uživatelským přijetím.
Hesla se obecně vyznačují poměrně snadnou implementací, nicméně občas následuje komplikovanější správa. S tím do určité míry souvisí také neposlušnost uživatelů, kteří hesla často nepovažují za něco tajného, a tedy pro ně není problém se o ně podělit se svými kolegy, spolupracovníky nebo kamarády. A i když hesla nevyzradí takto přímo, stále je lze relativně jednoduše odpozorovat, případně zapomenout.
Je dobré si uvědomit, že tři autentizační techniky uvedené v tabulce nemusejí vždy značit zcela samostatné a od ostatních odloučené metody. Ano, klasická hesla jsou sice používána v počítačovém světě nejčastěji samostatně, tokeny například při docházce bez ochrany PIN kódem a identifikace prostřednictvím biometrik také nevyžaduje žádnou další kombinaci.
V praxi ale velice často potkáme různé kombinace autentizačních technik, které na straně jedné výrazně zvyšují bezpečnost, na straně druhé mohou komplikovat realizaci i správu a zvýšit náklady. Jedná se například o tyto dvou- až třífaktorové autentizace:
Již z uvedených kombinací z praxe je vidět, že bezpečnost hesel a jejich bezpečné uchovávání patří mezi základní kroky zabezpečení dat, přístupu do systémů apod. Vždy je přitom důležité nalézt kompromis mezi bezpečností hesel a schopnostmi lidské paměti zapamatovat si je. Na jedné straně tak stojí různé poučky, generátory hesel, jejich softwaroví správci a další nástroje, které handicap minimalizují, z druhé strany zase mají útočníci nespočet nástrojů a technik, jimiž se mohou dopídit slabého hesla a prolomit jeho ochranu. Pomůcky pro prolamování (nebo moderněji a více poeticky „rekonstrukci“) hesel nejčastěji implementují dva základní postupy:
Útok hrubou silou má velkou výhodu v tom, že při dostatečném času a použití kompletní abecedy vždy povede k úspěšnému výsledku. Zde ale nastává problém s výpočetní složitostí, jelikož už poměrně krátká hesla (kolem 8 až 10 znaků) při „rozumné“ abecedě (písmena, číslice a několik vybraných speciálních symbolů) odolávají rychlému prolomení. Útočník tak ideálně musí znát délku hesla a zhruba alespoň použité znaky. Klíčem by se v určitých případech mohlo stát také distribuované počítání, kdy by si dostatečný počet počítačů rozdělil prohledávaný prostor všech možných hesel.
Útoky v praxi na rozličné aplikace si můžete vyzkoušet například díky aplikacím společnosti Elcomsoft
Slovníkový útok má tedy již zmíněnou největší výhodu v rychlosti, kdy lze slabá hesla objevit během několika málo okamžiků. Pro úspěšné odhalení hesla prostřednictvím slovníkového útoku je ale zapotřebí „spolupráce“ uživatele, který heslo používá – v tom slova smyslu, že musí zvolit velice slabé heslo, jež je součástí některého z běžně dostupných slovníků. Může to být také některá jen mírně upravená varianta, například pc005, MoBiL apod.
Jak má tedy ale vypadat dostatečně bezpečné heslo? To vždy záleží na konkrétním systému, jeho bezpečnosti. Kdybyste například chtěli utajit nákupní lístek, jistě budete potřebovat slabší heslo, než je tomu v případě zabezpečení nanejvýš citlivých informací některé vládní organizace. Do toho vstupuje ještě řada dalších faktorů. Pokud sáhneme po konkrétním příkladu, pak například v operačním systému Windows Vista doporučují tvůrci v nápovědě následující zásady pro tvorbu silného hesla:
Rozšířené rady pro vytvoření silného hesla v podání nápovědy Windows XP
Z uvedených požadavků je vidět, že proti útoku hrubou silou autoři nabádají použitím dostatečně dlouhého hesla a poměrně široké abecedy („tři za čtveřice kategorií“), podobně i proti základním slovníkovým útokům zčásti chrání požadavek neobsažení části názvu uživatelského účtu. Zde je však tento krok zahrnut především z důvodu nemožnosti odhadnutí hesla podle znalostí osobních informací o uživatelovi, proti slovníkovému útoku by bylo lepší zahrnutí pravidla pro nepoužití běžných slov ani jejich částí.
Ještě než se v příštím díle podrobně podíváme na konkrétní bezpečnostní mechanismy různých aplikací, je dobré si připomenout hashovaná hesla. Hashovací funkce pro vstup libovolné délky (slovo, věta, text e-mailu nebo právě heslo) vytvoří otisk pevné délky, takže nesejde na tom, jestli původní data mají 1 kB nebo 100 MB, otisk bude v obou případech mít délku například 160 b. Důležitou požadovanou vlastností je takzvaná jednosměrnost, což znamená, že pro každý vstup musí jít odpovídající hash kód snadno spočítat, ale naopak z výsledného otisku nesmí být možné odvodit původní data. Zbývá ještě zmínit bezkoliznost, která zajišťuje, že pro různé vstupy budou vypočítány různé otisky (i drobné změně vstupu by měly odpovídat velké změny výsledného otisku).
Otázkou tedy zůstává, jak uvedené ingredience v podobě vlastností hash funkcí co možná nejlépe skloubit s klasickými hesly. Jednotlivé atributy lze s výhodou využít prostřednictvím následujících aplikací:
U hashovacích funkcí navíc musí fungovat takzvaný lavinový efekt, kdy malé změně vstupu odpovídá velká změna výstupu, takže i v případě, že by se dvě náhodně vybraná hesla hodně podobala, nebude možné ze znalosti hash kódu jednoho odvodit otisk toho druhého. Tolik teorie, praxe je samozřejmě, jak tomu již bývá, o něco méně veselá. Jak rozdílně vypadá výstup nejznámějších hashovacích funkcí pro vstupy, kde se změnilo byť jen jediné písmeno, ukazuje následující tabulka.
Algoritmus | Vstup | Výstup |
MD5 | cash | 93585797569d208d914078d513c8c55a |
hash | 0800fc577294c34e0b28ad2839435945 | |
SHA-1 | cash | a34c860a9909dd2ed8b22b29b9377b8c6d48fbec |
hash | 2346ad27d7568ba9896f1b7da6b5991251debdf2 | |
RIPEMD-160 | cash | 5ef72c1418aa8996fd0d27450e8fcfb72b0797a7 |
hash | 73045e2e25b9531d5cb676cf73fff291d4a1ee6d |
Ukládání hash kódů do centrálních databází postupně přestalo nabízet dostatečnou bezpečnost, začalo se používat takzvaného solení: výsledný hash kód se nepoužívá pouze z hesla jako takového, ale ještě se na vstupu přidá libovolný řetězec, takzvaná sůl. I kdyby se tak v databázi našla dvě shodná hesla, jejich výsledné otisky nebudou identické, a tedy nebude možné ze znalosti jedné dvojice (heslo, hash kód) odvodit údaje z druhého páru.
Doplňujícím požadavkem na různé hash funkce je nutnost poměrně rychlého výpočtu, což samozřejmě představuje výhodu při generování otisků, na druhou stranu je ale zde jistá dvojsečnost. Když jsou hash funkce rychle vypočitatelné, proč si nevytvořit seznam odpovídajících dvojic (vstupní text, výstupní otisk) dopředu?
Myšlenka je to bezesporu zajímavá, jednoduchá a hlavně nalezla také realizaci, tvoří základ takzvaných duhových útoků. Předpočítané tabulky hash kódů pro různé vstupy, v našem případě tedy hesla, jsou známé pod označením rainbow tables, celý proces útoků na hesla jejich prostřednictvím pak můžete najít pod souslovím rainbow attack.
S otisky pro různé vstupy si můžete pohrát i ve speciálních aplikacích, které generují hashe rozličnými funkcemi
Ačkoli univerzální princip duhových útoků naznačuje, že je lze aplikovat na kteroukoliv hash funkci, v praxi nejčastěji naleznete předpočítané tabulky pro rozšířené MD5 nebo LM hashe, které jsou známé z autentizace ve Windows (jako doplněk novějších NTLM variant):
Vyzbrojeni teorií nyní nezbývá nic jiného, než zapátrat po některých nejznámějších realizacích duhových útoků. Mezi populární patří projekt RainbowCrack, který najdete na domovských stránkách serveru Antsight.com. Na těchto odkazovaných stránkách se nachází několik verzí samostatné aplikace RainbowCrack, s jejíž pomocí je možné si předpočítat duhové tabulky pro různé hashe. Vlastní generování tabulek sice také netrvá zrovna krátkou dobu, avšak následné prolomení díky tomu může zabrat klidně jen pár vteřin. Ze základních hash funkcí jsou podporovány LM, MD5 a SHA-1.
Vygenerované duhové tabulky samozřejmě nacházejí uplatnění také v celé řadě jiných aplikací, vždy ale mějte na paměti, že opravdu rozsáhlé verze jsou také adekvátně veliké co do datové náročnosti. A do kterých externích aplikací je možné duhové tabulky importovat? Ze zdarma dostupných vám podporu duhových útoků nabídne například dobře známý nástroj Cain & Abel, z ostatních pak stojí za pozornost například komerční Proactive Password Auditor.
Lámání hesel v aplikaci Proactive Password Auditor
Stranou duhových útoků nezůstávají ani dokumenty některých verzí kancelářského balíku Microsoft Office, jmenovitě se v rámci aplikací jedná například o Ophcrack_office, o němž se můžete dočíst na stránkách serveru společnosti Objectif Sécurité. Tvůrci díky duhovým tabulkám přislibují prolomení hesel během několika málo minut, a to s úspěšností 99,6 %.
Představené duhové útoky na dokumenty kancelářského balíku Microsoft Office samozřejmě nejsou jedinou cestou pro proniknutí do chráněných dokumentů Wordu, Excelu, Accessu apod., také v dílnách ElcomSoftu můžete narazit na zajímavý nástroj s názvem Advanced Office Password Recovery. ElcomSoft vždy vyčníval díky uživatelsky velice přítulným rozhraním, nejinak je tomu i v tomto případě.
Na dokumentech Office je zajímavá především rychlost prolomení ochrany dokumentů, které nejsou heslovány proti čtení, ale využívají hesla pro obranu před zápisem. V takovém případě trvá prolomení hesla pouze několik málo vteřin. Kromě standardních útoků v podobě brute-force (hrubou silou) nebo slovníkového je k mání také zajímavá varianta s názvem Smart permutations, která automaticky generuje a zkouší následující „chytré“ varianty hesel ze slovníku:
Hesla balíku Microsoft Office samozřejmě nepředstavují jediné terče rozličných aplikací pro překonání ochran, nabízí se také nástroje pro OpenOffice. Jedním z nich je OpenOffice Password Recovery, informace o něm najdete například na domovské stránce serveru Intelore, odkud si můžete stáhnout také zkušební verzi. Podporovány jsou dokumenty ze součástí Writer, Calc, Impress, Draw i Math. K dispozici jsou také okamžitá odstranění některých slabších ochran.
Obnovení hesel dokumentů kancelářského balíku OpenOffice
Palčivým problémem standardních útoků je především časová náročnost, jelikož brute-force pokusy při větší abecedě zaberou velice dlouhou dobu. Řešením by proto mohlo být distribuované počítání, kdy se na útoku podílí větší množství strojů. Jak již název samotného produktu Distributed Password Recovery napovídá, tvoří základ úspěšného prolomení hesla rozložení zátěže při prohledávání prostoru všech klíčů na více počítačů. Alespoň zčásti se tak eliminuje časová náročnost klasického útoku hrubou silou.
Pokud se rozhodnete, že prolomíte heslo k některému z komprimovaných archívů, mohou vaše první kroky opět směřovat ke komerční aplikaci od společnosti Elcomsoft, tentokrát s názvem Advanced Archive Password Recovery. S její pomocí se můžete pustit do obcházení ochrany archívů ZIP, ARJ, RAR a ACE. Především u starších variant archívů ZIP se dočkáte rychlého „brute force“ útoku, novější verze jsou samozřejmě odolnější.
Lámání hesel komprimovaných archívů v podání programu Advanced Archive Password Recovery
Na archívy ZIP dále můžete s výhodou využít aplikaci Ultimate ZIP Cracker, jež se nabízí na domovské stránce společnosti VdgSoftware. Tvůrci v tomto případě vsadili především na jednoduchost a přívětivost obsluhy, takže vás při lámání navádí intuitivní průvodce. Kromě archívů ZIP si Ultimate Cracker dokáže poradit také s heslovanými soubory aplikací Microsoft Word a Excel. Rychlost útoku hrubou silou je srovnatelná s již představeným programem Advanced Archive Password Recovery.
Při troše „štěstí“ se můžete setkat s dokumenty PDF, které jsou svými tvůrci chráněny různými hesly. Také v tomto případě se vám k dispozici pro lámání nabízí některé jednouché programy, které se pokusí tuto obrannou bariéru překonat. Jedním z nich je například program GuaPDF, který má své místo na domovské stránce. Na výběr máte z verzí pro Windows a Linux, volit můžete jak z ovládání pomocí grafického rozhraní, tak spuštění dávky díky práci v příkazové řádce.
V rámci lámání hesel, hash kódů a vůbec světa bezpečnosti jako takového zaslouží samostatnou pozornost vydařená aplikace Cain & Abel, kterou můžete zdarma získat na domovských stránkách serveru Oxid.it. Znalci přitom vědí, že Cain & Abel se nespecializuje pouze na hesla, ta popravdě tvoří jen zvláštní sekci této aplikace, ale na možnosti prolomení rozličných bezpečnostních mechanismů, především pak síťového světa.
S programem Cain & Abel se vám otevírají brány k lámání síťových hesel, zcela mimo zájem tak zůstávají například komprimované archívy nebo heslované soubory dokumentů Microsoft Office. Na druhou stranu však také můžete snadno a rychle získat dostupná hesla aktuálně přihlášeného uživatele, jedná se například o údaje aplikace Microsoft Outlook nebo automaticky vyplňovaná hesla webového prohlížeče Internet Explorer.
Větší „síťařina“ přichází v rámci skupiny Network, jež prozkoumá okolní počítače v lokální síti a pokusí se zjistit co možná nejvíce dostupných informací. Jmenovitě tak máte možnost zjistit například použité operační systémy, právě běžící služby, seznamy uživatelských účtů a názvy sdílených síťových prostředků. Pokud hledáte cíl v nepříliš chráněné lokální síti, osaháte si potenciální oběti právě tímto letmým dotekem.
Na hesla s programem Cain & Abel
Lámání hesel v celé jeho kráse najdete v příhodně pojmenované skupině Cracker, přičemž rekonstrukce většiny z nich se zakládá na prolomení odpovídající hash funkce. Jedná se tak o univerzální přístup, kdy vstup použijete z libovolné aplikace – je tak jedno, pro jaký účel lámete MD5, SHA apod. Pokud si na mušku chcete vzít Windows, využijete prolomení hash kódů LM a NTLM. Vlastní útoky pokrývají všechny standardní techniky, volit tak můžete ze slovníkového, hrubou silou i oblíbeného duhového.
Cain & Abel samozřejmě nesmí opomenout ani klasický sniffer, s jehož pomocí vám po přepnutí karty do promiskuitního režimu neunikne jediný paket. Podobně pro sledování komunikace od směrovače můžete využít klasického APR (ARP Poison Routing), další, relativně ojedinělou funkcí, je možnost sledování VoIP komunikace.
Ve dvou článcích o výhodách, nevýhodách a možnostech prolomení rozličných hesel, jste měli možnost nabrat inspiraci pro tvorbu bezpečnějších hesel a také se dozvědět něco o jejich rekonstrukci. Zpravidla přitom platí, že hesla budou představovat souboj mezi naší nedokonalou pamětí a co možná nejdokonalejší bezpečností.
Svůj komentář na tento článek, co by mělo být opraveno, či doplněno můžete napsat do této sekce na našem týmovém fóru. Téma s komentářem k tomuto konkrétnímu článku, by mělo nést stejný název, jako článek na webu.