Придумать одновременно красивый, сложный для взлома и легко запоминающийся пароль очень сложно. Например когда мне нужно ввести пароль для новой учетной записи, на ум приходят только элементарные или уже использованные варианты.
Но существуют так называемые генераторы паролей, способные создавать красивые и безопасные пароли по своим алгоритмам. В этой статье я опишу три, на мой взгляд, лучших генераторов паролей для операционной системы Linux.
Содержание статьи
Генераторы паролей для Linux
1. pwgen
pwgen создает безопасные пароли, которые в то же время очень легко запомнить. Легко запоминаемые пароли не будут так же безопасны как действительно случайные, но это приемлемый уровень риска для большинства случаев. Преимущество запоминающихся паролей очевидно - у вас не возникнет желание записать их или сохранить в электронном виде в небезопасном месте.
Утилита pwgen довольно популярная, поэтому есть в официальных репозиториях большинства дистрибутивов. Для установки в Ubuntu наберите:
sudo apt install pwgen
При запуске pwgen без параметров будет сгенерирован целый список паролей. Просто выберите понравившийся вариант, и очистите терминал чтобы никто не подсмотрел что вы выбрали. Для запуска наберите:
pwgen
Как только выберете пароль используйте команду clear чтобы очистить вывод. Если вы уверены что никто не смотрит можно заставить программу генерировать только один пароль:
pwgen -1
Для создания полностью случайного пароля используйте опцию -s:
pwgen -1 -s
Чтобы сделать пароль еще более безопасным можно использовать в нем один специальный символ, например восклицательный знак, кавычка, точка, плюс, минус, равно и т д. Для этого сеть опция -y:
pwgen -1 -s -y
Если вас не устраивает стандартная длина пароля, ее можно изменить опцией -n, генерация паролей linux длиной в десять символов:
pwgen -n 10
Опция -0 - позволяет не использовать цифры, а опция -B - не использовать символы которые можно спутать при печати, например: L и 1, 0 и O.
2. makepasswd
Утилита makepasswd работает аналогично pwgen, однако она не пытается создать пароли которые легко запомнить. Все пароли генерируются случайным образом с акцентом на безопасность.
Для установки в Ubuntu откройте терминал и выполните:
sudo apt install makepasswd
Для создания одного пароля введите:
makepasswd
Для генерации пяти паролей, с минимальным количеством символов 10, наберите:
makepasswd --count 5 --minchars 10
Вы также можете указать символы для генерации пароля. Это может быть полезно при создании пин-кодов. Например для получения четырехзначного пин-кода используйте:
makepasswd --string 1234567890 --chars 4
3. PasswordMaker
Программа Passwordmaker немного отличается от двух предыдущих. Она позволяет сгенерировать пароль linux на основе URL. Первоначально это было расширение для популярных браузеров Internet Explorer и Firefox и т д. Пакет passwordmaker-cli устанавливает консольную версию программы:
sudo apt install passwordmaker-cli
Для генерации пароля нужно указать url и мастер пароль. Утилита на основе этих данных создает уникальный пароль. Например:
passwordmaker --url losst.pro
В результате мы видим очень даже безопасный но не просто запоминаемый пароль. Если вы снова запустите программу с тем же url и мастер-паролем будет сгенерирован тот же пароль. Это означает что вы можете создать пароль для определенного сайта, который нет необходимости помнить, и не нужно нигде хранить. Перед тем, как сгенерировать этот пароль утилита попросит ввести мастер-пароль, который будет использоваться для генерации, поэтому это безопасно.
Всегда держите ваши пароли в надежном месте и не используйте очевидные варианты такие как password или qwerty.
Себе почти всегда делаю пароли в консоли. Преимущество в том, что для этого мне не нужны никакие пакеты:
echo "mypassword" | md5sum
Чем длиннее (8 символов и более) наш "mypassword", тем безысходнее становится время его вскрытия:)
Если же возникнет опасение, что некий суперхакер возьмется за очень дОООООлгий многопоточный брутфорс моей длинной сигнатуры, то можно повторно вставить (уже ее) вместо исходного "mypassword". Приблизительное время взлома уже такой сигнатуры увеличится тогда в_несколько_порядков. При этом, у нас в запасе всегда будет изначальный пред-пароль "mypassword", по которому в консоли элементарно восстановить свой окончательный пароль в случаях его потери или "забытия":)
p.s.
При попытках хака MD5-сигнатур никогда не будет никакой гарантии получения взломщиком нашего исходного пароля. Дело в том, что алгоритм вычисления сигнатур MD5 односторонний, поэтому хакер сможет получить лишь некоторые_возможные_варианты_пароля и то, затратив на взлом месяцы/годы/века/тысячелетия, как ему повезет:)
Мысль хорошая, пожалуй, возьму на вооружение, т.к. буковки проще запоминать, а пароль из них можно и на смарте сгенерить 😉 вот только изменю чутка, чтоб пароли можно было в открытом виде хранить:
echo "mypassword" | sha512sum | md5sum
или echo "mypassword" | sha512sum | head -c 33 && echo '' или .....
Взломщику останется только украсть файл с открытой частью паролей и перебрать пару сотен/тысяч комбинаций за пару-тройку часов для каждого пароля 😀
з.ы.
echo "mypassword" | sha256sum
😉
(; для паролей из одного sл0в@ кавычки необязательны
Я думаю, так повеселее и покриптографичнее будет:
cat /dev/urandom | tr -dc [:print:] | head -c 10 && echo ''
ну, или только буковки с цифрами (хотя тут с md5sum и sha256sum похоже будет:
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 10 && echo ''
P.S.: если нужно не 10-ть символов - смените 10-ку в head на нужное кол-во.
А исчо лучше будет так:
w="$(kdialog --password "seed")"; echo "${w}" | sha512sum
Это будет лучше, имхо, потому что при таком способе ваша текстовая фраза ЗАВЕДОМО не попадёт в логи терминала, вроде "~/.bash_history".
____________________
П.С. Я, конечно, понимаю, что все не дураки, и могут залезть в лог и удалить и/или вообще почистить лог(и). Но если делать, чтобы сразу лишнего в лог не попадало, то исключается человеческий фактор (типа "забыл").
Себе, в основном, делаю словарные-через-тирешные-пароли из десяти(+) совершенно рандомных слов, сгенерённых например, в консольном diceware. Усиливаю каждый из таких паролей небольшими и абсолютно произвольными буквоцифрознакодовесками. Для хранения и автозаполнения использую lastpass. За более, чем 10 лет не было ни одного украденного и(или) забытого пассворда8)
В линуксах даже из терминала и безо всяких пакетов, можно генерировать вполне устойчивые ко взломам пароли. Большой плюс в том, что на любых компах и под разными дистрибутивами, результаты с одинаковыми исходными параметрами генерации будут идентичны. Расчетная энтропия (ориентировочное время их взломов) даже на очень мощных компах составляет сотни/тысячи веков. При необходимости и минимальных знаниях синтаксиса и аргументов приведенных или своих вариантов команд, несложно составить уже свою формулу для генерации очень сильных и устойчивых ко взломам паролей большей/меньшей длины. Желательно только использовать свою (вместо "new.password.1") и необязательно, длинную заготовку, НО, слегка бредового вида, чтобы наш пароль вдруг не встретился в базах, когда-то и у кого-то похищенных. Простейшие примеры такой генерации ниже.
[... ~]$ echo -n "new.password.1" | md5sum | base64
MDlhZGRlY2U3ZTcyZDc4YWU4NjlmYTE0NjhlNGIwYzMgIC0K
[... ~]$ echo -n "new.password.2" | md5sum | base64
ZmRmNDExOTlhYTY4NmYyMTI4NWZiNTc2MDJkMzA5OGQgIC0K
Приведенные команды, их последовательности или параметры можно изменить на свое усмотрение.