- PVSM.RU - https://www.pvsm.ru -
Многие сайты пытаются помочь пользователям установить более сложные пароли. Для этого устанавливают базовые правила, которые требуют обычно указать хотя бы одну прописную букву, одну строчную букву, одну цифру и так далее. Правила обычно примитивные вроде таких [1]:
'password' => [
'required',
'confirmed',
'min:8',
'regex:/^(?=S*[a-z])(?=S*[A-Z])(?=S*[d])S*$/',
];
К сожалению, такие простые правила означают, что пароль Abcd1234
будет признан хорошим и качественным, так же как и Password1
. С другой стороны, пароль mu-icac-of-jaz-doad
не пройдёт валидацию.
Некоторые специалисты говорят [2], что это не лучший вариант.
В реальности Abcd1234
и Password1
— плохие пароли, а mu-icac-of-jaz-doad
— хороший пароль. В этом несложно убедиться [3].
Вот первые два пароля.
А вот два пароля, которые не пройдут проверку на надёжность.
Что же делать? Может, не стоит принуждать к использованию спецсимволов и внедрять всё новые правила, вроде запрета на повтор нескольких символов подряд, использование не одного, а двух-трёх спецсимволов и цифр, увеличение минимальной длины пароля и т д.
Вместо всего этого достаточно сделать простую вещь — просто установить ограничение на минимальную энтропию пароля, и всё! Можно использовать для этого готовый оценщик zxcvbn [4].
Есть и другие решения, кроме zxcvbn. Буквально на прошлой неделе на конференции по безопасности ACM Computer and Communications Security была представлена научная работа [5] (pdf [6]) специалистов по безопасности из научно-исследовательского подразделения Symantec Research и французского исследовательского института Eurecom. Они разработали новую программу для проверки надёжности паролей, которая оценивает примерное количество необходимых попыток брутфорса, используя метод Монте-Карло [7]. Предлагаемый способ отличается тем, что требует минимальное количество вычислительных ресурсов на сервере, подходит для большого количества вероятностных моделей и в то же время довольно точный. Метод проверили на паролях из базы 10 млн паролей Xato, которые лежат в открытом доступе [8] (копия на Archive.org [9]) — он показал хороший результат. Правда, это исследование Symantec Research и Eurecom носит скорее теоретический характер, по крайней мере, свою программу они не выложили в открытый доступ в каком-либо приемлемом виде. Тем не менее, смысл работы понятен: вместо эвристических правил проверки паролей веб-сайтам желательно внедрить проверку на энтропию.
Автор: alizar
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/101751
Ссылки в тексте:
[1] вроде таких: https://alfrednutile.info/posts/166
[2] говорят: http://ryanwinchester.ca/post/stop-forcing-your-arbitrary-password-rules-on-me
[3] несложно убедиться: https://howsecureismypassword.net/
[4] zxcvbn: https://github.com/dropbox/zxcvbn
[5] научная работа: http://www.eurecom.fr/en/publication/4711/detail/monte-carlo-strength-evaluation-fast-and-reliable-password-checking
[6] pdf: http://www.eurecom.fr/en/publication/4711/download/rs-publi-4711.pdf
[7] метод Монте-Карло: https://ru.wikipedia.org/wiki/Метод_Монте-Карло
[8] лежат в открытом доступе: https://xato.net/passwords/ten-million-passwords/
[9] копия на Archive.org: https://web.archive.org/web/20150316185559/https://xato.net/passwords/ten-million-passwords/
[10] Источник: http://geektimes.ru/post/264606/
Нажмите здесь для печати.