сервер сообщает что он находится в digest

Система аутентификации на базе протокола HTTP Digest. Усиление модуля.

В статье «Система аутентификации на базе протокола HTTP Basic был рассмотрен алгоритм Basic аутентификации и с помощью него была построена система Basic аутентификации на основе ролей, работающая без специальной настройки IIS сервера и использующая базу данных для хранения учетных записей пользователей.

У Basic есть один недостаток, а именно username и password передаются по сети открыто (clear text), base64 кодировка не может считаться защитой.

Аутентификация Digest

Расширим нашу систему из предыдущей статьи.

К преимуществам Digest можно отнести следуещее:

Один сайт может одновременно использовать несколько систем защиты, например Basic и Digest

Пришло время рассмотреть работу алгоритма Digest аутентификации:

Разберём заголовок WWW-Authenticate (как вы заметили, он усложнился по сравнению с заголовком Basic):

3. У юзера всплывает модальное окно, предлагающее ввести username и password (обратите внимание, окно отличается от Basic окна). Происходит запрос юзера для аутентификации:

Теперь разберём заголовок Authorization:

4. Последовательность обработки запроса пользователя

5. Проверка пароля пользователя

6. выдаём состояние ответа сервера 401, поднимающее модальное окно как в пункте 2 иначе говоря формируем WWW-Authenticate по типу Digest

HTTP Модуль AuthDigest

Ну что ж, вооружившись рассмотренными выше теоретическими выкладками напишем наш HttpModule, который воплотит Digest аутентификацию.

Всё. HttpModule готов. Подключим его к веб приложению: Для этого в файле web.config в разделе sytem.web пишем

отменяем встроенную аутентификацию

и сохраняем данные для Digest аутентификации (realm string, алгоритм, qop string, server opaque)

Алгоритм Digest аутентификации не претендует на решение всех задач, связанных с безопасностью в интернете. Эта схема не кодирует содержимое запроса-ответа. Цель Digest заключается в том, чтобы обеспечить систему аутентификации, такую же простую и удобную, как и Basic, но в которой бы отсутствовали недостатки, присущие Basic аутентификации. Тем не менее эта система гораздо сильнее, чем например CRAM-MD5, которая была предложена для LDAP, POP и IMAP(rfc 2195).

К коду прилагаются database scripts и упрощённый класс для работы с базой.

Источник

Сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Общие обсуждения

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Все ответы

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

1) Уточните на сервере какое ПО установлено?
Возможно одно из ПО использует 80 порт, к примеру Skype, сторонние веб-сервера apache, nginx и т.п.?
2) Сколько сайтов настроено на веб-сервере IIS?
Покажите результат выполнения следующих команд в powershell:

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

1) Покажите пожалуйста результат следующей команды в командной строке (cmd.exe):
P.S. Также для исключения блокировок со стороны firewall, попробуйте отключить firewall, если он используется на сервере, как Windows Firewall или сторонний.

2) Также в некоторых случаях помогает удаление Microsoft Web deploy, в случае если он требуется то пробуете его установить заново.
By default, the remote service will be URL http://+:80/MsDeployAgentService. This default URL should only be used on test computers, not on production servers.
Подробнее: Web Deployment Tool Installation

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Порт 80 прослушивается драйвером http.sys (что есть правильно).

Посмотреть, каким URL какие очереди подключены, и какие процессы с этими очередями связаны можно командой

netsh http show servicestate requestq

В выдаче команды можно увидеть PID процесса, который зарегистрировал URL-адрес http://*:80/. Определить имя процесса по его PID можно командой tasklist /FI «PID eq значение_PID».

Если такого процесса нет, то следует посмотреть зарезервированные URL командой netsh http show urlacl

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

1. результат одинаковый, что с firewall, что без:

C:\Windows\system32>netsh http show urlacl

Зарезервированный URL-адрес : http://+:80/Temporary_Listen_Addresses/
Пользователь: \Все
Прослушивать: Yes
Делегировать: No
SDDL: D:(A;;GX;;;WD)

Зарезервированный URL-адрес : http://*:80/
Пользователь: NT AUTHORITY\LOCAL SERVICE
Прослушивать: Yes
Делегировать: No
SDDL: D:(A;;GX;;;LS)

