Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Участники взаимодействия OASIS 2017 на конференции RSA 2017.

Key Management Interoperability Protocol ( KMIP ) представляет собой расширяемый протокол связи , который определяет форматы сообщений для манипуляции криптографических ключей на ключевом управление сервером. Это облегчает шифрование данных за счет упрощения управления ключами шифрования. Ключи могут быть созданы на сервере, а затем извлечены, возможно, с другими ключами. Поддерживаются как симметричные, так и асимметричные ключи, включая возможность подписывать сертификаты. KMIP также позволяет клиентам запрашивать сервер для шифрования или дешифрования данных без прямого доступа к ключу.

Стандарт KMIP был впервые выпущен в 2010 году. Клиенты и серверы коммерчески доступны от нескольких поставщиков. Работа над стандартами KMIP регулируется органом стандартизации OASIS . Технические подробности также можно найти на официальной странице KMIP и в вики .

Описание [ править ]

Сервер KMIP хранит и контролирует управляемые объекты, такие как симметричные и асимметричные ключи, сертификаты и определенные пользователем объекты. Затем клиенты используют протокол для доступа к этим объектам в соответствии с моделью безопасности, которая реализуется серверами. Предоставляются операции для создания, поиска, извлечения и обновления управляемых объектов.

Каждый управляемый объект имеет неизменное значение, такое как ключевой блок, содержащий криптографический ключ. Они также содержат изменяемые атрибуты, которые можно использовать для хранения метаданных о ключах. Некоторые атрибуты выводятся непосредственно из значения, например криптографический алгоритм и длина ключа. Другие атрибуты определены в спецификации для управления объектами, например, идентификатор приложения, который обычно получается из идентификационных данных ленты. Дополнительные идентификаторы могут быть определены сервером или клиентом по мере необходимости для приложения.

Каждый объект идентифицируется уникальным и неизменным идентификатором объекта, который генерируется сервером и используется для получения значений объекта. Управляемым объектам также может быть предоставлен ряд изменяемых, но глобально уникальных атрибутов Name, которые можно использовать для поиска объектов.

Объекты [ править ]

Типы управляемых объектов, которыми управляет KMIP, включают:

  • Симметричные ключи, используемые для таких алгоритмов, как AES.
  • Открытые и закрытые ключи, используемые для асимметричных алгоритмов, таких как RSA и ECDH. Для хранения открытого и закрытого ключей используются отдельные объекты, так что пользователь может иметь разрешение на доступ к одному, но не к другому. Связанные объекты обычно содержат атрибуты Link, которые содержат уникальный идентификатор другого объекта.
  • Сертификаты и ключи PGP.
  • Разделение ключей, при этом каждое разделение представляет собой отдельный объект, которым можно управлять независимо от других разделений.
  • Секретные данные, например пароли.
  • Непрозрачные данные для расширений, определенных клиентом и сервером.
  • Запросы на подпись сертификатов.

Операции [ править ]

KMIP предлагает следующие операции:

  • Create, который создает новый управляемый объект, такой как симметричный ключ, и возвращает идентификатор.
  • Create Key Pair, который создает два объекта, представляющих асимметричные ключи.
  • Get, который извлекает значение объекта с учетом его уникального идентификатора. Возвращаемое значение может быть заключено в оболочку (зашифровано) с помощью другого ключа, находящегося на сервере, для дополнительной безопасности.
  • Регистр, в котором хранится значение ключа, созданное извне.
  • Добавить атрибуты, получить атрибуты, изменить атрибуты и установить атрибут. Их можно использовать для управления изменяемыми атрибутами управляемого объекта.
  • Locate, который извлекает список объектов на основе предикатов.
  • Re-Key, который создает новый ключ, который может заменить существующий ключ. Есть также атрибуты, которые можно использовать для автоматической смены ключей сервером после определенного периода или количества использований. Имя перемещается в новый ключ и обычно используется для получения ключа для операций защиты, таких как шифрование и подпись. Старый ключ также можно получить с помощью уникального идентификатора для таких операций процесса, как расшифровка и проверка подписи.
  • (Повторно) Certify, удостоверяющий сертификат.
  • Разделить и объединить n из m ключей.
  • Шифрование, дешифрование, MAC и т. Д. Криптографические операции, выполняемые на сервере управления ключами. Сам ключ может быть помечен как не извлекаемый, и в этом случае его значение никогда не покидает сервер.
  • Экспорт и импорт ключей на другие серверы KMIP.
  • Операции по реализации жизненного цикла ключа NIST .

