Существуют ли известные методы проверки надежности паролей, хранящихся в базе данных? - PullRequest
1 голос
/ 04 июня 2019

Я ищу направление в создании приложения, которое просто проверяет надежность паролей в базе данных по критериям, а также по таким спискам, как: https://github.com/danielmiessler/SecLists/tree/master/Passwords/Common-Credentials

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

1 Ответ

1 голос
/ 10 июня 2019

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

То есть взять пароль из списка BadPassword, взять соль, хранящуюся в базе данных для этого пользователя, применить его к выбранному паролю и посмотреть, совпадают ли хэши. В основном ваша производительность будет пропорциональна user count * BadPassword count.

В зависимости от того, что вы подразумеваете под «хэшем», с помощью чего-то вроде SHA-1 вы можете использовать на удивление большое количество догадок. Но если вы смотрите на что-то серьезное, например, BCrypt / Argon, это дорого.

Еще одной идеей будет решение проблемы аутентификации при следующем входе в систему. В это время у вас будет необработанный пароль. Я хотел бы (в контексте более позднего входа) рассмотреть возможность использования службы, такой как pwndpasswords (или свернуть набор данных в вашей собственной системе). Даже в значительной степени хорошие пароли могут быть плохим выбором из-за заполнения учетных данных. (Подумайте о других службах, которые были взломаны, подвергая паролям с открытым текстом. Не обязательно общий выбор, но они будут присутствовать в этих атаках по заполнению учетных данных).

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