Адаптивная атака с выбранным зашифрованным текстом (сокращенно CCA2 ) — это интерактивная форма атаки с выбранным зашифрованным текстом , при которой злоумышленник сначала отправляет несколько зашифрованных текстов для расшифровки, выбранных адаптивно, а затем использует результаты, чтобы различить целевой зашифрованный текст, не консультируясь с оракулом. на зашифрованном тексте вызова. При адаптивной атаке злоумышленнику дополнительно разрешается запрашивать адаптивные запросы после раскрытия цели (но целевой запрос запрещен). Это расширение атаки безразличного (неадаптивного) выбранного зашифрованного текста (CCA1), при которой второй этап адаптивных запросов не допускается. Чарльз Ракофф и Дэн Саймон определили CCA2 и предложили систему, основанную на неадаптивном определении CCA1 и системе Мони Наора и Моти Юнга (которая была первой трактовкой иммунитета к атакам с выбранным зашифрованным текстом в системах с открытым ключом).
В определенных практических ситуациях целью этой атаки является постепенное раскрытие информации о зашифрованном сообщении или о самом ключе дешифрования. Для систем с открытым ключом адаптивно выбранные зашифрованные тексты обычно применимы только тогда, когда они обладают свойством гибкости зашифрованного текста , то есть зашифрованный текст может быть изменен определенными способами, которые окажут предсказуемый эффект на расшифровку этого сообщения.
Атаки с использованием адаптивно выбранного зашифрованного текста, возможно, считались теоретической проблемой, но не проявлялись на практике до 1998 года, когда Дэниел Блейхенбахер (тогда из Bell Laboratories ) продемонстрировал практическую атаку на системы, использующие шифрование RSA совместно с Функция кодирования PKCS#1 v1.5 , включая версию протокола Secure Sockets Layer (SSL), используемую в то время тысячами веб-серверов . [1]
Атаки Блейхенбахера, также известные как атака миллиона сообщений, использовали недостатки функции заполнения PKCS #1 v1.5 для постепенного раскрытия содержимого зашифрованного сообщения RSA. В рамках этой функции заполнения дополненный открытый текст имеет фиксированный формат, которому он должен следовать. Если устройство дешифрования (например, веб-сервер, оснащенный SSL) каким-то образом обнаруживает, действительно ли заполнение, оно также служит «оракулом», раскрывающим информацию о секретном ключе. Чтобы найти весь ключ, необходимо отправить в цель несколько миллионов тестовых зашифрованных текстов. [2] На практике это означает, что сеансовый ключ SSL может быть предоставлен в течение разумного периода времени, возможно, за день или меньше.
С небольшими изменениями эта уязвимость все еще существует на многих современных серверах под новым названием «Возвращение угрозы Oracle Бляйхенбахера» (РОБОТ). [3]
Чтобы предотвратить атаки с адаптивно выбранным зашифрованным текстом, необходимо использовать схему шифрования или кодирования, которая ограничивает гибкость зашифрованного текста и является доказательством безопасности системы. После теоретической и базовой разработки безопасных систем CCA в модели Random Oracle был предложен ряд систем: наиболее распространенным стандартом шифрования RSA является оптимальное асимметричное заполнение шифрования (OAEP). В отличие от импровизированных схем, таких как заполнение, использовавшееся в ранних версиях PKCS#1, безопасность OAEP доказана в модели случайного оракула . [4] OAEP был включен в PKCS#1 начиная с версии 2.0, опубликованной в 1998 году, как рекомендуемый сейчас схема кодирования, при этом старая схема по-прежнему поддерживается, но не рекомендуется для новых приложений. [5] Однако золотым стандартом безопасности является демонстрация безопасности системы, не полагаясь на идеализацию случайного оракула. [6]
В криптографии с точки зрения теории сложности защита от атак с использованием адаптивного выбранного зашифрованного текста обычно моделируется с использованием неотличимости зашифрованного текста (IND-CCA2).