Введение

Адаптивная атака на выбранный шифротекст (сокращенно CCA2) — это интерактивная форма атаки на выбранный шифротекст, в которой злоумышленник сначала отправляет несколько шифротекстов для адаптивного расшифрования, а затем использует полученные результаты, чтобы отличить целевой шифротекст, не обращаясь к оракулу с запросом о расшифровке целевого шифротекста. В адаптивной атаке злоумышленнику также разрешено задавать адаптивные запросы после раскрытия цели (но запрос на расшифровку самой цели запрещен). Это расширение индифферентной (неадаптивной) атаки на выбранный шифротекст (CCA1), в которой второй этап адаптивных запросов не допускается. Чарльз Рэккофф и Дэн Саймон определили CCA2 и предложили систему, основанную на неадаптивном определении CCA1 и системе Мони Наора и Моти Юнга (которая стала первым рассмотрением устойчивости систем с открытым ключом к атакам на выбранный шифротекст). В определенных практических сценариях целью этой атаки является постепенное получение информации о зашифрованном сообщении или о самом ключе расшифрования. Для систем с открытым ключом адаптивные выбранные шифротексты обычно применимы только в том случае, если они обладают свойством изменяемости шифротекста, то есть шифротекст можно модифицировать определенным образом, что предсказуемо повлияет на расшифровку сообщения.

Практические атаки

Адаптированные атаки на выбранный шифротекст, возможно, рассматривались как теоретическая проблема, но не проявлялись на практике до 1998 года, когда Дэниел Блейхенбахер (в то время сотрудник Bell Laboratories) продемонстрировал практическую атаку на системы, использующие шифрование RSA в сочетании с функцией кодирования PKCS#1 v1.5, включая версию протокола Secure Sockets Layer (SSL), используемую тысячами веб-серверов в то время. Атаки Блейхенбахера, также известные как атака "миллион сообщений", использовали недостатки в функции дополнения PKCS#1 v1.5 для постепенного раскрытия содержимого зашифрованного сообщения RSA. Согласно этой функции дополнения, дополненный открытый текст должен иметь фиксированный формат. Если устройство дешифрования (например, веб-сервер с поддержкой SSL) каким-либо образом сообщает о валидности дополнения, оно также выступает в роли "оракула", раскрывающего информацию о секретном ключе. Для получения полного ключа требуется отправка нескольких миллионов тестовых шифротекстов целевой системе. На практике это означает, что ключ сеанса SSL может быть скомпрометирован за разумное время, возможно, за день или меньше. С незначительными изменениями эта уязвимость до сих пор существует на многих современных серверах под новым названием "Return Of Bleichenbacher's Oracle Threat" (ROBOT).

Предотвращение атак

Для предотвращения адаптивных атак на основе выбранного шифротекста необходимо использовать схему шифрования или кодирования, ограничивающую изменяемость шифротекста, а также доказательство безопасности системы. После теоретической разработки и создания основ систем, устойчивых к атакам CCA, в модели случайного оракула было предложено несколько систем: наиболее распространенным стандартом для шифрования RSA является схема оптимального асимметричного шифрования с дополнением (OAEP). В отличие от самодельных схем, таких как дополнение, использовавшееся в ранних версиях PKCS#1, безопасность OAEP была доказана в модели случайного оракула. OAEP была включена в PKCS#1 начиная с версии 2.0, опубликованной в 1998 году, как рекомендуемая схема кодирования, при этом более старая схема по-прежнему поддерживается, но не рекомендуется для новых приложений. Однако золотым стандартом безопасности является доказательство безопасности системы без использования идеализации случайного оракула.

Математическая модель

В теоретической криптографии сложности безопасность против атак адаптивно выбранного шифротекста обычно моделируется с помощью неразличимости шифротекстов (IND-CCA2).