Раскрыты детали новой атаки на различные реализации TLS

10 февраля 2019 года

Исследователи из компании NCC Group раскрыли (Архивная копия от 25 апреля 2020 на Wayback Machine) сведения ( PDF) о новой атаке по сторонним каналам, позволяющей через анализ остаточных данных в процессорном кэше восстановить содержимое, передаваемое через каналы связи, зашифрованные при помощи протоколов TLS и QUIC. С некоторыми оговорками атака затрагивает и протокол TLS 1.3.

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

Атака позволяет восстановить шифротекст, зашифрованный при помощи RSA-ключа, через анализ добавочного заполнения (padding oracle), используемого для выравнивания зашифрованных данных по границе блока. Принцип атаки основан на методе, предложенном Даниэлем Блейхенбахером (Daniel Bleichenbacher) в 1998 году, суть которого в том, что атакующий на основании разных ответов от сервера может отделить корректные и некорректные блоки добавочного заполнения (padding oracle) в режиме PKCS #1 v1.5. Манипулируя информацией о корректности блоков добавочного заполнения атакующий может путём перебора определить содержимое шифротекста.

Так как утечки состояний на основе активности сервера уже давно блокированы в реализациях криптографических библиотек, в новой атаке для определения корректности блоков предлагается анализировать следы работы библиотек в процессорном кэше. Для атаки применимы различные техники извлечения остаточных данных из процессорного кэша, такие как Flush+Reload, Prime+Probe и методы на основе манипуляций с блоком предсказания переходов. Атака является достаточно эффективной и позволяет восстановить все 2048 бит шифротекста RSA за время, не превышающее 30 секунд.

Проблема была выявлена в ноябре 2018 года и сообщена разработчикам библиотек, но детали раскрыты только сейчас, после публикации исправлений. Проблема затрагивает реализации TLS в библиотеках OpenSSL, Amazon s2n, MbedTLS, Apple CoreTLS, Mozilla NSS, WolfSSL и GnuTLS. Не подвержены атаке оказались библиотеки BearSSL и BoringSSL. В TLS 1.3 не используется обмен ключами на основе RSA, поэтому для атаки на TLS 1.3 применяется обходной манёвр, позволяющий откатить шифрованное соединение на прошлую версию протокола через спуфинг TCP-пакетов.

Для атаки на клиентские браузеры может применяться метод, напоминающий атаки BEAST и POODLE, и требующий запуска подконтрольного атакующему JavaScript-кода в браузере жертвы (например, через подстановку кода в любой незашифрованный HTTP-ответ при наличии контроля за транзитным шлюзом). JavaScript-код используется для отправки на защищённый сайт, с которым работает жертва, фиктивных запросов с изначально известными контрольными метками, которые используются атакующим для воссоздания отдельных шифрованных блоков. Так как для успешной атаки необходимо проанализировать тысячи проверочных запросов, которые не удаётся отправить в рамках установленного в браузерах таймаута (обычно 30 секунд), предложен метод распараллеливания подобных запросов через их отправку к различным TLS-серверам, на которых используется сертификат с одним и тем же открытым ключом.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Раскрыты детали новой атаки на различные реализации TLS», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.