Включить автоматическую аутентификацию с помощью ntlm. Процедура аутентификации Windows. Хранение паролей в базе данных учетных записей

Недавно столкнулся с такой проблемой: FireFox, Chrome, Opera не хотят проходить NTLM авторизацию . Единственный, кто проходил — так это IE . Забыл сказать, что такая проблема наблюдается на Windows7 . Ниже будет описаны методы устранения этих неполадок.

Opera: официально не поддерживает NTLM -авторизацию, хотя в настройках можно найти пункт, который позволяет включать или отключать эту опцию. Поэтому, в настройках вашего прокси-сервера нужно добавить basic авторизацию . Что бы отключить NTLM-авторизацию (и собственно заставить работать через прокси этот браузер) делаем следующее:

1) набираем в браузере about:config
2) переходим в раздел NetWork и снимаем галочку с параметра Enable NTLM
3) перезапускаем браузер.

Правда есть один нюанс (так сказать неудобство): при первом запуске придётся ввести логин пароль (полностью, то есть с доменом) и поставить галочку «Сохранить» . Теперь при каждом последующем открытии браузера табличка авторизации появляться будет, и нужно будет просто жать «Ок» . Неудобно, но что поделаешь.

Примечание: иногда на некоторых ОС наоборот приходилось включать NTLM-авторизацию . Возможно это так же зависило от версий браузера и ОС.

FireFox, Chrome: они поддерживают, хотя нужно немного по шаманить. Опишу несколько вариантов, которые раздобыл в интернете, возможно вам придётся перепробовать все, пока не найдёте тот, который подошёл вам.

1) нужно будет добавить в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa параметр под названием LmCompatibilityLevel типа DWORD и присвоить ему значение 1 . После чего надо будет перегрузить компьютер (именно этот вариант мне подошёл)

2) Чтобы Firefox мог проходить ntlm авторизацию, вроде достаточно открыть в адресной строке about:config и изменить параметры на такие:

network.negotiate-auth.delegation-uris = http://,https://
network.negotiate-auth.trusted-uris = http://,https://

После чего перезапустить браузер.

3) Открываем редактор политик (gpedit.msc ) Конфигурация компьютера -> Конфигурация windows -> Параметры безопасности -> Локальные Политики -> Параметры Безопасности -> Сетевая безопасность: уровень проверки подлинности LAN Manager и ставим параметр Отправлять LM и NTLM — использовать сеансовую безопасность NTLMv2 при согласовании .

После чего закрываем политику и перегружаемся.

Если у вас английская версия, тогда так: machine policy-> computer config->windows setting->local policies->security option->Network security: LAN Manager authentication level и выбрать LM & NTLM — Use NTLMv2 session if negotited .

4) Ещё один вариант — это настроить через squid_ldap :

auth_param basic program /usr/lib/squid3/squid_ldap_auth -b "cn=users,dc=office,dc=ru" -f "sAMAccountName=%s" -h 192.168.0.74 -D "cn=administrator,cn=users,dc=office,dc=ru" -w "secpass"
auth_param basic children 5
auth_param basic realm My inet Proxy
auth_param basic credentialsttl 60 minutes

external_acl_type nt_groups %LOGIN /usr/lib/squid3/squid_ldap_group -R -b "cn=users,dc=office,dc=ru" -f "(&(cn=%v)(memberOf=cn=%a,cn=users,dc=office,dc=ru))" -D "cn=administrator,cn=users,dc=office,dc=ru" -w "secpass" -h 192.168.0.74

acl all src 0.0.0.0/0.0.0.0
acl group_inet external nt_groups inet

http_access allow group_inet
http_reply_access allow all
icp_access allow all
http_access deny all

В любом случае пробуйте 🙂

В операционной системе Windows 7 реализовано новое поколение технологий безопасности для рабочего стола и одна из них аутентификация и авторизация. Часть технологий направлена на укрепление общей инфраструктуры Windows, а остальные на оказание помощи в управлении системой и пользовательскими данными.

Прежде чем устанавливать в Windows 7 эффективные меры безопасности, например, для совместного пользования файлами и папками, важно понимать используемые во время настройки безопасности типы учетных записей пользователей, и как сетевой протокол аутентифицирует и авторизует вход пользователей в систему.

