Немного предыстории: есть два типа криптографии: криптография, проверенная FIPS 140-2; и вся остальная криптография. Вы можете думать о подтвержденной криптографии как о материальном товаре.
В OpenSSL проверенная криптография находится в объектном модуле FIPS. Объектный модуль FIPS использует те же исходные файлы, что и обычная библиотека. Объектный модуль FIPS является частью libcrypto
, поскольку именно в нем реализована криптография. Вот где тоже непроверенная криптография.
Если вы загрузите обычную библиотеку OpenSSL и настроите ее с помощью config fips
, вы создадите библиотеку с поддержкой FIPS. Он поддерживает только FIPS, потому что проверенная криптография находится в объектном модуле FIPS. Если у вас нет объектного модуля FIPS, вы будете использовать непроверенную криптографию. В обоих случаях библиотека FIPS Capable будет использовать криптографию из libcrypto
. Думайте об этом как о подключаемой архитектуре.
Ранее создание объектного модуля FIPS управлялось с помощью fipscanisterbuild
. Однако он уже не нужен. Я думаю, что он больше не нужен, потому что исходные файлы объектного модуля FIPS предоставляются в его собственном tar-архиве.
Просмотр последней политики безопасности OpenSSL FIPS 140-2., он не указан в наборе команд, поэтому предоставление fipscanisterbuild
является нарушением политики. Если вы укажете fipscanisterbuild
, ваш процесс не приведет к криптографии, проверенной FIPS.
Еще немного предыстории: config
вызывает Configure
с помощью триплета. Вы можете увидеть это в строке 962 в config
:
$PERL ./Configure $OUT $options
Итак, чтобы ответить на ваш вопрос: в скомпилированном коде нет эффективной разницы. И объектный модуль FIPS, и библиотека FIPS Capable создают один и тот же код.
./config fipscanisterbuild
Если вы создаете объектный модуль FIPS, это является нарушением политики, поскольку он не соответствует политике безопасности. Но это приводит к тому же объектному коду для криптографии.
./Настроить солярис-x86-gcc
Если вы создаете объектный модуль FIPS, это является нарушением политики, поскольку он не соответствует политике безопасности. Но это приводит к тому же объектному коду для криптографии.
person
jww
schedule
11.07.2014