bcrypto / bias

Authentication frameworks
2 stars 0 forks source link

Уточнить ограничения на синхропосылку в требовании УА.3 #31

Closed mkazl closed 1 year ago

mkazl commented 2 years ago

Структурный элемент стандарта: раздел 6, п. 6.2.2

В требовании УА.3 для алгоритма PBKDF2 устанавливается ограничение только на битовую длину синхропосылки. Вместе с тем, использование уникальной для каждого секрета аутентификации синхропосылки поможет обеспечить защиту от атаки на основе «радужных таблиц».

Предлагается заменить фразу «битовая длина синхропосылки – не меньше 64» на фразу «битовая длина уникальной для каждого секрета аутентификации синхропосылки – не меньше 64».

agievich commented 2 years ago

Роль синхропосылок определена при описании механизма PBKDF2 в СТБ 34.101.45. Объяснено, что

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

Рекомендуется ... использовать синхропосылки (двоичные слова), длина которых не меньше 64.

Рекомендуется вырабатывать синхропосылки случайным или псевдослучайным методом.

Считаем, что этих объяснений достаточно.

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

mkazl commented 1 year ago

Действительно, в разделе Е1 приложения Е СТБ 34.101.45 приведены рекомендации по количеству итераций алгоритма PBKDF2, длине синхропосылки и реализации процедуры построения синхропосылки.

Однако, в требовании УА.3 (УА.2 в новой редакции) 2 из 3 приведенных в СТБ 34.101.45 рекомендаций дублируются, причем в обязательной форме ("рекомендуется" в СТБ 34.101.45 -> "должно" в рассматриваемом Проекте):

В PBKDF2 число итераций должно быть не меньше 10000, битовая длина синхропосылки — не меньше 64.

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

Вместе с тем согласны, что предлагаемая формулировка "уникальной для каждого секрета аутентификации синхропосылки" является неудачной. Предлагаем рассмотреть следующий вариант:

В PBKDF2 число итераций должно быть не меньше 10000, битовая длина синхропосылки — не меньше 64, при этом синхпопосылка должна вырабатываться случайным или псевдослучайным методом для каждого секрета аутентификации.

agievich commented 1 year ago

В PBKDF2 число итераций должно быть не меньше 10000, битовая длина синхропосылки — не меньше 64, при этом синхпопосылка должна вырабатываться случайным или псевдослучайным методом для каждого секрета аутентификации.

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

Синхропосылка -- это сложившийся криптографический объект с достаточно ясной семантикой. Нет большого смысла объяснять, что синропосылки должны быть уникальными (с дальнейшими тяжеловесными объяснениями в стиле "вероятность совпадения прнебрежимо мала"). Ведь мы же не объясняем в других местах Проекта, что ключи симметричных криптографических алгоритмов должны "вырабатываться без возможности предсказания, распространяться с соблюдением мер конфиденциальности и храниться в секрете" (цитата из СТБ 34.101.31). ".