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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
LIME
Отправлено: 29 Марта, 2015 - 18:45:41
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




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

а функционал важный кабэ
 
 Top
MiksIr
Отправлено: 30 Марта, 2015 - 05:04:13
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


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 пишет:
а функционал важный кабэ

Такая приписка там почти у всех модулей, которые не включены в основной пакет. Так что не повод пугаться.


-----
self-banned
 
 Top
LIME
Отправлено: 30 Марта, 2015 - 12:33:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




в целом убедил только вот....
MiksIr пишет:
Тысячи слов в памяти - это быстро. Индексы тут не такой большой выигрыш дадут. Не даром же оптимизаторы базы сами порой решают, что фул скан выгоднее.
базовый словарь при установке 100 000 слов
ни один оптимизатор не выберет тут фулскан
не говорю о том что оптимизатор может просто быть не прав
MiksIr пишет:
проверяются всякие паттерны типа повторяющихся символов и т.п., и то, что по словарю ищутся части пароля
не ахти какой сложный алгоритм проверять части пароли
а всякие более сложные алгоритмы типа например разбиение на слоги и перекомпановка в новые слова оно вообще не надо
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Марта, 2015 - 13:04:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




LIME пишет:
оно вообще не надо
Оно, как я говорил выше - вообще не надо )) Но если хотят рвать волосики на попке, то пусть делают.
 
 Top
IllusionMH
Отправлено: 30 Марта, 2015 - 14:58:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Если интересно, то можно полезть в исходники JS либы zxcvbn. Там вроде есть несколько проверок на клавиатурные последовательности, даты и прочее в паролях
 
 Top
MiksIr
Отправлено: 30 Марта, 2015 - 15:10:45
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


LIME пишет:
не ахти какой сложный алгоритм проверять части пароли

Я к тому, что индекс в обычной СУБД тут никак помочь не сможет ;) Ибо что бы найти слово по словарю в базе - его сначала нужно выделить из пароля, а для этого нужен... словарь ;)


-----
self-banned
 
 Top
LIME
Отправлено: 30 Марта, 2015 - 17:08:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




MiksIr пишет:
Ибо что бы найти слово по словарю в базе - его сначала нужно выделить из пароля, а для этого нужен... словарь ;)
сам понял что сказал?))
индекс cracklib тут тоже никак не может помочь
в случае бд - бд и есть словарь
и искать придется все части пароля, что по бд, что в cracklib
индексация какбэ так и работает
берется первый символ - находится страница первого уровня - находится страница второго уровня по второму символу итд
(Добавление)
а вообще я, наверное в силу своей дремучести, предпочту поиск по бд(и частей пароля тоже)
хотя бы потому, что это полностью в моем контроле
например могу контролировать длину слов итд итп
 
 Top
MiksIr
Отправлено: 30 Марта, 2015 - 17:37:51
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Индекс помочь не может. А вот эвристика + индекс - может.
Это не совсем поиск словарных слов в пароле. Это его упрощенный вариант. Например "откусили пару символов спереди и проверили".
Конечно, далеко от идеала, но много лучше чем просто прогон по базе.
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% всего времени исполнения запроса в базу).


-----
self-banned
 
 Top
Мелкий Супермодератор
Отправлено: 31 Марта, 2015 - 12:28:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




pioneer пишет:
нужно средствами PHP проверить вводимый пользователем пароль (при регистрации/смене пароля) на наличие последовательностей типа "abc", "12345", "xyz" и т.д. (т.е. обезопасить его от создания "простых паролей", в которых идут по порядку друг за другом символы алфавита или цифры)

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

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


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 31 Марта, 2015 - 13:17:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)





MiksIr пишет:
self-banned
Защем?!!!11111адинадин
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB