Рейтинг:0

Является ли случайно сгенерированный длинный пароль более безопасным, чем большее количество раундов в PBKDF?

флаг ua

Обычно требования к паролям заключаются в том, что они должны быть солёными и использовать большое количество раундов.

Мое понимание:

  1. Соление пароля используется только для предотвращения радужных атак.
  2. Использование большого количества раундов используется только для предотвращения перебора коротких паролей.

Но если пароль сгенерирован компьютером и используется только автоматически между двумя удаленными системами, безопасно ли его солить, но не хэшировать с несколькими раундами? Будет ли достаточно использовать очень длинный случайно сгенерированный пароль (например, 256-битный пароль), чтобы избежать необходимости в нескольких раундах? Достаточно ли просто посолить?

Paul Uszak avatar
флаг cn
Наверное, стоит остановиться на разнице между паролем типа «СЕКРЕТ» и 256-битным, который ближе к ключу.
kelalaka avatar
флаг in
К сожалению, мы не можем дать количественную оценку вашего вопроса.Если у вас есть безопасный унифицированный генератор случайных чисел (CSPRNG), хэшируйте его, чтобы сгенерировать пароль/ключ. если вы можете запомнить вывод, все в порядке.
Рейтинг:1
флаг in

Соление пароля используется только для предотвращения радужных атак.

Это не совсем правильно; во-первых, вы можете легко отличить одинаковые пароли, если нет соли (или других данных), используемых для различения вариантов использования или пользователей.

Использование большого количества раундов используется только для предотвращения перебора коротких паролей.

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

Конечно, если соль отсутствует, количество итераций также затруднит построение радужной таблицы.

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

Это не пароль, это секрет. Если вы будете использовать его правильно, вам может даже не понадобиться соль, хотя вам придется иметь в виду, что секрет остается тем же в протоколе, для которого вы его используете (например, для шифрования вам понадобится IV или одноразовый номер для убедитесь, что результат не является детерминированным).

Будет ли достаточно использовать очень длинный случайно сгенерированный пароль (например, 256-битный пароль), чтобы избежать необходимости в нескольких раундах?

Не существует такой вещи, как 256-битный пароль. Пароли состоят из текста, а не из двоичного кода. 256 случайных битов являются общими для ключи например, ключи AES-256 или ключи, используемые для HMAC-256.

Пароль может иметь 256 бит энтропии, распределенных по много символы. Но такой пароль человек не мог запомнить для обычных операций.Например, если вы будете использовать ASCII со всеми возможными специальными символами (без пробела), вам понадобится полностью случайный пароль из 39 символов ($\log_{92}(2^{256})$ на случай, если вы захотите это проверить).

И да, для секретного ключа вам не понадобится счетчик итераций или ПБКДФ в первую очередь. Нужна ли вам соль или нет, зависит от того, как вы собираетесь ее использовать. Вам не понадобится это для одноразового использования. Если вам нужен KDF, вы можете использовать KDF на основе ключа, например HKDF.

Kernel James avatar
флаг ua
«Таким образом, единственная причина для использования счетчика итераций или коэффициента работы состоит в том, чтобы злоумышленник также выполнял много раундов базового примитива». Будет ли это использоваться только для предотвращения атак грубой силы? Могу ли я добиться того же эффекта без накладных расходов на вычисления, просто добавив временную задержку (например, 1 секунду) к каждому запросу? Хотя атакующий мог бы тогда провести атаку параллельно. Но, тем не менее, размер ключа достаточно велик, чтобы сделать грубую силу необоснованной?

Ответить или комментировать

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