Как лучше всего проводить сравнение паролей

При аутентификации пользователя на веб-сайте следует ли выполнять генерацию и сравнение хэшей в базе данных или на веб-сайте?

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

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

Лично я рассматриваю второй метод как потенциальную угрозу безопасности. Если веб-сервер будет скомпрометирован, соли и хэши могут быть запрошены из базы данных и легко взломаны.

Как лучше всего выполнять описанную выше операцию? Я что-то упускаю/пропускаю?

Спасибо

6
задан Blootac 15 June 2012 в 14:55
поделиться