2. Microsoft Web deploy у меня не установлена, службы msdepsvc нет, а предложенная статья, я так поняла, расчитана на Windows Server 2008

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Атаки на HTTP Basic и Digest аутентификацию

Оглавление

Что такое HTTP Basic и Digest аутентификация

HTTP Basic и Digest аутентификации предназначены для контроля доступа на уровне веб-сервера. Если при попытке открыть веб-страницу или войти в настройки роутера вы видите такое окно:

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

То это означает, что на веб-сервере используется аутентификация одного из этих видов.

Нам более привычна аутентификация с помощью веб-форм, когда чтобы попасть в раздел с ограниченным доступом мы вводим логин и пароль в форму на веб-странице, например:

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Эти два вида аутентификаций довольно разные. Алгоритм работы аутентификации через веб форму входа примерно следующий:

Теперь, когда повсеместно используется шифрование HTTPS и перехват логина, пароля и кукиз стал практически невозможным, это довольно надёжный способ аутентификации. При добавлении защиты от брут-форса и политики, требующей сложных и длинных паролей, это весьма надёжный способ защиты доступа к данным пользователей.

Как можно догадаться, правильная и безопасная реализация описанного метода требует определённых усилий (проверка пароля, который обычно хранится в виде хеша, необходима база данных с паролями и токенами, нужно написать код веб-формы и код на стороне сервера, принимающий данные, получение и отправка кукиз и так далее).

HTTP Basic и Digest аутентификации очень сильно отличаются. Во-первых, они очень простые для реализации — достаточно создать на сервере файл с хешами пользователей и подключить его к веб-серверу.

Во-вторых, проверка проходит на уровне веб-сервера, не нужно заботиться о реализации аутентификации в веб-приложении, на веб-сайте.

Но и минусов у HTTP Basic и Digest аутентификации слишком много:

Кстати, при HTTP Basic и Digest аутентификации не используются кукиз, поэтому чтобы не приходилось вводить пароль каждый раз при доступе к серверу, веб-браузер пользователя запоминает введённые логин и пароль и отправляет их при каждом последующем запросе — в результате создаётся ощущения, что веб-сервер нас запомнил.

Насколько актуальны HTTP Basic и Digest Authentication

Фактически, HTTP Basic и Digest Authentication нечасто используются на веб-сайтах. Но если нужно быстро закрыть доступ к сайту, например, на период реконструкции, то можно встретить такой способ защиты. По крайней мере, даже в 2020 году выходят инструкции как установить защиту паролем с помощью HTTP Basic и Digest Authentication, например «How To Set Up Password Authentication with Apache on Ubuntu 18.04».

Кстати, я совершенно случайно, используя показанный ниже метод поиска хостов с HTTP Basic аутентификацией, вместо диапазона 100.64.0.0-100.127.255.255 (локальные IP адреса провайдера) начал сканировать диапазон 100.16.0.0-100.31.255.255 (обычные IP адреса Интернета). Ошибку я заметил далеко до окончания сканирования, но уже собрал около сотни хостов с HTTP Basic Authentication. Так что вполне себе актуально.

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Но где действительно всё хорошо с HTTP Basic аутентификацией, так это в роутерах! Производителям роутеров нравилось её использовать благодаря простоте реализации — никаких баз данных, никакой проверки кукиз, только простейшая настройка веб-сервера. А пользователям нравится не менять свои роутеры по 5-10 лет, поэтому армия уязвимых к брут-форсу роутеров уже ждёт нас.

Как включить защиту паролем с помощью HTTP Basic и Digest аутентификации

Но начнём мы с того, что настроем свой веб-сервер для защиты паролем папок с помощью HTTP Basic аутентификации и HTTP Digest аутентификации.

Во-первых, те, кто не нашёл серверы для тренировки, смогут тренироваться на своём собственном (плюс этика и всё такое).

Во-вторых, когда настраиваешь сам, смотришь на работу службы или протокола «изнутри», то можно увидеть другие возможные слабости и костыли.

Я покажу на примере Kali Linux, но практически наверняка эта же инструкция будет работать и в Ubuntu, Debian, Linux Mint и их производных.

Как включить HTTP Basic аутентификацию в Apache (Kali Linux, Ubuntu, Debian, Linux Mint)

