0Pricing
Cryptology Academy · Урок

Почему шифрование с последующим MAC лучше обратного порядка

Разберитесь в криптографическом обосновании правильного порядка объединения шифрования и аутентификации

«Почему шифрование с последующим MAC лучше обратного порядка» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Три порядка сочетания

При сочетании шифрования и MAC возможны три порядка: шифрование, затем MAC (EtM); MAC, затем шифрование (MtE); шифрование и MAC (E&M). Каждый из них обладает принципиально разными свойствами безопасности, и только один доказуемо безопасен во всех случаях.

Шифрование, затем MAC

При схеме шифрования с последующим MAC (EtM) открытый текст сначала шифруется, чтобы получить шифртекст, а затем MAC вычисляется для этого шифртекста. Получатель может проверить MAC до попытки расшифрования, поэтому изменённое сообщение немедленно отклоняется и не раскрывает никакой информации.

MAC, затем шифрование

При схеме MAC с последующим шифрованием (MtE) MAC вычисляется для открытого текста, после чего открытый текст и MAC шифруются вместе. Получатель должен расшифровать сообщение, прежде чем сможет проверить MAC, что открывает возможность атак с использованием оракула дополнения и оракула расшифрования.

Уязвимость SSL 3.0 и TLS 1.0

SSL 3.0 и TLS 1.0 использовали порядок MAC с последующим шифрованием для блочных шифров в режиме CBC. Этот недостаток конструкции использовали в атаке BEAST в 2011 году и атаке POODLE в 2014 году. Обе атаки задействовали оракул, возникающий, когда расшифрование выполняется до проверки MAC.

Доказательство Белларе — Нампремпре

В 2000 году Белларе и Нампремпре формально доказали, что из трёх порядков сочетания только шифрование с последующим MAC обеспечивает безопасность IND-CCA2 (защиту от атак с выбранным шифртекстом) для любых сочетаний надёжных примитивов шифрования и MAC. MtE и E&M могут оказаться небезопасными в определённых сочетаниях.

Шифрование и MAC в SSH

SSH использует схему шифрования и MAC: MAC вычисляется для открытого текста и передаётся вместе с шифртекстом в открытом виде. Хотя SSH не подвергался таким же атакам, как SSL/TLS при использовании MtE, эта схема также теоретически небезопасна, поскольку незашифрованный MAC может раскрывать информацию об открытом тексте.

AEAD как безопасная абстракция

Аутентифицированное шифрование со связанными данными (AEAD) — это современная абстракция, которая изначально решает проблему сочетания примитивов. AEAD объединяет шифрование и аутентификацию в одном примитиве, гарантируя их правильное сочетание и избавляя разработчика от необходимости выбирать порядок сочетания.

AES-GCM: стандарт AEAD

AES-GCM (режим Галуа/счётчика) — наиболее широко применяемый набор шифров AEAD. Он обеспечивает аутентифицированное шифрование за счёт сочетания шифрования в режиме CTR и аутентификации GHASH, а на современных процессорах получает аппаратное ускорение благодаря инструкциям AES-NI и CLMUL.

TLS 1.3 требует только AEAD

TLS 1.3 решительно порвал с прошлым, удалив все наборы шифров, не использующие AEAD. Каждый набор шифров TLS 1.3 использует AEAD, устраняя целые категории уязвимостей, вызванных неправильным ручным сочетанием примитивов шифрования и MAC, которые преследовали более ранние версии TLS.

Не следует сочетать примитивы вручную

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

Практические рекомендации

При создании систем сегодня всегда выбирайте примитив AEAD, например AES-GCM или ChaCha20-Poly1305. Если необходимо обеспечить взаимодействие с устаревшими системами, использующими отдельные MAC и шифрование, убедитесь, что применяется порядок шифрования с последующим MAC, а не MtE или E&M.

Проверка EtM и MtE

Какое утверждение правильно описывает различие в безопасности между шифрованием с последующим MAC и MAC с последующим шифрованием?

Итоги урока: порядок сочетания имеет значение

EtM — единственный доказуемо безопасный порядок сочетания отдельных примитивов шифрования и MAC. TLS 1.3 полностью устраняет эту проблему, требуя наборы шифров только с AEAD. Если Вы сомневаетесь, используйте примитив AEAD, например AES-GCM или ChaCha20-Poly1305, и позвольте библиотеке правильно выполнить сочетание примитивов.

Часто задаваемые вопросы

Урок «Почему шифрование с последующим MAC лучше обратного порядка» бесплатный?

Да — полный текст урока «Почему шифрование с последующим MAC лучше обратного порядка» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Почему шифрование с последующим MAC лучше обратного порядка»?

Разберитесь в криптографическом обосновании правильного порядка объединения шифрования и аутентификации Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Почему шифрование с последующим MAC лучше обратного порядка»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Почему шифрование с последующим MAC лучше обратного порядка
  2. Режим SIV: AEAD с защитой от ошибок использования nonce
  3. AEGIS: высокоскоростное аутентифицированное шифрование
  4. Выбор AEAD для промышленных систем
← Назад к Cryptology Academy