Ключевой жизненный цикл [ править ]

Каждый ключ имеет криптографическое состояние, определенное Национальным институтом стандартов и технологий (NIST). Ключи создаются в начальном состоянии, но их необходимо активировать, прежде чем их можно будет использовать. Затем они могут быть деактивированы и в конечном итоге уничтожены. Ключ также может быть помечен как взломанный.

Предоставляются операции, которые управляют состоянием в соответствии с руководящими принципами жизненного цикла NIST. Состояние ключа может быть запрошено с использованием атрибута State или атрибутов, которые записывают даты каждого преобразования, таких как Дата активации. Даты могут быть указаны в будущем, чтобы ключи автоматически становились недоступными для определенных операций по мере их истечения.

Структура сообщения [ править ]

KMIP - это протокол без отслеживания состояния, в котором сообщения отправляются от клиента на сервер, а затем клиент обычно ожидает ответа. Каждый запрос может содержать множество операций, что позволяет протоколу эффективно обрабатывать большое количество ключей. Есть также расширенные функции для асинхронной обработки запросов.

Протокол KMIP определяет несколько различных типов кодирования. Основной из них - это кодирование сообщений типа длина-значение , называемое TTLV (тег, тип, длина, значение). Вложенные структуры TTLV позволяют кодировать сложные многооперационные сообщения в одном двоичном сообщении .

Также существуют четко определенные кодировки XML и JSON протокола для сред, в которых двоичные файлы не подходят. Очень компактная кодировка CBOR также предусмотрена для приложений, которые в ней нуждаются.

Ожидается, что все эти протоколы будут передаваться с использованием протокола TLS для обеспечения целостности и безопасности. Однако также можно регистрировать и получать ключи, которые обернуты (зашифрованы) с использованием другого ключа на сервере, что обеспечивает дополнительный уровень безопасности.

Управление системой [ править ]

KMIP предоставляет стандартизированные механизмы для управления сервером KMIP с помощью надлежащим образом авторизованных административных клиентов с использованием системных объектов.

Пользовательские объекты могут быть созданы и авторизованы для выполнения определенных операций с определенными управляемыми объектами. И управляемые объекты, и пользователи могут быть назначены группам, и эти группы могут образовывать иерархию, которая облегчает эффективное управление сложными операционными средами.

KMIP также предоставляет систему обеспечения, которая упрощает предоставление конечным точкам учетных данных с использованием простых одноразовых паролей.

Могут быть предоставлены значения атрибутов по умолчанию, поэтому простым клиентам не нужно указывать криптографические и другие параметры. Например, административный пользователь может указать, что все ключи «SecretAgent» должны быть 192-битными ключами AES с цепочкой блоков CBC . Затем клиенту нужно только указать, что он хочет создать ключ «SecretAgent», чтобы предоставить эти значения по умолчанию. Также возможно наложить ограничения на ключевые параметры, реализующие политику безопасности.

Профили KMIP [ править ]

KMIP также определяет набор профилей , которые являются подмножествами спецификации KMIP, показывающей общее использование для конкретного контекста. Говорят, что конкретная реализация KMIP соответствует профилю, если она удовлетворяет всем требованиям, изложенным в документе спецификации профиля. OASIS представил различные профили, описывающие требования к массивам хранения [1] и ленточным библиотекам [2], но любая организация может создать профиль.

Отношение к PKCS # 11 [ править ]

PKCS # 11 - это C API, используемый для управления аппаратным модулем безопасности . PKCS # 11 обеспечивает криптографические операции для шифрования и дешифрования, а также операции для простого управления ключами. Между PKCS # 11 API и протоколом KMIP существует значительное совпадение.

Эти два стандарта изначально были разработаны независимо. PKCS # 11 был создан RSA Security , но стандарт теперь также регулируется техническим комитетом OASIS . Заявленная цель комитетов PKCS # 11 и KMIP - согласовать стандарты там, где это возможно. Например, атрибуты PKCS # 11 Sensitive и Extractable добавляются в KMIP версии 1.4. Многие из тех же людей входят в технические комитеты как KMIP, так и PKCS # 11.