Для начала нужно включить поддержку файлов .htaccess, чтобы веб-сервер использовал настройки из этих файлов — по умолчанию это отключено.

Откройте файл /etc/apache2/apache2.conf

Найдите группу строк:

Сохраните и закройте файл.

Создайте папку, где будут защищённые паролем файлы:

С помощью утилиты htpasswd мы создадим файл с именем пользователя и хешем пароля. Если указана опция -c, то старый файл будет удалён, а новый создан. Утилита htpasswd присутствует и в Apache для Windows, но нужно указать полный путь до неё.

Если файл .htpasswd уже существует, то для добавления ещё одного пользователя, без удаления старых, используйте эту же команду, но без опции -c:

Для смены пароля, вновь используйте эту же команду без опции -c, указав имя пользователя, чей пароль вы хотите поменять.

Конечно же файл .htpasswd рекомендуется хранить в директориях, не доступных для постороннего доступа (например, /etc/apache2/.htpasswd). Особенно не нужно его хранить в папках веб-сервера вместе с файлами сайтов. Но иногда веб-мастер в силу простоты или невозможности сохранить файл где-либо ещё (на виртуальных хостингах, например) хранит этот файл прямо вместе с файлами сайтов.

Поэтому при обнаружении HTTP Basic и Digest аутентификации всегда есть смысл поискать что-то похожее:

Посмотрим содержимое файла .htpasswd:

Теперь создадим файл .htaccess:

И скопируем в него:

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Кстати, с программой htpasswd вы можете использовать опцию -B. Опция -B означает использовать для шифрования пароля bcrypt. В настоящее время это считается очень безопасным. Для наших тестов это безразлично, но для реальной защиты папки или сайта паролем рекомендуется выполнять показанные выше команды с опцией -B. В дополнении к этой опции вы можете использовать флаг -C со значением от 4 до 17. Он устанавливает время вычисления, используемое для алгоритма bcrypt (чем выше, тем безопаснее, но медленнее). Значением по умолчанию является 5.

Примечание: показанный способ (хранение файла .htpasswd в директории веб-сервера) универсален и может применяться даже на виртуальных хостингах. Но если у вас есть доступ к папке с настройками Apache (в производных Debian это /etc/apache2/), то храните этот файл там, то есть по пути /etc/apache2/.htpasswd. Инструкция с правильными для продакшена путями: «Как настроить аутентификацию по паролю с Apache в Debian, Ubuntu и производных».

Если вы хотите настроить базовую аутентификацию на Apache в Windows, то смотрите статью «Как защитить папку Apache паролем в Windows».

Как включить HTTP Digest аутентификацию в Apache (Kali Linux, Ubuntu, Debian, Linux Mint)

По умолчанию модуль Digest аутентификации отключён, включим его:

Откройте файл /etc/apache2/apache2.conf:

Найдите группу строк:

Сохраните и закройте файл.

Создайте папку, где будут защищённые паролем файлы:

Для генерации хешей паролей нужно использовать команду htdigest. Если указать опцию -c, то будет создан новый файл, а старый удалён.

Общий формат команды:

REALM — это область применения. Она соответствует директиве AuthName в файле .htaccess. То есть можно для одного пользователя установить разные пароли, изменяя значения REALM. В разных директивах можно менять значение AuthName в файле .htaccess и в зависимости от этого значения будет подходить тот или иной пароль.

Посмотрим содержимое файла .htpasswd:

Пример содержимого файла:

Теперь создадим .htaccess:

И скопируем в него следующее:

Отроем в веб-браузере адрес http://localhost/digest-protected/ и убедимся, что теперь для доступа к странице необходим пароль.

HTTP Basic и Digest аутентификация в командной строке

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

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Подробности о работе в Инструментах разработчика веб-браузеров смотрите в статьях:

Можно также посмотреть в командной строке с помощью утилиты cURL:

Для Basic аутентификации будет показан примерно следующий HTTP заголовок:

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Для Digest будет присутствовать примерно следующий заголовок:

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Чтобы в cURL выполнить авторизацию, то есть ввести логин и пароль для входа к ограниченным данным, используйте опцию —user ‘ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ’, а также одну из опций —basic или —digest — в зависимости от типа аутентификации.

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Обратите внимание, что для Digest аутентификации ввод данных выполняется в 2 этапа и хотя бы один раз в любом случае получаем статус ответа 401 Unauthorized.

