Давайте посмотрим на разницу между двумя HTTP аутентификациями с использованием Wireshark
(Инструмент для анализа отправленных или полученных пакетов).
1. Http Basic Authentication
Как только клиент вводит правильное имя пользователя: пароль , в соответствии с запросом веб-сервера, веб-сервер проверяет в базе данных правильность учетных данных и предоставляет доступ к ресурсу ,
Вот как пакеты отправляются и принимаются:
В первом пакете Клиент заполняет учетные данные, используя метод POST на ресурсе - lab/webapp/basicauth
. В ответ сервер возвращает ответ с http-кодом ответа 200 ok , т. Е. С именем пользователя : пароль был верным.
Теперь, в заголовке Authorization
показано, что это Базовая Авторизация, за которой следует какая-то случайная строка. Эта строка является кодированной (Base64) версией учетных данных admin:aadd
(включая двоеточие).
2. Http Digest Authentication (rfc 2069)
До сих пор мы видели, что базовая аутентификация отправляет имя пользователя: пароль в виде открытого текста по сети. Но Authe Digest отправляет HASH пароля с использованием алгоритма хеширования.
Вот пакеты, показывающие запросы, сделанные клиентом, и ответ от сервера.
Как только клиент вводит учетные данные, запрошенные сервером, пароль преобразуется в response
с использованием алгоритма и затем отправляется на сервер, если база данных сервера имеет тот же ответ, что и клиент-сервер дает доступ к ресурсу, в противном случае возникает ошибка 401 .
В приведенном выше Authorization
строка response
вычисляется с использованием значений Username
, Realm
, Password
, http-method
, URI
и Nonce
, как показано на рисунке:
(двоеточия включены)
Следовательно, мы можем видеть, что дайджест-аутентификация более безопасна, поскольку включает хеширование (шифрование MD5), поэтому инструменты анализатора пакетов не могут прослушать пароль, хотя в режиме обычной аутентификации точный пароль был показан на Wireshark.