Адаптивная атака с выбранным зашифрованным текстом (сокращенно 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 Блейхенбахера» (ROBOT). [3]
Для предотвращения атак с адаптивным выбором шифротекста необходимо использовать схему шифрования или кодирования, которая ограничивает пластичность шифротекста и доказательство безопасности системы. После теоретической и базовой разработки безопасных систем CCA было предложено несколько систем в модели случайного оракула: наиболее распространенным стандартом для шифрования RSA является оптимальное асимметричное шифрование с заполнением (OAEP). В отличие от импровизированных схем, таких как заполнение, используемое в ранних версиях PKCS#1, OAEP доказал свою безопасность в модели случайного оракула , [4] OAEP был включен в PKCS#1 начиная с версии 2.0, опубликованной в 1998 году, как ныне рекомендуемая схема кодирования, при этом старая схема все еще поддерживается, но не рекомендуется для новых приложений. [5] Однако золотым стандартом безопасности является демонстрация безопасности системы без опоры на идеализацию случайного оракула. [6]
В криптографии, основанной на теории сложности, защита от атак с адаптивным выбором шифртекста обычно моделируется с использованием неразличимости шифртекста (IND-CCA2).