Поиск хостов с Basic и Digest аутентификацией

«Полезной нагрузкой», которая может найти хосты с Basic и Digest аутентификацией, может быть команда вида:

Если вы запутались в знаках >, то рекомендую вам разобраться, поскольку здесь используется довольно занимательная конструкция, которая имеет следующий результат:

Дело в том, что HTTP заголовки команда cURL выводит в stderr, а команда grep не ищет по stderr. Но мы не может сделать просто перенаправление stderr для слияния со стандартным выводом, то есть не можем 2>&1, поскольку текст страницы может содержать слово «Unauthorized» и мы получим ложное срабатывание. Поэтому мы используем указанную выше конструкцию — вывод ошибок обрабатывается, стандартный вывод уничтожается.

Если вы хотите разобраться в этом глубже, то смотрите статью «Операторы перенаправления вывода в Bash: что означает &1 и другие».

Для поиска хостов мы будем использовать конструкцию вида:

То есть если в заголовках ХОСТА найдена срока «Unauthorized», то выводим адрес этого хоста.

Чтобы сделать эту кастомную полезную нагрузку многопоточной, я буду использовать утилиту Parallel (смотрите «Руководство по использованию GNU Parallel»).

Пример сканирования портов 80 и 8080 диапазона IP адресов 100.101.0.0-100.101.255.255 с выводом данных прямо на экран:

Пример сканирования портов 80 и 8080 диапазона IP адресов 100.64.0.0-100.127.255.255 с сохранением данных в файл auth_basic.txt:

Брут-форс HTTP Basic и Digest аутентификаций

Basic и Digest стандартизированы и довольно просты для реализации брут-форса. Поэтому их поддерживают все популярные брут-форсеры, в том числе:

patator

Я покажу команды на примере patator. Модуль для брут-форса называется http_fuzz.

Команда для запуска брут-форса HTTP Basic аутентификации, когда имена пользователей и пароли находятся в разных файлах:

Всё остальное в этой команде можно оставить без изменений.

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Команда для запуска брут-форса HTTP Basic аутентификации и когда имена пользователей и пароли находятся в одном комбинированном файле:

Команды для запуска брут-форса HTTP Digest аутентификации точно такие, всего лишь замените опцию auth_type=basic на auth_type=digest.

Router Scan by Stas’M