Аутентификация - это процесс, используемый для подтверждения личности пользователя, при обращении его к компьютерной системе или дополнительным системным ресурсам. В частных и государственных компьютерных сетях (включая Интернет) наиболее часто для аутентификации предполагается проверка учетных данных пользователя; то есть, имя пользователя и пароль. Однако для типов критических транзакций, например обработка платежей, проверки подлинности имени пользователя и пароля не достаточно, так как пароли могут быть украдены или взломаны. По этой причине, основная часть интернет-бизнеса, а также многие другие сделки теперь используют цифровые сертификаты, которые выдаются и проверяются центром сертификации.

Аутентификация логически предшествует авторизации. Авторизация позволяет системе определить, может ли заверенный пользователь получить доступ и возможность обновить защищенные системные ресурсы. Авторизация позволяет установить директивный доступ к папкам и файлам, часы доступа, размер разрешенного места для хранения, и так далее.

  • Изменения системных ресурсов первоначально разрешены системным администратором.
  • При попытке пользователя получить доступ или обновить системный ресурс разрешение на действие оценивается системой или приложением.

Последний вариант позволяет пользователю получить доступ без аутентификации и авторизации. Он используется в случае, когда требуется предоставить доступ для анонимных не проходящих аутентификацию пользователей. Такой доступ, как правило, весьма ограничен.

Процесс авторизации и аутентификации.

Для получения доступа к файлам в сети пользователи для проверки их личности должны проходить аутентификацию. Это делается во время процесса входа в сеть. Операционная система Windows 7 для входа в сеть имеет следующие методы аутентификации:

  • Протокол Kerberos версии 5: Основной метод аутентификации клиентов и серверов под управлением операционных систем Microsoft Windows. Он используется для проверки подлинности учетных записей пользователей и учетных записей компьютеров.
  • Windows NT LAN Manager (NTLM): используется для обратной совместимости с операционными системами более старыми, чем Windows 2000 и некоторых приложений. Он менее гибок, эффективен и безопасен, чем протокол Kerberos версии 5.
  • Сопоставление сертификатов: обычно используется для проверки подлинности при входе в сочетании со смарт-картой. Сертификат, записанный на смарт-карте, связан с учетной записью пользователя. Для чтения смарт-карт и аутентификации пользователя используется считыватель смарт-карт.

Новые функции аутентификации в Windows 7.

Целый ряд улучшений, связанных с процессами входа и проверки подлинности пользователя был добавлен еще в Windows Vista ®. Эти усовершенствования увеличили базовый набор функции проверки подлинности, чтобы помогло обеспечить лучшую безопасность и управляемость. В Windows 7 Microsoft продолжает начатые в Windows Vista усовершенствования, предоставляя следующие новые функции аутентификации:

  • Смарт-карты
  • Биометрия
  • Интеграция личности в Интернете.

Смарт-карты.

Использование смарт-карт самый распространенный метод аутентификации. Для поощрения применения организациями и пользователями смарт-карт, Windows 7 предлагает новые возможности, облегчающие их использование и развертывание. Эти новые возможности позволяют использовать смарт-карты для выполнения разнообразных задач, включая:

  • Смарт-карты Plug and Play
  • Личные удостоверения проверки (PIV), стандарт национального института стандартов и технологий США (NIST)
  • Поддержка для входа смарт-карты Kerberos.
  • Шифрование дисков BitLocker
  • Документы и электронная почта
  • Использование с бизнес-приложениями.

Биометрия.

Биометрия - все более популярная технология, обеспечивающая удобный доступ к системам, услугам и ресурсам. Биометрия для однозначного определения человека использует измерение его неизменных физических характеристик. Одна из наиболее часто используемых биометрических характеристик - отпечатки пальцев.

До сих пор в Windows не было стандартной поддержки биометрических устройств. Чтобы решить эту проблему, Windows 7 вводит Windows Biometric Framework (WBF). WBF предоставляет новый набор компонентов, поддерживающий снятие отпечатка пальца с помощью биометрические устройства. Эти компоненты увеличивают безопасность пользователей.

