Длина парольной фразы LUKS
Какая длина парольной фразы LUKS оптимально, в особенности если ожидаешь ареста от наших доблестных кривдоохранителей (начиная от "деревенской" милиции, кончая супер-продвинутыми подразделениями центральных аппаратов МВД и ФСБ)?!
Например, парольная фраза, состоящая из нескольких английских слов и нескольких цифр в 25 – 30 знаков – насколько сложно ее расшифровать?
Или аналогичная фраза, но со специальными символами?
Стоит ли слова отделять пробелами – повышает ли это устойчивость или наоборот? Или пробелы это как дополнительные специальные знаки?
комментариев: 9796 документов: 488 редакций: 5664
Лучше рассматривать нейтральное абстрактное понятие вида "могущественный противник с максимально возможными вычислительными ресурсами на сегодняшнем уровне развития технологий", без псевдоморализаторских коннотаций и митингового ажиотажа, согласны?
LUKS обеспечивает замедление атак словарного перебора, за счёт многократного хэшированию с солью. Значение замедления подбирается с учётом мощности компьютера, на котором первоначально создаётся контейнер, так чтобы на проверку пароля уходило 0.1 сек. Можно искусственно увеличить число итераций до 5 сек. к примеру. Кроме того используется т. н. соль для предотвращения заранее просчитанных таблиц ключей из паролей.
Если даже не рассматривать эти меры противодействия словарным атакам, то для самых консервативных оценок нужно исходить из 128-битной стойкости пароля.
Т. е. pn должно быть примерно равно 2128, где p — количество символов во множестве для случайного выбора, из которого составлен пароль, n — длина пароля. Что вы используете в качестве символов (буквы, цифры, слова) само по себе значения не имеет, если держать в голове эту формулу.
Так 2727 ≈ 2128 — если можно запомнить абсолютно случайный набор из двадцати шести букв с клавиатуры + пробел, длиной также из 27-символов.
На практике проще всего запомнить 10 случайно выбранных слов из специально подготовленных словарей коротких слов Diceware, что даст 128-битный уровень. Слова можно связать во фразу для лёгкого запоминания, главное не использовать известные фразы, не подгонять порядок слов под естественный.
комментариев: 9796 документов: 488 редакций: 5664
комментариев: 9796 документов: 488 редакций: 5664
Да, так практичнее: найти оптимум и прикинуть приемлемое значение энтропии пароля.
Серьёзно, если бы была статистика по неудачам обеспечения безопасности, я думаю подобранные грубой силой пароли в качестве основного средства злоумышленников затерялись бы в пределах статистической погрешности.
комментариев: 9796 документов: 488 редакций: 5664
Это просто то, что можно сделать хорошо за счёт формализации.
Шнайер недавно опять написал, что криптография всё менее и менее актуальна для защиты от угроз информационной безопасности для обычных пользователей, для бизнеса.
Кстати, стойкость самого ключа криптораздела в LUKS от пароля не зависит. Пароль лишь шифрует ключ, который хранится в зашифрованном виде на винчестере. Можно создать контейнер на слабом пароле, а затем сменить его на сильный, если уверены, что за это время час X во встрече с противником не наступит. Или постепенно наращивать длину и сложность пароля, тренируя свою память.
Насчёт 2727: мне казалось что один символ – 8 бит => 128битный пароль (т.е. надёжный) – это 128/8 = 16 символов. Чтобы быть случайными. они могут быть сгенерены как
Или такие пароли к криптоконтейнерам уже могут сломать?
Только если алфавит этих символов состоит из 2^8 элементов. Печатных ASCII символов несколько меньше. Для пароля из альфанумериков каждый символ будет добавлять к длине ключа 6 бит.
128-битный пароль взломать не представляется возможным. (пока?)
комментариев: 9796 документов: 488 редакций: 5664
А их уже могут запоминать?
И для непечатных символов вероятность, что последний символ в строке окажется [Ctrl+U] равна 28 :)
Удачной вам генерации паролей (вместо ключей) из /dev/random
Вывод шлётся на пайп |base64, и тогда нужно будет всего-то на 2 символа больше для той же энтропии (22).
x = log2(N) = ln(N)/ln(2)
комментариев: 9796 документов: 488 редакций: 5664
Да, через энтропию одного символа удобнее считать большие величины. Добавил в FAQ-proposal.
Так обычно генерят ключи, но можно конечно и пароль. Подойдёт любой способ, лишь бы было удобно запоминать и набирать. И чтобы было соответствие заданному уровню энтропии.
Можно добавить про то, что энтропия всего пароля это сумма энтропий всех символов. Мало ли кто будет читать это, не уловят.