Введение
Правительственный стандарт США по криптографии. Серия 140 Федеральных стандартов обработки информации (FIPS) — это стандарты безопасности компьютерных систем, разработанные правительством США, которые определяют требования к криптографическим модулям. По состоянию на 2020 год, FIPS 140-2 и FIPS 140-3 признаются действующими и актуальными. FIPS 140-3 был утвержден 22 марта 2019 года в качестве преемника FIPS 140-2 и вступил в силу 22 сентября 2019 года. Тестирование по стандарту FIPS 140-3 началось 22 сентября 2020 года, и было выдано небольшое количество сертификатов соответствия. Тестирование по стандарту FIPS 140-2 остается доступным до 21 сентября 2021 года (впоследствии срок был продлен до 1 апреля 2022 года для заявок, находящихся в работе), что создает годовой период параллельного действия стандартов. Отчеты о тестировании по стандарту FIPS 140-2, остающиеся в очереди CMVP, будут получать сертификаты соответствия и после этой даты, однако все сертификаты соответствия FIPS 140-2 будут перенесены в исторический список 21 сентября 2026 года, независимо от фактической даты их окончательного утверждения.
The 140 series of Federal Information Processing Standards (FIPS) are U. S. government computer security standards that specify requirements for cryptographic modules. as of 2020, FIPS 140 2 and FIPS 140 3 are both accepted as current and active. FIPS 140 3 was approved on March 22, 2019 as the successor to FIPS 140 2 and became effective on September 22, 2019. FIPS 140 3 testing began on September 22, 2020, and a small number of validation certificates have been issued. FIPS 140 2 testing is still available until September 21, 2021 (later changed for applications already in progress to April 1, 2022), creating an overlapping transition period of one year. FIPS 140 2 test reports that remain in the CMVP queue will still be granted validations after that date, but all FIPS 140 2 validations will be moved to the Historical List on September 21, 2026 regardless of their actual final validation date.
Цель FIPS 140
Национальный институт стандартов и технологий (NIST) выпускает серию публикаций 140 для координации требований и стандартов к криптографическим модулям, включающим как аппаратные, так и программные компоненты, предназначенные для использования департаментами и агентствами федерального правительства Соединенных Штатов. FIPS 140 не претендует на предоставление достаточных условий для гарантии безопасности модуля, соответствующего его требованиям, и тем более безопасности системы, построенной с использованием таких модулей. Требования охватывают не только сами криптографические модули, но и их документацию, а также (на высшем уровне безопасности) некоторые аспекты комментариев, содержащихся в исходном коде. Пользовательские агентства, желающие внедрять криптографические модули, должны удостовериться, что используемый ими модуль покрыт действующим сертификатом валидации. В сертификатах FIPS 140-1 и FIPS 140-2 указывается точное наименование модуля, аппаратное обеспечение, программное обеспечение, прошивка и/или номера версий апплетов. Для уровней 2 и выше также указывается операционная платформа, для которой действует валидация. Поставщики не всегда поддерживают свои базовые валидации. Программа валидации криптографических модулей (CMVP) совместно управляется Отделом компьютерной безопасности Национального института стандартов и технологий (NIST) правительства Соединенных Штатов и Управлением по безопасности связи (CSE) правительства Канады. Правительство Соединенных Штатов требует использования валидированных криптографических модулей для всех несекретных применений криптографии. Правительство Канады также рекомендует использовать криптографические модули, валидированные по стандарту FIPS 140, в несекретных приложениях своих ведомств.
Уровни безопасности
FIPS 140-2 определяет четыре уровня безопасности, просто называемые «Уровень 1»–«Уровень 4». В нем не указано подробно, какой уровень безопасности требуется для конкретного приложения. Уровень 1 FIPS 140-2, являясь самым низким, предъявляет очень ограниченные требования: все компоненты должны быть «производственного качества», а серьезные уязвимости должны отсутствовать. Уровень 2 FIPS 140-2 добавляет требования к физическим доказательствам несанкционированного доступа и ролевой аутентификации. Уровень 3 FIPS 140-2 добавляет требования к физической защите от несанкционированного доступа (затрудняющей злоумышленникам доступ к конфиденциальной информации, содержащейся в модуле), аутентификации по идентификационным данным, а также к физическому или логическому разделению интерфейсов, через которые «критические параметры безопасности» поступают в модуль и покидают его, и других его интерфейсов. Уровень 4 FIPS 140-2 ужесточает требования к физической безопасности и требует устойчивости к воздействиям окружающей среды. Помимо указанных уровней, в разделе 4.1.1 спецификации описываются дополнительные атаки, которые могут потребовать мер по снижению рисков, такие как дифференциальный анализ мощности. Если продукт содержит средства противодействия этим атакам, они должны быть задокументированы и протестированы, но для достижения определенного уровня защита не обязательна. Таким образом, FIPS 140-2 подвергается критике за то, что стандарт создает ложное чувство безопасности на уровнях 2 и выше, поскольку он подразумевает, что модули будут защищены от несанкционированного доступа и/или устойчивы к нему, однако модулям разрешено иметь уязвимости по сторонним каналам, позволяющие легко извлекать ключи.
Краткая история
FIPS 140-1, выпущенный 11 января 1994 года и отозванный 25 мая 2002 года, был разработан рабочей группой, состоящей из представителей правительства и промышленности, включающей поставщиков и пользователей криптографического оборудования. Группа определила четыре «уровня безопасности» и одиннадцать «областей требований», перечисленных выше, и установила требования для каждой области на каждом уровне. FIPS 140-2, выпущенный 25 мая 2001 года, учитывает изменения в доступных технологиях и официальных стандартах с 1994 года, а также комментарии, полученные от поставщиков, тестировщиков и пользователей. Он являлся основным входным документом для международного стандарта ISO/IEC 19790:2006 «Требования безопасности для криптографических модулей», выпущенного 1 марта 2006 года. NIST опубликовал специальную публикацию 800-29, в которой описаны существенные изменения между FIPS 140-1 и FIPS 140-2. FIPS 140-3, выпущенный 22 марта 2019 года и объявленный в мае 2019 года, в настоящее время находится в переходном периоде, заменяющем FIPS 140-2, и согласовывает рекомендации NIST с двумя международными стандартами: ISO/IEC 19790:2012(E) «Информационные технологии. Методы обеспечения безопасности. Требования безопасности для криптографических модулей» и ISO/IEC 24759:2017(E) «Информационные технологии. Методы обеспечения безопасности. Требования к тестированию криптографических модулей». В первом проекте стандарта FIPS 140-3 NIST представил новый раздел, посвященный безопасности программного обеспечения, один дополнительный уровень заверения (уровень 5), а также новые требования к простому анализу мощности (SPA) и дифференциальному анализу мощности (DPA). Однако в проекте, опубликованном 11 сентября 2009 года, было возвращено четыре уровня безопасности, а уровни безопасности программного обеспечения были ограничены 1-м и 2-м уровнями.
Критика
В связи с устройством процесса валидации, поставщик программного обеспечения обязан повторно валидировать свой модуль, прошедший валидацию по FIPS, при любом изменении программного обеспечения, даже самом незначительном; эта повторная валидация требуется даже для исправления очевидных ошибок или уязвимостей в системе безопасности. Поскольку валидация – дорогостоящий процесс, это стимулирует поставщиков программного обеспечения откладывать внесение изменений в свои продукты, что может привести к тому, что программное обеспечение не будет получать обновления безопасности до следующей валидации. В итоге, валидированное программное обеспечение может оказаться менее безопасным, чем его невалидированный аналог. Однако, в последнее время некоторые отраслевые эксперты возразили против этой критики, перекладывая ответственность за сужение области валидации на самого поставщика. Поскольку большинство повторных валидаций вызываются ошибками и исправлениями уязвимостей, не относящимися к основным криптографическим операциям, правильно определенная область валидации не требует повторной валидации в описанном случае.