Windows Biometric Framework упрощает пользователям и администраторам настройку и управление биометрическими устройствами на локальном компьютере или в домене.

Интеграция личности в Интернете.

Управление аккаунтом - стратегия обеспечения безопасности. Для разрешения или запрета проверки подлинности определенных компьютеров или всех компьютеров, которыми вы управляете онлайн, используется Групповая политика.

Интеграцией онлайн идентификации можно управлять политикой группы. Политика, настроенная как: “Сетевая безопасность: Позволить этому компьютеру при запросе идентификации PKU2U использовать ID онлайн”, управляет возможностью ID онлайн подтвердить подлинность этого компьютера при помощи протокола PKU2U. Этот параметр политики не влияет на способность учетных записей доменов или локальных учетных записей пользователей входить на этот компьютер.

Я успешно настроил аутентификацию ntlm. К сожалению, config позволяет получить полуосновную авторизацию. Например, когда я использую черепаху svn1.8.4 (с привилегированным доступом lib), хром или веб-браузеры IE, они успешно завершают работу NTLM, не запрашивая ничего. В файле журнала я вижу пользователей, прошедших проверку подлинности. К сожалению, когда я использую например unconfigured FireFox или Maxthon, этот браузер запрашивает у меня учетные данные. Мне это не нужно, потому что та же ситуация возникает, когда я пытаюсь получить доступ из компьютера без компьютера.

Я использую сервер Windows как контроллер домена, windows7/8 как системный клиент, linux/debian как веб-сервер. Я настроил kerberos из linux do windows AD, winbind для локальной проверки подлинности NTLM и серии apache 2.2. Для клей-аутентификации apache я использую mod_auth_ntlm_winbind.so модуль apache2 и в контексте config/ntlm для поддержки связи с winbind. Это работает правильно, пример для apache:

#defaults for main www directory Options Indexes FollowSymLinks MultiViews AllowOverride None #modified, prevent for any ip access, for future add authless access from specified hosts Order deny,allow deny from all #allow from IP/mask #settings for NTLM auth with winbind helper AuthName "NTLM Authentication" NTLMAuth on NTLMAuthHelper "/usr/bin/ntlm_auth --domain=MY.WINDOWS.DOMAIN --helper-protocol=squid-2.5-ntlmssp" NTLMBasicAuthoritative on AuthType NTLM require valid-user #because ip is default deny satisfy any

Я надеялся, может быть, я могу сделать некоторое перенаправление с использованием переменной apache authtype, а затем добавил в конфигурацию выше перезаписи:

RewriteEngine on RewriteRule ^ /cgi-bin/TestAuth.pl?DollarOne=1&AUTH_TYPE=%{AUTH_TYPE}&REMOTE_USER=%{REMOTE_USER}

И пример скрипта TestAuth.pl как cgi-контент:

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; #easy way for print system variables print "Content-type:text/plain\r\n"; #respectint HTML protocol print "\r\n"; print "Enviroment contains:\r\n"; print "x\r\n"; print Data::Dumper->Dump([\@ARGV,\%ENV],); #prints all script arguments and process variables

К сожалению, во всех случаях, с использованием auth ntlm на основе окон и запроса учетных данных, я всегда вижу, что AUTH_TYPE всегда является NTLM. Тогда нет способа узнать, что делает браузер. В этой ситуации я могу получить доступ от клиентов из домена.

Я попробовал обернуть ntlm hepler strace. К сожалению, я не вижу ничего важного в своем дампе с четырьмя способами, сочетающими успех/неудачу и доступ к IE, вызванный запросом ant FF. Я думаю, что такая же ситуация возникает, когда помощник ntlm аутентифицируется на локальном сервере samba, но я никогда не тестировал это.

