ntlm аутентификация что это
Аутентификация
Интегрированная аутентификация Windows
Интегрированная аутентификация Windows является наиболее безопасным методом аутентификации, однако она доступна только в Internet Explorer. Этот тип аутентификации раньше был известен как аутентификация NTLM и аутентификация Windows NT вопрос/ответ. При интегрированной аутентификации Windows браузер клиента проверяет сам себя на сервере посредством криптографического обмена данными..
Несколько слов о Microsoft Negotiate
Аутентификация NTLM
NTLM представляет собой расширенную версию старого протокола аутентификации LM ( LAN Manager ). NTLM работает посредством вопросов/ответов между сервером и клиентом без передачи пароля пользователя через сеть в открытом виде. Клиент должен подтвердить то, что он знает пароль пользователя, посредством отправки зашифрованного хэша.
NTLM функционирует следующим образом.
Аутентификация Kerberos
В древнегреческой мифологии Керберос – это сказочная трехглавая собака, охранявшая подземный мир от людей. В настоящее время термином Kerberos называется протокол безопасной аутентификации для доступа к ресурсам. Kerberos основывается на аутентификации с секретным ключом, при которой клиент и сервер используют один и тот же ключ для шифрования и расшифровки. Клиент доказывает знание ключа посредством шифрования сообщения, а сервер доказывает знание ключа посредством расшифровки этого сообщения. Затем сервер берет часть сообщения, шифрует ее и отправляет клиенту. При сохранении целостности сообщения результат аутентификации будет положительным.
Работа Kerberos основывается на центральном сервере, называемом Key Distribution Center ( KDC ) ( Центр распределения ключей ), который предоставляет все необходимые ключи. KDC выпускает так называемые билеты TGT ( Ticket-Granting Tickets ) («Билеты для получения билетов») и предоставляет их клиентам, запрашивающим доступ к ресурсу на сервере.
Ниже показан процесс получения клиентом начального билета TGT.
Теперь у клиента есть TGT, и он может использовать его для получения билетов на доступ к ресурсам. Вот как это происходит.
Теперь у клиента есть билет, с помощью которого он получает доступ к ресурсам на сервере.
NTLM Overview
Изменения в аутентификации NTLM
Руководство по угрозам и мерам противодействия. Параметры безопасности в Windows Server 2008 R2 и Windows 7
Настройка MaxConcurrentAPI для сквозной аутентификации NTLM
[MS-НСТ]: Спецификация протокола NTLM по протоколу HTTP
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016
в этой статье для специалистов по ит описывается NTLM, все изменения в работе и ссылки на технические ресурсы для Windows проверки подлинности и NTLM для Windows Server 2012 и предыдущих версий.
Описание компонента
Проверка подлинности NTLM — это семейство протоколов проверки подлинности, включенных в файл Windows Msv1_0.dll. Протоколы проверки подлинности NTLM включают LAN Manager версий 1 и 2, а также NTLM версий 1 и 2. Протоколы проверки подлинности NTLM проверяют подлинность пользователей и компьютеров, основываясь на механизме запроса/подтверждения, доказывающем серверу или контроллеру домена, что пользователю известен пароль, связанный с учетной записью. При использовании протокола NTLM сервер ресурсов должен выполнять одно из следующих действий для проверки удостоверения пользователя или компьютера каждый раз, как возникает необходимость в новом маркере доступа:
Свяжитесь со службой проверки подлинности домена на контроллере домена, чтобы получить домен учетной записи компьютера или пользователя, если эта учетная запись является учетной записью в домене.
Если же учетная запись пользователя или компьютера является локальной учетной записью, то ее можно найти в локальной базе данных учетных записей.
Текущие приложения
Аутентификация NTLM по-прежнему поддерживается и обязательна для использования при выполнении аутентификации Windows с системами, настроенными как элемент рабочей группы. Аутентификация NTLM также используется для аутентификации при локальном входе на контроллеры вне домена. Аутентификация с использованием протокола Kerberos пятой версии является предпочтительным методом аутентификации в средах Active Directory, однако приложения Майкрософт и других поставщиков должны по-прежнему использовать NTLM.
Для того чтобы сократить использование протокола NTLM в ИТ-среде, необходимо знать требования развернутых в NTLM приложений, а также стратегии и шаги, необходимые для настройки вычислительных сред, использующих другие протоколы. Добавлены новые инструменты и параметры, которые помогут вам понять принципы использования NTLM и выборочно ограничить трафик NTLM. Сведения о том, как анализировать и ограничивать использование NTLM в своих средах, см. в разделе Вводные сведения об ограничении аутентификации NTLM (руководство по аудиту и ограничению использования NTLM).
Новые и измененные функции
Нет изменений в функциональных возможностях NTLM для Windows Server 2012.
Удаленные или устаревшие функциональные возможности
Удаленная или устаревшая функциональность для NTLM для Windows Server 2012 отсутствует.
Сведения о диспетчере сервера
NTLM нельзя использовать с диспетчером серверов. Для управления использованием проверки подлинности NTLM между компьютерными системами можно использовать параметры политики безопасности или групповые политики. В доменах протоколом проверки по умолчанию является Kerberos.
См. также
В следующей таблице представлены материалы по NTLM и другим технологиям проверки подлинности Windows.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
NTLM (NT LAN Manager)
NTLM (NT LAN Manager) — является протоколом сетевой аутентификации, разработанным фирмой Microsoft для Windows NT. Протоколы проверки подлинности NTLM включают LAN Manager версий 1 и 2, а также NTLM версий 1 и 2. Протоколы проверки подлинности NTLM проверяют подлинность пользователей и компьютеров, основываясь на механизме запроса/подтверждения, доказывающем серверу или контроллеру домена, что пользователю известен пароль, связанный с учетной записью. При использовании протокола NTLM сервер ресурсов должен выполнять одно из следующих действий для проверки удостоверения пользователя или компьютера каждый раз, как возникает необходимость в новом маркере доступа:
Содержание
Принцип работы NTLM
Принцип работы NTLM имеет много общего с LAN Manager [1] и эти протоколы обратно совместимы, но есть и существенные отличия. NT-хэш формируется на основе пароля длиной до 128 символов по алгоритму MD4, пароль регистрозависимый и может содержать не только ACSII символы, но и Unicode, что существенно повышает его стойкость по сравнению с LM. Работа происходит следующим способом(рис.1):
Рис.1 Принципе работы NTLM
Для получения доступа к ресурсу клиент направляет серверу запрос с именем пользователя. Сервер в ответ передает ему случайное число, называемое запросом сервера. Клиент зашифровывает данный запрос по алгоритму DES, используя в качестве ключа NT-хэш пароля, использую 40 или 56 битный ключ(хеш делится на три части и каждая часть шифрует запрос сервера отдельно), так как NT-хэш имеет 128 битную длину.
Зашифрованный хэшем пароля запрос сервера называется ответом NTLM и возвращается обратно серверу, сервер берет из SAM хэш пароля пользователя, чье имя было ему передано и выполняет те же самые действия с запросом сервера, и после сравнивает полученный результат с ответом от NTLM. При совпадении значений, аутентификация считается успешной, и это значит пользователь клиента действительно тот, за кого себя выдает.
При получении доступа третьими ресурсами схема изменяется(рис.2):
Рис.2 Принципе работы NTLM при получении доступа третьими ресурсами
Получив запрос от клиента, сервер направляет ему запрос сервера, но получив NTLM-ответ он не имеет возможности посчитать значение для проверки у себя на стороне, так как у него нету хэша пароля доменного пользователя, и тогда он переадресует NTLM-ответ контроллеру домена и отправляет ему свой запрос сервера. Получив эти данные, контроллер домена извлекает хэш указанного пользователя и вычисляет на основе запроса сервера проверочную последовательность, которую уже и сравнивает с полученным NTLM-ответом. Если они равны, на сервер отправляется сообщение, что аутентификация успешно пройдена.
Несмотря на на что, протокол NTLM на сегодняшний день считается слабым. Слабое шифрование делает возможным достаточно быстро восстановить хэш пароля, а если использовался не только NTLM, а еще и LM-ответ, то и восстановить пароль.
NTLMv2
Поэтому появляется вторая версия в которой учтены ошибки слабого шифрования и низкой криптостойкости. Здесь уже клиент, обращаясь к серверу сообщает ему имя пользователя и имя домена, а сервер в ответ передает ему случайное число, называемое «запрос сервера». В ответ клиент генерирует также случайное число, куда добавляется метка времени, которая называется «запрос клиента». Наличие метки времени позволяет избежать ситуации, когда атакующий первоначально накапливает перехваченные данные, а потом с их помощью осуществляет атаку.
Запрос сервера объединяется с запросом клиента и от этой последовательности вычисляется HMAC-MD5 хэш. Затем от данного хэша берется еще один HMAC-MD5 хэш, ключом в котором выступает NT-хэш пароля пользователя. Получившийся результат называется NTLMv2-ответом и вместе с запросом клиента пересылается серверу.
Сервер, получая NTLMv2-ответ и запрос клиента, соединяет полученные данные и также вычисляет HMAC-MD5 хэш, а после пересылает его вместе с ответом контроллеру домена. Тот берет из хранилища сохраненный хэш пароля пользователя и производит вычисления над HMAC-MD5 хешем запросов сервера и клиента, сравнивая получившийся результат с переданным ему NTLMv2-ответом. В случае совпадения серверу возвращается ответ об успешной аутентификации.
Использование версий протокола
NTLMv2 вполне безопасный протокол, но если система настроена неправильно, то злоумышленник может послать NTLM или LM запрос и получить соответствующий ответ, который позволит успешно осуществить атаку. Поэтому рассмотрим о политиках безопасности, За выбор протокола аутентификации отвечает локальная или групповая политика.
И становится очевидным, что сегодня безопасными могут считаться значения выше 3(Отправлять только NTLMv2 ответ). Проверка подлинности пользователей NTLMВ этой статье приводится ряд сведений о проверке подлинности пользователей NTLM. Применяется к: Windows Server 2012 R2 СводкаВ этой статье обсуждаются следующие аспекты проверки подлинности пользователей NTLM в Windows: Дополнительная информацияХранение паролей в базе данных учетной записиУчетные записи пользователей сохраняются в базе данных диспетчера учетных записей безопасности (SAM) или в базе данных Active Directory. Каждая учетная запись связывается с двумя паролями: с паролем, совместимым с LAN Manager, и с паролем Windows. Каждый пароль зашифровывается и сохраняется в базе данных SAM или в базе данных Active Directory. Пароль, совместимый с lan-менеджером, совместим с паролем, используемым lan-менеджером. Этот пароль основан на исходном наборе символов производителя оборудования (OEM). Этот пароль не является чувствительным к делу и может быть длиной до 14 символов. Версия OWF этого пароля также известна как версия OWF lan Manager или ESTD. Этот пароль вычисляется с помощью шифрования DES для шифрования константы с четким текстовым паролем. Пароль LAN Manager OWF длиной 16 bytes. Первые 7 bytes понятного текстового пароля используются для вычисления первых 8 bytes пароля OWF LAN Manager. Вторые 7 bytes явного текстового пароля используются для компьютера второго 8 bytes пароля OWF lan Manager. Пароль Windows основан на наборе символов Unicode. Этот пароль является чувствительным к делу и может быть длиной до 128 символов. Версия OWF этого пароля также называется Windows OWF. Этот пароль вычисляется с помощью функции хаша RSA MD4. Эта функция вычисляет дайджест 16-byte строки ясного текстового пароля. В любой учетной записи пользователя может не быть пароля LAN Manager или Windows пароля. Тем не менее, каждая попытка состоит в том, чтобы поддерживать обе версии пароля. Например, если учетная запись пользователя портируется из базы данных UAS LAN Manager с помощью PortUas или если пароль изменен с клиента LAN-менеджера или из клиента Windows для workgroups, будет существовать только версия lan Manager пароля. Если пароль установлен или изменен на клиенте Windows и пароль не имеет представления LAN Manager, будет существовать только Windows версия пароля. (Пароль может не иметь представления LAN Manager, так как пароль длиннее 14 символов или потому, что символы не могут быть представлены в наборе символов OEM.) Ограничения пользовательского интерфейса в Windows не позволяйте Windows более 14 символов. Последствия этого ограничения обсуждаются позже в этой статье. В Windows 2000 Пакет обновления 2 и в более поздних версиях Windows доступен параметр, который позволяет предотвратить Windows хранения hash lan Manager пароля. Дополнительные сведения ознакомьтесь со следующим номером статьи, чтобы просмотреть статью в базе знаний Майкрософт: 299656 как предотвратить Windows хранения в базах данных Active Directory и локальных базах данных SAM Windows локального администратора LAN-администратора Корпорация Майкрософт не поддерживает вручную или программным образом изменение базы данных SAM. Проверка подлинности пользователей с помощью пакета MSV1_0 проверки подлинностиWindows использует API LsaLogonUser для всех видов проверки подлинности пользователей. API LsaLogonUser позволяет проверить подлинность пользователей, позвонив в пакет проверки подлинности. По умолчанию LsaLogonUser вызывает пакет проверки подлинности MSV1_0 (MSV). Этот пакет включается в Windows NT. Пакет проверки подлинности MSV хранит записи пользователей в базе данных SAM. Этот пакет поддерживает сквозную проверку подлинности пользователей в других доменах с помощью службы Netlogon. Внутренне пакет проверки подлинности MSV делится на две части. Первая часть пакета проверки подлинности MSV выполняется на компьютере, к который подключен. Вторая часть выполняется на компьютере, который содержит учетную запись пользователя. Когда обе части работают на одном компьютере, первая часть пакета проверки подлинности MSV вызывает вторую часть без участия службы Netlogon. Первая часть пакета проверки подлинности MSV распознает, что для проверки подлинности требуется пройти проверку подлинности, так как переданное доменное имя не является его собственным доменным именем. Когда требуется пройти проверку подлинности, MSV передает запрос службе Netlogon. Затем служба Netlogon передает запрос в службу Netlogon на компьютере назначения. В свою очередь служба Netlogon передает запрос в другую часть пакета проверки подлинности MSV на этом компьютере. LsaLogonUser поддерживает интерактивные логотипы, логотипы служб и сетевые логотипы. В пакете проверки подлинности MSV все формы логона передают имя учетной записи пользователя, имя домена, который содержит учетную запись пользователя, и некоторые функции пароля пользователя. Различные типы логотипа представляют пароль по-разному, когда он передается в LsaLogonUser. Для интерактивных логотипов, пакетных логотипов и логотипов службы клиент логона находится на компьютере, который работает в первой части пакета проверки подлинности MSV. В этом случае понятный пароль передается LsaLogonUser и в первую часть пакета проверки подлинности MSV. Для логотипов служб и логонов пакетов диспетчер управления службами и планер задач предоставляют более безопасный способ хранения учетных данных учетных данных учетной записи. Первая часть пакета проверки подлинности MSV преобразует понятный пароль как в пароль LAN Manager OWF, так и в пароль Windows NT OWF. Затем первая часть пакета передает понятный пароль либо в службу NetLogon, либо во вторую часть пакета. Вторая часть затем запрашивает базу данных SAM для паролей OWF и убедитесь, что они идентичны. Для сетевых логонов клиенту, подключаемому к компьютеру, ранее была предоставлена задача 16-byte или «nonce». Если клиент является клиентом LAN-менеджера, клиент вычислил ответ на вызов 24-byte, шифруя вызов 16-byte с помощью пароля OWF lan Manager 16-byte. Затем клиент LAN-менеджера передает этот «ответ на вызовы lan-менеджера» на сервер. Если клиент является клиентом Windows, с помощью того же алгоритма вычисляется «Windows NT challenge Response». Однако клиент Windows использует 16-Windows данных OWF вместо данных OWF lan Manager. Клиент Windows затем передает серверу как ответ на вызовы lan-менеджера, так и Windows NT ответа на вызовы. В любом случае сервер проходит проверку подлинности пользователя, передав все следующие данные API LsaLogonUser: Первая часть пакета проверки подлинности MSV передает эту информацию без изменений во вторую часть. Во-первых, вторая часть запрашивает пароли OWF из базы данных SAM или из базы данных Active Directory. Затем во второй части вычисляется ответ на вызов с помощью пароля OWF из базы данных и проблемы, которая была передана. Во второй части затем сравнивает ответ вычислительных вызовов с ответом на переданные вызовы. NTLMv2 также позволяет клиенту отправлять вызов вместе с использованием ключей сеанса, которые помогают снизить риск распространенных атак. Как упоминалось ранее, версия пароля может быть отсутствует в базе данных SAM или в базе данных Active Directory. Кроме того, из вызова в LsaLogonUser может отсутвить любая версия пароля. Если доступны Windows версии пароля из базы данных SAM и Windows версии пароля из LsaLogonUser, они используются. В противном случае для сравнения используется версия lan Manager пароля. Это правило помогает обеспечить чувствительность к случаям, когда логотипы сети возникают от Windows до Windows. Это правило также позволяет использовать обратную совместимость. Сквозная проверка подлинностиСлужба NetLogon реализует сквозную проверку подлинности. Выполняет следующие функции: Выбор домена прост. Доменное имя передается в LsaLogonUser. Доменное имя обрабатывается следующим образом: NetLogon выбирает сервер в домене путем процесса, называемого открытием. На Windows рабочей станции обнаруживается имя одного из контроллеров домена active Directory Windows в основном домене. Контроллер домена Active Directory обнаруживает имя контроллера домена Active Directory в каждом доверяемом домене. Компонентом, который выполняет открытие, является локатор DC, который выполняется в службе Netlogon. Локатор DC использует разрешение имен NETBIOS или DNS для поиска необходимых серверов в зависимости от типа настроенного домена и доверия. Отключение NTLM аутентификации в домене WindowsNTLM (NT LAN Manager) – это довольно старый протокол аутентификации Microsoft, который появился еще в Windows NT. Несмотря на то, что еще в Windows 2000 Майкрософт внедрила более безопасный протокол аутентификации Kerberos, NTLM (в основном это NTLMv2) широко используется для аутентификации в Windows сетях до сих пор. В этом статье мы рассмотрим особенности процесс отключения протокола NTLMv1 и NTLMv2, и перехода на Kerberos в домене Active Directory. Основные проблема NTLMv1 – слабое шифрование, хранение хэша пароля в оперативной памяти в службе LSA, который может извлечь различными утилитами (типа mimikatz) и использовать хэш для дальнейших атак, отсутствие взаимной проверки подлинности клиента и сервера, что делает вполне реальными атаки перехвата данных и неавторизованного доступа к ресурсам сети (утилиты типа Responder могут перехватывать данные NTLM, передаваемые по сети и использовать их для доступа к сетевым ресурсам) и ряд других уязвимостей. Часть этих недостатков исправлена в более новой версии NTLMv2, который использует более криптостойкие алгоритмы шифрования и позволяет предотвратить популярные атаки на NTLM. Начиная с Windows 7 / Windows Server 2008 R2 использование NTLMv1 и LM для авторизации по умолчанию выключено. Переключаемся на использование NTLMv2Если вы задумались полностью отказаться от NTLM в своем домене, сначала нужно убедиться, что у вас не используется его более уязвимая версия- NTLMv1. Вероятно в вашей сети имеется ряд устаревших устройств или служб, которые все еще используют аутентификацию NTLMv1 вместо NTLMv2 (или Kerberos). Поэтому прежде, чем прибегнуть к его полному отключению прочитайте раздел этой статьи по аудиту событий авторизации с помощью NTLM. В первую очередь администратору домена нужно убедиться, что в его сети запрещено использовать NTLM или LM для авторизации, т.к. в некоторых случаях атакующий может с помощью специальных запросов получить ответ на NTLM/LM запрос. Network Security: LAN Manager authentication level (Сетевая безопасность: уровень проверки подлинности LAN Manager). В настройках политики есть 6 опций: Политики использования NTLM аутентификации расположены в порядке возрастания их безопасности. По умолчанию в Windows 7 и выше используется настройка Send NTLMv2 response only (Отправлять только NTLMv2-ответ). При этой настройке клиентские компьютеры используют NTLMv2 аутентификацию, но контролеры домены принимают LM, NTLM, и NTLMv2 запросы. Вы можете изменить значение политики на более безопасную 6 опцию — “Send NTLMv2 response only. Refuse LM & NTLM”. При этой политике контролеры домена также будут отвергать запросы LM и NTLM. Также вы можете отключить NTLMv1 через реестр. Для этого в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa нужно создать параметр DWORD с именем LmCompatibilityLevel и значением от 0 до 5. Значение 5 соответствует значению политики «Отправлять только NTLMv2-ответ. Отказывать LM и NTLM». Не забудьте применить эту политику для контроллеров домена. Если вы убедились, что у вас не используется NTLMv1, вы можете пойти дальше и попытаться отказаться от NTLMv2. NTLMv2 хотя и более защищенный протокол аутентификации, но все равно существенно проигрывает Kerberos в плане безопасности (хотя уязвимостей в NTLMv2 намного меньше, чем в первой версии протокола, все-таки существуют возможности перехвата и повторного использования данных, и отсутствует взаимная аутентификации). Главная риск отключения NTLM – возможное использование в домене устаревших или некорректно настроенных приложений, которые все еще могут использовать проверку подлинности NTLM, и для перехода на Kerberos их придется обновлять или настраивать особым образом. Аудит событий NTLM аутентификации в доменеПеред полным отключением NTLM в домене и переходе на Kerberos желательно убедиться, что в домене не осталось приложений, которые требуют и используют NTLM авторизацию. Аналогичным образом включите политику Network Security: Restrict NTLM: Audit Incoming NTLM Traffic, установив ее значение на Enable auditing for domain accounts. Можно проанализировать события на каждом сервере, или собрать все события в центральный Event Log. Вам нужно собрать события от Microsoft-Windows-Security-Auditing c Event ID 4624 – An Account was successfully logged on. Обратите внимание на информацию в секции “Detailed Authentication Information”. Если в строке Authentication Package указано NTLM, значит для аутентификации этого пользователя использовался протокол NTLM. Теперь обратите внимание на значение Package Name (NTLM only). Здесь должно быть указано какой протокол (LM, NTLMv1 или NTLMv2) использовался для аутентификации. Таким образом вам нужно идентифицировать все сервера/приложения, которые используют устаревший протокол. Например, для поиска всех событий аутентификации по NTLMv1 по всем контроллерам домена можно использовать такой PowerShell скрипт: После того, как вы нашли пользователей и приложения, использующие NTLM в вашем домене, попробуйте перевести их на использование Kerberos (возможно с использованием SPN). Некоторые приложения достаточно донастроить для работы Kerberos авторизации (см. статьи Kerberos авторизация в IIS, использование Kerberos авторизация в браузерах). Из личного опыта: даже действительно большие коммерческие продукты иногда еще не перешли с использования NTLM на Kerberos, некоторые продукты требуют обновления или изменений конфигурации. Все сводится к определению того, какие приложения используют проверку подлинности NTLM, и теперь у вас есть способ для выяснения этого софта и устройств. Те приложений, которые нельзя переключить на использование NTLM можно добавить в исключения, разрешив им использовать NTLM аутентификацию, даже если она отключена на уровне домена. Для этого используется политика Network security: Restrict NTLM: Add server exceptions for NTLM authentication in this domain. В список исключений нужно добавить имена серверов, для аутентификации на которых можно использовать NTLM (конечно, в идеале этот список исключений должен быть пустым). Можно использовать знак подстановки *. Полное отключение NTLM в домене Active DirectoryЧтобы проверить, как будет работать аутентификация в различных приложениях в домене без использования NTLM, вы можете добавить учетные записи необходимых пользователей в доменную группу Protected Users (группа доступна, начиная с Windows Server 2012 R2), членам которой можно аутентифицироваться только по протоколу Kerberos (нельзя использовать NTLM, Digest Authentication или CredSSP). Так вы можете проверить корректность Kerberos аутентификации пользователя в различных приложениях. Теперь вы можете полностью отключить NTLM в домене с помощью групповой политики Network Security: Restrict NTLM: NTLM authentication in this domain. В этой политике доступно 5 опций:
|