Сервер решает, какой метод аутентификации следует использовать?

Для веб-приложения: решает ли сервер, какой метод аутентификации должен использоваться, или это клиент.

Специфичны ли методы аутентификации, такие как NTLM и Kerberos Browser.

В веб-приложении интрасети, где BASIC и Diget стоят по сравнению с NTLM и Kerberos?

Благодарю вас:)

1 ответ

Решение

Как обсуждено в RFC 2617, это требует сотрудничества обеих сторон.

Когда для доступа к ресурсу требуются учетные данные, сервер отправит обратно 401 ответ с одним или несколькими WWW-Authenticate заголовки, которые указывают типы аутентификации, которые он поддерживает. Если есть более одного WWW-Authenticate заголовок, клиент "ДОЛЖЕН выбрать использование самой надежной схемы авторизации, которую он понимает, и запрашивать учетные данные на основе этой задачи".

Таким образом, ответ может быть:

WWW-Authenticate: Basic realm="protected area"
WWW-Authenticate: Digest
        realm="protected area"
        qop="auth"
        nonce="ea9c8142787af00ec11bd0eac248cac930"
        opaque="cdc069ca3ffe57acff21c259deadbeef"
WWW-Authenticate: Negotiate

Это указывает на то, что сервер готов принять базовый и дайджест-механизмы, как описано в RFC 2617, и NTLM или Kerberos, используя "SPNEGO" (механизм согласования), как описано в RFC 4559.

Затем клиент должен решить, какая из этих схем является наиболее сильной, и снова отправить запрос. Это зависит от рассматриваемого пользовательского агента, но эти механизмы оцениваются в предполагаемой слабости к силе (таким образом, наиболее предпочтительным является последний):

  1. Basic не обеспечивает безопасность, пароль в виде открытого текста можно восстановить тривиально. Следует использовать только в том случае, если ожидания безопасности абсолютно равны нулю или когда уровень уже зашифрован с использованием TLS.

  2. Дайджест - это механизм запроса / ответа, основанный на алгоритмах хеширования, которые на данный момент не считаются криптографически стойкими.

  3. NTLM - это семейство механизмов вызова / ответа, которые - даже в своем самом сильном (NTLMv2) полагаются на алгоритмы хеширования, которые не являются криптографически стойкими. Преимущество NTLM, однако, заключается в том, что пользователи на компьютерах Windows хешируют свои пароли при входе в систему, так что они могут стать входными данными для алгоритма, допускающего "единый вход" на веб-сайты без необходимости повторного ввода пароля.

  4. Kerberos обеспечивает безопасную аутентификацию с использованием доверенного центра распространения ключей (KDC) и является отличным выбором для интрасетей, но вряд ли будет жизнеспособным механизмом для всех клиентов через Интернет.

Влияние слабых сторон любого из этих протоколов может быть уменьшено путем защиты сеанса с TLS для обеспечения шифрования транспорта и должно выполняться абсолютно в любых ненадежных сетях (т. Е. В Интернете в целом).

Другие вопросы по тегам