Введение

Метод согласования учетных данных между веб-сервером и браузером

Аутентификация Digest – один из согласованных методов, которые веб-сервер может использовать для согласования учетных данных, таких как имя пользователя или пароль, с веб-браузером пользователя. Это может быть использовано для подтверждения личности пользователя перед отправкой конфиденциальной информации, например, истории транзакций онлайн-банкинга. Перед отправкой по сети к имени пользователя и паролю применяется хеш-функция. В отличие от этого, базовая аутентификация доступа использует легко обратимую кодировку Base64 вместо хеширования, что делает её небезопасной, если не используется в сочетании с TLS. Технически, Digest-аутентификация является применением криптографического хеширования MD5 с использованием nonce-значений для предотвращения атак повторного использования. Она использует протокол HTTP. Этот стандарт устарел с июля 2011 года.

Влияние безопасности MD5 на аутентификацию сбора данных

Расчеты MD5, используемые в HTTP-аутентификации с использованием дайджеста, предназначены для работы в "одном направлении", то есть должно быть сложно определить исходные данные, зная только результат. Однако, если сам пароль слишком прост, то можно перебрать все возможные варианты и найти соответствующий результат (атака полным перебором) – возможно, с использованием словаря или подходящего справочного списка, которые для MD5 легко доступны. Схема HTTP была разработана Филиппом Халламом Бейкером в CERN в 1993 году и не включает в себя последующие улучшения в системах аутентификации, такие как разработка кода аутентификации сообщений с ключом (HMAC). Хотя криптографическая конструкция, используемая в ней, основана на хеш-функции MD5, в 2004 году общепринято считалось, что коллизионные атаки не влияют на приложения, где исходный текст (то есть пароль) неизвестен. Однако заявления, сделанные в 2006 году, вызвали некоторые сомнения относительно других применений MD5. До сих пор, однако, не было продемонстрировано, что коллизионные атаки на MD5 представляют угрозу для аутентификации с использованием дайджеста, и RFC 2617 разрешает серверам реализовывать механизмы для обнаружения некоторых коллизий и атак повторного воспроизведения.

Оценки

Из-за недостатков аутентификации Digest по сравнению с базовой аутентификацией через HTTPS она устарела во многих программных продуктах, например:
Bitbucket: https://bitbucket.org/blog/fare-thee-well-digest-access-authentication
Symfony PHP framework: https://github.com/symfony/symfony/issues/24325