Где найти словарь для проверки пароля?

Я работаю над алгоритмом проверки пароля, который должен проверять потенциальные пароли по словарю. Если пароль или любую его часть можно найти в словаре, отклоните его. Функция достаточно проста, но где взять список слов? Существует ли веб-сервис для поиска слов? Я ковырялся в некоторых, но не нашел ничего, что кричало бы "Выбери меня!" Спасибо.

РЕДАКТИРОВАТЬ: Когда я задал этот вопрос, я не подумал о конкретных словарях паролей, таких как @Joe Skora, которые будут включать слова, которых можно было бы избежать. Итак, я расширю вопрос, включив в него словарь этого типа и все остальное, о чем я, возможно, не подумал при написании этой функции.

Платформа C#/ASP.Net/SQL Server. Это только один компонент алгоритма надежных паролей, который необходимо реализовать. Еще раз спасибо.


person JasonS    schedule 24.09.2008    source источник


Ответы (9)


Поиск бесплатных словарей в Google дает вам множество бесплатных словарей. Если вы загрузите их в базу данных, вы сможете быстро найти известное слово.

Однако не думайте, что это устранит атаки без грубой силы!

Вам следует взглянуть на приложения для взлома паролей! Простейшим расширением атаки по словарю является объединение слов. Более того, есть и другие виды атак, например замена символов, находящихся рядом друг с другом на клавиатуре. (Например: превратить d в f.)

Лучшее приложение для взлома паролей, которое я когда-либо видел, — это John the Ripper. Если вы видите, какие атаки он использует, вы можете создать лучший генератор паролей.

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

person KovBal    schedule 24.09.2008

Я получил список слов здесь и загрузил его в свою базу данных. Удалены все слова длиной менее 3 символов.

Написал функцию C# для анализа каждой подстроки пароля (пока только вперед) в строку xml.

Передайте строку xml хранимой процедуре, которая создает временную таблицу с 1 столбцом, в которой каждая подстрока составляет строку.

Присоедините временную таблицу к моему списку слов, и если будут возвращены какие-либо строки, я узнаю, что пароль содержит словарное слово, и я знаю, какие подстроки совпали.

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

Спасибо за помощь в списке слов

Первоначально я пытался пойти по пути проверки орфографии, но не нашел способа выполнить проверку орфографии без стороннего компонента (распространение было слишком дорогим, а мы продаем продукт) или без MS Word на сервере.

person JasonS    schedule 08.10.2008
comment
Упомянутая база данных является базой данных SQL Server, и вы можете получить ее из исходного источника здесь: https://code.google.com/p/wordnetsqlserver. Сама база данных находится здесь: https://code.google.com/p/wordnetsqlserver/source/browse/trunk/Database/WordNet-SQLServer.zip. - person STLDev; 06.07.2014

Как правило

  • /USR/дикт/слова

or

  • /usr/доля/дикт/слова

в зависимости от того, какой у вас unix.

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

person Adam Davis    schedule 24.09.2008
comment
он на платформе ASP.Net; Я сомневаюсь, что у него есть доступ к /usr/что-либо. - person hometoast; 24.09.2008

Существует несколько общих (не относящихся к паролям) списков слов/баз данных с открытой лицензией. Мне больше всего нравится Princeton WordNet.

person Redbeard    schedule 24.09.2008

Я думаю, что нет необходимости проверять словарь, особенно если вы хотите отклонить даже часть своего пароля. В английском языке много маленьких слов, и распространение на многоязычные словари, возможно, предотвратит использование любого пароля разумного размера, если каждая вторая буква не будет 'z' 'q' или 'y': 'a' 'on' ' in' 'je' 'um' 'o' и т. д.

Я не совсем понимаю, почему вы заботитесь о пароле в словаре, когда вы можете легко ввести другие простые правила:

Пароль длиной не менее 8 символов должен состоять из:

  • от 2 до 8 символов верхнего регистра
  • от 2 до 8 символов нижнего регистра
  • от 2 до 8 номеров
  • От 1 до 4 специальных символов (***+"%&/()?-[]{}\‹> и т. д.)
person Oli    schedule 24.09.2008
comment
Мне плевать на словарные слова, но важны требования! - person JasonS; 08.10.2008
comment
NIST с вами не согласен. csrc.nist.gov/publications/nistpubs/800-63/ SP800-63V1_0_2.pdf - person DanO; 12.07.2010

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

У Microsoft есть библиотека для проверки орфографии.

Если вы специально хотите использовать веб-службу, рассмотрите это.

person pc1oad1etter    schedule 24.09.2008
comment
Спасибо. проверка словаря — это всего лишь один из компонентов проверки пароля. С#/ASP.Net/SQL Server 05. - person JasonS; 24.09.2008

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

person Quintin Robinson    schedule 24.09.2008

Несколько словарей/списков слов доступны здесь.

person Joe Skora    schedule 24.09.2008

Проверьте все подстроки предполагаемого пароля на соответствие http://www.dictionary.com.

person Terry G Lorber    schedule 24.09.2008