Вопрос или проблема
FIPS 140-3 10.2.A Техника самоиспытания целостности перед эксплуатацией вводит новые требования. Ранее, в FIPS 140-2, проводилось самоиспытание при включении для того, чтобы можно было использовать определённую часть криптографического модуля (например, RSA). С FIPS 140-3 алгоритм, используемый для выполнения теста на целостность, должен сначала пройти самоиспытание. Существует 2 возможных метода, как удовлетворить требование, либо:
- выполнить самоиспытание алгоритма, а затем тест на целостность, возможно, с различными параметрами (длины ключей / размеры дайджестов)
- дважды выполнить тест на целостность, возможно, с различными входными данными
Документ FIPS 140-3 цитирует ISO/IEC 19790:2012 Раздел 7.10.1 для объяснения основ:
Криптографический алгоритм, который используется для выполнения одобренной техники целостности для программного/аппаратного тестирования перед эксплуатацией, должен [10.20] сначала пройти самоиспытание криптографического алгоритма, указанное в 7.10.3.2.
Какова причина этого? То есть, какую дополнительную защиту предоставляет двойное тестирование, если используется одна и та же реализация? Это не кажется вопросом безопасности, а, возможно, для более быстрой диагностики сбоев?
Контекст для этого вопроса конкретно касается программной реализации, например, библиотеки или модуля ядра операционной системы.
Ответ или решение
Rationale for the FIPS 140-3 Pre-operational Integrity Technique Self-test
Введение
Стандарт FIPS 140-3 вносит значительные изменения в процессы проверки и сертификации криптографических модулей, включая внедрение требования к предварительнымtests самопроверки интегрированных алгоритмов. Это нововведение направлено на усиление защиты и обеспечение более высокого уровня безопасности в контексте реализации ПО, например, библиотек или модулей ядра операционных систем.
-
Укрепление доверия к криптографическим алгоритмам
Прежде всего, выполнение самопроверки криптографического алгоритма перед его использованием в качестве метода интегритета обеспечивает дополнительный уровень доверия к самим алгоритмам. Криптографические алгоритмы могут состоять из сложных математических вычислений, и их реализация может содержать ошибки или уязвимости, которые не всегда очевидны. Самопроверка позволяет удостовериться в том, что алгоритм корректно выполняет все необходимые операции. -
Выявление ошибок и уязвимостей на ранних стадиях
Повторная проверка алгоритма в рамках самопроверки обеспечивает более быструю идентификацию потенциальных проблем, которые могут влиять на безопасность системы. Если один и тот же алгоритм используется для выполнения обоих тестов, то это наглядно демонстрирует стабильность и корректность выполнения криптографических операций. Ошибки, возникающие в результате программных сбоев или воздействия внешних факторов, легче выявляются на этапе самопроверки, что, в конечном счёте, сокращает риски. -
Повышение уровня надежности системы
Повторное тестирование с использованием различных параметров (например, длины ключей или размеров дайджестов) или различных входных данных создает условия для более строгого контроля над работой как алгоритмов, так и всей системы в целом. Это может снизить вероятность того, что необнаруженные ошибки в одном алгоритме повлияют на другой алгоритм, использующий ту же реализацию. -
Способность к обнаружению нестандартных ситуаций
Применение различных параметров и выходных данных во время тестирования алгоритма может помочь в выявлении и дальнейшем устранении специфических уязвимостей и нестандартных ситуаций. Например, изменяя ключевые параметры, разработчики могут проверить, как алгоритм реагирует на неожиданные или преднамеренно поврежденные входные данные, тем самым повышая общую устойчивость системы к различного рода атакам. -
Упрощение процессов сертификации и соответствия
Внедрение этого нового требования делает процессы сертификации более строгими и прозрачными, что, в свою очередь, укрепляет доверие к криптографической технологии, используемой в различных приложениях и системах. Газеты стандартов, такие как ISO/IEC 19790:2012, служат основой для создания более безопасной и надежной среды для криптографических операций, что является критически важным для обеспечения безопасности данных.
Заключение
Обоснование двойного тестирования в FIPS 140-3 имеет важное значение для обеспечения высокой степени гарантии целостности и безопасности криптографических алгоритмов. Внедрение предварительных самопроверок позволяет более эффективно выявлять ошибки на ранних стадиях и создает дополнительное доверие к внедряемым системам. В условиях постоянного роста угроз безопасности данный стандарт становится залогом надежной и устойчивой работы криптографических модулей в различных программных реализациях.