Шифрование с проверкой подлинности ( AE ) и шифрование с проверкой подлинности со связанными данными ( AEAD ) — это формы шифрования, которые одновременно обеспечивают конфиденциальность и подлинность данных.
В дополнение к защите целостности и конфиденциальности сообщения шифрование с проверкой подлинности может обеспечить защиту от выбранной атаки с использованием зашифрованного текста.. В этих атаках злоумышленник пытается получить преимущество перед криптосистемой (например, информацию о секретном ключе дешифрования), отправляя тщательно подобранные зашифрованные тексты некоему «оракулу дешифрования» и анализируя расшифрованные результаты. Аутентифицированные схемы шифрования могут распознавать неправильно сконструированные зашифрованные тексты и отказываться их расшифровывать. Это, в свою очередь, не позволяет злоумышленнику запросить расшифровку любого зашифрованного текста, если только он не был правильно сгенерирован с использованием алгоритма шифрования, что означает, что открытый текст уже известен. Правильно реализованное аутентифицированное шифрование сводит на нет полезность оракула дешифрования, не позволяя злоумышленнику получить полезную информацию, которой у него еще нет.
Многие специализированные режимы шифрования с проверкой подлинности были разработаны для использования с симметричными блочными шифрами . Однако аутентифицированное шифрование может быть построено в общем случае путем объединения схемы шифрования и кода аутентификации сообщения (MAC) при условии, что:
Типичный программный интерфейс для реализации AE предоставляет следующие функции:
Часть заголовка предназначена для обеспечения аутентичности и защиты целостности метаданных сети или хранилища, для которых конфиденциальность не требуется, но желательна аутентичность.
Потребность в аутентифицированном шифровании возникла из наблюдения, что безопасное сочетание отдельных режимов работы блочного шифра конфиденциальности и аутентификации может быть подвержено ошибкам и затруднено. [1] [2] Это было подтверждено рядом практических атак, внедренных в рабочие протоколы и приложения из-за неправильной реализации или отсутствия аутентификации (включая SSL/TLS). [3]
Примерно в 2000 году был предпринят ряд усилий, направленных на стандартизацию режимов, обеспечивающих правильную реализацию. В частности, сильный интерес к возможно безопасным режимам был вызван публикацией в 2000 году Чаранджита Ютлы CBC с поддержкой целостности и параллелизируемых режимов с поддержкой целостности IAPM [4] (см. OCB и хронологию [5] ). Шесть различных режимов аутентифицированного шифрования (а именно: режим смещенной кодовой книги 2.0 , OCB 2.0; Key Wrap ; счетчик с CBC-MAC , CCM; шифрование, затем аутентификация, затем перевод , EAX; шифрование, затем MAC , EtM; и режим Галуа/счетчика ., GCM) были стандартизированы в ISO/IEC 19772:2009. [6] В ответ на запрос NIST были разработаны более аутентифицированные методы шифрования . [7] Функции Sponge можно использовать в дуплексном режиме для обеспечения шифрования с проверкой подлинности. [8]
Bellare и Namprempre (2000) проанализировали три комбинации примитивов шифрования и MAC и продемонстрировали, что шифрование сообщения и последующее применение MAC к зашифрованному тексту ( подход Encrypt-then-MAC ) предполагает защиту от атаки с адаптивным выбранным зашифрованным текстом , при условии, что оба функции удовлетворяют минимальным требуемым свойствам. Кац и Юнг исследовали это понятие под названием «не поддающееся подделке шифрование» и доказали, что оно подразумевает защиту от атак с выбранным шифротекстом. [9]
В 2013 году был объявлен конкурс на поощрение разработки режимов шифрования с проверкой подлинности. [10]
AEAD — это вариант AE, который позволяет получателю проверять целостность как зашифрованной, так и незашифрованной информации в сообщении. [11] AEAD привязывает связанные данные (AD) к зашифрованному тексту и к контексту, в котором они должны появляться, так что попытки «вырезать и вставить» действительный зашифрованный текст в другой контекст обнаруживаются и отвергаются.
Это требуется, например, для сетевых пакетов или фреймов, где заголовку нужна видимость, полезной нагрузке нужна конфиденциальность , а также целостность и подлинность .
Открытый текст сначала шифруется, затем на основе полученного зашифрованного текста создается MAC. Зашифрованный текст и его MAC отправляются вместе. Используется, например, в IPsec. [12] Стандартный метод согласно ISO/IEC 19772:2009. [6] Это единственный метод, который может обеспечить высочайшее определение безопасности в AE, но это может быть достигнуто только в том случае, если используемый MAC «абсолютно не поддается подделке». [13] В ноябре 2014 года расширение TLS и DTLS для EtM было опубликовано как RFC 7366 . Для SSHv2 также существуют различные наборы шифров EtM (например,[email protected]).
Обратите внимание, что разделение ключей является обязательным (для шифрования и хеширования с ключом должны использоваться разные ключи), в противном случае оно потенциально небезопасно в зависимости от конкретного метода шифрования и используемой хэш-функции. [14]
MAC создается на основе открытого текста, а открытый текст шифруется без MAC. MAC-адрес открытого текста и зашифрованный текст отправляются вместе. Используется, например, в SSH . [15] Несмотря на то, что подход E&M сам по себе не является полностью не поддающимся подделке, [13] можно применить некоторые незначительные модификации к SSH , чтобы сделать его строго не поддающимся подделке, несмотря на подход. [16]
MAC создается на основе открытого текста, затем открытый текст и MAC совместно шифруются для создания зашифрованного текста на основе обоих. Зашифрованный текст (содержащий зашифрованный MAC) отправляется. Используется, например, в SSL/TLS . [17] Несмотря на то, что подход MtE не был полностью защищен от подделки сам по себе, [13] реализация SSL/TLS была доказана Кравчиком, который показал, что SSL/TLS на самом деле был безопасным из-за кодирование, используемое вместе с механизмом MtE. [18] [ сомнительно
]Несмотря на теоретическую безопасность, более глубокий анализ SSL/TLS смоделировал защиту как MAC-затем-заполнение-затем-шифрование, т. е. открытый текст сначала дополняется до размера блока функции шифрования. Ошибки заполнения часто приводят к обнаруживаемым ошибкам на стороне получателя, что, в свою очередь, приводит к атакам оракула заполнения , таким как Lucky Thirteen .люди довольно плохо справлялись, когда пытались склеить традиционную (только конфиденциальную) схему шифрования и код аутентификации сообщений (MAC)
очень легко случайно скомбинировать безопасные схемы шифрования с безопасными MAC-адресами и все равно получить небезопасные схемы шифрования с проверкой подлинности.