В чем основное различие между jar-файлами bcprov и bc-fips (bouncycastle)?

Вопрос или проблема

Мне трудно понять различия между jar-файлами bc-prov и bc-fips. Я понимаю, что bc-fips содержит подмножество пакетов bc-prov. Но я хочу больше узнать о следующих вопросах:

  1. Будет ли какое-либо влияние на производительность при обновлении до jar-файла bc-fips, если я по-прежнему использую тот же алгоритм, длину ключа, длину iv, режимы блоков и т.д.? Это ключевой фактор при обновлении до jar-файла bc-fips.
  2. Запуск bc-fips в непод approved режиме эквивалентен использованию jar-файла bc-prov? Я имею в виду, с точки зрения охвата функциональных API, производительности, обратной совместимости и т.д.?
  3. Почему bc-prov и bc-fips не могут сосуществовать вместе? Из-за этого будет сложно для устаревших приложений перейти на bc-fips для соблюдения стандартов FIPS.
  4. Существует ли руководство по обновлению для перехода на bc-fips из bc-prov для устаревших приложений?
  1. Вы не предоставили никаких деталей о том, что делает ваша программа и насколько она интенсивна в отношении шифрования. Я был бы удивлён, если переход на FIPS не повлияет на ваше приложение, но вы не узнаете, пока не протестируете.

  2. С высоты птичьего полёта, вероятно, да. Вы не узнаете, что будет затронуто, пока не протестируете это. Неясно, почему это имеет значение. Использование bc-fips в непод approved режиме не соответствует стандартам FIPS.

  3. Согласно этому посту, Сосуществование FIPS и не-FIPS jar’ов, возможно использовать обе библиотеки в так называемом подходе org.spongycastle. Вы не соответствуете стандартам FIPS, если используете криптографические классы из bp-prov. Суть spongycastle заключается в следующем:

Переcompile API как org.spongycastle и дайте провайдеру имя “SC”, а не “BC”.

  1. Я не нашёл много информации по этому вопросу при беглом поиске. Эта страница Keycloak содержит советы по перемещению Keycloak из не-FIPS в FIPS. Переход из не-FIPS окружения

Ответ или решение

Основные различия между библиотеками bcprov и bc-fips (BouncyCastle)

При рассмотрении различий между библиотеками bcprov и bc-fips, важно понимать их предназначение и особенности, связанные с безопасностью, производительностью и совместимостью. BouncyCastle предоставляет два основных пакета, которые обеспечивают функциональность криптографии, однако они служат различным целям. Этот анализ даст ответы на ряд ключевых вопросов.

1. Производительность при использовании bc-fips

Вынося вопрос о производительности на первое место, стоит отметить, что библиотека bc-fips включает в себя реализацию криптографических алгоритмов, соответствующих стандартам FIPS (Federal Information Processing Standards). Переход на bc-fips может привести к снижению производительности в зависимости от характера вашей программы и полноты использования алгоритмов. Однако вы указали, что собираетесь использовать те же алгоритмы, длину ключей и инициализирующие векторы (IV). Рекомендуется провести тестирование на производительность вашего приложения после перехода на bc-fips, чтобы выявить любые изменения.

2. Функциональность при использовании bc-fips в неутвержденном режиме

Использование bc-fips в неутвержденном режиме действительно может оказаться схожим с использованием bcprov, так как может обеспечить схожие функциональные возможности. Тем не менее, следует учесть, что использование bc-fips в таком режиме будет означать отсутствие соответствия стандартам FIPS. Поэтому, если ваша установка требует соблюдения норм FIPS, рекомендуется использовать только утвержденные алгоритмы и подходы, доступные в библиотеке bc-fips.

3. Проблемы с совместимостью bcprov и bc-fips

Одной из ключевых причин, по которой bcprov и bc-fips не могут сосуществовать, является различие в способах обработки криптографических функций. Когда вы используете оба пакета одновременно, существует риск, что вызов классов из bcprov может нарушить требования FIPS, что приведет к потенциальным нарушениям безопасности. В этой связи подход "SpongyCastle" может быть интересным решением, позволяющим использовать оба API под разными именами (например, переименованным в "SC").

4. Рекомендации по миграции на bc-fips

Хотя явных руководств по миграции на bc-fips из bcprov может не существовать, рекомендуется изучить вопросы совместимости вашего приложения и специфик FIPS. Некоторые ресурсы, такие как страница о миграции в Keycloak, могут предложить полезные советы по перемещению в среду FIPS. Особенно важно протестировать ваше приложение после изменений, чтобы убедиться в его корректной работе и соответствии новым требованиям.

Заключение

Переход на библиотеку bc-fips требует внимательного планирования и тестирования. При правильной настройке и тестировании вы сможете добиться требуемого уровня безопасности без значительного влияния на производительность. Основные различия между bcprov и bc-fips заключаются в их назначении, функциональных возможностях и средах использования, что делает этот вопрос критически важным для организаций, стремящихся к соответствию стандартам безопасности.

Оцените материал
Добавить комментарий

Капча загружается...