- Вопрос или проблема
- Ответ или решение
- Основные различия между библиотеками bcprov и bc-fips (BouncyCastle)
- 1. Производительность при использовании bc-fips
- 2. Функциональность при использовании bc-fips в неутвержденном режиме
- 3. Проблемы с совместимостью bcprov и bc-fips
- 4. Рекомендации по миграции на bc-fips
- Заключение
Вопрос или проблема
Мне трудно понять различия между jar-файлами bc-prov и bc-fips. Я понимаю, что bc-fips содержит подмножество пакетов bc-prov. Но я хочу больше узнать о следующих вопросах:
- Будет ли какое-либо влияние на производительность при обновлении до jar-файла bc-fips, если я по-прежнему использую тот же алгоритм, длину ключа, длину iv, режимы блоков и т.д.? Это ключевой фактор при обновлении до jar-файла bc-fips.
- Запуск bc-fips в непод approved режиме эквивалентен использованию jar-файла bc-prov? Я имею в виду, с точки зрения охвата функциональных API, производительности, обратной совместимости и т.д.?
- Почему bc-prov и bc-fips не могут сосуществовать вместе? Из-за этого будет сложно для устаревших приложений перейти на bc-fips для соблюдения стандартов FIPS.
- Существует ли руководство по обновлению для перехода на bc-fips из bc-prov для устаревших приложений?
-
Вы не предоставили никаких деталей о том, что делает ваша программа и насколько она интенсивна в отношении шифрования. Я был бы удивлён, если переход на FIPS не повлияет на ваше приложение, но вы не узнаете, пока не протестируете.
-
С высоты птичьего полёта, вероятно, да. Вы не узнаете, что будет затронуто, пока не протестируете это. Неясно, почему это имеет значение. Использование bc-fips в непод approved режиме не соответствует стандартам FIPS.
-
Согласно этому посту, Сосуществование FIPS и не-FIPS jar’ов, возможно использовать обе библиотеки в так называемом подходе org.spongycastle. Вы не соответствуете стандартам FIPS, если используете криптографические классы из bp-prov. Суть spongycastle заключается в следующем:
Переcompile API как org.spongycastle и дайте провайдеру имя “SC”, а не “BC”.
- Я не нашёл много информации по этому вопросу при беглом поиске. Эта страница 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 заключаются в их назначении, функциональных возможностях и средах использования, что делает этот вопрос критически важным для организаций, стремящихся к соответствию стандартам безопасности.