Управление ключами
Управление ключами — это управление криптографическими ключами в рамках криптосистемы. Оно включает в себя такие процессы, как генерация, обмен, хранение, использование, уничтожение (crypto-shredding) и замена ключей. К управлению ключами также относят проектирование криптографических протоколов, работу ключевых серверов, пользовательские процедуры и прочие сопутствующие технические и организационные вопросы[1][2].
Управление ключами охватывает работу с ключами на пользовательском уровне — между пользователями или вычислительными системами. Это отличается от планирования ключей, которое относится к внутренней обработке ключей внутри работы конкретного шифра.
Эффективное управление ключами критически важно для безопасности криптосистемы. Данная задача считается одной из самых сложных областей криптографии, поскольку помимо математических методов требует решения вопросов организационного характера: формирования политик, обучения пользователей, взаимодействия между подразделениями и слаженной координации всех этих элементов.
Типы ключей
В криптосистемах могут использоваться различные типы ключей, причём нередко — несколько одновременно. Ключи делятся на симметричные и асимметричные. В случае симметричного алгоритма один и тот же ключ применяется и для шифрования, и для расшифровки сообщения. Такие ключи должны быть надёжно выбраны, защищённо распределены и хранимы. Асимметричные ключи (также известные как ключи с открытым ключом) представляют собой две математически связанные, но разные величины; они обычно используются в паре. Для внедрения криптографии с открытым ключом требуется развёртывание инфраструктуры (PKI), которая обеспечивает создание и управление парами открытых/закрытых ключей, а также цифровыми сертификатами[3].
Учёт и инвентаризация
Отправной точкой любой стратегии управления сертификатами и приватными ключами является формирование полного учёта всех сертификатов, указанием их местоположения и ответственных лиц. Задача усложняется тем, что сертификаты могут быть выданы разными удостоверяющими центрами, размещены в различных местах разными сотрудниками и командами; довериться единому списку из одного удостоверяющего центра невозможно. Несвоевременное обновление или замена сертификатов приводит к серьёзным сбоям и простоям. Дополнительные моменты:
- Регуляторные требования, например стандарт PCI DSS[4], требуют строгой защиты и управления криптографическими ключами; аудиторы уделяют всё больше внимания контролю над процессами управления.
- Приватные ключи, используемые с сертификатами, должны храниться в безопасности[5], иначе посторонние могут получить доступ к конфиденциальной информации или критическим системам. Нарушение разделения полномочий (например, когда администратор может создать ключи и использовать их для доступа к защищённым данным) также угрожает безопасности.
- Если удостоверяющий центр скомпрометирован или криптоалгоритм взломан, организация должна быть готова оперативно заменить все свои сертификаты и ключи.
Основные этапы управления
Перед началом защищённого взаимодействия пользователи должны согласовать детали криптографической процедуры. Иногда это означает обмен идентичными ключами (в симметричных схемах), иногда — получение открытого ключа другой стороны. Открытые ключи можно передавать публично (закрытый ключ хранится в тайне), а симметричные — только по защищённому каналу. Исторически обмен симметричными ключами был сложной задачей, и осуществлялся через такие надёжные каналы, как, например, дипломатическая почта. Передача ключей в открытом виде делала возможным их мгновенное перехватывание.
Появление криптографии с открытым ключом в 1970-х годах значительно упростило обмен ключами. С публикацией протокола Диффи — Хеллмана (англ. Diffie–Hellman key exchange) в 1975 году стало возможным осуществлять обмен даже по незащищённым каналам связи — риск перехвата ключа при распространении существенно снизился. Возможно также использование вспомогательных элементов (например, идентификаторов ключей на основе кодовых книг), которые служат индикаторами. Классическим примером являются работу шифровального клерка Рихарда Зорге и используемая германская армия система Enigma, где в ранних версиях ключ комбинировался из заранее распределённых настроек и пользовательского сессионного компонента.
В современных системах, таких как OpenPGP, сессионный симметричный ключ доставляется получателю в зашифрованном виде с помощью асимметричного алгоритма. Такой подход делает ненужным даже отдельный протокол обмена, вроде Диффи — Хеллмана.
Другой метод предусматривает инкапсуляцию одного ключа внутри другого. Обычно при этом используется мастер-ключ, который доставляется безопасным способом (например, разбивается на части и передаётся раздельно надёжными курьерами), а затем применяется для безопасного обмена остальными ключами. Такой подход называется key wrap и чаще реализуется на основе блочных шифров и криптографических хеш-функций.
Похожий метод предусматривает хранение главного (корневого) ключа и последующее получение производных ключей с использованием дополнительных данных (диверсификационной информации). Наиболее часто такие схемы применяются в банковских смарт-картах, где секретный ключ встраивается банком при изготовлении карты и далее используется терминалами для генерации сессионных ключей на основе общего секрета и уникальных данных карты. Связанные между собой ключи позволяют выстраивать иерархии, однако компрометация одного ключа чревата угрозой для связанных. Это снижает энтропию применительно к злоумышленнику.
Современный метод основан на использовании обфусцированной псевдослучайной функции, позволяющей выдавать ключи пользователям так, что сама система управления ключами не имеет доступа к их значениям[6].
Для обеспечения безопасности связи ключи должны храниться в защищённом виде — где бы и как бы они ни были получены. Проблема защиты ключей выходит на первый план[7][8], поэтому практикуются разнообразные подходы. Чаще всего это хранение ключей в приложении с защитой доступа паролем, а для современных мобильных платформ ключи/идентификаторы и связанные данные шифруются, чтобы пользователи могли сообщать их только доверенным лицам[7]
Требований законодательства к организации хранения ключей крайне мало — как правило, это лишь формулировки «не хранить ключи вместе с зашифрованными данными» или «ключи должны быть защищены». Исключениями являются стандарты PCI DSS 3.2.1, NIST 800-53 и NIST 800–57.[8].
Для максимально надёжной защиты ключи могут храниться в аппаратных модулях безопасности (HSM), в доверенной вычислительной среде (TEE, напр. Intel SGX) или по протоколам многопартийных вычислений (MPC). Среди альтернатив — доверенный платформенный модуль (TPM)[9], виртуальные HSM («бедняцкие» HSM, pmHSM)[10], или энергонезависимые ПЛИС с архитектурой система на чипе[11]. Для проверки целостности ключа без раскрытия значений иногда применяется алгоритм KCV.
Основным вопросом является срок жизни ключа и частота его смены. Чем чаще происходит замена, тем выше безопасность, поскольку снижается объём информации, доступной злоумышленнику после получения ключа. Исторически симметричные ключи могли использоваться длительно, поскольку процесс их обмена был сложен и редко осуществим. Идеальной считается схема, при которой новый ключ используется для каждого сообщения; в этом случае вскрытие одного ключа не позволяет прочесть иные сообщения.
Проблемы и вызовы
К числу основных затруднений, с которыми сталкиваются организации, относятся:
- Масштабируемость: необходимость управлять большим количеством ключей.
- Безопасность: угроза как внешних атак, так и действий злоумышленников внутри организации.
- Доступность: обеспечение авторизованного доступа к данным.
- Разнородность: поддержка разных приложений, баз данных и стандартов.
- Управление: определение политик доступа и защиты данных[12]. Под управлением подразумевается также соблюдение нормативных требований по защите данных.
Соответствие требованиям
Соответствие управления ключами (compliance) означает наличие контроля, гарантий и возможности продемонстрировать защищённость ключей. Включает следующие аспекты:
- Физическая безопасность — самая очевидная сторона: запираемые серверные помещения, видеонаблюдение, защита бумажных копий и оборудования.
- Логическая безопасность — предотвращение кражи или несанкционированного доступа; обеспечение бесполезности данных без доступа к ключу.
- Кадровая безопасность — чёткое разграничение прав доступа, проверки биографических данных, ротация должностей[1].[13]
Соблюдение требований возможно в рамках национальных и международных стандартов и нормативов по защите информации, как то PCI DSS, Health Insurance Portability and Accountability Act, Sarbanes–Oxley Act, General Data Protection Regulation (GDPR)[14].
Системы управления и контроля
Система управления ключами (KMS — англ. key management system; также CKMS, EKMS) представляет собой комплексное решение для создания, распределения и управления криптографическими ключами для устройств и приложений. Такие системы обеспечивают весь жизненный цикл ключа — от безопасной генерации до ввода, хранения и замены на клиенте.
Многие приложения разрабатывают свой собственный инструментарий и протоколы управления ключами, однако с увеличением числа взаимосвязанных систем возникает необходимость стандартизированного обмена ключами между разными платформами. Для этого создаются протоколы стандартизированного обмена и управления криптографическими ключами.
KMIP — расширяемый протокол управления ключами, разрабатываемый в рамках организации OASIS. Первая версия появилась в 2010 году, последующая эволюция реализуется рабочими комитетами.
KMIP позволяет создавать ключи и распределять их между различными программными системами, стандартизируя при этом весь жизненный цикл как симметричных, так и асимметричных ключей, включая обёртывание, схемы предоставления и криптографические операции с сопутствующими метаданными.
Для протокола реализовано множество тестов на совместимость, регулярные межсистемные испытания.
Список около 80 продуктов, реализующих KMIP, опубликован на сайте OASIS.
- Barbican (API безопасности для OpenStack)[19]
- KeyBox — веб-система для доступа по SSH и управления ключами[20].
- EPKS — Echo Public Key Share, p2p-система обмена ключами шифрования[21].
- Kmc-Subset137[22] — система управления ключами по стандарту UNISIG Subset-137[23] для железных дорог ERTMS/ETCS.
- privacyIDEA — двухфакторная система с поддержкой управления SSH-ключами[24].
- StrongKey — последний релиз на SourceForge датируется 2016 годом[25].
- Vault — сервер секретов от HashiCorp[26].
- NuCypher
- SecretHub — end-to-end SaaS для управления ключами
- Infisical — открытая платформа для хранения секретов
- Amazon Web Services (AWS) Key Management Service (KMS)[27]
- Bell ID Key Manager[28]
- Bloombase KeyCastle
- Cryptomathic CKMS[29]
- Doppler SecretOps Platform[30]
- Encryptionizer Key Manager (только под Windows)
- Google Cloud Key Management
- IBM Cloud Key Protect[31]
- Microsoft Azure Key Vault
- Porticor Virtual Private Data[32]
- SSH Communications Security Universal SSH Key Manager[33]
- CipherTrust Manager
- Akeyless Vault[34]
Политика безопасности системы управления ключами (по определению NIST) определяет правила защиты ключей и метаданных на протяжении всего жизненного цикла:[13][35]
- Конфиденциальность
- Целостность
- Доступность
- Аутентификация источника
Эта защита охватывает весь жизненный цикл ключа — от момента начала эксплуатации до его уничтожения[1].
Модель BYOE (Bring Your Own Encryption)—или BYOK (Bring Your Own Key)—позволяет заказчикам облачных сервисов использовать собственное ПО для шифрования и самостоятельно управлять своими криптоключами.
Обычно данная концепция рассматривается лишь как маркетинговый ход, поскольку критически важные ключи всё равно оказываются у сторонних поставщиков (облачных провайдеров), а генерацию, ротацию и распространение приходится обеспечивать самим клиентам.
Инфраструктура открытых ключей — разновидность системы управления ключами, использующая иерархию цифровых сертификатов для аутентификации и открытых ключей для шифрования. PKI-системы широко применяются в системах веб-трафика, включая протоколы SSL и TLS.
Групповое управление ключами — предоставление и обновление ключей для участников коллективных коммуникаций (обычно с использованием мультикаста). Для повышения безопасности участники группы получают индивидуальные ключи, которые используются для шифрования сообщений. Вопросы архитектуры таких систем детально рассмотрены в RFC 4046 (Multicast Security MSEC Group Key Management Architecture)[36].
Примечания
Литература
- Barker, Elaine (2020). “Recommendation for key management”. DOI:10.6028/NIST.SP.800-57pt1r5.
Ссылки
- Криптографический инструментарий NIST
- Рабочая группа IEEE Security in Storage Working Group (SISWG), стандарт P1619.3 по управлению ключами
- Американский институт стандартов ANSI X9.24 (симметричное управление ключами для ритейла)
- Комитет OASIS по протоколу KMIP
- Комитет OASIS по инфраструктуре управления ключами
- Управление ключами с помощью мощного хранилища (статья P6R)
- Система KeyGuard для интеллектуального управления ключами
- IBM Security Key Lifecycle Manager (SKLM)
- NeoKeyManager — Hancom Intelligence Inc.
- KMS Key


