Управление ключами относится к управлению криптографическими ключами в криптосистеме . Это включает в себя работу с генерацией, обменом, хранением, использованием, крипто-шреддингом (уничтожением) и заменой ключей. Это включает в себя разработку криптографического протокола , серверов ключей , пользовательских процедур и других соответствующих протоколов. [1] [2]
Управление ключами касается ключей на уровне пользователя, как между пользователями, так и между системами. Это отличается от планирования ключей , которое обычно относится к внутренней обработке ключей в ходе работы шифра.
Успешное управление ключами имеет решающее значение для безопасности криптосистемы. Это более сложная сторона криптографии в том смысле, что она включает аспекты социальной инженерии, такие как системная политика, обучение пользователей, организационные и ведомственные взаимодействия и координация между всеми этими элементами, в отличие от чисто математических практик, которые можно автоматизировать.
Криптографические системы могут использовать различные типы ключей, причем некоторые системы используют более одного. Они могут включать симметричные ключи или асимметричные ключи. В алгоритме симметричного ключа задействованные ключи идентичны как для шифрования, так и для дешифрования сообщения. Ключи должны быть тщательно выбраны, а также распределены и сохранены в безопасности. Асимметричные ключи, также известные как открытые ключи , напротив, представляют собой два отдельных ключа, которые математически связаны. Обычно они используются вместе для связи. Инфраструктура открытых ключей (PKI), реализация криптографии с открытым ключом, требует от организации создания инфраструктуры для создания и управления парами открытых и закрытых ключей вместе с цифровыми сертификатами. [3]
Начальной точкой любой стратегии управления сертификатами и закрытыми ключами является создание всеобъемлющего перечня всех сертификатов, их местоположений и ответственных сторон. Это не тривиальный вопрос, поскольку сертификаты из разных источников развертываются в разных местах разными лицами и группами — просто невозможно полагаться на список из одного центра сертификации . Сертификаты, которые не обновляются и не заменяются до истечения срока их действия, могут привести к серьезным простоям и сбоям. Некоторые другие соображения:
После инвентаризации ключей управление ключами обычно состоит из трех этапов: обмен, хранение и использование.
Перед любой защищенной связью пользователи должны настроить детали криптографии. В некоторых случаях это может потребовать обмена идентичными ключами (в случае системы с симметричным ключом). В других случаях это может потребовать обладания открытым ключом другой стороны. В то время как открытыми ключами можно открыто обмениваться (их соответствующий закрытый ключ хранится в секрете), симметричные ключи должны обмениваться по защищенному каналу связи. Раньше обмен такими ключами был чрезвычайно проблематичным и был значительно упрощен за счет доступа к защищенным каналам, таким как дипломатическая почта . Открытый текстовый обмен симметричными ключами позволил бы любому перехватчику немедленно узнать ключ и любые зашифрованные данные.
Развитие криптографии с открытым ключом в 1970-х годах сделало обмен ключами менее хлопотным. С тех пор как в 1975 году был опубликован протокол обмена ключами Диффи-Хеллмана , стало возможным обмениваться ключами по незащищенному каналу связи, что существенно снизило риск раскрытия ключа во время распространения. Можно, используя что-то вроде книжного кода , включать ключевые индикаторы в виде открытого текста, прикрепленного к зашифрованному сообщению. Метод шифрования, используемый кодировщиком Рихарда Зорге , был такого типа, ссылаясь на страницу в статистическом руководстве, хотя на самом деле это был код. Симметричный ключ шифрования немецкой армии Enigma был смешанного типа на раннем этапе своего использования; ключ представлял собой комбинацию тайно распределенных ключевых графиков и выбранного пользователем компонента сеансового ключа для каждого сообщения.
В более современных системах, таких как совместимые с OpenPGP системы, сеансовый ключ для алгоритма симметричного ключа распространяется в зашифрованном виде с помощью алгоритма асимметричного ключа . Такой подход позволяет избежать даже необходимости использования протокола обмена ключами, такого как обмен ключами Диффи-Хеллмана.
Другой метод обмена ключами включает инкапсуляцию одного ключа в другой. Обычно главный ключ генерируется и обменивается с использованием какого-либо безопасного метода. Этот метод обычно громоздкий или дорогой (например, разбиение главного ключа на несколько частей и отправка каждой с доверенным курьером) и не подходит для использования в больших масштабах. После того, как главный ключ был безопасно передан, его можно использовать для безопасного обмена последующими ключами с легкостью. Этот метод обычно называется key wrap . Распространенный метод использует блочные шифры и криптографические хэш-функции . [6]
Связанный метод заключается в обмене главным ключом (иногда называемым корневым ключом) и получении вспомогательных ключей по мере необходимости из этого ключа и некоторых других данных (часто называемых данными диверсификации). Наиболее распространенное применение этого метода, вероятно, в криптосистемах на основе смарт-карт , таких как те, что используются в банковских картах. Банк или кредитная сеть встраивают свой секретный ключ в защищенное хранилище ключей карты во время производства карты на защищенном производственном объекте. Затем в точке продажи карта и считыватель карт могут вывести общий набор сеансовых ключей на основе общего секретного ключа и данных, специфичных для карты (например, серийный номер карты). Этот метод также можно использовать, когда ключи должны быть связаны друг с другом (т. е. ведомственные ключи привязаны к дивизионным ключам, а индивидуальные ключи привязаны к ведомственным ключам). Однако привязка ключей друг к другу таким образом увеличивает ущерб, который может возникнуть в результате нарушения безопасности, поскольку злоумышленники узнают что-то более чем об одном ключе. Это снижает энтропию по отношению к злоумышленнику для каждого задействованного ключа.
В недавнем методе используется псевдослучайная функция, не учитывающая аутентичность, для выдачи ключей, при этом система управления ключами никогда не сможет увидеть ключи. [7]
Независимо от того, как распределены ключи, они должны храниться в безопасности для поддержания безопасности связи. Безопасность является большой проблемой [8] [9] , и поэтому существуют различные методы, используемые для этого. Вероятно, наиболее распространенным является то, что приложение шифрования управляет ключами для пользователя и зависит от пароля доступа для управления использованием ключа. Аналогично, в случае платформ доступа без ключа для смартфона, они хранят всю идентификационную информацию о двери на мобильных телефонах и серверах и шифруют все данные, где, как и в случае с низкотехнологичными ключами, пользователи передают коды только тем, кому доверяют. [8]
С точки зрения регулирования, лишь немногие из них подробно рассматривают хранение ключей. «Некоторые содержат минимальные указания, например «не храните ключи с зашифрованными данными» или предполагают, что «ключи следует хранить в безопасности». Заметными исключениями из этого являются PCI DSS 3.2.1, NIST 800-53 и NIST 800–57. [9]
Для оптимальной безопасности ключи могут храниться в аппаратном модуле безопасности (HSM) или защищаться с помощью таких технологий, как Trusted Execution Environment (TEE, например, Intel SGX ) или Multi-Party Computation (MPC). Дополнительные альтернативы включают использование Trusted Platform Modules (TPM), [10] виртуальных HSM, также известных как «Poor Man's Hardware Security Modules» (pmHSM), [11] или энергонезависимых Field-Programmable-Gate-Arrays (FPGA) с поддержкой конфигураций System-on-Chip . [12] Для проверки целостности хранящегося ключа без ущерба для его фактического значения можно использовать алгоритм KCV .
Основная проблема заключается в продолжительности использования ключа и, следовательно, в частоте его замены. Поскольку это увеличивает требуемые усилия любого злоумышленника, ключи следует часто менять. Это также ограничивает потерю информации, поскольку количество сохраненных зашифрованных сообщений, которые станут читаемыми при нахождении ключа, будет уменьшаться по мере увеличения частоты смены ключей. Исторически симметричные ключи использовались в течение длительных периодов в ситуациях, когда обмен ключами был очень затруднен или возможен только время от времени. В идеале симметричный ключ должен меняться с каждым сообщением или взаимодействием, так что только это сообщение станет читаемым, если ключ будет изучен ( например , украден, подвергнут криптоанализу или социальной инженерии).
ИТ-организации сталкиваются с рядом проблем при попытке контролировать и управлять своими ключами шифрования:
Соответствие управлению ключами относится к надзору, гарантии и возможности продемонстрировать, что ключи управляются безопасно. Это включает в себя следующие отдельные домены соответствия:
Соответствие может быть достигнуто в отношении национальных и международных стандартов и правил защиты данных , таких как Стандарт безопасности данных индустрии платежных карт , Закон о переносимости и подотчетности медицинского страхования , Закон Сарбейнса-Оксли или Общий регламент по защите данных . [15]
Система управления ключами (KMS), также известная как система управления криптографическими ключами (CKMS) или система управления корпоративными ключами (EKMS), представляет собой интегрированный подход к генерации, распространению и управлению криптографическими ключами для устройств и приложений. Они могут охватывать все аспекты безопасности — от безопасной генерации ключей и безопасного обмена ключами до безопасной обработки и хранения ключей на клиенте. Таким образом, KMS включает в себя внутреннюю функциональность для генерации, распространения и замены ключей , а также клиентскую функциональность для внедрения ключей, хранения и управления ключами на устройствах.
Многие конкретные приложения разработали свои собственные системы управления ключами с собственными протоколами. Однако, поскольку системы становятся все более взаимосвязанными, ключи должны быть общими для этих различных систем. Чтобы облегчить это, стандарты управления ключами были разработаны для определения протоколов, используемых для управления и обмена криптографическими ключами и связанной информацией.
KMIP — это расширяемый протокол управления ключами, разработанный многими организациями, работающими в рамках стандартизации OASIS . Первая версия была выпущена в 2010 году и была дополнительно разработана активным техническим комитетом.
Протокол позволяет создавать ключи и распределять их между разрозненными программными системами, которым необходимо их использовать. Он охватывает полный жизненный цикл как симметричных, так и асимметричных ключей в различных форматах, обертывание ключей, схемы предоставления и криптографические операции, а также метаданные, связанные с ключами.
Протокол подкреплен обширной серией тестовых случаев, и ежегодно проводится тестирование на совместимость между соответствующими системами.
Список из около 80 продуктов, соответствующих стандарту KMIP, можно найти на сайте OASIS.
Политика безопасности системы управления ключами обеспечивает правила, которые должны использоваться для защиты ключей и метаданных, которые поддерживает система управления ключами. Как определено Национальным институтом стандартов и технологий (NIST) , политика должна устанавливать и указывать правила для этой информации, которые будут защищать ее: [14]
Эта защита охватывает весь жизненный цикл ключа с момента его ввода в эксплуатацию до момента его уничтожения. [1]
Bring your own cryptoing (BYOE) — также называемый bring your own key (BYOK) — относится к модели безопасности облачных вычислений, позволяющей клиентам публичного облака использовать собственное программное обеспечение для шифрования и управлять собственными ключами шифрования. Эта модель безопасности обычно считается маркетинговым трюком, поскольку критически важные ключи передаются третьим лицам (поставщикам облачных услуг), а владельцы ключей по-прежнему несут операционную нагрузку по генерации, ротации и распространению своих ключей.
Инфраструктура открытого ключа — это тип системы управления ключами, которая использует иерархические цифровые сертификаты для аутентификации и открытые ключи для шифрования. PKI используются в трафике Всемирной паутины, обычно в форме SSL и TLS .
Управление групповыми ключами означает управление ключами в групповой коммуникации. Большинство групповых коммуникаций используют многоадресную коммуникацию, так что если сообщение отправлено отправителем один раз, оно будет получено всеми пользователями. Основная проблема многоадресной групповой коммуникации — ее безопасность. Для повышения безопасности пользователям предоставляются различные ключи. Используя ключи, пользователи могут шифровать свои сообщения и отправлять их тайно. IETF.org выпустил RFC 4046 под названием Multicast Security (MSEC) Group Key Management Architecture, в котором обсуждаются проблемы управления групповыми ключами. [55]
45.NeoKeyManager - Hancom Intelligence Inc.
В* Рабочая группа IEEE по безопасности в хранилищах (SISWG), которая создает стандарт P1619.3 для управления ключами