Открыть сервис

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

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

История возникновения и развития

Концепция прямой секретности была впервые предложена в 1992 году американским криптографом Уитфилдом Диффи (англ. Whitfield Diffie) в контексте протокола обмена ключами Диффи — Хеллмана (Diffie-Hellman, DH). Изначально идея заключалась в том, чтобы сделать каждый сеанс связи независимым от долговременных ключей, хранящихся на стороне участников. В 1995 году термин «Perfect Forward Secrecy» был введён в научный оборот в работе «Authentication and Authenticated Key Exchanges» (авторы — М. Белларе, Р. Кананти, Х. Кравчик).

До середины 2000-х годов PFS оставалась теоретической концепцией, редко применяемой на практике из-за вычислительных затрат. Ситуация изменилась после массовых утечек данных и разоблачений программ массовой слежки (например, разоблачения Эдварда Сноудена в 2013 году). Это привело к активному внедрению PFS в протоколы защищённой передачи данных, в первую очередь в TLS (Transport Layer Security) и IPsec.

Принцип работы

Основная идея PFS заключается в разделении долговременных ключей аутентификации и эфемерных сеансовых ключей шифрования.

Классическая схема без PFS

В традиционных протоколах (например, в ранних версиях TLS с фиксированным RSA-обменом ключами) сеансовый ключ шифруется с помощью открытого ключа сервера. Если злоумышленник перехватывает весь зашифрованный трафик, а затем каким-либо образом получает закрытый ключ сервера, он может расшифровать все ранее записанные сеансы. Это делает долговременный ключ «слабым звеном»: его компрометация делает уязвимым весь прошлый трафик.

Схема с PFS

При использовании PFS (например, в вариантах TLS с DHE — Ephemeral Diffie-Hellman или ECDHE — Elliptic Curve Diffie-Hellman) процесс выглядит следующим образом:

  1. Генерация эфемерных ключей: Для каждого нового сеанса связи клиент и сервер независимо генерируют временную пару ключей (открытый и закрытый) для обмена Диффи — Хеллмана. Закрытый эфемерный ключ существует только в оперативной памяти и уничтожается сразу после завершения сеанса.
  2. Обмен эфемерными открытыми ключами: Стороны обмениваются своими эфемерными открытыми ключами. Этот обмен может быть подписан долговременным ключом сервера (для аутентификации), но сам эфемерный закрытый ключ не передаётся.
  3. Вычисление общего секрета: Используя свой эфемерный закрытый ключ и полученный от другой стороны эфемерный открытый ключ, каждая сторона вычисляет общий секретный сеансовый ключ. Благодаря математическим свойствам протокола Диффи — Хеллмана, обе стороны получают одинаковый ключ, который не может быть вычислен перехватчиком, не имеющим эфемерных закрытых ключей.
  4. Уничтожение эфемерных ключей: После установления сеанса обе стороны уничтожают свои эфемерные закрытые ключи.

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

Классификация и виды

Совершенная прямая секретность может быть реализована на основе различных криптографических алгоритмов:

Применение в современных протоколах

TLS (Transport Layer Security)

PFS является критически важной функцией для безопасности веб-трафика. Начиная с версии TLS 1.3, использование PFS стало обязательным — в протоколе больше не поддерживаются статические обмены ключами (например, RSA). В TLS 1.2 и более ранних версиях PFS реализуется через наборы шифров (cipher suites), содержащие DHE или ECDHE (например, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256). С 2015 года крупнейшие веб-серверы и браузеры (Google, Mozilla, Cloudflare) активно перешли на приоритетное использование наборов шифров с ECDHE.

IPsec (Internet Protocol Security)

В протоколе IPsec PFS может быть включена в режиме основного обмена (Main Mode) при использовании протокола IKE (Internet Key Exchange). Она гарантирует, что компрометация долговременного ключа аутентификации не позволит расшифровать ранее установленные защищённые туннели.

Signal Protocol

Протокол Signal, используемый в мессенджерах Signal, WhatsApp, Skype (в режиме «Личный разговор») и Google Messages, реализует PFS на основе протокола обмена ключами X3DH (Extended Triple Diffie-Hellman) и протокола двойного храповика (Double Ratchet Algorithm). Это обеспечивает защиту не только от компрометации долговременного ключа, но и от компрометации сеансовых ключей (свойство «самоисцеления» — self-healing).

Критика и ограничения

Несмотря на высокий уровень безопасности, PFS имеет ряд недостатков:

Интересные факты

Источники

  1. Diffie, W., van Oorschot, P. C., & Wiener, M. J. (1992). Authentication and authenticated key exchanges. Designs, Codes and Cryptography.
  2. Bellare, M., Canetti, R., & Krawczyk, H. (1996). A modular approach to the design and analysis of authentication and key exchange protocols. Proceedings of the 28th Annual ACM Symposium on Theory of Computing.
  3. Rescorla, E. (2018). The Transport Layer Security (TLS) Protocol Version 1.3. RFC 8446.
  4. Marlinspike, M., & Perrin, T. (2016). The X3DH Key Agreement Protocol. Signal Messenger.
  5. Barker, E., & Kelsey, J. (2016). Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography. NIST Special Publication 800-56A Revision 3.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →