Как проверить стойкость пароля?
Как безопасно и по возможности точно можно оценить стойкость придуманного пароля?
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
Нормы пользования. Некоторые права на материалы сайта защищены по условиям лицензии CreativeCommons. Движок
openSpace 0.8.25a и дизайн сайта © 2006-2007 Vlad "SATtva" Miller.
|
||||||||||||||||||||||||||
Как совершенно случайным образом выбрать четыре слова из словаря?
комментариев: 9796 документов: 488 редакций: 5664
Лично я доверяю встроенному в мозг генератору псевдослучайных значений, ознакомленному с тем, что надо не равномерно искать слова, а случайно (повторения участков и страниц допустимы). Если надо просто и гарантированно случайно получить некоторые значения, кидаем, допустим, четыре игральных кости. Это даст 1296 значений для поиска нужной страницы. Можно легко ввести поправочный коэффициент, учитывая реальное число страниц. Формула предельно примитивна: (полученное значение)*(число страниц/1296). При четко заданном принципе округления, выпадение любой страницы равновероятно. Для страниц достаточно бросить три кости. Одна делит страницу пополам, две другие дают номер слова на полустранице (у меня в бумажном словаре слова идут в два столбца на странице). Для четырех слов придется бросать кости восемь раз, для десяти слов, соответственно, двадцать. Но случайность можно считать абсолютной. Однако, посчитайте энтропию для четырех слов (формулы я давал прошлым постом). Маловато будет 57 бит энтропии (при словаре 50000 слов). Восемь слов дадут уже 109 бит энтропии.
Метод, разумеется, несколько геморройный. Но вполне позволит быстро запомнить сложный пароль тем, кто очень долго запоминает пароли из случайных символов.
Я хотел, чтобы Гость (17/05/2014 19:47) сам ответил и сам себя закопал, потому что это:
есть БСК. Если так хочется произносимого, то случайный пароль сначала генерят, а потом ищут метод его лёгкого запоминания (или конвертирования в легче запоминаемую форму с сохранением энтропии), но никак не наоборот (сначала извлекают слова из словаря непонятно каким методом [открыл книгу на случайной странице?], а потом оценивают энтропию таким образом созданного пароля).
Вы не правы. Язык – точно такой же набор знаков, как символы на клавиатуре. При этом, скорость брутфосра слова гораздо меньше скорости перебора по словарю. Есть составленные словари, допустим, словарь Ожегова. В нем более 50000 слов. Считайте, что у нас есть большая клавиатура на 50000 символов, каждый из которых состоит из определенной последовательности символов обычной клавиатуры, подобно тому, как сами клавиатурные символы отображаются последовательностью нулей и единиц. И сложность случайного подбора знаков (слов) из языка и знаков с клавиатуры абсолютно одинакова. В одном случае нам надо случайно выбрать один из, примерно, ста символов. (кстати, опишите, как можно подобрать двадцать случайных символов с клавиатуры и почему это неприменимо к языку) И повторить это двадцать раз. В другом случае надо случайно выбрать один из 50000 символов (слов) и повторить это десять раз. Метод расчета энтропии строится из того, что составитель пароля не допустит повторения слов и позволит себе упорядочить их на свое усмотрение. Для этого в опенофисе есть функция COMBIN, которая определяет число возможных комбинаций независимо от их последовательности и с условием их неповторяемости. Расчитывается то значение, меньше которого энтропия не может опуститься, как бы ни упорядочивал составитель слова. Все возможные последовательности определенных слов считаются одной единственной комбинацией.
Никак. Их не подбирают. Их генерируют, а потом конвертируют в это представление. Источник случайности — /dev/random, он сидирует /dev/urandom, потом вывод /dev/urandom (байты/биты) кодируется в виде печатных символов.
Теоретически можно сделать и со словами в словаре, но придётся писать свою прогу-костыль, которая с учётом накопленной случайности будет выбирать слова из словаря случайным образом и т.д. Зачем это нужно, когда уже есть pwgen — непонятно, и, если кому-то хочется удобства, вывод pwgen (или того же /dev/urandom) можно переконвертировать в любой словарь.
Это их личные заморочки. В случайно сгенерированном пароле почти наверняка будут повторения символов из-за парадокса дней рождения, и не надо их пытаться убрать — это уменьшит энтропию.
Если хочется генерировать пароль оффлайново без использования ПК, есть специальные методы, но им надо аккуратно следовать, аккуратно оценивать энтропию, там не всё так просто.
Имелось в виду: генерируются случайные последовательности нулей и единиц, которые потом конвертируются в представление печатных символов (кодирование).
Было бы весьма удобно использовать такую прогу.
Объясняю. Допустим, я подчистую зашифровал весь винт с системой. Первое время у меня будет бумажка, на которой записан пароль. Случайный 20-ти символьный пароль я буду запоминать две-три недели, прежде чем буду вводить его безошибочно по памяти. Потратив не меньшее время на придумывание алгоритма легкого запоминания, чем на игры с игральными кубиками и словарем, я запомню его за неделю. Пароль из десяти слов я запомню за один-два дня. После этого листочек будет уничтожен (огнем или унитазом). Разница в длительности наличия во вселенной листочка с паролем.
Для десятисимвольного пароля потеря энтропии из-за недопущения повтора слов и недопущения перестановки компенсируется одним словом (+ один бит случайных данных). Лично мне легче запомнить последовательность, составленную по правилам языка и являющую собой лулзовый, абсурдный шизофренический бред, чем запоминать просто последовательность слов, лишенную даже абсурдности. Лучше запомнить легкую фразу, соответствующую правилам языка. Потеря энтропии более чем оправдана возможностью сортировать слова.
Речь идет о пароле, в котором символ=слово из словаря
Речь шла о том, что любые комбинации из конкретных слов воспринимаются как одна комбинация. Т.е. речь шла о допущении для пользователя перестановок и недопущении учета перестановок в рассчетах.
комментариев: 11558 документов: 1036 редакций: 4118
К примеру, со словарём Ушакова (35 тыс. слов):
Чем объёмнее словарь, тем короче будет вывод.
комментариев: 301 документов: 8 редакций: 4
[user@localhost ~]$ cracklib-<Tab><Tab>
cracklib-check cracklib-format cracklib-packer cracklib-unpacker
[user@localhost ~]$ cracklib-check
1qaz2wsx
1qaz2wsx: основан на слове из словаря
-pl,0okm
-pl,0okm: основан на слове из словаря
7ujm6yhn
7ujm6yhn: OK
4rfv5tgb
4rfv5tgb: основан на слове из словаря
Чем "7ujm6yhn" отличается от словарных слов?
Во-первых, не надо писать весь пароль на бумажку. Вы можете установить в качестве пароля для LUKS пароль = старый + новый, где новый — тот, что на бумажке. В случае, если бумажку найдут, это не так фатально — старый пароль на ней не записан, поэтому противник не восстановит полный пароль. Когда пароль выучили, меняете его в слоте на новый, а старый, длинный (=старый+новый) стираете.
Я не очень давно имел возможность поменять пароли, поэтому могу рассказать, как обстоят дела с их запоминанием. Первое — я специально их не учил, но по мере ввода они сами собой запоминаются. Для паролей, которые надо вводить 2-3 раза в день, срок надёжного запоминания не превышает недели. Для паролей, которые вводятся раз 10 и более в день, нужно 1-2 дня для запоминания. Для пароля, который вводится раз в 3-4 дня, бывает, нужно 2 недели.
На самом деле, случайные пароли только кажутся случайными. Я думаю, что компьютеры нас обманывают. Давайте посмотрим нормальными человеческими глазами на образцы таких паролей:
hH-vV<@m7IqGPw|^P#Qb
ℏH – U < @m 7Iq G P[ass]w[ord] |#P Qb
Итак, мы имеем:
Теперь разберём второй пароль:
_7Uka+{XMcfq.`Qv<LZ_
Перобразуем его к человеческому виду:
_СУка+ { XM(L) cfg. `Qv < LZ_
Итак, каким образом мы сжали данные пароли? Мы обнаружили, что они состоят из словарных слов, ранее уже имевшихся в памяти. Случайный пароль — это такая своеобразная формула, в которой много смыслов, и из-за этого она неслучайна, её легко запомнить. Т.е. настоящие случайные пароли с точки зрения человека вполне могут оказаться совсем неслучайными.
Обычно я не придумываю все эти смыслы к паролям — они сами непроизвольно в голову лезут как ассоциации. Вообще, если вы когда-нибудь работали с формулами и пытались увидеть за ними суть, т.е. «что они означают», то вам эта методика будет проста и понятна.
Аналогично, но только правилам математического языка.
Лучше совмещать. Я сначала сжигаю, потом
радиоактивныйпепел смываю в раковинуи захораниваю в горах.