2009-10-18 1 views
3

Спасибо, что посмотрели. Все искренне полезные ответы проголосовали.Является ли пароль слабым при атаке по словарю

Я использую измеритель прочности пароля, чтобы пользователь знал, насколько сильный пароль они выбрали. Но этот контролер паролей, очевидно, не охватывает, насколько слаб под атакой словаря пароль. Как я могу проверить это, и стоит ли это?

Также моя обычная проверка пароля запускается изначально с помощью javascript в браузере (без необходимости передачи). Если я хочу проверить слабость словарной атаки, мне придется передать ее сценарию. Мое понимание заключается в том, что я не должен передавать его в ясном виде.

Может кто-нибудь помочь мне разобраться. Как проверить пароль не слабый при атаке словаря и как его зашифровать перед передачей на мой скрипт?

Дополнительно:

Почему я думаю, что нужно словарная проверка атаки в дополнении к регулярному метру пароля? Как некоторые из вас указали, пользователи могут выбирать пароли, такие как P @ ssword или Yellow12. Но большинство проверок проверки пароля, с которыми я столкнулся, будут считать это хорошим паролем. По крайней мере, я использую Yet Another Password Meter, и это действительно так (и я на самом деле думаю, что это одна из лучших паролей для проверки пароля.) Если кто-нибудь знает о более надежном контролерах паролей, скажите об этом, но только если вы точно знаете, основываясь на опыте, что он сильнее ;)

Но мой вопрос на самом деле: Как я могу провести проверку словаря на пароле? Я где-то читал, что это сделано против хэша, но где я делаю поиск? Как только я узнаю, как это сделать, я потом решу, стоит ли это или нет.

спасибо всем, кто помог так далеко :)

+0

Спасибо за использование еще одного счетчика пароля. Я думал о включении базового словаря, но я хотел сохранить его быстро и легко для загрузки. Не стесняйтесь захватить код и изменить его. Если у вас есть хорошее и быстрое решение, я с удовольствием включу это. – ReneS

ответ

3

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

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

Очевидно, что вы не можете быть уверены. Вы включаете иностранные слова? Технические слова?

Есть ли у взломщиков паролей доступ к лучшим словарям?

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

И сделайте дело SSL.

+0

Хорошая точка. Может быть, для выполнения проверки атаки словаря требуется много обработки. Сейчас я пересматриваю это. – Chris

6

Мнений собираются меняться и некоторые люди говорят, что проверка слов словаря важно. Я не согласен и предпочитаю использовать разные случаи букв, цифр и специальных символов, таких как! @ # $%^& *() _- = +. Очевидно, пароли должны быть чувствительны к регистру.

Уязвимости в словарях гораздо меньше шансов на успех с наличием чисел и специальных символов. Допустим, что существует 1000 общих паролей. Теперь с добавлением требуемой буквы верхнего регистра и специального символа позволяет предположить, что пользователь «ленив», и они решили сделать первый капитал письма и добавить специальный символ в конец. Этот 1000-килограммовый словарь теперь превышает 30 000.

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

Возможно, все еще может быть случай, чтобы избежать использования некоторых очень распространенных паролей при запуске скрипта. Например, я бы не допустил пароль пароля p @ ssword или любой вариант пароля.

Редактировать: captcha, в то время как ненавидит большинство (включая меня), может быть уместным также после нескольких неудачных логинов, чтобы избежать попыток входа в грубую силу.

+1

Да, но пример p @ ssword нарушает типичное смешивание корпуса, требование чисел и символов, и если вы запрещаете повторяющиеся символы последовательно, это обычно достаточно хорошо для паролей. Если это не так, вам, вероятно, потребуется биометрическая или двухфакторная аутентификация. :) – BobbyShaftoe

+1

Правильно, я должен был сказать P @ ssword в моем примере. Я предполагаю, что то, что я получаю, - это сделать что-то в соответствии с изменениями @ на a и от 0 до O и не разрешать пароль вообще, игнорируя случай символа. Я согласен, требуя смешанных букв, цифр и специальных символов. Я, наверное, не должен был упоминать об этом :) – Nate

+0

Вы приводите пример p @ ssword. Именно поэтому я думаю, что мне нужна защита от атак от словаря. Большинство проверок силы пароля (даже хорошие) будут оценивать что-то вроде P @ ssword или Yellow12 как хорошее. – Chris

3

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

3

SSL

Если ваш сайт каким-либо образом или на каких-либо запросов страниц конфиденциальной личной информации, включая пароли , то вы должны включить и применять SSL на всем сайте. Это гарантирует, что все пароли передаются в зашифрованном виде из браузера на сервер и что никто не может обманывать пароли из сети или изменять страницы в пути (и изменять URL-адрес обратной передачи формы).

Password Meter

Вы должны запустить свой счетчик пароль целиком в браузере. Вы должны принять все пароли (с минимальной длиной, например, 6 символов), которые пользователь вводит, но не стесняйтесь намекать на пользователя, изнутри браузера, внесли ли они слабый или сильный пароль.

+0

Я бы также уточнил, что проверка сложности должна выполняться на стороне сервера, потому что javascript и другие языки сценариев браузера могут быть обойдены. Поэтому вам определенно нужен SSL, чтобы отправить его на сервер. Счетчик паролей просто приятный. –

+0

Мое мнение состояло в том, что вы не должны выполнять проверку сложности. Скорее, вы должны разрешать слабые пароли. Вы должны просто уведомить пользователя, используя JavaScript, о том, что пароль слабый (но он может использовать его в любом случае). Единственная проверка на стороне сервера должна быть проверкой минимальной длины/максимальной длины (и как минимальная, так и максимальная длины должны быть щедрыми: 4 и 40, возможно). – yfeldblum

+1

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

3

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

Замечательно, что вы хотите, чтобы у ваших пользователей были лучшие пароли, и вы должны продолжить в этом направлении, но лучшим решением для атаки словаря/грубой силы было бы экспоненциальное решение для неудачных попыток входа в систему. Никакой реальный пользователь не попытается войти и войти 1000 раз в 10 секунд со всеми разными паролями.

+0

Точно мои мысли –

+0

+1 Как я пропустил этот. – Chris