LM-хеш, или LAN Manager хеш, — один из форматов, используемых Microsoft LAN Manager и версиями Microsoft Windows до Windows Vista для хранения пользовательских паролей длиной менее 15 символов. Это единственный вид хеширования, используемый в Microsoft LAN Manager, откуда и произошло название, и в версиях Windows до Windows Me. Он также поддерживается и более поздними версиями Windows для обратной совместимости, хотя в Windows Vista его приходится включать вручную.

Алгоритм

править

LM-хеш вычисляется следующим образом[1]:

  1. Пароль пользователя приводится к верхнему регистру.
  2. Пароль дополняется нулями или обрезается до 14 байтов.
  3. Получившийся пароль разделяется на две части по 7 байтов.
  4. Эти значения используются для создания двух ключей DES, по одному для каждой 7-байтовой половинки, при этом 7 байтов рассматриваются как битовый поток и после каждых 7 битов вставляется ноль. Так создаются 64 бита, необходимые для ключа DES.
  5. Каждый из этих ключей используется для DES-шифрования ASCII-строки «KGS!@#$%», в результате получаются два 8-байтовых шифрованных значения.
  6. Данные шифрованные значения соединяются в 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].

Причины для дальнейшего использования

править
Доступность протоколов NTLM, призванных заменить аутентификацию LM
продукт поддержка 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]

См. также

править

Примечания

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