Теперь я пытаюсь выполнить некоторую конфигурацию с несколькими типами auth, Basic и NTLM. Сначала я пытаюсь выполнить Basic и отфильтровать это, когда allways fail и перенаправить его на информационную страницу. К сожалению, в настоящее время без успеха с NTLM-микс:(NTLM всегда делается первым.

Тогда у кого-нибудь есть идея, как предотвратить учетные данные? Как отозвать доступ от приглашенных клиентов? Как распознать учетные данные из приглашения или из окна клиента api?

0

2 ответы

В настоящее время я решил эту проблему переключить NTLM на аутентификацию Kerberos. Все готовые к winbind работают непосредственно под kerberos, потому что я ранее настроил kerberos для winbind с коммуникацией сервера AD. Поскольку kerberos открыт, разработчики предсказывали разные субатентификаторы на конечной точке пользователя. Очень полезным является флаг в модуле apache2.2 kerberos:

KrbMethodNegotiate on KrbMethodK5Passwd off

Это то, что я хочу. Браузер получает кадр krb с атрибутом «Не всплывать пользовательские учетные данные», тогда клиент просто этого не делает. Но если да (какая-то несовместимость?), Модуль сервера Apache должен обнаружить это и должен отозвать аутентификацию.

Используя NTLM от Microsoft, это невозможно, потому что протокол испорчен. Первый кадр NTLM после возврата кода 201 веб-сайта не имеет возможности для добавления атрибута «не запрашивать пользователя для учетных данных». Затем я могу отфильтровать этот кадр после всплывающего окна или знака ключа сеанса ОС. Этот браузер всегда показывает всплывающее окно, когда ключ сеанса OS недоступен.

В конце концов это еще один шанс. Пользователь занимает некоторое время для ввода учетных данных или принимает, когда учетные данные хранятся в браузере. Я могу подсчитать время между отправкой фрейма auth в браузер и скомпонованием кадра из клиента. Когда время слишком велико, я могу отменить. К сожалению, это может сделать ложную неавторизацию на занятых компьютерах или сетях.

Я буду использовать оба метода в будущем:) Это будет забавно, если все можно будет сделать с помощью apach winbind auth module. Затем вся конфигурация может быть инкапсулирована под apache, такая же, как и для kerberos auth.

Спасибо всем за интересные, исследования и помощь:)

Использование проверки подлинности NTLM не гарантирует авторизацию без учета учетных данных. Если у вас есть допустимые учетные данные Windows, которые сервер может распознать, вы не получите приглашение пароля.

Если у пользователя нет действительных пропущенных учетных данных NTLM, им будет предложено предоставить их. Это не способ вернуться к «базовой» аутентификации.

К сожалению, невозможно определить, предоставил ли пользователь учетные данные или прошел ли они через систему.

Возможно, задайте новый вопрос о том, что вы хотите, чтобы ваши пользователи испытывали (т.е. разные сайты для внутренних и внешних пользователей), и кто-то может помочь по-другому.

11.02.2011 Жан де Клерк

Любому администратору Windows, разумеется, не раз приходилось иметь дело с двумя основными протоколами аутентификации в среде Windows: Kerberos и NTLM. Данная статья посвящена тому, как Kerberos и NTLM поддерживаются в системах Windows 7 и Windows Server 2008 R2. Но для начала я хотел бы остановиться на ключевых различиях между этими протоколами.

Разработчики Microsoft впервые реализовали протокол Kerberos в системе Windows 2000. Протокол NTLM вошел в употребление гораздо раньше, во времена Windows NT. Kerberos представляет собой протокол аутентификации, базирующийся на концепции доверенной третьей стороны trusted third party (TTP), тогда как в основу протокола NTLM положен механизм «запрос-ответ» (challenge/response). Более подробно различия между двумя протоколами описаны в таблице .

При обмене данными в ходе аутентификации с использованием протокола NTLM серверный ресурс (например, файл-сервер) генерирует запрос, который направляется клиенту. Клиент формирует NTLM-ответ, включающий хеш пароля пользователя, а сервер проверяет правильность этого ответа. Если клиент использует локальную учетную запись, сервер проверяет ответ пользователя с помощью хеша пароля пользователя, который хранится в локальной базе данных диспетчера учетных записей безопасности Security Account Manager (SAM). Если же клиент применяет доменную учетную запись, сервер передает ответ для проверки контроллеру домена, ибо только контроллеры доменов хранят в своих базах данных Active Directory (AD) копии хешей пользовательских паролей.

