Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверка пароля на наличие последовательностей [2]
Форумы портала PHP.SU » PHP » Регулярные выражения » Проверка пароля на наличие последовательностей

Страниц (2): « 1 [2]
 

16. LIME - 29 Марта, 2015 - 18:45:41 - перейти к сообщению
MiksIr пишет:
cracklib несколько умнее чем тупая сверка по словарю
например?
MiksIr пишет:
а "всяко быстрее" тут вообще ни о чем
о переборе тысяч слов или проход в несколько страниц по дереву индексов
действительно
о чем это?
(Добавление)
http://php.net/manual/ru/functio....crack-check.php
Цитата:
Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

а функционал важный кабэ
17. MiksIr - 30 Марта, 2015 - 05:04:13 - перейти к сообщению
LIME пишет:
например?

Цитата:
* It tries to generate words from your username and gecos entry to tries
to match them against what you've chosen.
* It checks for simplistic patterns.
* It then tries to reverse-engineer your password into a dictionary
word, and searches for it in your dictionary.

Главное отличие, что проверяются всякие паттерны типа повторяющихся символов и т.п., и то, что по словарю ищутся части пароля. Иначе, если делать тупо поиск по базе, пароль типа coolhacker спокойно пройдет проверку.

LIME пишет:
о переборе тысяч слов или проход в несколько страниц по дереву индексов
действительно
о чем это?

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

Но если все же по теме.
Цитата:
CrackLib's dictionary is modified-DAWG compressed with a chunksize of 16
words (see Crack v5.0 docs (when it comes out) for details) - and then
the index file is built, with one entry per chunk.

Словарь cracklib индексирован.

LIME пишет:
а функционал важный кабэ

Такая приписка там почти у всех модулей, которые не включены в основной пакет. Так что не повод пугаться.
18. LIME - 30 Марта, 2015 - 12:33:49 - перейти к сообщению
в целом убедил только вот....
MiksIr пишет:
Тысячи слов в памяти - это быстро. Индексы тут не такой большой выигрыш дадут. Не даром же оптимизаторы базы сами порой решают, что фул скан выгоднее.
базовый словарь при установке 100 000 слов
ни один оптимизатор не выберет тут фулскан
не говорю о том что оптимизатор может просто быть не прав
MiksIr пишет:
проверяются всякие паттерны типа повторяющихся символов и т.п., и то, что по словарю ищутся части пароля
не ахти какой сложный алгоритм проверять части пароли
а всякие более сложные алгоритмы типа например разбиение на слоги и перекомпановка в новые слова оно вообще не надо
19. DeepVarvar - 30 Марта, 2015 - 13:04:32 - перейти к сообщению
LIME пишет:
оно вообще не надо
Оно, как я говорил выше - вообще не надо )) Но если хотят рвать волосики на попке, то пусть делают.
20. IllusionMH - 30 Марта, 2015 - 14:58:46 - перейти к сообщению
Если интересно, то можно полезть в исходники JS либы zxcvbn. Там вроде есть несколько проверок на клавиатурные последовательности, даты и прочее в паролях
21. MiksIr - 30 Марта, 2015 - 15:10:45 - перейти к сообщению
LIME пишет:
не ахти какой сложный алгоритм проверять части пароли

Я к тому, что индекс в обычной СУБД тут никак помочь не сможет ;) Ибо что бы найти слово по словарю в базе - его сначала нужно выделить из пароля, а для этого нужен... словарь ;)
22. LIME - 30 Марта, 2015 - 17:08:48 - перейти к сообщению
MiksIr пишет:
Ибо что бы найти слово по словарю в базе - его сначала нужно выделить из пароля, а для этого нужен... словарь ;)
сам понял что сказал?))
индекс cracklib тут тоже никак не может помочь
в случае бд - бд и есть словарь
и искать придется все части пароля, что по бд, что в cracklib
индексация какбэ так и работает
берется первый символ - находится страница первого уровня - находится страница второго уровня по второму символу итд
(Добавление)
а вообще я, наверное в силу своей дремучести, предпочту поиск по бд(и частей пароля тоже)
хотя бы потому, что это полностью в моем контроле
например могу контролировать длину слов итд итп
23. MiksIr - 30 Марта, 2015 - 17:37:51 - перейти к сообщению
Индекс помочь не может. А вот эвристика + индекс - может.
Это не совсем поиск словарных слов в пароле. Это его упрощенный вариант. Например "откусили пару символов спереди и проверили".
Конечно, далеко от идеала, но много лучше чем просто прогон по базе.
Df4hacker: it is based on a dictionary word
ddkhacker: it is based on a dictionary word
dhelhacker: OK
Четыре символа перед словарным словом уже не ловит.
Если интересно, скачайте cracklib, там основная функция проверки (FascistCheck) лежит в lib/fascist.c - там эти паттерны описаны.

В принципе не проблема портировать этот алгоритм на PHP, но будет много медленнее. И из-за ПХП, и из-за SQL (парсер SQL откушает думаю так 90% всего времени исполнения запроса в базу).
24. Мелкий - 31 Марта, 2015 - 12:28:56 - перейти к сообщению
pioneer пишет:
нужно средствами PHP проверить вводимый пользователем пароль (при регистрации/смене пароля) на наличие последовательностей типа "abc", "12345", "xyz" и т.д. (т.е. обезопасить его от создания "простых паролей", в которых идут по порядку друг за другом символы алфавита или цифры)

Если для вас оправдано сместить фокус с удобства на безопасность - не позволяйте пользователю выбирать пароль вовсе. Генерируйте его сами и ставьте пользователя перед фактом.
Пароль типа "qazwsxedcrfvtgbyhn" несмотря на свою простоту значительно более криптостойкий, чем словарное слово общеупотребительной лексики.

Плюс шаг обратно к пользователю - опция "я понимаю что делаю и связанные с этим угрозы информационной безопасности, дайте мне установить пароль самому"
25. DeepVarvar - 31 Марта, 2015 - 13:17:26 - перейти к сообщению

MiksIr пишет:
self-banned
Защем?!!!11111адинадин

 

Powered by ExBB FM 1.0 RC1