Согласование ключей

Простыми словами

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

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

Как применяется

Согласование применяется в защищённых соединениях и других протоколах, где участникам нужны общие сеансовые ключи. Алгоритм, параметры, выработка итоговых ключей и подтверждение участников задаются полной схемой протокола.

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

Пример применения

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

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

Не путать с

  • Транспорт ключаОдна сторона формирует ключ и защищённо доставляет другой. При согласовании общий материал получается с участием обеих сторон.
  • АутентификацияПодтверждает участника. Согласование получает общий секрет, но без подходящей проверки не устанавливает нужную идентичность.
  • Закрытый ключМожет использоваться для определённых операций участника. Его назначение и связь с сеансовым ключом зависят от алгоритма и протокола.

Как это работает

  1. Определить схемуСтороны выбирают разрешённый алгоритм и параметры в рамках протокола. Проверяют совместимость и требования к аутентификации.
  2. Обменяться значениямиФормируют необходимые временные секреты и передают допустимые открытые значения. Полученные данные проверяют по правилам схемы.
  3. Получить ключиВычисляют общий материал и вырабатывают из него ключи нужного назначения с учётом контекста соединения.
  4. Подтвердить участниковЗавершают предусмотренные проверки аутентификации и сообщений. Только после успешной проверки используют соединение для данных.

Связанные термины

Частые вопросы

Diffie–Hellman сам подтверждает личность стороны?

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

Общий секрет всегда сразу становится ключом шифрования?

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

Любое согласование даёт прямую секретность?

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

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