В системе Windows Kerberos доверенной третьей стороной является контроллер домена Windows 2000 или более поздней версии, на котором размещается служба центра распространения ключей Kerberos Key Distribution Center (KDC). Центр KDC облегчает процедуру аутентификации между оснащенным средствами Kerberos клиентом и сервером. Служба KDC автоматически устанавливается как компонент системы AD и состоит из двух подсистем: службы аутентификации Authentication Service (AS) и службы предоставления билетов Ticket-Granting Service (TGS).

Когда пользователь регистрируется в домене Windows с использованием протокола Kerberos, клиент Windows первым делом проверяет подлинность пользователя на контроллере домена с помощью пользовательского пароля. В то же время клиент запрашивает билет на выдачу билета Ticket Grant Ticket (TGT) в службу аутентификации. TGT можно рассматривать как временный пароль (по умолчанию время его жизни составляет 8 часов), который будет заменять пароль пользователя в последующих запросах на аутентификацию. Когда пользователю нужно будет обратиться к серверному ресурсу, клиент представит TGT на выдачу TGT для проверки подлинности на серверном ресурсе. Имейте в виду, что, в отличие от NTLM, протокол Kerberos не используется для локальной аутентификации в диспетчере учетных записей безопасности Windows; его сфера применения ограничивается доменной аутентификацией на контроллере домена.

Kerberos - стандартный протокол аутентификации в системе Windows 2000 и в более новых версиях Microsoft. В этих операционных системах протокол аутентификации определяется с использованием механизма согласования. Если предлагаемый по умолчанию протокол Kerberos не подходит или не поддерживается одним из клиентских либо серверных компонентов, принимающих участие в аутентификации, Windows переходит на использование NTLM.

Почему Kerberos?

Kerberos более эффективен, нежели NTLM, и тому есть несколько причин. При использовании протокола Kerberos хеш пользовательского пароля экспонируется намного реже, чем в случае применения NTLM. Хеш пароля экспонируется только в том случае, когда пользователь запрашивает TGT - в сущности, один раз каждые восемь часов. С другой стороны, в случае применения NTLM хеш пароля экспонируется всякий раз, когда клиент использует NTLM для аутентификации на сервере. В этом состоит важное преимущество протокола Kerberos перед протоколом NTLM; дело в том, что существуют специальные инструменты, проверяющие сетевой трафик на наличие хешей паролей. Эти инструменты захватывают обнаруженные хеши и методом подбора восстанавливают на их основе пароли пользователей.

Еще одно достоинство Kerberos состоит в том, что этот протокол предусматривает использование отметок времени для защиты от атак с повторной передачей пакетов. Вот почему так важно наличие службы синхронизации времени, безупречно функционирующей в Kerberos-центрической среде Windows. В Windows 2000 и более новых версиях системы службы времени работают без предварительной настройки. Если компьютерные часы на разных компьютерах не синхронизированы, это может обернуться дополнительным трафиком в процессе аутентификации по стандарту Kerberos или же - в худшем случае - такая ситуация может вызвать ошибку в процессе аутентификации.

В дополнение к сказанному протокол Kerberos реализует такие усовершенствованные функции аутентификации, как взаимная аутентификация и делегирование аутентификации. Взаимная аутентификация означает, что пользователь и служба проверяют подлинность друг друга, тогда как возможности NTLM ограничиваются проверкой подлинности пользователя. Без этой функции могут возникать ситуации, когда пользователи предоставляют свои учетные данные фиктивному серверу.

Служба может обращаться к удаленным ресурсам от имени пользователя с помощью механизма делегирования аутентификации. Иными словами, пользователь может предоставлять системе-посреднику право подтвердить от своего имени свою (пользователя) подлинность на сервере приложений. В результате сервер приложений получает возможность принимать решения по авторизации не на базе идентичности системы-посредника, а основываясь на идентичности пользователя. Функция делегирования проверки подлинности весьма полезна в многоуровневых приложениях, таких как доступ к базам данных с помощью внешнего интерфейса на базе Web.

Наконец, надо сказать, что, хотя специалисты Microsoft проделали большую работу по модернизации протокола NTLM, а именно создали версию NTLMv2, которая поддерживается в среде NT4 SP4 и более новых версиях, в продукте Microsoft Kerberos реализовано большее число современных алгоритмов шифрования. Я расскажу об этом подробнее в разделе, посвященном средствам шифрования протокола Kerberos

