IIS предлагает множество различных технологий аутентификации. Одна из них — интеграция аутентификации Windows. Интегрированная аутентификация Windows использует переговоры Kerberos или NTLM для аутентификации пользователей на основе зашифрованных тикетных сообщений, передаваемых между браузером и сервером.
Наиболее распространённым сценарием применения аутентификации NTLM, вероятно, является аутентификация, используемая в браузерах (http protocol). Но на практике NTLM указывает только процесс аутентификации и формат аутентификационного сообщения. Это не связано с конкретными соглашениями. Так что связи с http не обязательно существует. Браузер передаёт сообщение NTLM только в заголовке протокола http и передаёт аутентификацию. Мы знаем, что http обычно используется в открытом тексте, поэтому если прямая передача паролей крайне небезопасна, NTLM эффективно предотвращает эту проблему.
Процесс сертификации
Аутентификация NTLM требует трёх этапов, и вы можете просмотреть подробный процесс запроса через набор инструментов Fiddler.
Шаг 1
Пользователь входит на хост клиента, введя номер учетной записи Windows и пароль. Перед входом клиент кэширует хэш введённого пароля, и исходный пароль отбрасывается («оригинальный пароль нельзя кэшировать ни при каких обстоятельствах», это базовое правило безопасности). Пользователь, успешно вошедший в клиентский Windows, должен отправить запрос другой стороне, если тот попытается получить доступ к ресурсам сервера. Запрос содержит имя пользователя в открытом виде.
Шаг 2
Когда сервер получает запрос, он генерирует 16-битное случайное число. Это случайное число называется вызовом или нонсом. Вызов сохраняется до того, как сервер отправляет его клиенту. Испытания отправляются в открытом виде.
Шаг 3
После получения вызова, отправленного сервером, клиент шифрует его с хэшем пароля, сохранённым на шаге 1, и затем отправляет зашифрованное испытание на сервер.
Шаг 4
После получения зашифрованного вызова, отправленного клиентом, сервер отправляет запрос на аутентификацию клиенту в DC (домен). Запрос в основном включает следующие три содержимого: имя пользователя клиента; Вызов и оригинальный вызов с зашифрованным хешем паролей клиента.
Шаги 5 и 6
DC шифрует исходный вызов, получая хэш пароля аккаунта на основе имени пользователя. Если зашифрованное испытание совпадает с тем, что отправляет сервер, это значит, что у пользователя правильный пароль, и проверка проходит, иначе проверка не проходит. Контроллер контроллера отправляет результаты верификации на сервер, а затем обратную связь клиенту.
Справочные статьи:
Вход по гиперссылке виден.
Вход по гиперссылке виден.
Вход по гиперссылке виден.
|