Статья Bleichenbacher's and ROBOT attack

  • Автор темы Автор темы danbus
  • Дата начала Дата начала
В далёком 1998 году, когда везде использовался SSL 2.0/3.0 исследователь Daniel Bleichenbacher из Швейцарии опубликовал документ, содержащий атаки класса adaptive chosen-ciphertext attack, которые могут быть реализованы на практике.

Для последующего понимания атаки следует вспомнить некоторые термины:
  • PKCS#1 v1.5 (Public-Key Cryptography Standards #1 version 1.5) – схема дополнения, разработанная для шифрования и создания цифровой подписи с использованием криптосистемы RSA. Используется для большей защиты, так как сам по себе RSA недостаточно защищен, то есть добавляются ничего не значащие данные к зашифрованной информации, повышающие стойкость шифрования.

  • Оракул – абстрактная машина, которая может подтвердить или опровергнуть формализованное предположение.

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

Реализация атаки

Опубликованная исследователем атака получила название Bleichenbacher's Attack (также известна как «атака миллиона сообщений»).
  • Самым главным шагом для её реализации является поиск сервера, который использует для выработки сеансовых ключей SSL алгоритм RSA, согласно PKCS#1 v1.5.

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

  • Объединив ответы оракула, злоумышленник может расшифровать RSA-зашифрованный открытый текст побитно.
Таким образом, атака полностью нарушает конфиденциальность SSL при использовании RSA.

Уязвимость в алгоритме не исправили, но был выпущен ряд защитных мер, которые усложняли анализ ответа сервера и тем самым снизили вероятность данной атаки до сложно реализуемой.


Это еще не конец

Через 19 лет появляется новая возможность для реализации этой атаки и её называют Return Of Bleichenbacher’s Oracle Threat или же сокращенно ROBOT. Если вы подумали, что в названии есть связь с компанией Oracle, то её нет. Oracle здесь всё тот же оракул из вышерассмотренной атаки.

Атака возникла в связи с тем, что многие поставщики серверного оборудования не могут правильно реализовать раздел RFC 5246 стандарта TLS, который непосредственно связан с контрмерами против атаки Блейхенбахера. ROBOT отличается от своего предшественника тем, что может различать различные типы ошибок, такие как тайм-ауты, сброс соединения, дублирующиеся оповещения TLS. Конечно же, атака всё также позволяет злоумышленнику расшифровывать зашифрованные тексты или подписывать сообщения закрытым ключом сервера.

Однако в большинстве современных TLS-соединений используется обмен ключами Диффи-Хеллмана на эллиптических кривых, так как он считается более безопасным, тогда как ROBOT влияет только на режимы шифрования TLS, которые используют RSA. Так же следует уточнить, что данная атака никак не связана со стойкостью RSA и может быть применима к любым протоколам, использующим шифрование RSA PKCS #1 v1.5.

В качестве мер противодействия можно предложить использовать протокол TLS 1.3, так как он не подвержен данному типу атак.
Проверить уязвим ли сервер к данной атаке или нет можно с помощью скрипта, написанного на Python, которым любезно поделись исследователи данной атаки на своём GitHub. Так же проверку можно осуществить и с помощью tlsfuzzer.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!