Сервер решает, какой метод аутентификации следует использовать?
Для веб-приложения: решает ли сервер, какой метод аутентификации должен использоваться, или это клиент.
Специфичны ли методы аутентификации, такие как 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.
Затем клиент должен решить, какая из этих схем является наиболее сильной, и снова отправить запрос. Это зависит от рассматриваемого пользовательского агента, но эти механизмы оцениваются в предполагаемой слабости к силе (таким образом, наиболее предпочтительным является последний):
Basic не обеспечивает безопасность, пароль в виде открытого текста можно восстановить тривиально. Следует использовать только в том случае, если ожидания безопасности абсолютно равны нулю или когда уровень уже зашифрован с использованием TLS.
Дайджест - это механизм запроса / ответа, основанный на алгоритмах хеширования, которые на данный момент не считаются криптографически стойкими.
NTLM - это семейство механизмов вызова / ответа, которые - даже в своем самом сильном (NTLMv2) полагаются на алгоритмы хеширования, которые не являются криптографически стойкими. Преимущество NTLM, однако, заключается в том, что пользователи на компьютерах Windows хешируют свои пароли при входе в систему, так что они могут стать входными данными для алгоритма, допускающего "единый вход" на веб-сайты без необходимости повторного ввода пароля.
Kerberos обеспечивает безопасную аутентификацию с использованием доверенного центра распространения ключей (KDC) и является отличным выбором для интрасетей, но вряд ли будет жизнеспособным механизмом для всех клиентов через Интернет.
Влияние слабых сторон любого из этих протоколов может быть уменьшено путем защиты сеанса с TLS для обеспечения шифрования транспорта и должно выполняться абсолютно в любых ненадежных сетях (т. Е. В Интернете в целом).