Ограничения протокола NTLM

Преимущества аутентификации средствами протокола Kerberos сомнения не вызывают. Но даже в среде AD Server 2008 Windows часто использует протокол NTLM, например, когда вы подключаетесь к системе Windows, выпущенной до появления Windows 2000, или при подключении к общедоступному ресурсу с помощью команды net use и IP-адреса (а не имени NetBIOS). Кроме того, приложения, у которых имена участников службы service principal names (SPN) не настроены должным образом, будут по-прежнему использовать протокол NTLM.

Чтобы узнать, каким протоколом - NTLM или Kerberos - вы пользуетесь в данный момент, можете визуализировать трафик NTLM с помощью утилиты netmon или другого трассировщика сети; альтернативный вариант - проверить содержимое кэша билетов Kerberos с помощью инструмента klist (который входит в комплекты поставки Windows 7 и Server 2008). В системах Windows 7 и Server 2008 специалисты Microsoft реализовали новые групповые политики, с помощью которых можно отслеживать, а также блокировать использование протокола NTLM вашими пользователями и приложениями. Всего таких политик три: одна для входящего трафика NTLM (для отслеживания и блокировки на уровне сервера), другая для исходящего трафика NTLM (для отслеживания и блокировки на уровне клиента) и третья для доменного трафика (для отслеживания и блокировки на уровне контроллера домена). Они размещаются в контейнере Security Options Group Policy Object (CPO), попасть в который можно, последовательно выбирая пункты Computer Configuration, Windows Settings, Security Settings, Local Policies (см. экран 1). Все они начинаются с элемента Network security: Restrict NTLM:.

Каждая настройка политики имеет параметры audit и block. Когда вы включаете функцию аудита NTLM, программа создает записи журнала событий с исходными данными NTLM и числами 8001, 8002, 8003 и 8004. Журнальные записи хранятся в контейнере Operational с путем доступа Event Viewer (Local), Applications And Services Logs, Microsoft, Windows, NTLM. Я рекомендую для начала провести аудит NTLM в тестовой среде и позаботиться о том, чтобы там были должным образом представлены все ваши приложения. Если начать произвольно блокировать использование протокола, скорее всего, некоторые приложения функционировать не будут. Чтобы не допустить потери событий, следует перед началом тестирования средств аудита NTLM установить решение для сбора событий аудита; можете воспользоваться встроенной службой Windows Event Collector, средствами Event Subscriptions или решением от независимого поставщика. Кроме того, я рекомендую первым делом начать мониторинг NTLM на серверах. Вы можете подключить клиенты для проведения детального анализа, после того как станет очевидно, что сервер использует протокол NTLM. Уяснив, какие приложения используют NTLM, вы можете разработать стратегию блокировки NTLM. Эта стратегия может включать в себя стратегию исключений для устаревших приложений, которые не могут быть переписаны или перенастроены и которые всегда будут требовать применения NTLM.

К сожалению, упомянутые настройки NTLM нельзя применять на старых системах Windows. Однако эти системы допускают возможность управления версиями протокола NTLM. Вы можете, например, отключить фрагмент LM протокола аутентификации NTLM (поскольку этот фрагмент слаб по самой своей природе) или задать принудительное применение протокола NTLMv2. Для этого следует воспользоваться настройкой Network Security: LAN Manager Authentication Level GPO, которая размещается в контейнере Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options GPO (см. экран 2).

Средства шифрования Kerberos

Криптографические протоколы, используемые протоколами аутентификации, играют важную роль в обеспечении безопасности последних. Как я уже отмечал, в этой области показатели Kerberos выше, чем у протокола NTLM. Алгоритм шифрования RC4 был впервые реализован в протоколе Windows Kerberos в версии Windows 2000 и по сей день поддерживается в системах Server 2008, а также Windows 7 (точнее говоря, поддерживается его версия RC4_HMAC_MD5). В системах Server 2008, Windows Vista и более новых версиях разработчики Microsoft добавили средства поддержки шифрования по стандарту Advanced Encryption Standard, AES, а системы Windows 7 и Server 2008 R2 поддерживают типы шифрования Kerberos AES (AES128_HMAC_SHA1 и AES256_HMAC_SHA1) без предварительной настройки. AES - более новый и мощный алгоритм шифрования, нежели DES. Логика Kerberos на контроллерах доменов перейдет на стандарт шифрования AES, когда вы модернизируете домен AD до уровня Windows 2008 Domain Functional Level (DFL).