Router Scan тоже прекрасно брут-форсит эти типы аутентификации, поскольку они активно применялись на роутерах прошлых поколений:

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Возможно, для ваших целей стоит задуматься о дополнении или изменении поставляемых с Router Scan словарей, поскольку они всё-таки заточены под роутеры. Выше пример брут-форса IP адресов, которые я собрал случайно просканировав неверный диапазон. Как можно увидеть, даже с дефолтными словарями удалось подобрать пару паролей (правда один из этих хостов роутер, а второй DVR.

Фильтры Wireshark для HTTP Basic и Digest аутентификации

Wireshark может фильтровать сессии аутентификации. Для этого имеются следующие фильтры:

Все сессии аутентификации (BASIC/DIGEST/NTLM):

сервер сообщает что он находится в digest. Смотреть фото сервер сообщает что он находится в digest. Смотреть картинку сервер сообщает что он находится в digest. Картинка про сервер сообщает что он находится в digest. Фото сервер сообщает что он находится в digest

Только HTTP Basic аутентификация:

Только HTTP Basic аутентификация с определёнными учётными данными:

Как взломать хеш HTTP Basic

HTTP Basic Auth в HTTP заголовке

Если вы перехватили передаваемую аутентификацию по сети, например, заголовок:

то вставьте строку из этого заголовка в команду вида:

и вы получите логин и пароль в виде простого текста.

Если вам удалось найти файл .htpasswd с хешами, то там вы увидите примерно следующее:

То есть файл включает имя пользователя и хеш.

Если программа htpasswd использовалась с опцией -B (что рекомендуется), то для шифрования хеша вместо MD5 используется bcrypt, который считается очень надёжным. Пример хеша:

В данном случае нужно использовать режим Hashcat -m 3200.

В любом случае вы сможете определить тип хеша воспользовавшись этим онлайн сервисом по определению типов хешей.

Как взломать хеш HTTP Digest

HTTP Digest Auth в HTTP заголовке

Для взлома перехваченной Digest вам нужно собрать хеш самостоятельно. Для его взлома используется тип хеша -m 11400 = SIP digest authentication (MD5)

Формат хеша следующий:

Подробности на страницах:

Пример содержимого файла .htpasswd:

Хешами здесь являются строки после второго двоеточия, то есть, например, 48e54f80673b884a8d6f23f48aa2ade3.

Данный хеш вычисляется по формуле:

Для взлома этого хеша используйте алгоритм MD5 с номером -m 0. Пароль составьте из трёх элементов, разделённых двумя двоеточиями: «ИМЯ:REALM:ПАРОЛИ». Третья часть ПАРОЛИ должна меняться, а первые две должны остаться неизменными.

Заключение

Аутентификация Basic и Digest в настоящее время считаются слабыми. Если вам нужно использовать какую-то из них, то рекомендуется Basic в паре с HTTPS, чтобы невозможно было перехватить пароль, поскольку хотя Digest и не пересылает пароль в открытом виде, он очень быстр для брут-форса.

Источник

СОДЕРЖАНИЕ

Обзор

Если значение директивы qop равно «auth» или не указано, то HA2 является

Если значение директивы qop равно «auth-int», то HA2 будет

Если значение директивы qop равно «auth» или «auth-int», вычислите ответ следующим образом:

Если директива qop не указана, вычислите ответ следующим образом:

Выше показано, что если qop не указан, применяется более простой стандарт RFC 2069.

Влияние безопасности MD5 на дайджест-аутентификацию

Рекомендации по аутентификации дайджеста HTTP

Преимущества

Некоторые из сильных сторон безопасности дайджест-аутентификации HTTP:

Недостатки

У аутентификации доступа к дайджесту есть несколько недостатков:

Альтернативные протоколы аутентификации

Некоторые из иногда используемых протоколов строгой аутентификации для веб-приложений:

Пример с объяснением

Эта типичная транзакция состоит из следующих шагов:

(за которым следует новая строка в виде возврата каретки с последующим переводом строки ).

(с пустой строкой, как и раньше).

(за которой следует пустая строка и HTML-текст запрещенной страницы).

Значение «отклика» рассчитывается в три этапа, как показано ниже. Если значения объединены, они разделяются двоеточиями.

Завершение примера, приведенного в RFC 2617, дает следующие результаты для каждого шага.

На этом этапе клиент может сделать другой запрос, повторно используя значение одноразового номера сервера (сервер только выдает новый одноразовый номер для каждого ответа «401» ), но предоставив новый одноразовый номер клиента (cnonce). Для последующих запросов шестнадцатеричный счетчик запросов (nc) должен быть больше, чем последнее использованное значение, иначе злоумышленник может просто « воспроизвести » старый запрос с теми же учетными данными. Сервер должен гарантировать, что счетчик увеличивается для каждого выданного им одноразового значения, соответствующим образом отклоняя любые неверные запросы. Очевидно, что изменение метода, URI и / или значения счетчика приведет к другому значению ответа.

Сервер должен запоминать значения nonce, которые он недавно сгенерировал. Он также может запоминать, когда было выдано каждое значение nonce, истекая через определенное время. Если используется просроченное значение, сервер должен ответить кодом состояния «401» и добавить stale=TRUE в заголовок аутентификации, указывая, что клиент должен повторно отправить с новым предоставленным nonce, не запрашивая у пользователя другое имя пользователя и пароль.

Синтаксис команды htdigest:

Дайджест-аутентификация SIP

Протокол инициации сеанса (SIP) использует в основном тот же алгоритм дайджест-аутентификации. Он указан в RFC 3261.

Реализация браузера

Большинство браузеров в значительной степени реализовали спецификацию, некоторые из них запрещают определенные функции, такие как проверка auth-int или алгоритм MD5-sess. Если сервер требует, чтобы эти дополнительные функции обрабатывались, клиенты могут не пройти аутентификацию (хотя обратите внимание, что mod_auth_digest для Apache также не полностью реализует RFC 2617).

Устаревшие

Из-за недостатков дайджест-аутентификации по сравнению с базовой аутентификацией по HTTPS она устарела во многих программах, например:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *