Jump to content

Заполнение атаки оракула

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

Самая ранняя известная атака, в которой используется оракул заполнения, - это атака Блейхенбахера 1998 года, которая атакует RSA с заполнением PKCS # 1 v1.5 . [1] Термин «прокладочный оракул» появился в литературе в 2002 году. [2] после Сержа Водене атаки на режим дешифрования CBC, используемый в симметричных блочных шифрах . [3] Варианты обеих атак продолжают пользоваться успехом более чем через десять лет после их первоначальной публикации. [1] [4] [5]

Асимметричная криптография

[ редактировать ]

В 1998 году Дэниел Бляйхенбахер опубликовал основополагающую статью о так называемой атаке Блейхенбахера (также известной как «атака миллиона сообщений»). В атаке используется оракул заполнения против RSA с заполнением PKCS #1 v1.5 , но он не включает этот термин. Более поздние авторы классифицировали его атаку как атаку оракула. [1]

Мангер (2001) сообщает об атаке на замену заполнения PKCS #1 v1.5 на PKCS #1 v2.0 «OAEP». [6]

Симметричная криптография

[ редактировать ]

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

По сравнению с атакой Блейхенбахера на RSA с помощью PKCS #1 v1.5, атака Водене на CBC гораздо более эффективна. [1] Обе атаки нацелены на широко используемые в то время криптосистемы: CBC — это исходный режим, используемый в Secure Sockets Layer (SSL) и продолжающий поддерживаться в TLS. [4]

Был предпринят ряд мер по смягчению последствий, чтобы предотвратить работу программного обеспечения для дешифрования в качестве оракула, но новые атаки, основанные на времени, неоднократно восстанавливали этот оракул. TLS 1.2 представляет ряд методов шифрования с проверкой подлинности и дополнительными режимами данных, которые не полагаются на CBC. [4]

Заполнение атаки оракула на шифрование CBC

[ редактировать ]

Стандартная реализация дешифрования CBC в блочных шифрах заключается в расшифровке всех блоков зашифрованного текста, проверке заполнения, удалении заполнения PKCS7 и возврате открытого текста сообщения.Если сервер возвращает ошибку «недопустимое заполнение» вместо общей ошибки «не удалось расшифровать», злоумышленник может использовать сервер в качестве оракула заполнения для расшифровки (а иногда и шифрования) сообщений.

Математическая формула расшифровки CBC:

Как показано выше, расшифровка CBC выполняет XOR каждого блока открытого текста с предыдущим блоком.В результате однобайтовая модификация в блоке внесет соответствующее изменение в один байт в .

Предположим, злоумышленник имеет два блока зашифрованного текста. и хочет расшифровать второй блок, чтобы получить открытый текст .Злоумышленник меняет последний байт (создание ) и отправляет на сервер.Затем сервер возвращает, было ли заполнение последнего расшифрованного блока ( ) правильно (действительное заполнение PKCS#7).Если заполнение правильное, злоумышленник теперь знает, что последний байт является , последние два байта — 0x02, последние три байта — 0x03, … или последние восемь байтов — 0x08. Злоумышленник может изменить предпоследний байт (перевернуть любой бит), чтобы гарантировать, что последний байт равен 0x01. (В качестве альтернативы злоумышленник может перевернуть более ранние байты и выполнить двоичный поиск позиции для идентификации заполнения. Например, если изменение третьего с конца байта правильно, но изменение предпоследнего байта неверно, тогда известны два последних байта. быть 0x02, что позволяет расшифровать их оба.) Следовательно, последний байт равно .Если заполнение неверно, злоумышленник может изменить последний байт до следующего возможного значения.В лучшем случае злоумышленнику потребуется сделать 256 попыток, чтобы найти последний байт , 255 попыток для каждого возможного байта (256 возможных, минус одна по принципу ячейки ), плюс одна дополнительная попытка устранить неоднозначное дополнение. [7]

После определения последнего байта , злоумышленник может использовать ту же технику, чтобы получить предпоследний байт .Злоумышленник устанавливает последний байт к установив последний байт к .Затем злоумышленник использует тот же подход, описанный выше, на этот раз изменяя предпоследний байт до тех пор, пока заполнение не станет правильным (0x02, 0x02).

Если блок состоит из 128 бит ( например, AES ), что составляет 16 байт, злоумышленник получит открытый текст. не более чем за 256⋅16 = 4096 попыток. Это значительно быстрее, чем попытки, необходимые для подбора 128-битного ключа.

Шифрование сообщений с помощью атаки оракула Padding (CBC-R)

[ редактировать ]

CBC-R [8] превращает оракул дешифрования в оракул шифрования и в первую очередь демонстрируется против оракулов заполнения.

Используя атаку оракула заполнения, CBC-R может создать вектор инициализации и блок зашифрованного текста для любого открытого текста:

  • расшифровать любой зашифрованный текст P i = PODecrypt( C i ) XOR C i-1 ,
  • свободно выбрать предыдущий шифрблок C x-1 ,
  • создать действительную пару зашифрованный/открытый текст C x-1 = P x XOR PODecrypt( C i ) .

Чтобы сгенерировать зашифрованный текст длиной N блоков, злоумышленник должен выполнить N атак оракула заполнения. Эти атаки объединены в цепочку, так что правильный открытый текст создается в обратном порядке, от конца сообщения ( ) CN до начала сообщения ( C 0 , IV). На каждом этапе используется атака оракула заполнения для построения IV к предыдущему выбранному зашифрованному тексту.

Атака CBC-R не будет работать против схемы шифрования, которая аутентифицирует зашифрованный текст (с использованием кода аутентификации сообщения или аналогичного) перед расшифровкой.

Атаки с использованием оракулов заполнения

[ редактировать ]

Оригинальная атака на CBC была опубликована в 2002 году Сержем Водене . [3] Позже были реализованы конкретные примеры атаки на SSL. [9] и IPSec. [10] [11] Он также был применен к нескольким веб-фреймворкам , включая JavaServer Faces , Ruby on Rails. [12] и АСП.NET [13] [14] [15] а также другое программное обеспечение, например игровой клиент Steam . [16] В 2012 году была показана его эффективность против криптографических токенов PKCS 11 . [1]

Хотя эти более ранние атаки были исправлены большинством разработчиков TLS после его публичного объявления, новый вариант, атака Lucky Thirteen , опубликованная в 2013 году, использовала побочный канал синхронизации для повторного открытия уязвимости даже в ранее исправленных реализациях. По состоянию на начало 2014 года атака больше не считается угрозой в реальной эксплуатации, хотя теоретически она все еще работоспособна (см. Отношение сигнал/шум ) против определенного класса машин. По состоянию на 2015 год Наиболее активной областью разработки атак на криптографические протоколы, используемые для защиты интернет-трафика, являются атаки с понижением версии , такие как Logjam. [17] и экспортировать RSA/FREAK [18] атаки, которые обманом заставляют клиентов использовать менее безопасные криптографические операции, предусмотренные для совместимости с устаревшими клиентами, когда доступны более безопасные. Атака под названием ПУДЛ [19] (конец 2014 г.) сочетает в себе атаку на понижение версии (до SSL 3.0) с атакой оракула заполнения на старый небезопасный протокол, позволяющую скомпрометировать передаваемые данные. было обнаружено В мае 2016 года в CVE В 2016-2107 годах исправление Lucky Thirteen в OpenSSL представило еще один оракул заполнения на основе времени. [20] [21]

  1. ^ Jump up to: а б с д и Ромен Барду; Риккардо Фокарди; Юсуке Кавамото; Лоренцо Симионато; Грэм Стил; Джо-Кай Цай (2012). Эффективные атаки Oracle на криптографическое оборудование с заполнением . Рр-7944 (отчет). ИНРИА п. 19.
  2. ^ Блэк, Джон; Уртубия, Гектор (2002). Атаки по побочным каналам на симметричные схемы шифрования: аргументы в пользу шифрования с аутентификацией . Безопасность USENET '02.
  3. ^ Jump up to: а б Серж Водене (2002). Недостатки безопасности, вызванные приложениями CBC, заполняющими SSL, IPSEC, WTLS... (PDF) . EUROCRYPT 2002. Аналогичная модель атаки использовалась Блейхенбахером против PKCS#1 v1.5 [5] и Мангером против PKCS#1 v2.0 [13]. Эта статья показывает, что подобные атаки возможны в мире симметричных ключей.
  4. ^ Jump up to: а б с Салливан, Ник (12 февраля 2016 г.). «Заполнение оракулов и упадок наборов шифров в режиме CBC» . Блог Cloudflare .
  5. ^ Ханно Бек; Юрай Соморовский; Крейг Янг. «Атака роботов: возвращение угрозы оракула Бляйхенбахера» . Проверено 27 февраля 2018 г.
  6. ^ Мангер, Джеймс (2001). «Атака выбранного зашифрованного текста на оптимальное асимметричное зашифрование RSA (OAEP), стандартизированное в PKCS # 1 v2.0» (PDF) . Исследовательские лаборатории Телстра.
  7. ^ Является ли атака оракула заполнением детерминированной?
  8. ^ Джулиано Риццо; Тай Дуонг (25 мая 2010 г.). Практическое дополнение атак Oracle (PDF) . УСЕНИКС ВУТ 2010.
  9. ^ Брайс Канвел; Ален Хильтген; Серж Водене; Мартин Вуаньу (2003), Перехват пароля в канале SSL/TLS (PDF) .
  10. ^ Жан Поль Дегабриэль; Кеннет Г. Патерсон (2007 г.), Attacking the IPsec Standards in Encryption Configurations (PDF) , заархивировано из оригинала 19 декабря 2018 г. , получено 25 сентября 2018 г.
  11. ^ Жан Поль Дегабриэль; Кеннет Г. Патерсон (2010), О (не)безопасности IPsec в конфигурациях с последующим шифрованием MAC , CiteSeerX   10.1.1.185.1534 .
  12. ^ Джулиано Риццо; Тай Дуонг (25 мая 2010 г.). Практическое дополнение атак Oracle (PDF) . УСЕНИКС ВУТ 2010.
  13. ^ Тай Дуонг; Джулиано Риццо (2011). Криптография в Интернете: пример недостатков криптографического проектирования в ASP.NET (PDF) . Симпозиум IEEE по безопасности и конфиденциальности, 2011 г.
  14. ^ Деннис Фишер (13 сентября 2010 г.). « Криптоатака «Padding Oracle» затронула миллионы приложений ASP.NET» . Пост с угрозами . Архивировано из оригинала 13 октября 2010 года.
  15. ^ Влад Азархин (19 сентября 2010 г.). « Объяснение уязвимости ASP.NET «Padding Oracle»» . Архивировано из оригинала 23 октября 2010 года . Проверено 11 октября 2010 г.
  16. ^ «Взлом криптографии клиента Steam» . База данных Steam . Проверено 1 мая 2016 г.
  17. ^ Мэтью Грин; Надя Хенингер ; Пол Циммерман; и др. (2015), Несовершенная прямая секретность: как Диффи-Хеллман терпит неудачу на практике (PDF) . Для получения дополнительной информации см. https://www.weakdh.org. Архивировано 22 декабря 2019 г. на Wayback Machine .
  18. ^ Мэтью Грин (3 марта 2015 г.). «Атака недели: FREAK (или «факторинг АНБ ради удовольствия и прибыли»)» . ; см. на https://www.freakattack.com. Архивировано 5 марта 2015 г. на Wayback Machine . дополнительную информацию
  19. ^ Мэтью Грин (14 октября 2014 г.). «Атака недели: ПУДЛЬ» . ; дополнительную информацию см. на https://www.poodle.io.
  20. ^ Рекомендации по безопасности OpenSSL [3 мая 2016 г.] , 3 мая 2016 г.
  21. ^ Еще один оракул заполнения в OpenSSL CBC Ciphersuites , Cloudflare, 4 мая 2016 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3e5c08408987bf8a51f1889724301699__1716993540
URL1:https://arc.ask3.ru/arc/aa/3e/99/3e5c08408987bf8a51f1889724301699.html
Заголовок, (Title) документа по адресу, URL1:
Padding oracle attack - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)