LM hash, LanMan nebo LAN Manager hash je v informatice již prolomená hašovací funkce, která primárně sloužila pro zahešování a uložení hesla pro Microsoft LAN Manager a pro Microsoft Windows do verze Windows NT. Kvůli snaze o udržení zpětné kompatibility s protokolem LAN manager byl LM hash podporován i v novějších verzích systému Windows NT, ale firmou Microsoft bylo doporučeno podporu LM hash vypnout. Od systému Windows Vista je již protokol ve výchozím nastavení zakázán, ale stále je používán některými implementacemi mimo Microsoft jako např. SMB.

Algoritmus editovat

Heslo uživatele je omezeno na nejvýše čtrnáct ASCII znaků.[Notes 1] LM hash se počítá následujícím způsobem:[1][2]

  1. Heslo uživatele je převedeno na verzálky.
  2. Heslo je vždy doplněno na 14 bajtů pomocí nul[3]
  3. Heslo je rozděleno na dvě sedmibajtové poloviny.
  4. Výsledné dvě hodnoty jsou použity k vytvoření dvou DES klíčů tak, že obě sedmibajtové poloviny jsou převedeny do bitového toku, kde je vždy po sedmi bitech vložen nulový bit (takže 1010100 se převede na 01010100). Takto je vygenerováno potřebných 64 bitů pro DES klíč (DES klíč se zdánlivě skládá ze 64 bitů, ale pouze 56 z nich využije algoritmus, přidané nulové bity jsou později zahozeny…)
  5. Oba klíče se používají k DES šifrování konstantního ASCII řetězce „KGS!@#$%“,[Notes 2] jehož výsledkem jsou dvě osmibajtové zašifrované hodnoty. Šifrovací režim algoritmu DES by měl být nastaven na ECB a režim vycpávání textu by měl být nastavena na NONE, tedy žádné.
  6. Tyto dvě šifry jsou následně spojeny do 16bajtové hodnoty, která se nazývá LM hash.

Bezpečnostní slabiny editovat

I když je algoritmus založen na šifrování DES, což je kvalitní bloková šifra, není LM hash opravdová jednosměrná šifra, jak se může zdát z haše, protože má několik nedostatků ve své konstrukci:[4] Za prvé to je omezení hesla na pouhých 14 znaků, což teoreticky dává maximálně   kombinací s využitím 95 tisknutelných znaků v tabulce ASCII.

Za druhé, hesla delší než 7 znaků jsou rozdělena na dva díly a každý kus je hešován odděleně. Tato slabina umožňuje, aby každá polovina hesla byla dešifrována odděleně, což znamená s exponenciálně nižší složitostí, než na celek jako takový   s použitím stejné znakové sady. Útokem hrubou silou na obě poloviny zvlášť může běžný současný počítač prolomit alfanumerický LM hash během několika hodin. Kromě toho jsou před zašifrováním všechna malá písmena v heslu změněna na velká písmena, což dále snižuje počet možných kombinací pro každou polovinu na  .

LM hash také nepoužívá kryptografickou sůl, což je standardní technika pro obranu před slovníkovým útokem. Je tedy možný útok kryptoanalýzou, jako je například využití Duhové tabulky. Kromě toho každé heslo, které je kratší než 8 znaků, vede k hašování sedmi nulových bajtů, které dávají ve výsledku konstantní hodnotu 0xAAD3B435B51404EE, což znamená, že krátká hesla jsou snadno identifikovatelná na první pohled. V roce 2003 vznikl program s názvem Ophcrack, který odstraňuje problém s využitím duhových tabulek. Konkrétně se zaměřuje na nedostatky LM šifrování v podobě předem snadného prolomení všech alfanumerických LM hashů během několika sekund. Mnoho crakovacích nástrojů, jako např. RainbowCrack, L0phtCrack a Cain, zahrnují podobné mechanismy na velmi rychlé a jednoduché prolomení LM hashe.

Poslední slabina LM hashe spočívá v jeho realizaci – protože se hash mění jen když uživatel změní svoji heslo, může být LM hash použit k provedení dalších útoků jako je např. Útok postranním kanálem.

Možná řešení problému editovat

Chcete-li řešit bezpečnostní nedostatky plynoucí z LM šifrování a ověřováních systémů, Microsoft vyvinul NTLMv1 protokol v roce 1993 Windows NT 3.1. Pro hešvání využívá NTLM podpory Unicode podpora, výměnou LMhash=DESeach(DOSCHARSET(UPPERCASE(password)), "KGS!@#$%") za NThash=MD4(UTF-16-LE(password)), která nevyžaduje žádnou výplň nebo zkracování hesla, aby nám omezila klíč. Na druhou stranu, stejný DES algoritmus jen s 56bitovým šifrováním byl použit pro následné autentizační kroky a ani zde nebyla použita kryptografická sůl. Navíc ve Windows bylo po mnoho let ve výchozím nastavení nakonfigurován pro odesílání a přijímání dat získané z obou hešovacích algoritmů (jako LM hash, tak NTLM hash) stejný mechanismus, takže použití NTLM neposkytl žádné další zabezpečení, zatímco slabší hash byl stále přítomen. To také znamenalo umělé omezení délky hesla v nástrojích pro správu, jako User Manager.

Zatímco LAN Manager je považován za zastaralý a aktuální operační systémy Windows používají silnější NTLMv2 nebo autentizační protokol Kerberos, systémy Windows před Windows Vista / Windows Server 2008 umožňovaly použití LAN Manager heše ve výchozím nastavení pro zpětnou kompatibilitu se starším LAN Manager a Windows Me nebo starší klienty jako jsou NetBIOS aplikace. Je již mnoho let považováno za dobrou bezpečnostní akci zakázat ohrožené LM a NTLMv1 ověřovací protokoly, kde nejsou potřeba.[5]

Počínaje Windows Vista a Windows Server 2008, Microsoft zakázal LM hash ve výchozím nastavení, funkce může být povolena pro lokální uživatele prostřednictvím nastavení zásad bezpečnosti a pro Active Directory účty podle stejného postupu přes doménu Group politika. Stejná metoda může být použita pro budoucí vypnutí funkce v systému Windows 2000, Windows XP a NT.[6] Uživatelé mohou také zabránit generování LM heše na jejich vlastní heslo použitím hesla, které je delší než patnáct znaků.[3]

Související články editovat

Poznámky editovat

  1. Je-li heslo delší než čtrnáct znaků, tak LM hash nelze spočítat
  2. Řetězec “KGS!@#$%” může znamenat Key of Glen and Steve a pak kombinace kláves Shift + 12345. Glen Zorn and Steve Cobb jsou autoři RFC 2433 (Microsoft PPP CHAP Extensions).

Reference editovat

V tomto článku byl použit překlad textu z článku LM hash na anglické Wikipedii.

  1. Chapter 3 - Operating System Installation: The LMHash [online]. Microsoft [cit. 2009-06-21]. Dostupné online. 
  2. GLASS, Eric. The NTLM Authentication Protocol [online]. 2003 [cit. 2006-06-05]. Dostupné online. 
  3. a b Cluster service account password must be set to fifteen or more characters if the NoLMHash policy is enabled [online]. Microsoft, 2006-10-30 [cit. 2009-06-21]. Dostupné online. 
  4. Jasper M. Johansson: Vše, co potřebujete vědět, Microsoft, 29. června 2004
  5. Jak zabránit systému Windows v uložení hash systému LAN Manager hesla v adresáři Active Directory a místních databázích SAM
  6. Jak se bránit Windows z uložení hash systému LAN Manager hesla v adresáři Active Directory a místních databázích SAM