Протоколы распределения ключей

Протоколы распределения ключей

A.R.

Протокол распределения ключей

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

next slide

Классы протоколов распределения ключей

Протоколы распределения ключей подразделяются на два класса: протоколы транспортировки ключей и протоколы обмена ключами:

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

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


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

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


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

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

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

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

next slide

Основные свойства протоколов

К основным свойствам протоколов распределения ключей относят свойства аутентификации ключа, подтверждения ключа и явной аутентификации ключа.

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

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

  1. Вычисление хеш-кода ключа;
  2. Использование ключа в хеш-функции с ключом;
  3. Шифрование известной величины, используя ключ;
  4. Доказательства с нулевым разглашением знания

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

Явная аутентификация ключа — свойство, которое выполняется, когда имеют место (неявная) аутентификация ключа и подтверждение ключа одновременно.

Доп свойства:

Совершенная опережающая секретность (perfect forward secrecy). Протокол обладает свойством совершенной опережающей секретности, если компрометация долговременных ключей не компрометирует прошлые сеансовые ключи участников протокола.
Стойкость к атаке по известным ключам (known-key attack). Протокол уязвим к атаке по известным ключам, если компрометация прошлых сеансовых ключей позволяет либо компрометировать будущие сеансовые ключи пассивному противнику, либо деперсонифицировать протокол в будущем активному противнику. Это аналог атаки по известному открытому тексту (known-plaintext attack) на алгоритмы шифрования.

next slide

Методы анализа протоколов распределения ключей

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

Формальные методы анализа. Эта группа методов характеризуется тем, что готовые протоколы подвергаются анализу при помощи специальных математических и логических методов. Но анализируется не содержательная, а формальная сторона протокола, форма его построения, признаки и свойства, появляющиеся на каждом шаге выполнения протокола. Безусловным преимуществом этих методов является то, что они хорошо алгоритмизируются, что позволяет создавать автоматические программные анализаторы криптографических протоколов. Однако принципиальное их ограничение заключается в том, что они обнаруживают не все ошибки в анализируемых протоколах. Если при формальном анализе ошибки в протоколе обнаружены, это означает, что они в протоколе действительно есть и позволяют противнику строить соответствующие атаки на протокол. Если же они не обнаружены, это еще не значит, что их в протоколе действительно нет.

Методы доказательства безопасности. Эта группа методов — частный случай общего подхода, на котором базируется современная доказательно безопасная криптография. Напомним, что эта методология позволяет, в отличие от двух предыдущих, конструировать криптографические протоколы с заранее заданными свойствами безопасности.

next slide

Наиболее широко известные атаки на криптографические протоколы

Подмена — попытка подменить одного пользователя другим. Нарушитель, выступая от имени одной из сторон и полностью имитируя её действия, получает в ответ сообщения определенного формата, необходимые для подделки отдельных шагов протокола.
Методы противодействия состоят в:

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

Атака повтором — повторное использование ранее переданного в текущем или предыдущем сеансе сообщения или  его части в текущем сеансе протокола.

Например, повторная передача информации ранее проведенного протокола идентификации может привести к повторной успешной идентификации того же самого или другого пользователя.

В протоколах передачи ключей данная атака часто применяется для повторного навязывания уже использованного ранее сеансового ключа — атака на основе новизны.

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

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

Метод противодействия состоит в обеспечении целостности сеансов протоколов и отдельных сообщений

---------------------------------

Лягушка с открытым ртом

Протокол "Лягушка с открытым ртом"— простейший протокол управления ключами. Он позволяет двум абонентам установить общий сессионный ключ для защищенного общения между собой. В протоколе принимает участие доверенный центр.

Описание работы протокола

  • Алиса хочет установить сессионный ключ с Бобом. Она начинает, формируя:

1. K — случайный сеансовый ключ

2. TA — метку времени

и отправляет Тренту (доверенному центру), добавив своё имя:

M0 = A, EA (TA, B, K).

  • Трент, используя общий с Алисой секретный ключ, расшифровывает сообщение и проверяет правильность метки времени TA и идентификатора Боба. Если все хорошо, он формирует:

TB — новую метку времени (которая может отличаться от TA) и отправляет Бобу

M1 = EB (TB, A, K).

  • Боб получает сообщение, расшифровывает его общим с Трентом ключом и проверяет метку времени TA и идентификатор Алисы. Если сообщение прошло проверку, то теперь Боб имеет общий с Алисой ключ.