Как Дайджест-аутентификация отличается от Стандартной аутентификации кроме передающих учетных данных как простой текст?
Основное отличие состоит в том, что не требуется отправлять имя пользователя и пароль по сети в виде открытого текста. Он также невосприимчив к повторным атакам, поскольку использует одноразовый номер с сервера.
Сервер дает клиенту одноразовый номер использования (nonce), который он объединяет с именем пользователя, областью, паролем и запросом URI. Клиент запускает все эти поля с помощью метода хеширования MD5 для получения хеш-ключа.
Он отправляет этот хэш-ключ на сервер вместе с именем пользователя и областью для попытки аутентификации.
На стороне сервера тот же метод используется для генерации хэш-ключа, только вместо того, чтобы использовать пароль, введенный в браузер, сервер ищет ожидаемый пароль для пользователя в своей пользовательской БД. Он ищет сохраненный пароль для этого имени пользователя, выполняет тот же алгоритм и сравнивает его с тем, что отправил клиент. Если они совпадают, доступ предоставляется, в противном случае он может отправить обратно 401 Unauthorized (без входа или неудачный вход) или 403 Forbidden (доступ запрещен).
Дайджест-аутентификация стандартизирована в RFC2617 . В Википедии есть хороший обзор :
Вы можете думать об этом так:
Хэш учетных данных отправляется по сети.
HA1 = MD5(username:realm:password)