Нормальный стойкий пароль фиг запомнишь. Почти аксиома. Еще и безопасники радостно подбрасывают дровишек в этот костер ужаса, заставляя раз в месяц учить чудовищный фарш из мешанины символов. Параноидальные меры безопасности в лучших традициях «Хакера в столовой» приводят лишь к тому, что пользователи заботливо царапают пароли на мониторе или складывают под клавиатуру. Нет, серьезно, ну кто из обычных пользователей в здравом уме будет соблюдать требования к паролю в духе:
Сложность пароля в компьютерной индустрии обычно оценивают в терминах информационной энтропии (понятие из теории информации), измеряемой в битах. Вместо количества попыток, которые необходимо предпринять для угадывания пароля, вычисляется логарифм по основанию 2 от этого числа, и полученное число называется количеством «битов энтропии» в пароле. Пароль со, скажем, 42-битной сложностью, посчитанной таким способом, будет соответствовать случайно сгенерированному паролю длиной в 42 бита. Другими словами, чтобы методом полного перебора найти пароль с 42-битной сложностью, необходимо создать 242 паролей и попытаться использовать их; один из 242 паролей окажется правильным. Согласно формуле при увеличении длины пароля на один бит количество возможных паролей удвоится, что сделает задачу атакующего в два раза сложнее. В среднем атакующий должен будет проверить половину из всех возможных паролей до того, как найдет правильный.
Википедия
Набор символов | Количество символов, N | Энтропия на один символ, H, биты |
---|---|---|
Арабские цифры (0-9) | 10 | 3,3219 |
Цифры шестнадцатеричной системы счисления (0-9, A-F) | 16 | 4,0000 |
Строчные буквы латинского алфавита (a-z) | 26 | 4,7004 |
Арабские цифры и строчные буквы латинского алфавита (a-z, 0-9) | 36 | 5,1699 |
Строчные и заглавные буквы латинского алфавита (a-z, A-Z) | 52 | 5,7004 |
Арабские цифры, строчные и заглавные буквы латинского алфавита (a-z, A-Z, 0-9) | 62 | 5,9542 |
Все печатные символы ASCII | 95 | 6,5699 |
Сисадмин желал подобрать себе стойкий пароль для централизованной авторизации через radius-сервер. Он обратился за советом к Инь Фу Во.
– Как вы думаете, Учитель, пароль "???????" стойкий?
Нет, – ответил мастер Инь, – это словарный пароль.
– Но такого слова нет в словарях…
– «Словарный» означает, что это сочетание символов есть в wordlists, то есть «словарях» для перебора, которые подключаются к программам криптоанализа. Эти словари составляются из всех сочетаний символов, которые когда-либо встречались в Сети.
– А пароль «Pft,bcm» подойдёт?
– Вряд ли. Он тоже словарный.
– Но как же? Это же…
– Введи это сочетание в Гугле – и сам увидишь.
Сисадмин защёлкал клавишами.
– О, да. Вы правы, Учитель.
Через некоторое время Сисадмин воскликнул:
– Учитель, я подобрал хороший пароль, которого не может быть в словарях.
Инь Фу Во кивнул.
– Я ввёл его в Гугле, – продолжал Сисадмин, – и убедился, что в Сети такого сочетания нет.
– Теперь есть.
sudo apt-get install xkcdpass
meklon@meklon-desktop:~$ xkcdpass --count=5 --acrostic='habr' --delimiter='|' --min=9 --max=9 --valid_chars='[a-z]'
holograph|archetype|brutishly|refutable
hemstitch|allotropy|balalaika|revivable
hardboard|ampleness|boundless|refurnish
hypertext|adiabatic|backwards|replicate
halfpence|arrowhead|blackbird|recommend
sudo apt-get install pwgen
meklon@RegenLab-LinuxDesktop-1:~$ pwgen 8 4
eesohy9E Ohqu3che Mo7aijeu ieb1Quie
meklon@meklon-desktop:~$ pwgen 12 4 --no-numerals
Eipohliemiwi WoLooJeemeir laishaisaTho oquaibahYori
meklon@meklon-desktop:~$ pwgen 12 4 --secure
YFSb5lqAfSLV nMa5GKJhMmw2 VczwRho2xuwG PPAc6SByedfh
meklon@meklon-desktop:~$ gpw 4 12
oventryllyna
slytersiderm
raboalsollic
testrisheocu
meklon@meklon-desktop:~$ apg
Please enter some random data (only first 16 are significant)
(eg. your old password):>
BidKasJuink6 (Bid-Kas-Ju-ink-SIX)
ontEjsed6 (ont-Ej-sed-SIX)
rordOWren4 (rord-O-Wren-FOUR)
yalIkatEac0 (yal-Ik-at-Eac-ZERO)
WruAdNevav1 (Wru-Ad-Nev-av-ONE)
tipBevJieb8 (tip-Bev-Jieb-EIGHT)
sudo apt install libcrack2
meklon@RegenLab-LinuxDesktop-1:~$ echo "abc123456" | cracklib-check
abc123456: слишком простой
meklon@RegenLab-LinuxDesktop-1:~$ echo "WruAdNevav1" | cracklib-check
WruAdNevav1: OK
meklon@RegenLab-LinuxDesktop-1:~$ echo "testrisheocu" | cracklib-check
testrisheocu: OK
meklon@RegenLab-LinuxDesktop-1:~$ echo "WoLooJeemeir" | cracklib-check
WoLooJeemeir: OK
meklon@RegenLab-LinuxDesktop-1:~$ echo "holograph|archetype|brutishly|refutable" | cracklib-check
holograph|archetype|brutishly|refutable: OK
meklon@RegenLab-LinuxDesktop-1:~$ echo "holograph" | cracklib-check
holograph: основан на слове из словаря
meklon@RegenLab-LinuxDesktop-1:~$ echo "archetype" | cracklib-check
archetype: основан на слове из словаря
meklon@RegenLab-LinuxDesktop-1:~$ echo "holograph|archetype" | cracklib-check
holograph|archetype: OK
К сожалению, не доступен сервер mySQL