Атака понижения

Ата́ка пониже́ния (англ. 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]:

  1. Протокольный элемент, против которого направлена атака:
    • алгоритм;
    • версия;
    • уровень.
  2. Тип уязвимости, позволяющей реализовать атаку:
    • реализация;
    • проектирование;
    • модель доверия.
  3. Метод атаки:
    • удаление;
    • модификация;
    • внедрение.
  4. Степень ущерба от атаки:
    • полностью скомпрометирована безопасность;
    • ослабление безопасности.

Существуют новейшие предложения[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.

Примечание

  1. Security Implications of 5G Networks (англ.). U C Berkeley Center for Long-Term Cybersecurity. Дата обращения: 24 ноября 2021. Архивировано 9 июня 2025 года.
  2. Version rollback attack (англ.). Дата обращения: 18 декабря 2023. Архивировано 10 ноября 2021 года.
  3. Man-in-the-Middle TLS Protocol Downgrade Attack (англ.). Praetorian. Praetorian (19 августа 2014). Дата обращения: 13 апреля 2016. Архивировано 18 августа 2025 года.
  4. Mutton, Paul 95% of HTTPS servers vulnerable to trivial MITM attacks (англ.). Netcraft (17 марта 2016). Дата обращения: 11 декабря 2023. Архивировано 24 июня 2025 года.
  5. Downgrade attack. encyclopedia.kaspersky.com. Дата обращения: 5 сентября 2023. Архивировано 5 августа 2025 года.
  6. 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.
  7. 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.
  8. 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.
  9. ldapwiki. ClientHello (англ.). Дата обращения: 30 января 2019. Архивировано 17 марта 2020 года.
  10. 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.
  11. Adam Langley. Strict Transport Security (англ.). The Chromium Projects (8 июля 2010). Дата обращения: 22 июля 2010. Архивировано 11 октября 2025 года.
  12. David Keeler. Preloading HSTS (англ.). Mozilla Security Blog (1 ноября 2012). Дата обращения: 6 февраля 2014. Архивировано 10 ноября 2012 года.
  13. HTTP Strict Transport Security comes to Internet Explorer (англ.) (16 февраля 2015). Дата обращения: 16 февраля 2015. Архивировано 17 февраля 2015 года.