В системах Windows 7 и Server 2008 R2 типы шифрования DES для протокола аутентификации Kerberos по умолчанию отключены. Из-за этого могут возникнуть проблемы совместимости, если одно из устаревших приложений жестко закодировано на шифрование только по стандарту DES или если учетная запись Windows, выполняющая ту или иную службу (учетная запись этой службы), настроена на использование только DES-шифрования. Эти службы или приложения выйдут из строя, если вы не сможете перенастроить соответствующую службу либо приложение на поддержку другого типа шифрования (RC4 или AES) либо не восстановите поддержку стандарта DES.

Чтобы выяснить, имеются ли у вас приложения либо службы, закодированные на шифрование исключительно по стандарту DES, можно запустить сетевой трассировщик при старте соответствующего приложения или службы и проверить содержимое полей Etype в заголовках аутентификации Kerberos. Чтобы определить, настроена ли учетная запись пользователя либо компьютера AD или учетная запись компьютера для применения исключительно типов шифрования DES, нужно проверить, выбран ли на вкладке Account свойств объекта параметр Use Kerberos DES encryption types for this account. К этим свойствам можно обратиться из оснастки AD Users and Computers консоли MMC.

Если вы выполните упомянутые выше проверки и окажется, что у вас возникла эта проблема, можете активировать DES-шифрование для аутентификации с помощью Kerberos на компьютерах, функционирующих под Windows 7 или Server 2008 R2, с помощью GPO настройки Network security: настройте типы шифрования, совместимые со стандартом Kerberos; эти настройки расположены в контейнере Computer Configuration, Windows Settings, Security Settings, Local Policies, Security Options GPO.

Итак, из двух протоколов аутентификации Windows предпочтительным является протокол Kerberos. Администраторам следует всегда настаивать на том, чтобы пользователи и приложения применяли именно Kerberos, а не NTLM. Новые ограничения по использованию NTLM, реализованные в системах Windows 7 и Server 2008 R2, открывают перед нами отличную возможность для достижения этой цели.

Жан де Клерк ([email protected]) - сотрудник Security Office компании HP. Специализируется на управлении идентификационными параметрами и безопасностью в продуктах Microsoft


Аутентификация в системах Windows Server 2008 R2 и Windows 7


Windows NT вопрос/ответ. При интегрированной аутентификации Windows браузер клиента проверяет сам себя на сервере посредством криптографического обмена данными..

Интегрированная аутентификация Windows поддерживает как протокол Kerberos v5, так и протокол NTLM (NT LAN Manager ) для аутентификации посредством пакета Negotiate . При наличии Active Directory и соответствующей поддержке браузером (IE 5 или выше на платформе Windows 2000) используется протокол Kerberos, иначе – протокол NTLM . Как Kerberos, так и NTLM имеют некоторые ограничения. Интересен тот факт, что преимущества одного соответствуют слабым местам другого. Kerberos, как правило, работает с прокси-серверами, но с межсетевыми экранами его функционирование не столь эффективно. NTLM обычно работает через межсетевые экраны, но достаточно посредственно взаимодействует с прокси-серверами.

Несколько слов о Microsoft Negotiate

Microsoft Negotiate представляет собой пакет, обслуживающий интерфейс между различными поставщиками услуг по поддержке безопасности. Он может осуществлять выбор между различными пакетами аутентификации. IIS использует пакет Negotiate для аутентификации, и в этом случае происходит выбор протокола Kerberos или протокола NTLM . В данный пакет также добавлена поддержка будущих аутентификационных пакетов , что является преимуществом Negotiate . По умолчанию Negotiate выбирает Kerberos как наиболее безопасный протокол. Если по какой-либо причине протокол Kerberos недоступен, то Negotiate возвращается к использованию NTLM .

