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

Encrypt-then-MAC

Encrypt-then-MAC — это криптографический принцип построения аутентифицированного шифрования, при котором открытый текст сначала шифруется с использованием симметричного алгоритма (шифр), а затем к полученному шифротексту применяется код аутентификации сообщения (MAC) для обеспечения целостности и подлинности данных. Данный подход является одним из трёх основных способов комбинирования шифрования и аутентификации, наряду с принципами «Encrypt-and-MAC» и «MAC-then-Encrypt».

История и предпосылки

До широкого распространения концепции аутентифицированного шифрования в 1990-х годах криптографические системы часто использовали шифрование и аутентификацию как независимые этапы. Однако на практике это приводило к уязвимостям, связанным с возможностью модификации шифротекста без обнаружения. В 2000 году Хьюго Кравчик и Филип Рогэвей в работе «The Order of Encryption and Authentication for Protecting Communications (Or: How Secure is SSL?)» формально проанализировали три возможных порядка комбинирования и показали, что Encrypt-then-MAC является наиболее безопасным с точки зрения защиты от атак на основе подобранного шифротекста (CCA). Этот принцип лёг в основу многих современных стандартов, включая IPsec и некоторые режимы работы блочных шифров (например, GCM и CCM, хотя они реализуют аутентифицированное шифрование иначе).

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

Процесс Encrypt-then-MAC состоит из двух последовательных этапов:

  1. Шифрование: Открытый текст (plaintext) преобразуется в шифротекст (ciphertext) с помощью симметричного алгоритма шифрования (например, AES в режиме CBC или CTR). Для этого используется секретный ключ шифрования \( K_e \).
  1. Вычисление MAC: К полученному шифротексту применяется функция аутентификации (например, HMAC-SHA256 или CMAC). Для этого используется отдельный секретный ключ аутентификации \( K_m \). Результатом является тег аутентификации (MAC-значение), который прикрепляется к шифротексту.

Полученная пара (шифротекст, тег) передаётся получателю. При расшифровании получатель сначала проверяет тег аутентификации, используя ключ \( K_m \). Если тег не совпадает с вычисленным, данные считаются повреждёнными или поддельными и отбрасываются. Только после успешной проверки выполняется расшифрование с помощью ключа \( K_e \).

Ключевые особенности

Преимущества

  • Защита от атак на основе подобранного шифротекста: Поскольку MAC вычисляется от шифротекста, злоумышленник не может модифицировать зашифрованные данные без обнаружения. Любое изменение шифротекста приведёт к несоответствию тега, и расшифрование не будет выполнено.
  • Независимость ключей: Использование разных ключей для шифрования и аутентификации снижает риск компрометации одного из них. Даже если злоумышленник узнает ключ шифрования, он не сможет подделать тег без ключа аутентификации.
  • Совместимость с любыми алгоритмами: Принцип не привязан к конкретным криптографическим примитивам — можно комбинировать любой симметричный шифр с любой функцией MAC.

Недостатки

  • Дополнительные вычислительные затраты: Требуется два прохода по данным (сначала шифрование, затем вычисление MAC), что может быть менее эффективно, чем интегрированные режимы (например, GCM, где аутентификация выполняется параллельно).
  • Управление двумя ключами: Необходимость генерации и хранения двух ключей (шифрования и аутентификации) усложняет управление ключами.
  • Чувствительность к длине данных: В некоторых реализациях MAC может раскрывать информацию о длине открытого текста, если шифротекст не дополняется до фиксированного размера.

Сравнение с другими подходами

Encrypt-and-MAC

В этом подходе MAC вычисляется от открытого текста, а затем оба результата (шифротекст и MAC) передаются вместе. Основной недостаток — MAC может раскрывать информацию об открытом тексте, если он не является криптостойким (например, при использовании детерминированных алгоритмов). Этот метод применяется в протоколе SSH, но считается менее безопасным, чем Encrypt-then-MAC.

MAC-then-Encrypt

Здесь сначала вычисляется MAC от открытого текста, затем открытый текст и MAC шифруются вместе. Этот подход использовался в ранних версиях SSL/TLS. Его уязвимость заключается в том, что злоумышленник может модифицировать шифротекст, и при расшифровании ошибка может проявиться только на этапе проверки MAC, что может быть использовано для атак, таких как padding oracle attack. В современных версиях TLS (1.3) от этого подхода отказались в пользу Encrypt-then-MAC или интегрированных режимов.

Применение

  • IPsec: Протокол безопасности на сетевом уровне, используемый в VPN, реализует Encrypt-then-MAC в режиме ESP (Encapsulating Security Payload). Шифрование выполняется с помощью AES-CBC, а аутентификация — с помощью HMAC-SHA1 или HMAC-SHA256.
  • Протоколы передачи данных: Некоторые реализации протоколов, такие как OpenVPN, используют этот принцип для обеспечения конфиденциальности и целостности.
  • Криптографические библиотеки: Многие библиотеки (например, OpenSSL, libsodium) предоставляют функции для построения аутентифицированного шифрования по схеме Encrypt-then-MAC как альтернативу интегрированным режимам.

Критика и альтернативы

Несмотря на теоретическую безопасность, Encrypt-then-MAC имеет ограничения. В 2000-х годах были разработаны интегрированные режимы аутентифицированного шифрования, такие как GCM (Galois/Counter Mode) и CCM (Counter with CBC-MAC), которые выполняют шифрование и аутентификацию за один проход, что повышает производительность. Однако эти режимы требуют специальной реализации и могут быть уязвимы к атакам при неправильном использовании (например, повторное использование nonce в GCM). Encrypt-then-MAC остаётся предпочтительным выбором в системах, где требуется максимальная гибкость и совместимость с различными алгоритмами.

Источники

  • Krawczyk, H., & Rogaway, P. (2000). The Order of Encryption and Authentication for Protecting Communications (Or: How Secure is SSL?). Advances in Cryptology — CRYPTO 2000.
  • Bellare, M., & Namprempre, C. (2000). Authenticated Encryption: Relations among Notions and Analysis of the Generic Composition Paradigm. Advances in Cryptology — ASIACRYPT 2000.
  • Ferguson, N., & Schneier, B. (2003). Practical Cryptography. Wiley.
  • Menezes, A. J., van Oorschot, P. C., & Vanstone, S. A. (1996). Handbook of Applied Cryptography. CRC Press.
  • RFC 4303: IP Encapsulating Security Payload (ESP).

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

На главную BFOmetr →