Атака понижения стойкости
Атака понижения стойкости — это вид кибератаки, направленный на принудительное ослабление уровня безопасности криптографического соединения между двумя сторонами (например, клиентом и сервером). Злоумышленник вмешивается в процесс установления защищённого канала связи (handshake) и заставляет стороны использовать устаревшие, слабые или скомпрометированные алгоритмы шифрования, протоколы или ключи, вместо более современных и надёжных. Целью является упрощение последующего взлома шифрования, перехвата или модификации передаваемых данных.
История
Концепция атаки понижения стойкости не является новой и восходит к ранним дням криптографии, когда злоумышленники стремились заставить противника использовать менее стойкие шифры. С развитием компьютерных сетей и протоколов безопасности, таких как SSL/TLS, эта атака стала более систематизированной и технически сложной.
Одним из первых широко известных примеров является атака SSL Stripping, предложенная Мохсиром Сахраи в 2009 году. Она заключалась в перехвате HTTP-запроса и принудительном понижении соединения до незащищённого HTTP, даже если пользователь пытался перейти по HTTPS-ссылке. Это стало возможным из-за того, что многие пользователи не замечали отсутствия защищённого значка в браузере.
В 2014 году была обнаружена уязвимость POODLE (Padding Oracle On Downgraded Legacy Encryption), которая эксплуатировала механизм понижения стойкости в протоколе SSL 3.0. Злоумышленник мог заставить клиент и сервер использовать устаревший SSL 3.0, а затем, используя уязвимость в его набивке, расшифровать cookie-файлы и другие конфиденциальные данные.
В 2015 году исследователи представили атаку FREAK (Factoring RSA Export Keys), которая позволяла понизить стойкость соединения, заставив сервер использовать экспортные (ослабленные) RSA-ключи. Это стало возможным из-за того, что некоторые клиенты и серверы продолжали поддерживать устаревшие экспортные шифры, оставшиеся со времён ограничений на экспорт криптографии из США.
В последующие годы были обнаружены и другие варианты, такие как Logjam (атака на обмен ключами Диффи-Хеллмана) и DROWN (Decrypting RSA with Obsolete and Weakened eNcryption), которые также использовали механизмы понижения стойкости для взлома защищённых соединений.
Механизм атаки
Атака понижения стойкости обычно происходит на этапе установления соединения (handshake) в протоколах, поддерживающих согласование параметров безопасности, таких как TLS, SSH, IPsec или Wi-Fi (WPA2/WPA3).
Основные этапы
- Перехват (Man-in-the-Middle): Злоумышленник занимает позицию «человека посередине» (MITM) между клиентом и сервером. Это может быть достигнуто через ARP-спуфинг, DNS-спуфинг, компрометацию точки доступа Wi-Fi или использование вредоносного ПО.
- Вмешательство в handshake: В ходе согласования параметров безопасности клиент и сервер обмениваются списками поддерживаемых протоколов и алгоритмов шифрования. Злоумышленник перехватывает эти сообщения и модифицирует их.
- Принуждение к слабому протоколу: Злоумышленник удаляет из списка поддерживаемых клиентом или сервером современных и надёжных протоколов (например, TLS 1.2, TLS 1.3) и оставляет только устаревшие и слабые (например, SSL 3.0, TLS 1.0, экспортные шифры).
- Установление слабого соединения: Клиент и сервер, не зная о вмешательстве, соглашаются на использование единственного оставшегося в списке слабого протокола или алгоритма.
- Взлом: После установления слабого соединения злоумышленник может использовать известные уязвимости этого протокола или алгоритма для расшифровки трафика, подмены данных или кражи аутентификационных данных.
Ключевые уязвимости
Атака понижения стойкости возможна по нескольким причинам:
- Обратная совместимость: Многие серверы и клиенты продолжают поддерживать устаревшие протоколы и шифры для совместимости со старым программным обеспечением или оборудованием.
- Отсутствие обязательной проверки целостности: В некоторых реализациях протоколов не было механизма для проверки того, были ли изменены списки поддерживаемых алгоритмов во время handshake.
- Экспортные ограничения: Исторически сложилось, что из-за экспортных ограничений США в криптографические продукты встраивались ослабленные алгоритмы (экспортные шифры), которые впоследствии стали целью атак.
Виды атак понижения стойкости
По типу протокола
- SSL/TLS: Атаки, направленные на протоколы защищённого соединения в интернете. Примеры: POODLE, FREAK, Logjam, DROWN.
- SSH: Атаки, направленные на протокол защищённого удалённого доступа. В 2018 году была обнаружена уязвимость Terrapin, которая позволяла понизить стойкость SSH-соединения, используя уязвимости в процессе согласования.
- Wi-Fi: Атаки, направленные на протоколы безопасности беспроводных сетей. Например, KRACK (Key Reinstallation Attack) на WPA2, который позволял переустановить ключ шифрования и понизить стойкость соединения.
- IPsec: Атаки, направленные на протокол защищённой передачи данных на сетевом уровне. Некоторые атаки на IKE (Internet Key Exchange) могут принудить стороны использовать слабые алгоритмы аутентификации или шифрования.
По типу ослабляемого параметра
- Понижение версии протокола: Принуждение к использованию более старой и уязвимой версии протокола (например, с TLS 1.3 на TLS 1.0).
- Понижение стойкости шифра: Принуждение к использованию слабого алгоритма шифрования (например, с AES-256 на RC4 или DES).
- Понижение стойкости ключа: Принуждение к использованию коротких или предсказуемых ключей (например, экспортных RSA-ключей длиной 512 бит вместо 2048 бит).
- Понижение стойкости хеш-функции: Принуждение к использованию устаревшей и уязвимой хеш-функции (например, с SHA-256 на MD5).
Примеры известных атак
POODLE (2014)
Атака POODLE (Padding Oracle On Downgraded Legacy Encryption) эксплуатировала уязвимость в протоколе SSL 3.0. Злоумышленник, находящийся в позиции MITM, мог заставить клиент и сервер использовать SSL 3.0, а затем, используя уязвимость в набивке (padding) блочных шифров (например, CBC), расшифровать cookie-файлы и другие конфиденциальные данные. Атака была особенно опасна, так как многие браузеры и серверы по умолчанию поддерживали SSL 3.0 для обратной совместимости.
FREAK (2015)
Атака FREAK (Factoring RSA Export Keys) была направлена на понижение стойкости RSA-ключей. Злоумышленник мог заставить сервер использовать экспортный RSA-ключ длиной 512 бит, который можно было факторизовать за приемлемое время. После этого злоумышленник мог расшифровать сессионный ключ и перехватить весь трафик. Атака затронула многие популярные веб-сайты и браузеры.
Logjam (2015)
Атака Logjam была направлена на протокол обмена ключами Диффи-Хеллмана (DH). Злоумышленник мог понизить стойкость DH-обмена, заставив стороны использовать короткие (512-битные) простые числа, которые могли быть взломаны с использованием предварительно вычисленных таблиц. Атака затронула TLS, SSH и IPsec.
DROWN (2016)
Атака DROWN (Decrypting RSA with Obsolete and Weakened eNcryption) использовала уязвимость в протоколах SSLv2 и TLS. Злоумышленник мог перехватить TLS-соединение и, используя уязвимость SSLv2 на том же сервере, расшифровать его. Атака была возможна, если сервер одновременно поддерживал TLS и SSLv2, даже если SSLv2 не использовался для данного соединения.
Terrapin (2023)
Атака Terrapin была обнаружена в протоколе SSH. Она позволяла злоумышленнику, находящемуся в позиции MITM, понизить стойкость SSH-соединения, удаляя или изменяя сообщения в процессе handshake. Атака затрагивала многие реализации SSH и могла привести к компрометации защищённых каналов удалённого доступа.
Методы защиты
На стороне сервера
- Отключение устаревших протоколов: Необходимо полностью отключить поддержку SSL 2.0, SSL 3.0, TLS 1.0 и TLS 1.1. В настоящее время рекомендуется использовать TLS 1.2 и TLS 1.3.
- Отключение слабых шифров: Следует отключить все экспортные шифры, а также шифры, основанные на RC4, DES, 3DES, и устаревшие хеш-функции (MD5, SHA-1).
- Использование современных криптографических алгоритмов: Рекомендуется использовать AES-GCM, ChaCha20-Poly1305, ECDHE (эллиптический обмен ключами Диффи-Хеллмана) и SHA-256/SHA-384.
- Внедрение механизмов защиты от понижения стойкости: В протокол TLS 1.3 были встроены механизмы, предотвращающие понижение стойкости, такие как обязательное использование подписей для всех сообщений handshake.
- Регулярное обновление программного обеспечения: Своевременная установка патчей и обновлений для веб-серверов, библиотек шифрования (OpenSSL, LibreSSL) и другого сетевого ПО.
На стороне клиента
- Использование современных браузеров и клиентов: Современные браузеры (Google Chrome, Mozilla Firefox, Microsoft Edge, Safari) по умолчанию отключают устаревшие протоколы и шифры.
- Включение HSTS (HTTP Strict Transport Security): Этот механизм позволяет серверу указать браузеру, что он должен подключаться только по HTTPS, и предотвращает атаки SSL Stripping.
- Использование VPN: Виртуальная частная сеть (VPN) может защитить от атак MITM, особенно в незащищённых сетях Wi-Fi.
- Внимательность к предупреждениям безопасности: Браузеры часто предупреждают о небезопасных соединениях. Не следует игнорировать эти предупреждения.
На уровне сети
- Использование DNSSEC: Протокол DNSSEC (DNS Security Extensions) защищает от DNS-спуфинга, который часто используется для атак MITM.
- Внедрение систем обнаружения вторжений (IDS/IPS): Современные системы могут обнаруживать попытки понижения стойкости и блокировать подозрительный трафик.
Значение
Атака понижения стойкости является серьёзной угрозой для безопасности информационных систем. Она демонстрирует, что даже самые современные криптографические протоколы могут быть скомпрометированы, если не уделять должного внимания обратной совместимости и управлению устаревшими алгоритмами. Понимание механизмов этих атак и внедрение соответствующих мер защиты является критически важным для обеспечения конфиденциальности, целостности и доступности данных в современных сетях.
Источники
- Адриан Д., Бхаргаван К., Карлсон Л. и др. «Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice». 2015.
- Бёк Х., Фридрих Т., Ландерс Р. и др. «DROWN: Breaking TLS using SSLv2». 2016.
- Мёллер Б., Дуонг Т., Котович К. «This POODLE Bites: Exploiting the SSL 3.0 Fallback». 2014.
- Сахраи М. «SSL Stripping». 2009.
- Смайерс Б., Глас Б., Грин М. и др. «FREAK: Factoring RSA Export Keys». 2015.
- Террапин М., Шиндлер Ф., Шмидт М. и др. «Terrapin Attack: Breaking SSH Channel Integrity». 2023.
- Ванхоф М., Питшанс Ф. «Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2». 2017.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →