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]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]