id: Гость   вход   регистрация
текущее время 07:37 18/04/2024
Автор темы: Гость, тема открыта 15/12/2013 10:44 Печать
Категории: инфобезопасность
https://www.pgpru.com/Форум/ПрактическаяБезопасность/КакПроверитьСтойкостьПароля
создать
просмотр
ссылки

Как проверить стойкость пароля?

Как безопасно и по возможности точно можно оценить стойкость придуманного пароля?


 
На страницу: 1, 2, 3, 4, 5, 6 След.
Комментарии
— Паролефил (17/05/2014 19:47)   <#>
На тему "верно лошадь скрепка батарейка", хочу заметить, что это более чем годный метод для не требующих частого ввода случаев. Только вот составлять пароли и рассчитывать энтропию надо несколько более хитроумным методом. Берем только описываемые слова из толковых словарей. Энтропию рассчитываем по формуле =COMBIN(число слов в словаре;число слов в пароле). Приводим к двоичному виду формулой =LOG(рассчитанное ранее значение;2). Формулы приведены для опенофиса. Это наиболее реалистичный вариант. Мало кто допустит повторения случайно вылезших слов. Для осмысленности, скорее всего, слова будут меняться местами. Указанная формула это учитывает. Приемлемая энтропия начинается с семи-восьми слов из Ожегова.
— Гость (17/05/2014 20:04)   <#>

Как совершенно случайным образом выбрать четыре слова из словаря?
— unknown (17/05/2014 21:05)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Начиная с /comment75226 была отсылка к /comment40354.
— Паролефил (18/05/2014 00:49)   <#>

Лично я доверяю встроенному в мозг генератору псевдослучайных значений, ознакомленному с тем, что надо не равномерно искать слова, а случайно (повторения участков и страниц допустимы). Если надо просто и гарантированно случайно получить некоторые значения, кидаем, допустим, четыре игральных кости. Это даст 1296 значений для поиска нужной страницы. Можно легко ввести поправочный коэффициент, учитывая реальное число страниц. Формула предельно примитивна: (полученное значение)*(число страниц/1296). При четко заданном принципе округления, выпадение любой страницы равновероятно. Для страниц достаточно бросить три кости. Одна делит страницу пополам, две другие дают номер слова на полустранице (у меня в бумажном словаре слова идут в два столбца на странице). Для четырех слов придется бросать кости восемь раз, для десяти слов, соответственно, двадцать. Но случайность можно считать абсолютной. Однако, посчитайте энтропию для четырех слов (формулы я давал прошлым постом). Маловато будет 57 бит энтропии (при словаре 50000 слов). Восемь слов дадут уже 109 бит энтропии.
Метод, разумеется, несколько геморройный. Но вполне позволит быстро запомнить сложный пароль тем, кто очень долго запоминает пароли из случайных символов.
— Гость (18/05/2014 00:54)   <#>

Я хотел, чтобы Гость (17/05/2014 19:47) сам ответил и сам себя закопал, потому что это:

На тему "верно лошадь скрепка батарейка", хочу заметить, что это более чем годный метод

есть БСК. Если так хочется произносимого, то случайный пароль сначала генерят, а потом ищут метод его лёгкого запоминания (или конвертирования в легче запоминаемую форму с сохранением энтропии), но никак не наоборот (сначала извлекают слова из словаря непонятно каким методом [открыл книгу на случайной странице?], а потом оценивают энтропию таким образом созданного пароля).
— Паролефил (18/05/2014 01:27)   <#>

Вы не правы. Язык – точно такой же набор знаков, как символы на клавиатуре. При этом, скорость брутфосра слова гораздо меньше скорости перебора по словарю. Есть составленные словари, допустим, словарь Ожегова. В нем более 50000 слов. Считайте, что у нас есть большая клавиатура на 50000 символов, каждый из которых состоит из определенной последовательности символов обычной клавиатуры, подобно тому, как сами клавиатурные символы отображаются последовательностью нулей и единиц. И сложность случайного подбора знаков (слов) из языка и знаков с клавиатуры абсолютно одинакова. В одном случае нам надо случайно выбрать один из, примерно, ста символов. (кстати, опишите, как можно подобрать двадцать случайных символов с клавиатуры и почему это неприменимо к языку) И повторить это двадцать раз. В другом случае надо случайно выбрать один из 50000 символов (слов) и повторить это десять раз. Метод расчета энтропии строится из того, что составитель пароля не допустит повторения слов и позволит себе упорядочить их на свое усмотрение. Для этого в опенофисе есть функция COMBIN, которая определяет число возможных комбинаций независимо от их последовательности и с условием их неповторяемости. Расчитывается то значение, меньше которого энтропия не может опуститься, как бы ни упорядочивал составитель слова. Все возможные последовательности определенных слов считаются одной единственной комбинацией.
— Гость (18/05/2014 02:10)   <#>

