Рейтинг:3

Разрешается ли вообще выполнять алгоритмы, не соответствующие FIPS, в системе, совместимой с FIPS?

флаг cn

Если часть программного обеспечения работает в режиме FIPS и использует криптографические модули, сертифицированные FIPS, разрешено ли ему выполнять какие-либо алгоритмы, отличные от FIPS, даже если безопасность системы не зависит от них однозначно?

Пример: допустим, у вас есть система, которая обменивается двумя парами ключей ECDH: одной парой ключей curve25519 и одной парой ключей NIST P-384. Согласование ключей выполняется с использованием обеих пар ключей, а затем полученные секреты объединяются и хэшируются с помощью SHA-384.

Криптографически я не вижу проблемы, так как результат SHA-384 (K0 | K1) такой же сильный, как и самая сильная кривая. Это связано с тем, что SHA-384 (секрет | известное значение) является секретом, а это означает, что если злоумышленник взломает, скажем, кривую 25519, он все равно не узнает результат хеширования этого секрета с другим секретом, которого они не знают.

Мой вопрос заключается в том, позволяет ли это FIPS или он должен выполнять только код и алгоритмы, сертифицированные FIPS. Можете ли вы считать вычисленный общий секрет curve25519 «солью» или чем-то еще?

Изменить: учтите, что результат соглашения без FIPS, например. Curve25519 можно смешать с «официальным» секретом в виде соли, например. HMAC-SHA384 (соль, ключ).

Рейтинг:4
флаг my

На самом деле, curve25519 находится на пути к одобрению FIPS (NIST SP 800-186), но это не то, о чем вы спрашиваете.

Чтобы ответить на ваш вопрос, да, NIST заявил, что они разрешают неутвержденный алгоритм параллельно с их предпочтительным обменом ключами. На данный момент их официальный утвержденный процесс потребует обработки неутвержденного общего доступа к ключу иначе, чем утвержденного; однако они отмечают, что это изменится в следующей версии NIST SP 800-56C.

Их фактическое заявление (из https://csrc.nist.gov/Projects/post-quantum-cryptography/faqs), который применим не только к постквантовой криптографии (некоторые тексты с постквантовыми примерами были опущены):

Возможно ли, чтобы гибридный режим установки ключа выполнялся в режиме работы, одобренном FIPS 140? (добавлено 28.01.20)

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

Текущие стандарты NIST ... могут поддерживать несколько конструкций создания гибридных ключей в «режиме FIPS», как определено в FIPS 140. Например, предположим, что значение Z является общим секретом, который был сгенерирован в рамках криптографического протокола, одобренного NIST. схема, и что значение T генерируется или распространяется через другую схему (схемы)... Ниже приведены различные способы включения значения T в процедуру получения ключа для достижения гибридного режима, разрешенного текущими стандартами:

Для любого одношагового метода получения ключа, указанного в SP 800-56C, входные данные, определенные как SuppPrivInfo, могут быть включены в (необязательное) поле FixedInfo, а T может быть включено в это поле. В любом из методов получения ключа, указанных в SP 800-56C, будь то одношаговый или экстракция-затем-расширение, значение T может быть включено в поле соли. Кроме того, NIST планирует включить более чистую и, следовательно, предпочтительную конструкцию создания гибридного ключа в будущую версию SP 800-56C:

В любом из методов получения ключа, указанных в SP 800-56C, редакция допускает конкатенацию Z и T, например, Z||T, для использования в качестве общего секрета вместо Z. Это потребует вставки T в возможно, потребуется изменить кодировку схемы и код проверки FIPS 140.

флаг cn
Похоже, что ответ, вероятно, да, тогда, пока получение окончательного ключа выполняется в соответствии с тем, что они хотят, и с использованием хэша/KDF, совместимого с FIPS.
poncho avatar
флаг my
@AdamIerymenko: это правильно, и NIST хочет утвердить конструкции так же, как $\operatorname{SHA384}( K_0 \mathbin\| K_1 )$
Рейтинг:1
флаг mc

Когда вы говорите FIPS в этом контексте, я предполагаю, что вы имеете в виду FIPS 140, если это правильно, то есть ограниченные ситуации, когда вы можете использовать алгоритмы, не одобренные FIPS, и при этом соответствовать FIPS.

Взгляните на Руководство по внедрению, есть раздел "Примеры сценариев неутвержденных криптографических алгоритмов, разрешенных в режиме FIPS". Я не думаю, что ваш пример соответствует какому-либо из трех сценариев, описанных в документе.

флаг cn
«Использование утвержденного, неутвержденного или проприетарного алгоритма в целях, которые не связаны с безопасностью или являются избыточными по отношению к утвержденному криптографическому алгоритму»? Что делать, если результат постороннего обмена ключами считается дополнительным или «изюминкой» в функции получения ключей?
Swashbuckler avatar
флаг mc
@AdamIerymenko Я не знаком со всеми директивами NIST для таких алгоритмов, но я предполагаю, что они не будут соответствовать FIPS. Для чего-то вроде PBKDF2 соль должна быть из RNG, утвержденного FIPS, поэтому в этом случае она определенно не соответствует требованиям. Вам нужно прочитать документ NIST для конкретного интересующего вас KDF и посмотреть, что там написано.
Swashbuckler avatar
флаг mc
Все, что является дополнительным, но все же связано с безопасностью, вряд ли будет соответствовать FIPS. Философия заключается в том, что все, что не совместимо с FIPS, является обычным текстом, поэтому, если вы считаете это дополнение простым текстом, и оно все еще безопасно, то, вероятно, все в порядке.
флаг cn
На самом деле см. [раздел 8.2 здесь] (https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf). «Настоящая Рекомендация не требует использования случайно выбранного солт-значения. В частности, если нет средств для выбора солт-значения и совместного использования его со всеми участниками во время транзакции установления ключа, то в этой Рекомендации указывается, что предварительно определенное строка байтов по умолчанию (например, со всеми нулями) будет использоваться в качестве солт-значения». Это может быть нормально для HMAC (соль, ключ), где в качестве соли используется общий секрет C25519 ECDH (или его хэш). Будет поспрашивать.

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

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