Mastodon Mastodon Mastodon Mastodon

Обмен ключами Диффи — Хеллмана

Обновлено: · CyberSecureFox Editorial Team

Обмен ключами Диффи — Хеллмана — метод, позволяющий двум сторонам договориться об общем секретном ключе по незащищённому каналу, ни разу не передавая сам ключ.

Как работает протокол Диффи — Хеллмана

Протокол опубликовали Уитфилд Диффи и Мартин Хеллман в 1976 году; это первый практический пример криптографии с открытым ключом. Стороны договариваются об открытых параметрах, каждая выбирает секретное число и отправляет другой вычисленное из него значение. Объединив свой секрет с полученным значением, обе приходят к одному результату, а перехватчику, который видит только переданные значения, пришлось бы решить задачу дискретного логарифмирования. Из общего секрета затем выводятся симметричные сеансовые ключи.

Современные системы в основном используют вариант на эллиптических кривых (ECDH), особенно X25519 (RFC 7748). Если для каждого сеанса генерируются новые ключи (DHE или ECDHE), последующая кража долговременного ключа сервера не раскрывает прошлый трафик — это свойство называют прямой секретностью (forward secrecy).

Почему это важно

Эфемерный обмен Диффи — Хеллмана обязателен в TLS 1.3 и используется в SSH, IPsec VPN, WireGuard и протоколе Signal. Его известные слабости хорошо изучены:

  • Нет собственной аутентификации — злоумышленник в позиции «человек посередине» может провести отдельный обмен с каждой стороной, поэтому значения нужно подписывать или привязывать к сертификатам.
  • Слабые группы — атака Logjam (2015) была атакой понижения версии, вынуждавшей TLS-серверы использовать 512-битные «экспортные» группы, которые быстро взламывались.
  • Квантовая угроза — алгоритм Шора взломает классический и эллиптический варианты, поэтому браузеры и мессенджеры уже комбинируют X25519 с постквантовым ML-KEM в гибридном обмене ключами.

Рекомендации

  • Использовать ECDHE с X25519 или NIST P-256 либо группы конечных полей не менее 2048 бит.
  • Отключить экспортные наборы шифров и статический (неэфемерный) обмен ключами.
  • Всегда аутентифицировать обмен сертификатами или закреплёнными ключами.
  • Включать гибридный постквантовый обмен ключами там, где он поддерживается.
Синонимы:
протокол диффи — хеллмана, протокол диффи-хеллмана, алгоритм диффи — хеллмана, diffie-hellman, обмен ключами диффи-хеллмана