KMIP 2.0 предоставляет стандартизированный механизм для передачи сообщений PKCS # 11 от клиентов к серверам. Это можно использовать для нацеливания на различные реализации PKCS # 11 без необходимости перекомпилировать программы, которые его используют.

Реализации KMIP [ править ]

Технический комитет OASIS KMIP ведет список известных реализаций KMIP, который можно найти на веб-сайте OASIS . По состоянию на март 2017 года в этом списке 28 внедрений и 61 продукт KMIP.

Взаимодействие между реализациями [ править ]

Стандарт KMIP определяется с использованием формального документа спецификации, тестовых примеров и профилей, выдвинутых техническим комитетом OASIS KMIP. Эти документы находятся в открытом доступе на веб-сайте OASIS.

Стенды Interop на конференции RSA 2015. Каждый поставщик взаимодействует друг с другом.

Поставщики демонстрируют совместимость во время процесса, организованного техническим комитетом OASIS KMIP за несколько месяцев до каждой конференции RSA по безопасности. Эти демонстрации неофициально называются перехватами . Взаимодействия KMIP проводятся ежегодно с 2010 года. На следующей диаграмме показано количество отдельных тестов, выполненных каждой комбинацией клиента и поставщика сервера с 2012 года.

  • Индивидуальные тесты на совместимость, выполняемые каждой комбинацией сервер / клиент с 2012 года.

  • Результаты тестирования совместимости OASIS KMIP в 2017 году

Пример [ править ]

Ниже показано XML-кодирование запроса на поиск ключа с именем «MyKeyName» и возврат его значения, заключенного в другой ключ с идентификатором «c6d14516-4d38-0644-b810-1913b9aef4da». (TTLV - более распространенный проводной протокол, но XML более удобочитаем для человека.)

<RequestMessage>  <RequestHeader>  <ProtocolVersion>  <ProtocolVersionMajor  type = "Integer"  value = "3" />  <ProtocolVersionMinor  type = "Integer"  value = "0" />  </ProtocolVersion>  </RequestHeader>  <BatchItem>  <Operation  type = "Enumeration"  value = "Locate" />  <UniqueBatchItemID  type = "ByteString"  value = "1" />  <RequestPayload>  <Attributes>  < Тип имени = "TextString"  value = "MyKeyName" /> </Attributes>  </RequestPayload>  </BatchItem>  <BatchItem>  <Operation  type = "Enumeration"  value = "Get" />  <UniqueBatchItemID  type = "ByteString"  value = "2" />  <RequestPayload>  <KeyWrappingSpecification>  < WrappingMethod  type = "Enumeration"  value = "Encrypt" />  <EncryptionKeyInformation>  <UniqueIdentifier  type = "Integer"  value = "c6d14516-4d38-0644-b810-1913b9aef4da" />  </ EncryptionKeyInformation>  </KeyWrappingSpecification>  </RequestPayload> </BatchItem> </RequestMessage>

Документация [ править ]

Документация находится в свободном доступе на сайте OASIS . Сюда входит формальная техническая спецификация и руководство по использованию, чтобы помочь людям, незнакомым со спецификацией.

Также предоставляется обширная библиотека тестовых примеров. Они используются для проверки совместимости клиентов и серверов, но также предоставляют конкретные примеры использования каждой стандартной функции KMIP.

История версий [ править ]

См. Также [ править ]

  • Ключевой менеджмент
  • Ключ (криптография)
  • Шифрование
  • Рабочая группа IEEE P1619 Security in Storage

Ссылки [ править ]


Внешние ссылки [ править ]

  • «Технический комитет OASIS KMIP» .
  • «Реализации KMIP, известные KMIP TC» .
  1. ^ «Массив хранения KMIP с профилем самошифрующихся дисков версии 1.0» .
  2. ^ "Профиль ленточной библиотеки KMIP Версия 1.0" .
  3. ^ "Спецификация KMIP v2.1 WD07" .
  4. ^ "Спецификация KMIP v3.0 WD09" .