Никак. Их не подбирают. Их генерируют, а потом конвертируют в это представление. Источник случайности — /dev/random, он сидирует /dev/urandom, потом вывод /dev/urandom (байты/биты) кодируется в виде печатных символов.


Теоретически можно сделать и со словами в словаре, но придётся писать свою прогу-костыль, которая с учётом накопленной случайности будет выбирать слова из словаря случайным образом и т.д. Зачем это нужно, когда уже есть pwgen — непонятно, и, если кому-то хочется удобства, вывод pwgen (или того же /dev/urandom) можно переконвертировать в любой словарь.


Это их личные заморочки. В случайно сгенерированном пароле почти наверняка будут повторения символов из-за парадокса дней рождения, и не надо их пытаться убрать — это уменьшит энтропию.

Если хочется генерировать пароль оффлайново без использования ПК, есть специальные методы, но им надо аккуратно следовать, аккуратно оценивать энтропию, там не всё так просто.
— Гость (18/05/2014 02:12)   <#>

Имелось в виду: генерируются случайные последовательности нулей и единиц, которые потом конвертируются в представление печатных символов (кодирование).
— Паролефил (18/05/2014 02:56)   <#>

Было бы весьма удобно использовать такую прогу.

Объясняю. Допустим, я подчистую зашифровал весь винт с системой. Первое время у меня будет бумажка, на которой записан пароль. Случайный 20-ти символьный пароль я буду запоминать две-три недели, прежде чем буду вводить его безошибочно по памяти. Потратив не меньшее время на придумывание алгоритма легкого запоминания, чем на игры с игральными кубиками и словарем, я запомню его за неделю. Пароль из десяти слов я запомню за один-два дня. После этого листочек будет уничтожен (огнем или унитазом). Разница в длительности наличия во вселенной листочка с паролем.

Для десятисимвольного пароля потеря энтропии из-за недопущения повтора слов и недопущения перестановки компенсируется одним словом (+ один бит случайных данных). Лично мне легче запомнить последовательность, составленную по правилам языка и являющую собой лулзовый, абсурдный шизофренический бред, чем запоминать просто последовательность слов, лишенную даже абсурдности. Лучше запомнить легкую фразу, соответствующую правилам языка. Потеря энтропии более чем оправдана возможностью сортировать слова.
— Гость (18/05/2014 02:58)   <#>

Речь идет о пароле, в котором символ=слово из словаря
— Паролефил (18/05/2014 03:59)   <#>

Речь шла о том, что любые комбинации из конкретных слов воспринимаются как одна комбинация. Т.е. речь шла о допущении для пользователя перестановок и недопущении учета перестановок в рассчетах.
— SATtva (18/05/2014 09:10)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Вот вам небольшая программа, составляющая из словарных слов случайную последовательность, эквивалентную 256-битной.



К примеру, со словарём Ушакова (35 тыс. слов):

кинетика береженый фата клавираусцуг мокропогодица козявка разбойничество кладовая жарища макаль основоположный неталый воссылать вишневка хмелевка бокс воля

недужиться пудромантель топсель юго-восток цевье полпивная светофор пылеочиститель электромонтаж землепашество империалист дифузор салоп подурачиться Олимп киршвассер вдовствовать

Чем объёмнее словарь, тем короче будет вывод.
— тестерТьюринга (18/05/2014 14:20, исправлен 18/05/2014 19:46)   профиль/связь   <#>
комментариев: 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" отличается от словарных слов?

— Гость (19/05/2014 00:43)   <#>

Во-первых, не надо писать весь пароль на бумажку. Вы можете установить в качестве пароля для LUKS пароль = старый + новый, где новый — тот, что на бумажке. В случае, если бумажку найдут, это не так фатально — старый пароль на ней не записан, поэтому противник не восстановит полный пароль. Когда пароль выучили, меняете его в слоте на новый, а старый, длинный (=старый+новый) стираете.

