KAP (Key-Agreement Protocol)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:00, 18 мая 2016.

Протокол выработки общего ключа (Key-agreement protocol) - тип протокола, позволяющий двум или более участникам установить общий ключ для дальнейшего общения по симметричному шифрованному каналу. В данную категорию входит множество различных протоколов, отличающихся по наличию аутентификации, использованию симметричного, ассиметричного или обоих типов шифрования, задействованию доверенной третьей стороны и тд.

Использование KAP

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

Ситуации, в которых используется KAP

  • Выработка ключа для общения пользователей, не имеющих общего секрета.

Если пользователи не имеют заранее установленного общего ключа, KAP позволяет им получить такой ключ. При этом, если выбранный алгоритм включает в себя аутентификацию, пользователи могут быть уверены, что после установки соединения в канале отсутствует посредник ("человек-в-середине")

  • Выработка сессионного ключа для пользователей, имеющих общий секрет.

Если пользователи обладают неким долговременным секретом, крайне нежелательно напрямую использовать его в качестве ключа шифрования: чем чаще используется конкретный ключ, тем больше вероятность скомпрометировать его. Многие атаки подразумевают наличие определённого количества шифртекстов, полученных с использованием одного ключа, так что чем меньше их будет, тем меньше вероятность взлома. Кроме того, при компрометации определённого сессионного ключа, все прочие сессии по-прежнему останутся защищёнными. Некоторые варианты реализации KAP позволяют устанавливать защищённое соединение даже если изначальный общий секрет (например, пароль), не является достаточно стойким (см. EKE).

Виды протоколов

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

Аутентификация

Самая первая проблема, с которой столкнулись разработчики протоколов выработки общего ключа (напр. протокол Диффи-Хеллмана) - атака "человек-в-середине" (Man-in-the-Middle, MITM). Так, при попытке установки соединения между пользователями и , злоумышленник может перехватить исходящий запрос , и вклиниться в процесс: представиться как для , и как для . В таком случае, генерирует устанавливает два различных ключа, и участвует как посредник: получив сообщение от одного из пользователей, он его расшифровывает ключом отправителя, затем зашифровывает ключом получателя, и отправляет дальше (выяснив таким образом содержание послания). Чтобы исключить эту атаку необходимо производить аутентификацию в процессе установки общего сессионного ключа: каждый пользователь должен быть уверен, что общается именно с тем, с кем предполагалось установить соединение. Обычно для этого используется доверенная третья сторона, которая может подтвердить цифровую подпись каждого из участников. Однако в некоторых случаях можно обойтись без третьей стороны (например, если пользователи имеют общий секрет, никому более не известный. Тогда знание этого секрета может служить подтверждением аутентификации).

Наличие третьей стороны

Как правило, третья сторона выполняет роль подтверждения цифровой подписи (выдаёт сертификаты) в системах с аутентификацией. Кроме того, она может брать на себя ответственность в безопасности сгенерированного ключа, поскольку пользователи могут быть некомпетентны в данном вопросе (некоторые криптосистемы требуют от ключа выполнения особых свойств). Основной проблемой является вопрос доверия третьей стороне. Проблема "подмены", когда злоумышленник пытается выдать себя за доверенную сторону, может быть решён (см. Needham–Schroeder), однако вопрос "честности" "легитимной" третьей стороны остаётся на совести реализующих всю систему.

Симметричность

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

Совершенная прямая секретность

Совершенная прямая секретность (Perfect forward secrecy) - свойство протокола, которое гарантирует, что если часть секрета, принадлежащая одному (или нескольким, но не всем) участнику, была скомпрометирована, то результирующий сессионный ключ останется не раскрыт. Очевидно, что данное свойство выполнимо только в случае, когда несколько пользователей участвуют в процессе выработки ключа.

Примеры протоколов

Существует множество различных протоколов выработки общего ключа. Вот некоторые из них:

Литература

  1. https://en.wikipedia.org/wiki/Key-agreement_protocol
  2. Whitfield Diffie, Paul C. Van Oorschot, Michael J. Wiener Authentication and authenticated key exchanges — Kluwer Academic Publishers, 1992. — DOI 10.1007/BF00124891
  3. Colin Boyd, Anish Mathuria Protocols for Authentication and Key Establishment. — Springer Science & Business Media, 2013. — ISBN 5-09-002630-0.
  4. А.В. Черемушкин Криптографические протоколы:основные свойства и уязвимости. — Издательство научно-технической литературы, 2009. — № 2.