Аутентификация NTLM

NTLM представляет собой расширенную версию старого протокола аутентификации LM ( LAN Manager ). NTLM работает посредством вопросов/ответов между сервером и клиентом без передачи пароля пользователя через сеть в открытом виде. Клиент должен подтвердить то, что он знает пароль пользователя, посредством отправки зашифрованного хэша.

NTLM функционирует следующим образом.

  1. Пользователь указывает имя пользователя, пароль и имя домена при входе на компьютер-клиент.
  2. Клиент создает хэш данного пароля и удаляет оригинал.
  3. Клиент отправляет серверу имя пользователя в открытом виде.
  4. Сервер отправляет клиенту 16-битный фрагмент случайных данных.
  5. Клиент шифрует этот фрагмент, а также хэш пароля пользователя и передает их на сервер.
  6. Сервер передает имя пользователя, случайный фрагмент данных и ответ клиента на контроллер домена.
  7. Контроллер домена шифрует отрезок случайных данных вместе со своим собственным хэшем пароля пользователя, после чего сравнивает их с элементами, присланными сервером.
  8. Если значения совпадают, контроллер домена уведомляет сервер об успешном завершении аутентификации.
  9. Если значения или имя пользователя не совпадают, контроллер домена уведомляет об этом сервер, который передает клиенту соответствующее сообщение. После этого браузер клиента запрашивает у пользователя аутентификационные данные .

Аутентификация Kerberos

В древнегреческой мифологии Керберос – это сказочная трехглавая собака, охранявшая подземный мир от людей. В настоящее время термином Kerberos называется протокол безопасной аутентификации для доступа к ресурсам. Kerberos основывается на аутентификации с секретным ключом, при которой клиент и сервер используют один и тот же ключ для шифрования и расшифровки. Клиент доказывает знание ключа посредством шифрования сообщения, а сервер доказывает знание ключа посредством расшифровки этого сообщения. Затем сервер берет часть сообщения, шифрует ее и отправляет клиенту. При сохранении целостности сообщения результат аутентификации будет положительным.

Работа Kerberos основывается на центральном сервере, называемом Key Distribution Center ( KDC ) ( Центр распределения ключей ), который предоставляет все необходимые ключи. KDC выпускает так называемые билеты TGT ( Ticket-Granting Tickets ) ("Билеты для получения билетов") и предоставляет их клиентам, запрашивающим доступ к ресурсу на сервере.

Ниже показан процесс получения клиентом начального билета TGT.

  1. Пользователь осуществляет вход на компьютер-клиент с указанием имени пользователя и пароля.
  2. Клиент шифрует пароль и сохраняет его.
  3. Клиент отправляет KDC сообщение с запросом на аутентификационные данные для службы TGT, а также зашифрованный пароль пользователя.
  4. KDC сравнивает зашифрованный пароль со своей эталонной копией для проверки их идентичности. Также осуществляется проверка временного штампа, приложенного клиентом к запросу, для подтверждения того, что указанное в штампе время находится в пределах пяти минут собственного времени KDC .
  5. В случае полного соответствия KDC создает запрошенные аутентификационные данные для службы TGT посредством генерации сеансового ключа входа и шифрования его на пользовательском ключе.
  6. KDC создает другой фрагмент аутентификационных данных посредством шифрования сеансового ключа входа и TGT пользователя своим собственным эталонным ключом.
  7. KDC отправляет оба фрагмента аутентификационных данных клиенту.
  8. Клиент расшифровывает сеансовый ключ входа из первого отрезка аутентификационных данных с помощью зашифрованного пароля и сохраняет этот сеансовый ключ входа в кэше своего билета.
  9. Клиент также сохраняет TGT в своем кэше билета.

Теперь у клиента есть TGT, и он может использовать его для получения билетов на доступ к ресурсам. Вот как это происходит.

  1. Клиент запрашивает у KDC билет на доступ к ресурсам на сервере. Клиент предоставляет свой TGT центру KDC вместе с именем нужного ресурса и аутентификационным сообщением, зашифрованным на сеансовом ключе входа.