Хранение пароля в таблицах и дайджест-аутентификация - PullRequest
9 голосов
/ 16 июня 2009

Вопрос о том, как хранить пароли пользователей веб-сайтов в таблицах, несколько раз поднимался на SO, и общий совет - хранить хэш пароля, в конечном итоге хеш HMAC. Это прекрасно работает для обычной проверки подлинности или для проверки подлинности на основе форм (на самом деле то же самое). Моя проблема в том, что я должен также предоставить дайджест-аутентификацию, предназначенную для автоматизированных инструментов, подключающихся к моему сервису. Я смотрел на эту проблему, и, как я вижу, единственный хеш, который я могу сохранить, это HA1 часть Дайджеста : хеш username : realm : password. Таким образом, я могу проверить как Basic / формы и дайджест.

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

Я что-то упустил? Означает ли добавление требования к дайджесту, в основном, хранение хешированных паролей в качестве запрета от безопасности, а в лучшем случае - запутывания?

1 Ответ

7 голосов
/ 16 июня 2009

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

Атакующий действительно может аутентифицироваться, но он не может (легко) увидеть пароль моих драгоценных пользователей и поставить под угрозу другие сервисы, которые они используют и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...