Совершенная прямая секретность
Совершенная прямая секретность (англ. 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) процесс выглядит следующим образом:
- Генерация эфемерных ключей: Для каждого нового сеанса связи клиент и сервер независимо генерируют временную пару ключей (открытый и закрытый) для обмена Диффи — Хеллмана. Закрытый эфемерный ключ существует только в оперативной памяти и уничтожается сразу после завершения сеанса.
- Обмен эфемерными открытыми ключами: Стороны обмениваются своими эфемерными открытыми ключами. Этот обмен может быть подписан долговременным ключом сервера (для аутентификации), но сам эфемерный закрытый ключ не передаётся.
- Вычисление общего секрета: Используя свой эфемерный закрытый ключ и полученный от другой стороны эфемерный открытый ключ, каждая сторона вычисляет общий секретный сеансовый ключ. Благодаря математическим свойствам протокола Диффи — Хеллмана, обе стороны получают одинаковый ключ, который не может быть вычислен перехватчиком, не имеющим эфемерных закрытых ключей.
- Уничтожение эфемерных ключей: После установления сеанса обе стороны уничтожают свои эфемерные закрытые ключи.
В результате, даже если злоумышленник перехватил весь трафик и позднее получил долговременный закрытый ключ сервера, он не сможет вычислить сеансовые ключи, так как для этого потребуются уже уничтоженные эфемерные закрытые ключи.
Классификация и виды
Совершенная прямая секретность может быть реализована на основе различных криптографических алгоритмов:
- DHE (Diffie-Hellman Ephemeral): Использует классический протокол Диффи — Хеллмана над конечными полями. Обеспечивает PFS, но требует значительных вычислительных ресурсов и имеет относительно большие размеры ключей.
- ECDHE (Elliptic Curve Diffie-Hellman Ephemeral): Использует эллиптические кривые. Обеспечивает тот же уровень безопасности при меньшем размере ключей и более высокой скорости вычислений. Является предпочтительным и наиболее распространённым методом в современных реализациях TLS.
- PSK-DHE (Pre-Shared Key Diffie-Hellman Ephemeral): Вариант для систем с предварительно распределёнными ключами, где эфемерный обмен добавляется для обеспечения PFS поверх общего секрета.
Применение в современных протоколах
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 имеет ряд недостатков:
- Вычислительная сложность: Генерация эфемерных ключей для каждого сеанса требует дополнительных вычислительных ресурсов, что может быть проблемой для серверов с высокой нагрузкой. Однако с развитием аппаратного обеспечения (особенно поддержки эллиптических кривых на уровне процессора) эта проблема становится менее значимой.
- Увеличение времени установления соединения: Процесс обмена эфемерными ключами добавляет дополнительные раунды сетевого обмена, что незначительно увеличивает время первого соединения (handshake).
- Проблемы с кэшированием и балансировкой нагрузки: В некоторых архитектурах (например, при использовании балансировщиков нагрузки с сохранением сессий) реализация PFS может быть сложнее, так как эфемерные ключи не могут быть сохранены на постоянной основе.
- Невозможность аудита прошлого трафика: Для организаций, которым требуется возможность расшифровки ранее записанного трафика (например, для расследования инцидентов), PFS является препятствием, так как делает невозможным восстановление сеансовых ключей после их уничтожения.
Интересные факты
- Термин «Perfect Forward Secrecy» иногда критикуется за слово «Perfect» (совершенная), так как на практике PFS не защищает от компрометации сеансового ключа во время его использования или от атак на протокол. Более точным, но менее распространённым является термин «Forward Secrecy» (прямая секретность).
- Внедрение PFS в протокол TLS было одним из ключевых требований спецслужб ряда стран, которые выступали против него, так как оно затрудняло возможность перехвата и дешифровки трафика в рамках программ массовой слежки.
- В 2014 году компания Google первой среди крупных интернет-компаний полностью перевела свой поисковый сервис на использование PFS, что послужило толчком для массового внедрения этой технологии в интернете.
Источники
- Diffie, W., van Oorschot, P. C., & Wiener, M. J. (1992). Authentication and authenticated key exchanges. Designs, Codes and Cryptography.
- 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.
- Rescorla, E. (2018). The Transport Layer Security (TLS) Protocol Version 1.3. RFC 8446.
- Marlinspike, M., & Perrin, T. (2016). The X3DH Key Agreement Protocol. Signal Messenger.
- 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 →