вторник, 1 апреля 2014 г.

Генерирование случайных паролей

Перед любым пользователем или администратором IT-систем рано или поздно возникает задача генерирования случайных паролей. Современные требования к сложности пароля достаточно высоки. «Хороший» пароль обязательно должен иметь длину не менее 16 символов, содержать буквы (включая заглавные), цифры и специальные символы. Только в этом случае можно гарантировать невозможность взлома пароля методом «грубой силы» или, как его ещё называют, «брутфорса» (от англ. brute force — «грубая сила»).

Утилита pwgen

Для генерирования паролей в системах Linux существует специальная утилита pwgen. Инсталлировать pwgen можно так:
в Linux Ubuntu
sudo apt-get install pwgen
в Linux Fedora
yum install pwgen
После успешной инсталляции следует ознакомиться с принципами использования данной утилиты. Синтаксис её достаточно прост:
pwgen [опции] [длина_пароля] [количество_паролей]
Список поддерживаемых опций не очень велик, но в совокупности они позволяют генерировать пароли любой сложности. Итак, вот список опций:
-c или --capitalize - включить минимум одну заглавную букву в пароль
-A или --no-capitalize - не включать в пароль заглавные буквы
-n или --numerals - включить минимум одну цифру в пароль
-0 или --no-numerals - не включать цифры в пароль
-y или --symbols - включить в пароль минимум один специальный символ
-s или --secure - генерировать абсолютно случайный пароль (без учёта лёгкости запоминания)
-B или --ambiguous - не включать в пароль неоднозначные символы
-H или --sha1=path/to/file - использовать в качестве генератора SHA1 хэш файла
-C - вывод списка паролей в виде нескольких столбцов
-1 - вывод списка паролей в виде простого списка (новый пароль с новой сткроки)
-v или --no-vowels - не включать в пароль гласные буквы
Сложностей с пониманием значений приведённых опций, как правило, не возникает. Разъяснения требуют лишь три опции.
Опция -Н позволяет создать случайные пароли на основе хэша (функции свёртки) по алгоритму SHA1. Такая возможность является полезной если потребуется восстановить список паролей в случае его утери. Дело в том, что pwgen при каждом запуске создаёт уникальный набор паролей, который никогда не повторяется от запуска программы к запуску. Если же воспользоваться для генерирования хэшем одного и того же файла, то всякий раз для одного и того же файла при использовании одних и тех же опций список паролей будет одним и тем же. Таким образом, для восстановления списка паролей достаточно запомнить файл и опции, которые были первоначально использованы для генерирования списка паролей.
Вторая опция, требующая пояснений — это опция -v, указывающая на необходимость исключения гласных букв. Причиной, по которой не следует иногда включать гласные, является пусть небольшая, но реальная вероятность того, что среди случайным образом сгенерированных паролей окажутся пароли, созвучные с неприличными, нецензурными словами. Если список паролей создаётся, например, системным администратором для раздачи множеству пользователей для доступа к тому или иному веб-сервису организации, то исключение из паролей гласных букв позволит избежать неприятной ситуации с генерированием паролей, включающих нецензурные слова, в том числе и в виде транслитерации (например, в случае русского языка).
И, наконец, последняя опция, которая требует дополнительных комментариев — это -B. Что это за неоднозначные символы? Приведём пример. Заглавную латинскую букву I и цифру 1 иногда путают при неудачном выборе шрифта — экранного или печатного. Во избежание таких недоразумений опция -B и была создана. При её использовании, например, цифра 1 не будет включена в список паролей.

ПРИМЕРЫ

50 паролей длиной в 20 символов, включая заглавные, спецсимволы и цифры в виде таблицы:
pwgen -cnyC 20 50
100 паролей длиной в 16 символов, включая заглавные, спецсимволы и цифры в виде простого списка (каждый пароль с новой строки):
pwgen -cny1 16 100
30 паролей длиной в 8 символов, включая заглавные и цифры, без спецсимволов, в виде таблицы:
pwgen -cnC 8 30
25 паролей длиной в 10 символов, включая заглавные и цифры, но без спецсимволов и неоднозначных символов, в виде таблицы:
pwgen -cnBC 10 25
45 паролей длиной в 12 символов, включая заглавные, спецсимволы и цифры, без учёта лёгкости запоминания («хаотичный» на вид пароль), в виде таблицы:
pwgen -cynsC 12 45
То же, что и в предыдущем примере, но с использованием хэша файла с именем moj_file.doc, который расположен в текущей директории:
pwgen -cynsCH moj_file.doc 12 45
или
pwgen -cynsC --sha1=moj_file.doc 12 45
Попробуйте сгенерировать пароли как в двух последних примерах (с хэшем и без) и вы увидите разницу, в предпоследнем примере (без хэша) набор паролей будет разным каждый раз при выполнении команды, а в последнем (с хэшем) — один и тот же.
И, наконец, скажу, что pwgen выводит пароли в стандартный вывод (на экран). Если требуется сохранить список паролей в файл, используйте двойную или одинарную «воронку»:
pwgen -cnBC 10 25 > file_s_paroljami.txt
или
pwgen -cnBC 10 25 >> file_s_paroljami.txt
Напомню, если файл не существует — он будет создан и в первом и во втором случае. Если файл существует — одинарная воронка удалит его содержимое полностью (осторожно!), двойная — добавит список сгенерированных паролей в конец файла, начиная с последней пустой строки существующего файла.
Взято здесь

Комментариев нет: