FIPS 140
FIPS 140 (англ. Federal Information Processing Standards, серия 140) — семейство стандартов компьютерной безопасности, разработанных правительством США, которые определяют требования к криптографическим модулям.
По состоянию на октябрь 2020 года действующими стандартами являются FIPS 140-2 и FIPS 140-3[1]. Стандарт FIPS 140-3 был утверждён 22 марта 2019 года как преемник FIPS 140-2 и вступил в силу 22 сентября 2019 года[2]. Тестирование по FIPS 140-3 началось 22 сентября 2020 года, при этом уже было выдано небольшое количество сертификатов. Тестирование по FIPS 140-2 продолжалось до 21 сентября 2021 года (позднее для текущих заявок срок был продлён до 1 апреля 2022 года[3]), образуя переходный период продолжительностью в один год. Отчёты о тестировании FIPS 140-2, оставшиеся в очереди CMVP, по-прежнему могут получить валидацию после этой даты, однако все сертификаты FIPS 140-2 будут переведены в список исторических 21 сентября 2026 года независимо от фактической даты валидации[4].
Назначение FIPS 140
Национальный институт стандартов и технологий (NIST) публикует серию стандартов 140 для координации требований и стандартов к криптографическим модулям, включающим как аппаратные, так и программные компоненты для использования ведомствами и агентствами федерального правительства США. FIPS 140 не претендует на предоставление достаточных условий для гарантии безопасности модуля, соответствующего его требованиям, тем более, что система, построенная на таких модулях, будет надёжно защищена. Требования распространяются не только на сами криптографические модули, но и на их документацию, а на высшем уровне безопасности — и на отдельные аспекты комментариев в исходном коде.
Пользовательские подразделения, желающие реализовать криптографические модули, должны удостовериться в наличии действующего сертификата на используемый ими модуль. Сертификаты FIPS 140-1 и FIPS 140-2 содержат точные указания на наименование модуля, аппаратные и программные версии, версии микропрограмм и/или апплетов. Для уровней 2 и выше также указывается операционная платформа, для которой подтверждена валидация. Поставщики не всегда поддерживают актуальность применённых валидированных решений.
Криптографическая программа валидации модулей (CMVP) реализуется совместно подразделением компьютерной безопасности NIST и Служба криптографической защиты связи (CSE) правительства Канады. Использование сертифицированных криптографических модулей обязательно для всех не засекреченных применений криптографии в правительстве США; правительство Канады также рекомендует использовать FIPS 140-валидированные модули для неклассифицированных приложений своих департаментов.
Уровни безопасности
FIPS 140-2 определяет четыре уровня безопасности — от «уровня 1» до «уровня 4». Стандарт не уточняет, какой уровень должен быть выбран для той или иной задачи.
- FIPS 140-2, уровень 1 (наименьший) предъявляет минимальные требования: все компоненты должны быть «промышленного класса», и наиболее очевидные виды небезопасности должны быть устранены.
- FIPS 140-2, уровень 2 требует наличия физических средств обнаружения взлома и аутентификации на основе ролей.
- FIPS 140-2, уровень 3 предъявляет требования к физической стойкости к взлому (усложнение доступа к защищённой информации внутри модуля), аутентификации на основе идентификации личности, а также к физическому или логическому разделению интерфейсов, по которым проходят «ключевые параметры безопасности» и прочих интерфейсов модуля.
- FIPS 140-2, уровень 4 наиболее строг по физической защищённости, а также предъявляет требования к стойкости против внешних воздействий (например, экстремальных условий окружающей среды).
Помимо перечисленных уровней, раздел 4.1.1 спецификации описывает дополнительные атаки, требующие противодействия, например, дифференциальный анализ энергопотребления. Если продукт содержит меры против таких атак, это должно быть задокументировано и проверено, однако подобные меры не являются обязательными даже на высоких уровнях. Критика FIPS 140-2 заключается в том, что стандарт может создавать ложное ощущение защищённости для уровней 2 и выше, поскольку указывает на обнаружение или стойкость к взлому, однако модули, удовлетворяющие этим требованиям, всё равно могут быть уязвимы к побочным каналам с утечкой закрытых ключей.
Область охвата требований
FIPS 140 устанавливает требования по одиннадцати направлениям:
- Спецификация криптографического модуля (что подлежит документированию)
- Порты и интерфейсы криптографического модуля (какая информация поступает и выводится, и как обеспечивается изоляция)
- Роли, сервисы и аутентификация (кто и как может использовать модуль, и как это проверяется)
- Конечный автомат состояний (описание основных состояний модуля и правил перехода между ними)
- Физическая защищённость (обнаружение попыток несанкционированного доступа, стойкость к физическим атакам и к экстремальным условиям среды)
- Эксплуатационная среда (используемая операционная система)
- Управление криптографическими ключами (генерация, ввод, вывод, хранение и уничтожение ключей)
- Электромагнитная совместимость и помехоустойчивость (EMI/EMC)
- Самотестирование (что и когда должно быть протестировано, и какие действия предпринимать при сбое)
- Контроль качества проектирования (предоставление документации, доказывающей качество проектирования и реализации модуля)
- Противодействие другим видам атак (если модуль спроектирован для противодействия, например, атакам типа TEMPEST, в документации должно быть указано, как именно реализована защита)
Краткая история
FIPS 140-1 был выпущен 11 января 1994 года и отозван 25 мая 2002 года[5]. Этот стандарт разрабатывался рабочей группой, состоявшей из представителей государственных структур и производителей криптографического оборудования. Группа определила четыре «уровня безопасности» и одиннадцать «областей требований», указанных выше, и установила нормативы по каждой области для каждого уровня.
FIPS 140-2, принятый 25 мая 2001 года, учитывал технологические изменения и официальные стандарты с 1994 года, а также замечания производителей, испытателей и пользователей. Этот стандарт стал основой для международного стандарта ISO/IEC 19790:2006 «Требования к безопасности криптографических модулей» (опубликован 1 марта 2006 года). NIST опубликовал Специальную инструкцию 800-29, описывающую основные отличия FIPS 140-2 от FIPS 140-1[6].
FIPS 140-3, утверждённый 22 марта 2019 года и анонсированный[7] в мае 2019 года, действует в течение переходного периода с замещением FIPS 140-2 и согласован с двумя международными стандартами: ISO/IEC 19790:2012(E) «Информационная технология — Технические методы безопасности — Требования к криптографическим модулям» и ISO/IEC 24759:2017(E) «Информационная технология — Технические методы безопасности — Требования к тестированию криптографических модулей». В первом проекте стандарта[8] NIST предложил новый раздел по программной защищённости, дополнительный уровень доверия (уровень 5), а также требования по противодействию атакам Simple Power Analysis (SPA) и Differential Power Analysis (DPA). Однако проект от 11 сентября 2009 года вернулся к четырём уровням, ограничив программные реализации первыми двумя.
Критика
Особенности процедуры сертификации приводят к необходимости повторной валидации модуля при любых, даже минимальных изменениях в программном обеспечении; это касается и исправлений ошибок или уязвимостей. Поскольку валидация — процедура дорогостоящая, у разработчиков появляется стимул откладывать изменения и обновления программного обеспечения, что может привести к отказу от своевременных исправлений и снижению защищённости модулей по сравнению с несертифицированными аналогами[9].
В дальнейшем эта критика была частично парирована экспертами отрасли, возложившими ответственность на производителя по корректному определению границы сертификации. Большинство повторных сертификаций вызываются изменениями вне ядра криптографических операций; при грамотно выбранной области сертификации таких проблем можно избежать[10].
Примечания
- ↑ FIPS General Information. Национальный институт стандартов и технологий (5 октября 2010). Дата обращения: 18 мая 2013. Архивировано 2 апреля 2015 года.
- ↑ Announcing Approval and Issuance of FIPS 140-3, Security Requirements for Cryptographic Modules. www.nist.gov. Национальный институт стандартов и технологий (1 мая 2019). Дата обращения: 29 мая 2019. Архивировано 29 мая 2019 года.
- ↑ FIPS 140-3 Transition Effort. www.nist.gov. Национальный институт стандартов и технологий (2 июня 2021). Дата обращения: 18 августа 2021. Архивировано 2 августа 2021 года.
- ↑ FIPS 140-3 Transition Effort. www.nist.gov. Национальный институт стандартов и технологий (21 сентября 2020). Дата обращения: 19 октября 2020.
- ↑ Federal Information Processing Standard (FIPS) 140-1: Security Requirements for Cryptographic Modules. Национальный институт стандартов и технологий. Дата обращения: 18 марта 2022. Архивировано 9 августа 2022 года.
- ↑ Snouffer, Ray; Lee, Annabelle; Oldehoeft, Arch (1 июня 2001). “A Comparison of the Security Requirements for Cryptographic Modules in FIPS 140-1 and FIPS 140-2”. Национальный институт стандартов и технологий. DOI:10.6028/NIST.SP.800-29. Архивировано из оригинала 15 февраля 2018. Дата обращения 14 февраля 2018. Используется устаревший параметр
|url-status=(справка) - ↑ Announcing Approval and Issuance of FIPS 140-3, Security Requirements for Cryptographic Modules (май 2019). Дата обращения: 29 мая 2019. Архивировано 29 мая 2019 года.
- ↑ FIPS-140 -3: DRAFT Security Requirements for Cryptographic Modules (Revised Draft). Национальный институт стандартов и технологий (7 марта 2013). Дата обращения: 18 мая 2013. Архивировано 4 декабря 2015 года.
- ↑ Is FIPS 140-2 Actively harmful to software? Darren Moffat, Oracle Solaris (16 апреля 2014). Дата обращения: 18 марта 2017. Архивировано 28 ноября 2022 года.
- ↑ Inside "FIPS Inside". Walter Paley, SafeLogic (10 апреля 2018). Дата обращения: 19 октября 2020. Архивировано 20 октября 2020 года.
Литература
- Snouffer, Ray; Lee, Annabelle; Oldehoeft, Arch (1 июня 2001). “A Comparison of the Security Requirements for Cryptographic Modules in FIPS 140-1 and FIPS 140-2”. Национальный институт стандартов и технологий. DOI:10.6028/NIST.SP.800-29. Архивировано из оригинала 15 февраля 2018. Дата обращения 14 февраля 2018. Используется устаревший параметр
|url-status=(справка)
Ссылки
- Federal Information Processing Standards (FIPS) Publications. Национальный институт стандартов и технологий (5 февраля 2013). Дата обращения: 18 мая 2013.
- Validated FIPS 140-1 and FIPS 140-2 Cryptographic Modules. Национальный институт стандартов и технологий (17 мая 2013). Дата обращения: 18 мая 2013. Архивировано 26 декабря 2014 года.