автор Аянда Дубе

FIPS (Федеральные стандарты обработки информации) [1] — это набор стандартов, определенных NIST (Национальным институтом стандартов и технологий) для предоставления средств управлять и контролировать, как компьютерные системы взаимодействуют с помощью одобренных в отрасли, заслуживающих доверия и приемлемых методов. FIPS-140 не является обязательным для всех, но если вы работаете в бескомпромиссных секторах, таких как государственные системы, я настоятельно рекомендую вам работать над тем, чтобы соответствовать FIPS-140. Публикация FIPS-140 определяет стандартные требования, относящиеся к криптографическим модулям и функциям, используемым в компьютерных системах, на всех этапах, включая, помимо прочего, проектирование, реализацию, установку и использование.

Требования к системам на основе Erlang, таким как RabbitMQ, MongooseIM, Riak, WombatOAM, для соответствия требованиям FIPS-140 быстро растут из-за их плотного использования в критически важных средах, таких как те, которые находятся в государственных секторов, где требования безопасности бескомпромиссны и имеют первостепенное значение. Эти системы Erlang состоят из нескольких приложений, которые работают как неотъемлемая часть стека других базовых приложений и подсистем, таких как виртуальная машина Erlang и операционная система. Таким образом, чтобы обеспечить соответствие FIPS-140, необходимо учитывать и эти базовые, поддерживающие уровни, уделяя особое внимание работе и взаимодействию с проверенными модулями безопасности FIPS. Ниже приведена графическая иллюстрация и обсуждение компонентов и аспектов, рассматриваемых в системе Erlang/Elixir для соответствия стандарту FIPS-140.

1. Оборудование

FIPS-140 определяет требования к безопасности платформы, от аппаратного обеспечения до операционной системы, а также ее библиотек безопасности. Требования к аппаратным средствам охватывают классификацию типов аппаратных модулей безопасности, таких как встроенные криптографические модули с одним и несколькими чипами, в которых определяются такие аспекты, как физическое покрытие и покрытие для защиты от закалки, наряду с другими внутренними аспектами, такими как как обнуление конфиденциальной информации на кристалле и многое другое. В рамках Erlang разрабатываемые и поставляемые встроенные системы, например, Erlang-ALEElixir-ALE или Nerves для встроенных систем Elixir) должны учитывать эти факторы как при реализации встроенного ПО, и изготовление фурнитуры.

2. Операционные системы и виртуализация

Требования к операционным системам регулируют типы (надежная ОС или нет) и то, как используемые криптографические программные модули будут функционировать в отношении обеспечения защиты данных, как определено в стандарте FIPS-140. Эти требования обширны, и, к удовольствию разработчиков и сообщества, такие библиотеки, как OpenSSL, реализуют эти наборы функций, которые, при хорошем понимании, необходимо настроить и включить для соответствия FIPS-140 при выполнении. FIPS-140 рекомендует модульный подход к разработке и внедрению программного обеспечения, и OpenSSL следует этому примеру, реализуя FIPS-140 через проверенный объектный модуль OpenSSL FIPS. Другие библиотеки, такие как GnuTLS, также включают совместимость с FIPS-140 по желанию пользователя.

Также в рамках рассматриваемых аспектов, охватывающих операционные системы, соответствующие FIPS-140, находятся порождаемые виртуальные машины и экземпляры, которые инкапсулируют и действуют как контейнеры для эффективного предоставления различных приложений. Это могут быть полноценные операционные системы, предоставляемые такими инструментами автоматизации, как Docker, Kubernetes, CoreOS, для виртуальных машин среды выполнения приложений, таких как виртуальная машина Erlang, JVM, .NET, и Т. Д.

Прочтите остальную часть этой записи в блоге на www.erlang-solutions.com.

использованная литература

[1] https://csrc.nist.gov/publications/fips

Первоначально опубликовано на www.erlang-solutions.com 20 февраля 2018 г.