Я не очень давно имел возможность поменять пароли, поэтому могу рассказать, как обстоят дела с их запоминанием. Первое — я специально их не учил, но по мере ввода они сами собой запоминаются. Для паролей, которые надо вводить 2-3 раза в день, срок надёжного запоминания не превышает недели. Для паролей, которые вводятся раз 10 и более в день, нужно 1-2 дня для запоминания. Для пароля, который вводится раз в 3-4 дня, бывает, нужно 2 недели.

На самом деле, случайные пароли только кажутся случайными. Я думаю, что компьютеры нас обманывают. Давайте посмотрим нормальными человеческими глазами на образцы таких паролей:
$ pwgen -s -y 20 1
hH-vV<@m7IqGPw|^P#Qb
$ pwgen -s -y 20 1
_7Uka+{XMcfq.`Qv<LZ_
Честно говорю, что не сочинял, не подбирал. Выглядит случайно? Теперь смотрим внимательнее. Ничего не замечаете? Давайте их переконвертируем в то, с чем они у любого человека ассоциируются (записываю в столбик):

hH-vV<@m7IqGPw|^P#Qb
ℏHU < @m 7Iq G P[ass]w[ord] |#P Qb
Итак, мы имеем:
  • hH — это типа ℏH, т.е. постоянная Планки на гамильтониан. Явно одно к другому имеет отношение.
  • -vV — это типа -U, т.е. из гамильтониана вычли потенциальную энергию (H=E+U), т.е. появление модифицированного -U явно должно на что-то намекать. Т.е. ℏHU — член типа кинетической энергии.
  • ℏHU < @m — это, конечно же, кусок какой-то анонимной функции на MatLabe:
    f = @x x + y;
    — именно на анонимную функцию указывает знак «@», просто тут не «=», а «<».
  • 7Iq — что это? Конечно же, семь интергральных инвариантов из термеха! Я думаю, у многих Iq ассоциируется именно с ними.
  • G — гравитационная постоянная. Тут и так всё ясно. Заметьте, что мы разбираем уже 12-ый символ, а речь пока идёт лишь про механику, что очень легко запомнить.
  • Pw — сокращение от password.
  • | — надо запомнить.
  • ^P# = #P практически, только пермутацию в знаке степени надо сделать. То, что это в степени, как раз логично — это обозначение класса сложности #P.
  • Qb = Qb — это надо просто запомнить. Что-то типа теплоты Q с индексом b (когда индексов два, часто один обозначают a, а другой b).

Теперь разберём второй пароль:
_7Uka+{XMcfq.`Qv<LZ_
Перобразуем его к человеческому виду:
_СУка+ { XM(L) cfg. `Qv < LZ_
  • _7Uka+ = _СУка+. Без комментриев. Только не обычная сука, а сука+. Типа есть C, а есть C++, тут так же.
  • { — просто надо запомнить.
  • XM = XML, только без последней буквы.
  • cfg. — это расширение .cfg, только точка стоит не в начале, а в конце.
  • ` — надо запомнить.
  • Qv — обе буквы имеют отношение к термодинамике: первая — теплота, вторая — объём вроде.
  • Вся хрень, которая написана слева, менее чем LZ_ — < LZ_. Здесь LZ — это, конечно же, алгоритм сжатия данных Лемпель-Зива.

Итак, каким образом мы сжали данные пароли? Мы обнаружили, что они состоят из словарных слов, ранее уже имевшихся в памяти. Случайный пароль — это такая своеобразная формула, в которой много смыслов, и из-за этого она неслучайна, её легко запомнить. Т.е. настоящие случайные пароли с точки зрения человека вполне могут оказаться совсем неслучайными.

Обычно я не придумываю все эти смыслы к паролям — они сами непроизвольно в голову лезут как ассоциации. Вообще, если вы когда-нибудь работали с формулами и пытались увидеть за ними суть, т.е. «что они означают», то вам эта методика будет проста и понятна.


Аналогично, но только правилам математического языка.
— Гость (19/05/2014 00:47)   <#>

Лучше совмещать. Я сначала сжигаю, потом радиоактивный пепел смываю в раковину и захораниваю в горах.
На страницу: 1, 2, 3, 4, 5, 6 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3