Аутентичное шифрование (AE) — это схема шифрования , которая одновременно обеспечивает конфиденциальность данных (также известную как приватность: зашифрованное сообщение невозможно понять без знания секретного ключа [1] ) и подлинность (другими словами, его невозможно подделать: [2] зашифрованное сообщение включает в себя тег аутентификации , который отправитель может вычислить, только обладая секретным ключом [1] ). Примерами режимов шифрования , которые обеспечивают AE, являются GCM , CCM . [1]
Многие (но не все) схемы AE позволяют сообщению содержать «ассоциированные данные» (AD), которые не являются конфиденциальными, но их целостность защищена (т. е. они читаемы, но их подделка будет обнаружена). Типичным примером является заголовок сетевого пакета , который содержит его адрес назначения. Для правильной маршрутизации пакета все промежуточные узлы на пути сообщения должны знать пункт назначения, но по соображениям безопасности они не могут обладать секретным ключом. [3] Схемы, которые позволяют ассоциированные данные, обеспечивают аутентифицированное шифрование с ассоциированными данными, или AEAD . [3]
Типичный программный интерфейс для реализации AE обеспечивает следующие функции:
Заголовочная часть предназначена для обеспечения подлинности и защиты целостности сетевых или хранилищных метаданных, для которых конфиденциальность не нужна, но подлинность желательна .
Необходимость в аутентифицированном шифровании возникла из наблюдения, что безопасное объединение отдельных режимов работы блочного шифра конфиденциальности и аутентификации может быть подвержено ошибкам и затруднено. [4] [5] Это было подтверждено рядом практических атак, внедренных в производственные протоколы и приложения из-за неправильной реализации или отсутствия аутентификации. [6]
Около 2000 года было предпринято несколько попыток стандартизации режимов, гарантирующих правильную реализацию. В частности, большой интерес к возможно безопасным режимам возник после публикации в 2000 году режимов CBC с учетом целостности и параллельного режима IAPM Чаранджита Джутлы [7] (см. OCB и хронологию [8] ). Шесть различных аутентифицированных режимов шифрования (а именно режим offset codebook 2.0 , OCB 2.0; Key Wrap ; counter with CBC-MAC , CCM; encrypt then authenticate then translate , EAX; encrypt-then-MAC , EtM; и режим Galois/counter , GCM) были стандартизированы в ISO/IEC 19772:2009. [9] В ответ на запрос NIST были разработаны дополнительные аутентифицированные методы шифрования . [10] Функции Sponge могут использоваться в дуплексном режиме для обеспечения аутентифицированного шифрования. [11]
Белларе и Нампремпре (2000) проанализировали три композиции примитивов шифрования и MAC и продемонстрировали, что шифрование сообщения и последующее применение MAC к зашифрованному тексту (подход Encrypt-then-MAC) подразумевает безопасность против атаки с адаптивным выбранным зашифрованным текстом , при условии, что обе функции соответствуют минимальным требуемым свойствам. Кац и Юнг исследовали понятие под названием «неподделываемое шифрование» и доказали, что оно подразумевает безопасность против атак с выбранным зашифрованным текстом. [12]
В 2013 году был объявлен конкурс CAESAR для поощрения разработки аутентифицированных режимов шифрования. [13]
В 2015 году ChaCha20-Poly1305 был добавлен в качестве альтернативной конструкции AE для GCM в протоколах IETF .
Аутентифицированное шифрование с ассоциированными данными (AEAD) — это вариант AE, который позволяет включать в сообщение «ассоциированные данные» (AD, дополнительная неконфиденциальная информация, также известная как «дополнительные аутентифицированные данные», AAD). Получатель может проверить целостность как ассоциированных данных, так и конфиденциальной информации в сообщении. AD полезен, например, в сетевых пакетах , где заголовок должен быть виден для маршрутизации , но полезная нагрузка должна быть конфиденциальной, и оба требуют целостности и подлинности . Понятие AEAD было формализовано Рогауэем (2002). [3]
Первоначально AE был разработан в первую очередь для обеспечения целостности зашифрованного текста: успешная проверка тега аутентификации Алисой с использованием ее симметричного ключа K A указывает на то, что сообщение не было подделано злоумышленником Мэллори , который не обладает K A . Схемы AE обычно не обеспечивают ключевое обязательство , гарантию того, что расшифровка не будет выполнена для любого другого ключа. [14] По состоянию на 2021 год большинство существующих схем AE (включая очень популярную GCM) позволяют декодировать некоторые сообщения без ошибок, используя не только (правильный) K A ; в то время как их открытый текст, декодированный с использованием второго (неправильного) ключа K M , будет неверным, тег аутентификации все равно будет совпадать. [ необходима цитата ] Поскольку создание сообщения с таким свойством требует, чтобы Мэллори уже обладала как K A , так и K M , эта проблема может показаться чисто академической. [15] Однако при особых обстоятельствах можно организовать практические атаки против уязвимых реализаций. Например, если протокол аутентификации личности основан на успешной расшифровке сообщения, которое использует ключ на основе пароля, способность Мэллори создать одно сообщение, которое будет успешно расшифровано с использованием 1000 различных ключей, связанных со слабыми и, таким образом, известными ей потенциальными паролями, может ускорить ее поиск паролей почти в 1000 раз. Для успешной атаки по словарю Мэллори также нужна способность отличать успешную расшифровку Алисы от неудачной, например, из-за плохой конструкции протокола или реализации, превращающей сторону Алисы в оракула . Естественно, эта атака вообще не может быть реализована, когда ключи генерируются случайным образом. [16]
Первоначально передача ключей была изучена в 2010-х годах Абдаллой и др. [17] и Фаршимом и др. [18] под названием «надежное шифрование». [15] [19]
Чтобы смягчить описанную выше атаку без удаления «оракула», можно использовать AEAD с фиксацией ключа , которая не позволяет существовать этому типу созданных сообщений. AEGIS — это пример быстрого (если присутствует набор инструкций AES ) AEAD с фиксацией ключа. [20] Можно добавить фиксацию ключа к существующей схеме AEAD. [21] [22]
Сначала открытый текст шифруется, затем на основе полученного зашифрованного текста создается MAC. Зашифрованный текст и его MAC отправляются вместе. ETM является стандартным методом согласно ISO/IEC 19772:2009. [9] Это единственный метод, который может достичь наивысшего определения безопасности в AE, но это может быть достигнуто только тогда, когда используемый MAC является «строго неподдающимся подделке». [23]
IPSec принял EtM в 2005 году. [24] В ноябре 2014 года TLS и DTLS получили расширения для EtM с RFC 7366. Различные наборы шифров EtM существуют также для SSHv2 (например,[email protected]).
MAC создается на основе открытого текста, а открытый текст шифруется без MAC. MAC открытого текста и зашифрованный текст отправляются вместе. Используется, например, в SSH . [25] Несмотря на то, что подход E&M сам по себе не доказал свою полную неподдельность, [23] можно применить некоторые незначительные изменения к SSH , чтобы сделать его полностью неподдельным, несмотря на подход. [26]
MAC создается на основе открытого текста, затем открытый текст и MAC вместе шифруются для создания зашифрованного текста на основе обоих. Зашифрованный текст (содержащий зашифрованный MAC) отправляется. До TLS 1.2 все доступные наборы шифров SSL/TLS были MtE. [27]
MtE не доказал, что он сам по себе является строго неподдающимся подделке. [23] Реализация SSL/TLS была доказана как строго неподдающаяся подделке Кравчиком , который показал, что SSL/TLS был, по сути, безопасным из-за кодирования, используемого вместе с механизмом MtE. [28] Однако доказательство Кравчика содержит ошибочные предположения о случайности вектора инициализации (IV). Атака BEAST 2011 года использовала неслучайный цепочечный IV и сломала все алгоритмы CBC в TLS 1.0 и ниже. [29]
Кроме того, более глубокий анализ SSL/TLS смоделировал защиту как MAC-then-pad-then-encrypt, то есть открытый текст сначала дополняется до размера блока функции шифрования. Ошибки дополнения часто приводят к обнаруживаемым ошибкам на стороне получателя, которые в свою очередь приводят к атакам оракула дополнения , таким как Lucky Thirteen .
люди добились довольно плохих результатов, когда попытались объединить традиционную (только конфиденциальную) схему шифрования и код аутентификации сообщений (MAC)
Очень легко случайно объединить безопасные схемы шифрования с безопасными MAC и по-прежнему получать небезопасные аутентифицированные схемы шифрования.