LM-геш
LM-геш, або LAN Manager геш — один з форматів, використовуваних Microsoft LAN Manager і версіями Microsoft Windows до Windows Vista для зберігання призначених для користувача паролів довжиною менше 15 символів. Це єдиний вид хешування, який використовується в Microsoft LAN Manager, звідки і походить назва, і у версіях Windows до Windows Me. Він також підтримується і більш пізніми версіями Windows для зворотної сумісності, хоча в Windows Vista його доводиться включати вручну.
LM-хеш обчислюється наступним чином[1]:
- Пароль користувача приводиться до верхнього регістру.
- Пароль доповнюється нулями або обрізається до 14 байтів.
- Отриманий пароль поділяється на дві частини по 7 байтів.
- Ці значення використовуються для створення двох ключів DES, по одному для кожної 7-байтовій половинки, при цьому 7 байтів розглядаються як бітовий потік і після кожних 7 бітів вставляється нуль. Так створюються 64 біта, необхідні для ключа DES.
- Кожен з цих ключів використовується для DES-шифрування ASCII-рядка «
KGS!@#$%
», в результаті виходять два 8-байтових шифрованих значення. - Дані зашифровані значення з'єднуються в 16-байтове значення, яке є LM-гешем.
Незважаючи на те, що LM-геш заснований на якісному блоковому шифрі DES, він може бути легко атакований для підбору пароля через дві вразливості в його реалізації. По-перше, паролі довше 7 символів розділяються на дві частини, і кожна частина хешується окремо. По-друге, всі символи нижнього регістру приводяться до верхнього до хешування пароля. Перша уразливість дозволяє атакувати кожну частину пароля окремо. Хоча й існує різних паролів складених з видимих ASCII-символів, але можна скласти тільки різних 7-байтових частин пароля, використовуючи одну кодову таблицю. Обмеження набору символів через перетворення до верхнього регістру також скорочує кількість варіантів до . Застосувавши brute force атаку окремо до кожної половини, сучасні персональні комп'ютери можуть підібрати буквено-цифровий LM-геш за кілька годин.
Так як LM-геш не використовує випадкових послідовностей, на нього також можливі словникові криптоаналітичні атаки, такі як райдужні таблиці. У 2003 році була опублікована Ophcrack — атака, реалізована на основі райдужних таблиць. Вона використовує всі уразливості LM-шифрування і включає базу даних, достатню для злому практично всіх число-символьних LM-гешів за кілька секунд. Багато утиліт для злому, такі як RainbowCrack, L0phtCrack і Cain, зараз також включають такі атаки, що робить злом LM-гешів тривіальним.
Реагуючи на дані уразливості, закладені в LM-шифрування, Microsoft представила Windows NT 3.1 алгоритм NTLM. Хоча LAN Manager і вважається застарілим і сучасні версії ОС Windows використовують більш надійний NTLM алгоритм хешування, всі ОС Windows досі за замовчуванням розраховують і зберігають LM-геш для сумісності з LAN Manager і Windows Me або більш старими клієнтами. Вважається, що відключення цієї можливості, коли вона не потрібна, підвищує безпеку[2].
Microsoft заявляла, що підтримка LM-хешування буде повністю усунена в ОС Windows Vista[3]. Незважаючи на це, в поточному релізі Vista міститься підтримка LM-гешу, хоча і відключена за замовчуванням. Її можна включити в «Локальних політиках безпеки» з утиліт «Адміністрування».
Через розбиття паролів, що складаються із 7 і менше символів особливо уразливі, так само як і ті, що складаються з слова довжиною до 7 символів, за яким випливає інше поширене слово або єдиний символ. Між тим, так як LM-хешування не застосовується до паролів довжиною 15 символів і більше, вони відносно стійкі. Якщо не використовуються версії сімейства Windows 9x, підтримка і використання LM-гешу може бути відключена[4].
продукт | підтримка NTLMv1 | підтримка NTLMv2 |
---|---|---|
Windows NT 3.1 | RTM (1993) | не підтримується |
Windows NT 3.5 | RTM (1994) | не підтримується |
Windows NT 3.51 | RTM (1995) | не підтримується |
Windows NT 4 | RTM (1996) | з пакетом оновлень 4[5] (25 жовтня 1998) |
Windows 95 | не підтримується | Клієнт служби каталогів (випущений з Windows 2000 сервером, 17 лютого 2000) |
Windows 98 | RTM | Клієнт служби каталогів (випущений з Windows 2000 сервером, 17 лютого 2000) |
Windows 2000 | RTM (17 лютого 2000) | RTM (17 лютого 2000) |
Windows ME | RTM (14 вересня 2000) | Клієнт служби каталогів (випущений з Windows 2000 сервером, 17 лютого 2000) |
Samba | ? | версія 3.0[6] (24 вересня 2003) |
JCIFS | не підтримується | версія 1.3.0 (25 жовтня 2008)[7] |
IBM AIX (SMBFS) | 5.3 (2004)[8] | Не підтримується у версії 7.1[9] |
- ↑ Glass, Eric (2003). The NTLM Authentication Protocol. Архів оригіналу за 18 березня 2012. Процитовано 5 червня 2006.
- ↑ How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases. Microsoft Knowledge Base. Архів оригіналу за 18 березня 2012. Процитовано 5 червня 2006.
- ↑ Johansson, Jesper (August 2006). The Most Misunderstood Windows Security Setting of All Time. TechNet Magazine. Архів оригіналу за 18 листопада 2008. Процитовано 8 січня 2007.
- ↑ How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases. Архів оригіналу за 18 березня 2012. Процитовано 13 квітня 2018.
- ↑ Windows NT 4.0 с пакетом обновления 4 Readme.txt File (40-bit). Microsoft. 25 жовтня 1998. Архів оригіналу за 31 грудня 2014. Процитовано 27 травня 2010.
- ↑ The Samba Team announces the first official release of Samba 3.0. samba.org. 24 вересня 2003. Архів оригіналу за 8 березня 2021. Процитовано 27 травня 2010.
- ↑ The JCIFS library: News. Архів оригіналу за 20 лютого 2011. Процитовано 27 травня 2010.
- ↑ AIX 5L Version 5.3: Networks and Communication Management (pdf). IBM. 15 березня 2010. с. 441. Процитовано 18 вересня 2012.
- ↑ AIX 7.1: Networks and Communication Management (pdf). IBM. 5 грудня 2011. с. 479. Процитовано 18 вересня 2012.