Пост Как правильно исправить пароли — большинство сайтов делают это неправильно впервые появился на QVault Отказ
Вы, вероятно, посетили сайт и попытались зарегистрироваться только для выполнения ошибок, таких как:
- Пароль нуждается в заглавной буквы
- Пароль нужен специальный символ
- Пароль должен быть не менее 8 символов
Я только что выпустил пакет в том, что решает эту проблему. Проверьте это и дайте ему звезду здесь: Go-Password-Validator Отказ Если вы хотите понять, как это работает, и как правильно проверять пароли пользователя, прочитайте.
Не только правила выше довольно раздражающих, но они также могут быть безопасностью недостаток в системе. Возьмите, например, сильная паровая фраза: Супер червь съел человека Trike
. Эта парольная фраза имеет множество энтропии (случайность), но она не пройдет первые две шаги валидации, приведенные выше. XKCD ставит это лучшее:
Проблема — позвольте пользователям использовать любой формат пароля до тех пор, пока у него достаточно энтропии
Нам все равно, если пароль имеет только строчные буквы, если это долго. Все, что имеет значение, это энтропия Отказ Энтропия в этом контексте относится к количеству догадывающихся догадок грубой силы. Обратитесь к следующему графику, чтобы увидеть, как различные уровни энтропии вносят свой вклад в момент, необходимое для грубой силы пароль.
Как определить энтропию, данный пароль
Путь Go-Password-Validator Работы — мой любимый (очевидно, я его написал), но наверняка есть комната для улучшения. Давайте посмотрим на процесс. От его Readme :
Во-первых, мы определяем номер «базы». База представляет собой сумму различных «наборов символов», найденных в пароле.
Текущие наборы символов включают в себя:
- 26 строчных буквы
- 26 прописных букв
- 10 цифр
- 32 Специальные персонажи —
! " # $% & '() * +, -./:; <=>? @ [\] ^ _ {|} ~
Использование хотя бы одного символа из каждого набора вашего базового номера будет 94:
Каждый уникальный персонаж, который не соответствует одному из этих наборов, добавит 1
на базу.
Если вы используете только, например, строчные буквы и цифры, ваша база будет 36:
Отказ
После того, как мы рассчитали базу, общее количество догадок грубой силы найден с использованием следующих формул: База ^ Длина
Пароль с использованием базы 26 с 7 символами потребуется 26 ^ 7
или 8031810176
догадки.
Как только мы знаем, что количество догадок, которое потребуется, мы можем рассчитать фактическую энтропию в битах, используя log2 (догадки)
Спасибо за прочтение!
Следуйте за нами в Twitter @q_vault. Если у вас есть какие-либо вопросы или Комментарии
Возьми немного Курсы кодирования на нашей новой платформе
Подписаться на нашу рассылку для большего количества стран программирования
Оригинал: «https://dev.to/qvault/how-to-correctly-validate-passwords-most-websites-do-it-wrong-l46»