Sweet32
Sweet32 — это атака на симметричные блочные шифры с размером блока 64 бита, использующая уязвимость, связанную с коллизиями шифротекста при шифровании в режиме сцепления блоков (CBC). Атака позволяет злоумышленнику, имеющему возможность многократно перехватывать зашифрованные данные, восстановить открытый текст, включая конфиденциальную информацию, такую как сессионные ключи или пароли. Sweet32 была впервые опубликована в 2016 году группой исследователей из INRIA (Французский национальный институт исследований в области информатики и автоматики) и Microsoft Research.
История
Предпосылки
Атака Sweet32 относится к классу атак на основе коллизий шифротекста, известных с 1990-х годов. В 2004 году была опубликована работа, демонстрирующая возможность восстановления данных при использовании шифров с 64-битным блоком в режиме CBC. Однако практическая реализация атаки требовала значительного объёма перехваченного трафика (порядка 2^32 блоков, что эквивалентно 32 ГБ данных), что делало её малозаметной в условиях реального времени.
Публикация
В 2016 году исследователи Каан Йылдыз, Кенни Паттерсон и Барт Пренел представили атаку Sweet32 на конференции ACM CCS (Conference on Computer and Communications Security). Они продемонстрировали, что современные вычислительные мощности и протоколы, такие как HTTPS и OpenVPN, позволяют злоумышленнику собирать необходимый объём данных за несколько часов или дней, в зависимости от пропускной способности канала. Атака получила название «Sweet32» как отсылку к 32-битному размеру блока.
Реакция сообщества
После публикации уязвимость получила идентификатор CVE-2016-2183 (для Triple DES) и CVE-2016-6329 (для Blowfish). Крупные поставщики программного обеспечения, включая OpenSSL, LibreSSL, Microsoft, Google и Mozilla, выпустили обновления, отключающие поддержку 64-битных шифров в своих продуктах. В 2017 году уязвимость была включена в список Top 25 наиболее опасных программных ошибок по версии MITRE.
Механизм атаки
Принцип коллизии
Симметричные блочные шифры с размером блока 64 бита (например, DES, 3DES, Blowfish, IDEA) имеют ограниченное пространство возможных значений шифротекста — 2^64 комбинаций. Согласно парадоксу дней рождения, вероятность коллизии (совпадения двух блоков шифротекста) превышает 50% после обработки примерно 2^32 блоков, что составляет 32 ГБ данных. При использовании режима CBC (Cipher Block Chaining) коллизия приводит к утечке информации: если два блока шифротекста совпадают, то XOR (исключающее ИЛИ) соответствующих блоков открытого текста равен XOR предыдущих блоков шифротекста.
Условия для атаки
Для успешной реализации атаки Sweet32 злоумышленнику необходимо:
- Возможность многократно перехватывать зашифрованные данные между клиентом и сервером (например, через прослушивание сети).
- Наличие в протоколе шифрования симметричного шифра с 64-битным блоком в режиме CBC.
- Способность инициировать отправку большого объёма данных (например, через внедрение JavaScript-кода на веб-страницу, который заставляет браузер отправлять множество запросов).
Этапы атаки
- Сбор данных: Злоумышленник перехватывает зашифрованный трафик, содержащий конфиденциальные данные (например, сессионные cookie). Для этого он может использовать уязвимости на стороне клиента (например, XSS — межсайтовый скриптинг) или манипулировать сетевым трафиком.
- Накопление коллизий: После сбора около 32 ГБ шифротекста (что при скорости 1 Мбит/с занимает около 3 дней) злоумышленник ищет коллизии — пары одинаковых блоков шифротекста.
- Восстановление данных: Используя математическую формулу для режима CBC, злоумышленник вычисляет XOR блоков открытого текста. Если один из блоков известен (например, фиксированная часть HTTP-запроса), то можно восстановить неизвестный блок (например, cookie).
Уязвимые протоколы и системы
Протоколы
Атака Sweet32 затрагивает протоколы, которые поддерживают шифры с 64-битным блоком в режиме CBC:
- HTTPS (TLS/SSL): Версии TLS 1.0, 1.1 и 1.2, если они используют шифры 3DES или Blowfish. TLS 1.3, выпущенный в 2018 году, исключил поддержку 64-битных шифров.
- IPsec: Протоколы, использующие 3DES в режиме CBC.
- OpenVPN: Конфигурации, где используется шифр Blowfish (по умолчанию в старых версиях).
- SSH: Некоторые реализации SSH поддерживают 3DES, хотя он редко используется.
- S/MIME: Шифрование электронной почты с использованием 3DES.
Программное обеспечение
- OpenSSL: Версии до 1.0.2i (2016) поддерживали 3DES и Blowfish. После обновления эти шифры были помечены как слабые.
- LibreSSL: Аналогичные изменения.
- Microsoft Windows: Версии до Windows 10 Anniversary Update (2016) поддерживали 3DES в Schannel (библиотека TLS).
- Браузеры: Google Chrome, Mozilla Firefox и Microsoft Edge отключили поддержку 3DES и Blowfish после 2016 года.
- VPN-клиенты: OpenVPN версий до 2.4 (2017) использовали Blowfish по умолчанию.
Последствия
Утечка конфиденциальных данных
Основная опасность атаки Sweet32 — возможность восстановления сессионных cookie, паролей или других аутентификационных данных, передаваемых в зашифрованном виде. Это позволяет злоумышленнику перехватить сессию пользователя (например, в веб-приложении) и получить несанкционированный доступ к его аккаунту.
Ограничения
Атака требует значительного объёма данных (32 ГБ) и времени (от нескольких часов до дней). Она не является мгновенной и не подходит для атак в реальном времени. Кроме того, для успеха необходимо, чтобы целевой трафик содержал повторяющиеся блоки (например, в HTTP-запросах с фиксированными заголовками).
Меры защиты
Отключение уязвимых шифров
Основная рекомендация — отключить поддержку шифров с 64-битным блоком (3DES, Blowfish, IDEA) на стороне сервера и клиента. В современных системах (после 2017 года) это сделано по умолчанию. Для администраторов серверов рекомендуется:
- В настройках TLS (например, в Apache, Nginx, IIS) указать список шифров, исключающий 3DES и Blowfish.
- Использовать шифры с 128-битным блоком (AES, ChaCha20) или режимы, устойчивые к коллизиям (например, GCM — Galois/Counter Mode).
Обновление программного обеспечения
- Установить последние версии OpenSSL (1.1.0 и выше), LibreSSL, OpenVPN и других библиотек.
- Применить обновления операционной системы и браузеров.
- Для VPN-соединений перейти на шифры AES-256-GCM или ChaCha20-Poly1305.
Мониторинг трафика
Администраторам сетей рекомендуется отслеживать использование устаревших шифров в журналах серверов и блокировать соединения, использующие 3DES или Blowfish.
Критика и ограничения
Практическая реализуемость
Некоторые эксперты отмечают, что атака Sweet32 требует значительных ресурсов (32 ГБ трафика) и времени, что делает её малопригодной для массовых атак. Однако в условиях высокоскоростных сетей (например, 1 Гбит/с) сбор данных может занять менее часа. Кроме того, атака может быть эффективна против долгоживущих сессий (например, в VPN-соединениях).
Альтернативные атаки
Sweet32 не является единственной атакой на 64-битные шифры. Ранее были известны атаки на основе времени (timing attacks) и атаки на основе известного открытого текста (known-plaintext attacks). Однако Sweet32 привлекла внимание к проблеме устаревших криптографических алгоритмов.
Интересные факты
- Название «Sweet32» происходит от «Sweet 32» — отсылки к 32-битному размеру блока и популярной фразе «Sweet 16» (сладкие 16 лет), что иронично подчёркивает, что 64-битные шифры считались безопасными в 1990-х годах.
- Атака была продемонстрирована на реальном примере: исследователи смогли восстановить cookie сессии веб-сайта, используя уязвимость в 3DES.
- После публикации Sweet32 многие организации, включая Национальный институт стандартов и технологий США (NIST), рекомендовали полностью отказаться от 3DES и Blowfish в пользу AES.
Источники
- K. Yildiz, K. Paterson, B. Preneel. «Sweet32: Birthday Attacks on 64-bit Block Ciphers in TLS and OpenVPN». ACM CCS 2016.
- CVE-2016-2183 (Triple DES) и CVE-2016-6329 (Blowfish).
- OpenSSL Security Advisory, 2016.
- NIST Special Publication 800-131A Rev. 2: «Transitioning the Use of Cryptographic Algorithms and Key Lengths».
- RFC 8446 (TLS 1.3).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →