Это то, на что я никогда не мог ответить так, как мне нравится: В чем реальное преимущество использования проверки подлинности Kerberos в IIS вместо NTLM?
Я видел, как многие люди действительно изо всех сил пытались его настроить (в том числе и я), и я не смог придумать вескую причину для его использования. Хотя должны быть некоторые довольно значительные преимущества, иначе не стоит тратить силы на его настройку, верно?
Только с точки зрения Windows:
MaxConcurrentAPI
, AuthPersistSingleRequest
(ложный), быстрее DC.) (Самореференциальный бонус.)lmcompatibilitylevel
)работает с В настоящее время только клиенты, присоединенные к домену
мощь иметь возможность проходить через прокси, но см. точку DC выше: вам по-прежнему необходимо находиться в той же сети, что и активный DC, как и сервер.
билет - долгожитель (10h) значение меньше связи постоянного тока в течение срока действия билета - и подчеркнуть: это может сэкономить от тысяч до миллионов запросов на клиента за это время жизни - (AuthPersistNonNTLM
все еще вещь; Проверка Kerberos PAC раньше была вещь)
требует одно путешествие туда и обратно для аутентификации, но аутентификация размер полезной нагрузки относительно большой (обычно 6-16K) (401, {размер (закодированного) токена} 200)
может использоваться с («пожалуйста, всегда используйте ограничение») делегация для включения сценариев двойного прыжка, то есть Windows-аутентификация подключающегося пользователя к следующей службе
UserA
для доступа к IIS и для IIS, чтобы олицетворять ту же учетную запись пользователя Windows, когда он обращается к другому компьютеру с SQL Server. Это «делегирование аутентификации».в настоящее время является основным пакетом безопасности для аутентификации с согласованием
требует регистрация SPN, что может быть непросто. Правила, которые помогают.
требует использования название как цель, а не IP-адрес
Причины отказа Curb:
KRB_ERR_AP_MODIFIED
)Пока мы на этом:
LogonType
быть настроенным для достижения этой цели (думаю, что в период с 2000 по 2003 год значение по умолчанию изменилось на сетевой открытый текст, но, возможно, неправильно запомнил)Подводить итоги:
Бордюр может быть сложно установить, но есть множество направляющих (мой один), которые пытаются упростить процесс, и инструменты улучшились в значительной степени с 2003 по 2008 (SetSPN
может искать дубликаты, что является наиболее частой неисправностью; использовать SETSPN -S
каждый раз, когда вы увидите руководство по использованию -A, и жизнь станет счастливее).
Ограниченное делегирование стоит затрат на вход.
Из Средство проверки приложений Microsoft, который выявляет типичные ошибки разработчиков. Одна из этих ошибок - использование NTLM:
NTLM - это устаревший протокол аутентификации с недостатками, которые потенциально могут поставить под угрозу безопасность приложений и операционной системы. Самым важным недостатком является отсутствие аутентификации сервера, что может позволить злоумышленнику обманом заставить пользователей подключиться к поддельному серверу. Как следствие отсутствия аутентификации сервера, приложения, использующие NTLM, также могут быть уязвимы для типа атаки, известной как атака «отражения». Это позволяет злоумышленнику перехватить аутентификационный диалог пользователя с легитимным сервером и использовать его для аутентификации злоумышленника на компьютере пользователя. Уязвимости NTLM и способы их использования являются целью все возрастающей исследовательской активности в сообществе безопасности.
Хотя Kerberos существует уже много лет, многие приложения все еще написаны для использования только NTLM. Это без нужды снижает безопасность приложений. Однако Kerberos не может заменить NTLM во всех сценариях - в основном в тех, где клиенту необходимо пройти аутентификацию в системах, которые не присоединены к домену (домашняя сеть, возможно, является наиболее распространенной из них). Пакет безопасности Negotiate допускает компромисс с обратной совместимостью, который использует Kerberos, когда это возможно, и возвращается к NTLM только тогда, когда нет другого варианта. Переключение кода на использование Negotiate вместо NTLM значительно повысит безопасность для наших клиентов, в то же время обеспечивая небольшую совместимость приложений или вообще не обеспечивая их. Само по себе согласование - не панацея: бывают случаи, когда злоумышленник может принудительно перейти на NTLM, но воспользоваться ими значительно труднее. Однако одно немедленное улучшение состоит в том, что приложения, написанные для правильного использования Negotiate, автоматически защищены от атак отражения NTLM.
В качестве последнего слова предостережения против использования NTLM: в будущих версиях Windows можно будет отключить использование NTLM в операционной системе. Если приложения жестко зависят от NTLM, они просто не смогут пройти аутентификацию, когда NTLM отключен.
Другой подход - установить аутентификацию на negotiate
и используйте оба, а не один вместо другого.
Следует добавить очень важный момент:
Kerberos был стандартным и открытым протоколом в Unix более 20 лет, тогда как NTLM - это чисто проприетарное решение от Microsoft, известное только Microsoft.
Kerberos требуется, если вам нужно выдать себя за пользователя для доступа к ресурсам, которых нет на сервере iis.