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 — атака, реализованная на основе rainbow tables. Она использует все уязвимости 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-хеша, хотя и отключённая по умолчанию. Её можно включить в «Локальных политиках безопасности» из утилит «Администрирования».
Пароли особенно уязвимые при 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 The NTLM Authentication Protocol (2003). Дата обращения: 5 июня 2006. Архивировано 18 марта 2012 года.
- ↑ How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases . Microsoft Knowledge Base. Дата обращения: 5 июня 2006. Архивировано 18 марта 2012 года.
- ↑ Johansson, Jesper. The Most Misunderstood Windows Security Setting of All Time (англ.) // TechNet Magazine : journal. — 2006. — August. Архивировано 18 ноября 2008 года.
- ↑ How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases . Дата обращения: 11 сентября 2008. Архивировано 18 марта 2012 года.
- ↑ Windows NT 4.0 с пакетом обновления 4 Readme.txt File (40-bit) . Microsoft (25 октября 1998). Дата обращения: 27 мая 2010. Архивировано 31 декабря 2014 года.
- ↑ The Samba Team announces the first official release of Samba 3.0 . samba.org (24 сентября 2003). Дата обращения: 27 мая 2010. Архивировано 8 марта 2021 года.
- ↑ The JCIFS library: News . Дата обращения: 27 мая 2010. Архивировано 20 февраля 2011 года.
- ↑ AIX 5L Version 5.3: Networks and Communication Management (pdf) 441. IBM (15 марта 2010). Дата обращения: 18 сентября 2012.
- ↑ AIX 7.1: Networks and Communication Management (pdf) 479. IBM (5 декабря 2011). Дата обращения: 18 сентября 2012.