Атака понижения
Ата́ка пониже́ния (англ. downgrade attack, также англ. bidding-down attack, англ. version rollback attack) — разновидность криптографической атаки на компьютерную систему или протокол передачи данных, при которой злоумышленник вынуждает систему отказаться от высокозащищённого режима работы (например, зашифрованного соединения) в пользу более старого и менее защищённого (например, открытого текста), который обычно поддерживается для обеспечения обратной совместимости с устаревшими системами[1][2].
Примером такой уязвимости была обнаруженная в OpenSSL возможность заставить клиента и сервер использовать устаревшую версию TLS[3]. Это одна из самых распространённых форм атак по понижению. Протоколы оппортунистического шифрования (например, STARTTLS) по своей природе уязвимы к атакам по понижению, так как предусматривают возможность перехода к незашифрованному обмену данными. Веб-сайты, которые используют перенаправления с незащищённого HTTP на защищённый HTTPS, также подвержены атакам по понижению (например, через инструмент англ. sslstrip), поскольку первоначальное перенаправление не защищено шифрованием[4].
Атака
Атаки по понижению часто реализуются как часть атаки «человек посередине» (MITM) и могут использоваться для обеспечения возможности иных криптографических атак, которые в противном случае были бы невозможны[5]. Проблема атак по понижению регулярно затрагивает семейство протоколов SSL/TLS; примерами таких атак являются, в частности, атака POODLE.
Атаки понижения в протоколе TLS могут принимать различные формы[6]. Исследователи классифицируют атаки по понижению по четырём основным направлениям, что даёт возможность систематизировать подходы к анализу подобного рода атак[6]:
- Протокольный элемент, против которого направлена атака:
- алгоритм;
- версия;
- уровень.
- Тип уязвимости, позволяющей реализовать атаку:
- реализация;
- проектирование;
- модель доверия.
- Метод атаки:
- удаление;
- модификация;
- внедрение.
- Степень ущерба от атаки:
- полностью скомпрометирована безопасность;
- ослабление безопасности.
Существуют новейшие предложения[7][8], которые используют идею предварительных знаний («prior knowledge») — это позволяет клиентам TLS (например, веб-браузерам) защищать чувствительные доменные имена от определённых видов атак по понижению, которые эксплуатируют поддержку устаревших версий или не рекомендованных криптоалгоритмов (например, без прямой секретности или аутентифицированного шифрования), как это реализовано в атаках POODLE, ClientHello fragmentation[9][10] и вариантах атак DROWN («special drown»).
Отказ от обратной совместимости часто становится единственным гарантом противодействия атакам по понижению. Тем не менее, в ряде случаев клиент и сервер могут распознавать, что оба являются актуальными, предотвращая атаку. К примеру, если веб-сервер и пользовательский агент поддерживают HTTP Strict Transport Security и пользовательский агент знает об этом свойстве сервера (либо ранее уже обращался к нему по HTTPS, либо сервер включён в «HSTS preload list»[11][12][13]), то пользовательский агент откажется обращаться к сайту по незащищённому HTTP, даже если злоумышленник выдаёт себя и сервер за не поддерживающих HTTPS.
Примечание
- ↑ Security Implications of 5G Networks (англ.). U C Berkeley Center for Long-Term Cybersecurity. Дата обращения: 24 ноября 2021. Архивировано 9 июня 2025 года.
- ↑ Version rollback attack (англ.). Дата обращения: 18 декабря 2023. Архивировано 10 ноября 2021 года.
- ↑ Man-in-the-Middle TLS Protocol Downgrade Attack (англ.). Praetorian. Praetorian (19 августа 2014). Дата обращения: 13 апреля 2016. Архивировано 18 августа 2025 года.
- ↑ Mutton, Paul 95% of HTTPS servers vulnerable to trivial MITM attacks (англ.). Netcraft (17 марта 2016). Дата обращения: 11 декабря 2023. Архивировано 24 июня 2025 года.
- ↑ Downgrade attack. encyclopedia.kaspersky.com. Дата обращения: 5 сентября 2023. Архивировано 5 августа 2025 года.
- ↑ 1 2 Alashwali, E. S.; Rasmussen, K. (2018). “What's in a Downgrade? A Taxonomy of Downgrade Attacks in the TLS Protocol and Application Protocols Using TLS”. 4th Int. Workshop on Applications and Techniques in Cyber Security (ATCS) co-located with 14th Int. Conf. in Security and Privacy in Communication Networks (SecureComm) [англ.]. Springer: 469—487. arXiv:1809.05681.
- ↑ Alashwali, E. S.; Rasmussen, K. (2018). “On the Feasibility of Fine-Grained TLS Security Configurations in Web Browsers Based on the Requested Domain Name”. 14th Int. Conf. in Security and Privacy in Communication Networks (SecureComm) [англ.]. Springer: 213—228. arXiv:1809.05686.
- ↑ Alashwali, E. S.; Szalachowski, P. (2018). “DSTC: DNS-based Strict TLS Configurations”. 13th Int. Conf. on Risks and Security of Internet and Systems (CRISIS) [англ.]. Springer. arXiv:1809.05674.
- ↑ ldapwiki. ClientHello (англ.). Дата обращения: 30 января 2019. Архивировано 17 марта 2020 года.
- ↑ Beurdouche, B.; Delignat-Lavaud, A.; Kobeissi, N.; Pironti, A.; Bhargavan, K. (2015). “FLEXTLS A Tool for Testing TLS Implementations”. 9th USENIX Workshop on Offensive Technologies (WOOT) 15 [англ.]. USENIX. Дата обращения 2019-01-30.
- ↑ Adam Langley. Strict Transport Security (англ.). The Chromium Projects (8 июля 2010). Дата обращения: 22 июля 2010. Архивировано 11 октября 2025 года.
- ↑ David Keeler. Preloading HSTS (англ.). Mozilla Security Blog (1 ноября 2012). Дата обращения: 6 февраля 2014. Архивировано 10 ноября 2012 года.
- ↑ HTTP Strict Transport Security comes to Internet Explorer (англ.) (16 февраля 2015). Дата обращения: 16 февраля 2015. Архивировано 17 февраля 2015 года.