LAN Manager — сетевая операционная система разработанная Microsoft в сотрудничестве с 3Com Corporation. Она была разработана, чтобы заменить программное обеспечение 3Com для сетевого сервера 3+Share, которое работало на сильно изменённой версии MS-DOS.

LAN Manager
Разработчик Microsoft, 3Com
Семейство ОС OS/2
Исходный код закрытый
Первый выпуск 1987; 37 лет назад (1987)
Последняя версия 2.2a (1994; 30 лет назад (1994))
Поддерживаемые платформы x86
Лицензия Proprietary
Состояние Прекращено
Предыдущая MS-Net, Xenix-NET, 3+Share

История править

LAN Manager был основан на операционной системе OS/2, разработанной совместно IBM и Microsoft. Первоначально он использовал протокол Server Message Block поверх протокола NetBIOS Frames (NBF) или специализированной версии протокола Xerox Network Services (XNS). Эти устаревшие протоколы были унаследованы от предыдущих продуктов, таких как MS-Net для MS-DOS, Xenix-NET для MS-Xenix и вышеупомянутый 3+Share. Также была доступна версия LAN Manager для Unix-систем под названием LAN Manager/X.

В 1990 году Microsoft анонсировала LAN Manager 2.0 с множеством улучшений, включая поддержку TCP/IP в качестве транспортного протокола. Последняя версия LAN Manager 2.2, которая включала базовую операционную систему MS-OS/2 1.31, оставалась серверной операционной системой Microsoft до выпуска Windows NT Advanced Server в 1993 году.

Версии править

  • 1987 — MS LAN Manager 1.0 (Basic/Enhanced)
  • 1989 — MS LAN Manager 1.1
  • 1991 — MS LAN Manager 2.0
  • 1992 — MS LAN Manager 2.1
  • 1992 — MS LAN Manager 2.1a
  • 1993 — MS LAN Manager 2.2
  • 1994 — MS LAN Manager 2.2a

Многие поставщики поставляли лицензионные версии, в том числе:

Система безопасности править

Проверка подлинности LAN Manager (LM) — это протокол, используемый для проверки подлинности клиентов Windows для сетевых операций, включая соединения домена, доступ к сетевым ресурсам и проверку подлинности пользователя или компьютера. Уровень проверки подлинности LM определяет, какой запрос/ответ протокол согласовывает между клиентом и сервером. Значение, указанное для параметра LmCompatibilityLevel определяет, какой протокол проверки подлинности будет использоваться при входе в сеть. Это значение влияет на уровень протокола проверки подлинности, используемый клиентами, уровень согласуемой безопасности сеанса и уровень проверки подлинности, принимаемый серверами. Возможные параметры:

Значение Параметр
0 Отправлять Lan Manager ответы
1 Отправлять Lan Manager — использовать сеансовую безопасность NTLMv2 при согласовании
2 Отправлять только NTLM ответ
3 Отправлять только NTLMv2 ответ
4 Отправлять только NTLMv2 ответ, отказывать LM
5 Отправлять только NTLMv2 ответ, отказывать LM и NTLM

Криптоанализ править

Аутентификация LAN Manager использует слабый метод хеширования пароля пользователя, известный как LM hash algorithm, возникший в середине 1980-х годов, когда основной проблемой стали вирусы, а не высокочастотные сетевые атаки с обратной связью. Это делает такие хеши взламываемыми за считанные секунды с помощью радужных таблиц или за несколько часов с использованием грубой силы. Его использование в Windows NT было заменено NTLM, старые версии которого по-прежнему уязвимы для радужных таблиц, но менее уязвимы для атак методом перебора. NTLM используется для входа в систему с локальными учётными записями, поскольку Windows Vista и более поздние версии больше не поддерживают хеш LM по умолчанию. Kerberos используется в Active Directory Environments.

Основные недостатки протокола аутентификации LAN Manager:

  1. Все пароли преобразуются в верхний регистр перед генерацией хеша. Следовательно, пароли типа password, PassWord, PaSsWoRd, PASSword и другие подобные комбинации будут преобразованы в верхний регистр, то есть PASSWORD. Символы пароля также ограничены подмножеством из 95 символов в 256-байтовом наборе символов ASCII.
  2. Длина пароля ограничена 14-ю символами.
  3. Пароль из 14 символов разбивается на 7 + 7 символов, после чего хеш рассчитывается для двух половинок отдельно. Этот способ вычисления хеша значительно облегчает взлом, так как злоумышленнику необходимо дважды перебрать 7 символов вместо 14. Стойкость 14-значного пароля равна всего  , что значительно меньше теоретической стойкости 14-значного пароля  .
  4. Если пароль состоит из не более 7-ми символов, вторая половина хеша всегда будет отображать одно и то же постоянное значение (0xAAD3B435B51404EE).
  5. Значение хеша отправляется на сетевые серверы без соли, что делает его уязвимым для атак типа «человек посередине», а также позволяет создавать радужные таблицы.

Детали LM-хеша править

LM-хеш (также известный как LanMan хеш или LAN Manager хеш) — это функция хеширования паролей, которая использовалась в версиях Microsoft LAN Manager и Microsoft Windows для хранения пользовательских паролей до Windows NT. Поддержка устаревшего протокола LAN Manager продолжалась в более поздних версиях Windows для обратной совместимости, но Microsoft рекомендовал администраторам отключить протокол; в Windows Vista протокол по умолчанию отключен.

Алгоритм править

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

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

Уязвимости безопасности править

Несмотря на то, что LM-хеш основан на качественном блочном шифре DES, он не является односторонней функцией, так как пароль может быть определён из хеша из-за нескольких недостатков в его конструкции:[5] во-первых, пароли могут содержать не более 14 символов, что дает теоретическое максимальное количество паролей  .

Во-вторых, пароли длиной более 7 символов делятся на две части, и каждая часть хешируется отдельно. Этот недостаток позволяет атаковать каждую половину пароля отдельно, уменьшая количество паролей, требуемое для перебора до  . Кроме того, все строчные буквы в пароле перед хешированием пароля изменяются на прописные, что ещё больше уменьшает пространство паролей до  .

Также LM-хеш не использует криптографическую соль, стандартный метод предотвращения перебора по словарю. Поэтому на него возможны такие атаки как радужные таблицы. Кроме того, любой пароль, длина которого меньше 8 символов, приведет к хешированию 7 нулевых байтов, в результате чего будет получено постоянное значение 0xAAD3B435B51404EE, что позволяет визуально идентифицировать короткие пароли. В 2003 году была опубликована Ophcrack — атака, реализованная на основе радужных таблиц. Она использует все уязвимости LM-шифрования и включает базу данных, достаточную для взлома практически всех число-символьных LM-хешей за несколько секунд. Многие утилиты для взлома, такие как RainbowCrack, L0phtCrack и Cain, сейчас также включают подобные атаки, что делает взлом LM-хешей тривиальным.

Обходные решения править

Чтобы устранить недостатки безопасности, Microsoft представила протокол NTLMv1 в 1993 году. Для хеширования NTLM использует поддержку Unicode, заменяя LMhash=DESeach(DOSCHARSET(UPPERCASE(password)), "KGS!@#$%") на NThash=MD4(UTF-16-LE(password)), который не требует каких-либо дополнений или обрезаний, которые бы упростили ключ. С другой стороны, на компьютерах Windows в течение многих лет по умолчанию были настроены отправка и прием ответов, полученных как из LM-хеша, так и хеш-функции NTLM, поэтому использование хеш-функции NTLM не обеспечивало дополнительной безопасности, в то время как более слабый хеш все ещё присутствовал.

Для увеличения безопасности считалось хорошей практикой отключать протоколы аутентификации LM и NTLMv1 там, где они не нужны. Начиная с Windows Vista и Windows Server 2008, Microsoft по умолчанию отключила LM-хеш; эта функция может быть включена для локальных учётных записей через параметр политики безопасности. Пользователи могут также предотвратить создание LM-хеша для своего пароля, используя пароль длиной не менее пятнадцати символов.

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

Многим устаревшим реализациям SMB потребовалось немало времени, чтобы добавить поддержку более сильных протоколов, созданных Microsoft для замены хеширования LM, потому что сообщества с открытым исходным кодом, поддерживающие эти библиотеки, сначала должны были реконструировать новые протоколы — Samba потребовалось 5 лет, чтобы добавить поддержку NTLMv2, в то время, как JCIFS потребовалось 10 лет.

Наличие протоколов NTLM для замены LM-хеширования
Product NTLMv1 support NTLMv2 support
Windows NT 3.1 RTM (1993) Не поддерживается
Windows NT 3.5 RTM (1994) Не поддерживается
Windows NT 3.51 RTM (1995) Не поддерживается
Windows NT 4 RTM (1996) Пакет обновлений 4[6] (25 Октября 1998)
Windows 95 Не поддерживается Клиент службы каталогов (выпущен с Windows 2000 Server, 17 Февраля 2000)
Windows 98 RTM Клиент службы каталогов (выпущен с Windows 2000 Server, 17 Февраля 2000)
Windows 2000 RTM (17 Февраля 2000) RTM (17 Февраля 2000)
Windows ME RTM (14 Сентября 2000) Клиент службы каталогов (выпущен с Windows 2000 Server, 17 Февраля 2000)
Samba ? Версия 3.0[7] (24 Сентября 2003)
JCIFS Не поддерживается Версия 1.3.0 (25 Октября 2008)[8]
IBM AIX (SMBFS) 5.3 (2004)[9] Не поддерживается с v7.1[10]

См. также править

Примечания править

  1. Chapter 3 - Operating System Installation: The LMHash. Microsoft TechNet. Дата обращения: 12 мая 2015. Архивировано 18 мая 2015 года.
  2. Glass, Eric The NTLM Authentication Protocol and Security Support Provider: The LM Response. Дата обращения: 12 мая 2015. Архивировано 18 марта 2012 года.
  3. List of Localized MS Operating Systems. Microsoft Developer Network. Дата обращения: 12 мая 2015. Архивировано из оригинала 18 мая 2015 года.
  4. Cluster service account password must be set to 15 or more characters if the NoLMHash policy is enabled. Microsoft (30 октября 2006). Дата обращения: 12 мая 2015. Архивировано 10 сентября 2014 года.
  5. Johansson, Jasper M. Windows Passwords: Everything You Need To Know. Microsoft (29 июня 2004). Дата обращения: 12 мая 2015. Архивировано 12 января 2015 года.
  6. Windows NT 4.0 Service Pack 4 Readme.txt File (40-bit). Microsoft (25 октября 1998). Дата обращения: 12 мая 2015. Архивировано 31 декабря 2014 года.
  7. The Samba Team announces the first official release of Samba 3.0. SAMBA (24 сентября 2003). Дата обращения: 12 мая 2015. Архивировано 16 декабря 2014 года.
  8. The Java CIFS Client Library. Дата обращения: 12 мая 2015. Архивировано 10 мая 2015 года.
  9. AIX 5.3 Networks and communication management: Server Message Block file system. IBM (15 марта 2010). Дата обращения: 12 мая 2015. Архивировано 18 мая 2015 года.
  10. AIX 7.1 Networks and communication management: Server Message Block file system. IBM (5 декабря 2011). Дата обращения: 12 мая 2015. Архивировано 18 мая 2015 года.

Ссылки править