Символы, которых следует избегать в автоматически сгенерированных паролях - PullRequest
21 голосов
/ 11 сентября 2008

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

il10o8B3Evu! [] {}

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

В качестве вопроса для гонщика я бы хотел, чтобы мои пароли были "словными", у вас есть для этого предпочтительный алгоритм?

Спасибо:)

Ответы [ 12 ]

1 голос
/ 14 октября 2008

Начальный подход может состоять в том, чтобы сгенерировать в основном правильные английские слоги, смешать их, а затем добавить преобразование text-> l33t. Была проделана работа над грамматиками поколений на естественном языке, поэтому одна из них может помочь.

например. все эти действительные слоги или близки к ним ... смешайте их -> Ингула ... это -> 1ngu4h. Это лучшее там? Неа. Но, по крайней мере, он является полупроизводимым (если вы говорите 1333 т) и более безопасен в вычислительном отношении.

1 голос
/ 11 сентября 2008

Мне не нравится подход со списком слов. Например, в / usr / share / dict / words в OSX есть 5110 4-символьных слов. Использование двух из них с символом-разделителем дает ~ 600 млн. Комбинаций. Но если бы вы использовали набор символов напрямую с сильным генератором случайных чисел, у вас было бы 88 ^ 9 возможных паролей, 3.16e + 17 комбинаций.

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

...