LM-хеш

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Алгоритм[править | править вики-текст]

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

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

Уязвимости защиты[править | править вики-текст]

Несмотря на то, что LM-хеш основан на качественном блочном шифре DES, он может быть легко атакован для подбора пароля из-за двух уязвимостей в его реализации. Во-первых, пароли длиннее 7 символов разделяются на две части и каждая часть хешируется отдельно. Во-вторых, все символы нижнего регистра приводятся к верхнему до хеширования пароля. Первая уязвимость позволяет атаковать каждую часть пароля по отдельности. Хотя и существует 95^{14} \approx 2^{92} различных паролей составленных из видимых ASCII-символов, но можно составить только 95^{7} \approx 2^{46} различных 7-байтовых частей пароля, используя одну кодовую таблицу. Ограничение набора символов из-за преобразования к верхнему регистру также сокращает количество вариантов до 69^{7} \approx 2^{43}. Применив 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 September 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] Не поддерживается, как v7.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 (August 2006). «The Most Misunderstood Windows Security Setting of All Time». TechNet Magazine. Проверено 2007-01-08.
  4. How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases
  5. Windows NT 4.0 пакет обновления 4 Readme.txt File (40-bit). Microsoft (25 октября 1998). Проверено 27 мая 2010.
  6. The Samba Team announces the first official release of Samba 3.0. samba.org (24 сентября 2003). Проверено 27 мая 2010.
  7. The JCIFS library: News. Проверено 27 мая 2010.
  8. AIX 5L Version 5.3: Networks and Communication Management (pdf). IBM (15 Mar 2010). Проверено 18 сентября 2012.
  9. AIX 7.1: Networks and Communication Management (pdf). IBM (5 Dec 2011). Проверено 18 сентября 2012.