Научная статья на тему 'СЕТЕВЫЕ ПРОТОКОЛЫ НОВОГО ПОКОЛЕНИЯ И ИХ АНАЛИЗ С ТОЧКИ ЗРЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ'

СЕТЕВЫЕ ПРОТОКОЛЫ НОВОГО ПОКОЛЕНИЯ И ИХ АНАЛИЗ С ТОЧКИ ЗРЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
650
47
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОТОКОЛЫ TCP/IP / ПРОТОКОЛ HTTP / ИНТЕРНЕТ / СЕТЕВАЯ ПРОИЗВОДИТЕЛЬНОСТЬ / УЯЗВИМОСТИ СЕТЕВЫХ ПРОТОКОЛОВ / УЯЗВИМОСТИ ВЕБ-СЕРВЕРОВ / ЦЕЛОСТНОСТЬ ДАННЫХ / ДОСТУПНОСТЬ ДАННЫХ / ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Селиванов М.А.

Проведен разбор недостатков протокола HTTP/1.1. Представлен общий теоретический анализ безопасности протоколов нового поколения: SPDY, HTTP/2, QUIC, HTTP/3. Приведены актуальные статистические данные по внедрению данных протоколов в информационной среде. Проанализированы некоторые связанные с реализациями этих протоколов уязвимости. Дана оценка перспективам дальнейшего развития упомянутых протоколов в сетевой клиент-серверной среде на основе их характеристик и статистических данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

NEW GENERATION NETWORK PROTOCOLS AND THEIR ANALYSIS FROM THE POINT OF VIEW OF INFORMATION SECURITY

The paper provides the analysis of the shortcomings of the HTTP/1.1 protocol. It provides a general theoretical analysis of the security of the next generation protocols: SPDY, HTTP/2, QUIC, HTTP/3. Relevant statistics on the implementation of these protocols in the information environment are demonstrated. Some vulnerabilities associated with the implementations of these protocols are analyzed. The prospects for the further development of the mentioned protocols in a network client-server environment are estimated on the basis of their characteristics and the provided statistical data.

Текст научной работы на тему «СЕТЕВЫЕ ПРОТОКОЛЫ НОВОГО ПОКОЛЕНИЯ И ИХ АНАЛИЗ С ТОЧКИ ЗРЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ»

УДК 004.056.5

СЕТЕВЫЕ ПРОТОКОЛЫ НОВОГО ПОКОЛЕНИЯ И ИХ АНАЛИЗ С ТОЧКИ ЗРЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

М. А. Селиванов

Донской государственный технический университет (г. Ростов-на-Дону, Российская Федерация)

Проведен разбор недостатков протокола HTTP/1.1. Представлен общий теоретический анализ безопасности протоколов нового поколения: SPDY, HTTP/2, QUIC, HTTP/3. Приведены актуальные статистические данные по внедрению данных протоколов в информационной среде. Проанализированы некоторые связанные с реализациями этих протоколов уязвимости. Дана оценка перспективам дальнейшего развития упомянутых протоколов в сетевой клиент-серверной среде на основе их характеристик и статистических данных.

Ключевые слова: протоколы TCP/IP, протокол HTTP, Интернет, сетевая производительность, уязвимости сетевых протоколов, уязвимости веб-серверов, целостность данных, доступность данных, информационная безопасность.

NEW GENERATION NETWORK PROTOCOLS AND THEIR ANALYSIS FROM THE POINT

OF VIEW OF INFORMATION SECURITY

M. A. Selivanov

Don State Technical University (Rostov-on-Don, Russian Federation)

The paper provides the analysis of the shortcomings of the HTTP/1.1 protocol. It provides a general theoretical analysis of the security of the next generation protocols: SPDY, HTTP/2, QUIC, HTTP/3. Relevant statistics on the implementation of these protocols in the information environment are demonstrated. Some vulnerabilities associated with the implementations of these protocols are analyzed. The prospects for the further development of the mentioned protocols in a network client-server environment are estimated on the basis of their characteristics and the provided statistical data.

Keywords: TCP/IP protocols, HTTP protocol, Internet, network performance, vulnerabilities of network protocols, vulnerabilities of web servers, data integrity, data availability, information security.

Введение. В течение длительного времени основным протоколом обмена гипертекстовыми данными во Всемирной паутине (WWW) оставался базирующийся на TCP-соединении протокол прикладного уровня HTTP/1.1 (а также его расширение HTTPS, использующее HTTP через слой криптографических протоколов TLS/SSL для обеспечения конфиденциальности сетевых коммуникаций). Тем не менее, протоколы TCP и HTTP/1.1 содержат ряд особенностей, вызывающих задержки в доставке и получении данных, что в контрасте с ростом пропускной способности каналов обострило проблему оптимизации работы сетевых протоколов. Цель данной статьи — проанализировав новые протоколы для решения проблем задержек на прикладном и транспортном уровне, определить их недостатки и уязвимости.

Основная часть. Недостатки HTTP/1.1. Основной дискутируемый недостаток протокола HTTP/1.1 — отсутствие реализации мультиплексирования в запросах, т. е. асинхронного использования единого соединения для обмена информацией с обеспечением минимальных задержек. HTTP/1.1 с помощью заголовка Connection: keep-alive, который установлен по

умолчанию, может на определенное время устанавливать постоянное TCP-соединение с сервером, благодаря чему отпадает необходимость каждый раз нерационально устанавливать новые синхронизирующие TCP-рукопожатия. Также HTTP/1.1 может устанавливать конвейерное соединение (HTTP pipelining), позволяющее при постоянном TCP-соединении отправлять сразу несколько HTTP-запросов без ожидания ответа, что положительно влияет лишь на скорость процесса поочередной отправки пакетов. Однако конвейерные HTTP-соединения зачастую не имеют корректной поддержки во многих приложениях, и возможность их использования по умолчанию отключена (или не поддерживается) в большинстве браузеров. Данные методы оптимизации требуют потребления ресурсов на серверной стороне, что при высоконагруженном серверном трафике может приводить к DoS-угрозе (отказ в обслуживании). И самое главное — они не спасают от проблемы блокировки начала очереди (Head-of-line blocking, далее HOL) [1].

Суть проблемы HOL заключается в том, что ожидание доставки одного пакета блокирует отправку пакетов, следующих в очереди. Очевидно, особо остро эта проблема проявляется в том случае, когда ресурсы, передаваемые в начале очереди, имеют значительный размер.

Распространенным методом сокращения HOL-блокировок в браузерах является открытие нескольких параллельных TCP-соединений для каждого домена (в большинстве браузеров число этих соединений равно шести [2]). Это привело к использованию практики доменного шардинга (распределения ресурсов по разным доменам), спрайтинга (объединения изображений) и конкатенации (объединение) файлов [3]. Однако данные практики с учетом роста повсеместного распространения TLS/SSL-шифрования также приводят к значительному потреблению вычислительных ресурсов и временным задержкам.

Данные проблемы привели к разработке новых протоколов прикладного и транспортного уровня, призванных устранить недостатки в протоколах HTTP/TCP и обеспечить более рациональное, оптимальное и быстрое сетевое взаимодействие.

Далее будут рассмотрены и проанализированы некоторые из таких протоколов.

SPDY и HTTP/2. В 2009 году компания Google представила свой протокол прикладного уровня SPDY. Всего было выпущено четыре экспериментальные версии данного протокола [4]. Активная разработка и поддержка велась вплоть до 17 февраля 2015 года, когда IESG стандартизировала протокол HTTP/2. После стандартизации HTTP/2, спецификация которого была основана на SPDY, компания Google приняла решение упразднить разработку и поддержку SPDY в пользу HTTP/2 [5].

Данный протокол содержит следующие основные технологии:

— мультиплексирование, позволяющее клиенту отправлять несколько пакетов по разным асинхронным потокам при одном TCP-соединении (в управляющем фрейме пакета указывается его принадлежность к определенному потоку);

— используется одно соединение на домен;

— данные передаются в бинарном виде;

— реализуется контроль потока данных (управление размерами окна буфера) и обработки ошибок;

— происходит клиентская приоритизация запросов, с помощью которой клиент может выбирать приоритет доставки ресурсов;

— push-технология позволяет серверу отправлять несколько ответов на один запрос клиента (для предотвращения push-атак с неадекватным объемом информации предлагалась реализация контроля передаваемых push-данных на стороне браузера/клиента);

— происходит сжатие заголовков с помощью zlib (deflate);

— используется TLS-расширение NPN (Next Protocol Negotiation) для согласования используемого типа протокола прикладного уровня при TLS/SSL-подключении [6].

Летом 2012 года была опубликована информация об уязвимости CRIME-атаки (Compression Ratio Info-leak Made Easy), нацеленной на алгоритмы сжатия в SPDY и TLS/SSL, позволяющей злоумышленнику получить доступ к зашифрованным заголовкам (в частности, cookies-сессиям) [7].

После завершения поддержки SPDY компанией Google большинство веб-серверов прекратило поддержку модулей для данного протокола, заменив их на модули для HTTP/2 [8].

На сегодняшний день, согласно статистике W3Techs.com, протокол SPDY используют менее 5% веб-сайтов, и этот показатель продолжает снижаться (рис. 1) [9].

%, веб-сервисов

0.08 --

0.07

0.06 --

0.05

0.04

0.03 --

0.02 --

0.01

1 Оес'Ж 1 Jar'21 1 Feb 1 Маг 1 Apr 1 May 1J in 1Jii 1 Aug 1 Sep 1 Oct 1 Nov 1 Dec Usage of SPDY for websites, 26 Dec 2021, W3Techs.com

Рис. 1. Статистика использования SPDY веб-сайтами на конец 2021 года

Протокол HTTP/2, являющийся фактическим наследником протокола SPDY, был разработан HTTP Working Group (httpbis) и выпущен 14 мая 2015 года. Уже к концу 2015 года его поддержка была реализована в большинстве браузеров [5].

Основные особенности протокола HTTP/2:

— развитие на основе заложенных SPDY технологий;

— собственный алгоритм сжатия заголовков HPACK, использующий код Хаффмана и двустороннюю (клиент и сервер) таблицу заголовков, что должно предотвратить нерациональную отправку не изменяющихся заголовков;

— в качестве замены NPN используется TLS-расширение ALPN (Application Layer Protocol Negotiation);

— большинство браузеров де-факто поддерживают лишь HTTPS-подключение (TLSv1.2+) по HTTP/2, хотя HTTP/2 по стандарту допускает использование незашифрованного соединения [10].

Ряд реализаций протокола HTTP/2 в популярных серверах содержит множество уязвимостей, подвергающих непропатченное или некорректно настроенное серверное ПО различным угрозам, что ставит общую безопасность использования HTTP/2 под сомнение:

— множественные уязвимости типа DoS [11];

— Request Smuggling (внедрение запросов в backend-серверы через frontend-серверы) [12];

— HPACK-бомбы, приводящие к избыточному потреблению памяти в nghttp2 и Wireshark [13];

— HEIST-атака [14] и т. д.

На сегодняшний день, согласно статистике W3Techs.com, протокол HTTP/2 используется в ~45-50 % веб-сайтов (рис. 2) [15].

QUIC и HTTP/3. Протокол HTTP/2 обеспечивает предотвращение HOL-блокировок, однако это не касается транспортного уровня. В связи с тем, что протокол TCP должен гарантированно доставить пакеты по порядку, в случае потерь или задержек при передаче также создается блокировка. Таким образом, для предотвращения блокировок на транспортном уровне необходима разработка иных протоколов транспортного уровня.

В качестве решения компания Google выпустила в 2013 году протокол транспортного уровня QUIC (Quick UDP Internet Connections), позволяющий использовать мультиплексирование на основе протокола UDP.

Основные особенности QUIC:

— интегрированный TLS;

— принадлежность пакета потоку указывается на транспортном уровне в STREAM-фрейме;

— улучшенные механизмы контроля перегрузки;

— наличие алгоритма прямой коррекции ошибок (Forward Error Correction), заключающегося в том, что передача в пакете избыточных данных позволяет восстанавливать данные в случае ошибок и потерь (упразднено во второй версии);

— использование идентификатора соединения UUID, позволяющего не пересоздавать соединение при смене IP [16].

% веб-сервисов

Рис. 2. Статистика использования HTTP/2 веб-сайтами на конец 2021 года

QUIC поныне является экспериментальным протоколом и содержит ряд очевидных недостатков [17]:

— использование ЦОР приводит к подверженности DoS-атакам;

— принудительность и встроенность шифрования заголовков и данных, что сильно усложняет процесс отладки;

— механизмы контроля перегрузки могут приводить к снижению скорости передачи.

На сегодняшний день, согласно статистике W3Techs.com, протокол QUIC используется в ~7-8% веб-сайтов и имеет тенденцию роста статистических показателей (рис. 3) [18].

%, веб-сервисов

0 J-------------

1 Dec"20 1 Jar'21 1 F-sb 1 Маг 1 Apr 1 May 1 J in 1 JJ 1 Aug 1 Sep 1 Oct 1 Nov 1 Dec

Usage of QUIC for websites, 26 Dec 202W3Techs.com

Рис. 3. Статистика использования QUIC веб-сайтами на конец 2021 года

В настоящее время ведется разработка протокола HTTP/3 (ранее известного как HTTP-over-QUIC), который должен обеспечить функционирование HTTP-технологий с использованием QUIC вместо TCP на транспортном уровне.

Большинство браузеров уже к 2021 году включило в свои спецификации поддержку HTTP/3, несмотря на не0стандартизированность протокола [19].

Уже доступны такие реализации HTTP/3, как quiche (API от Cloudflare, написанный на C и Rust), aioquic (API на Python), ведется разработка поддержки для веб-сервера nginx и др.

На сегодняшний день, согласно статистике W3Techs.com, протокол HTTP/3 используется в ~24% веб-сайтов и имеет тенденцию роста статистических показателей (рис. 4) [20].

%, веб-серверов

Рис. 4. Статистика использования HTTP/3 веб-сайтами на конец 2021 года

Заключение. Таким образом, можно сделать вывод, что на сегодняшний день активно ведутся разработка и внедрение протоколов нового поколения, призванных решить проблемы задержек на прикладном и транспортном уровне. Однако концепции новых протоколов неидеальны и имеют ряд просчетов и уязвимостей. Прежде чем использовать новые протоколы (особенно нестандартизированные), рекомендуется ознакомиться с принципами и особенностями работы этих протоколов, а также существующими в них уязвимостями.

Библиографический список

1. Connection_management_in_HTTP_1.x // MDN Web Docs: [web page]. URL:https://developer.mozilla.org/ru/docs/Web/HTTP/Connection management in HTTP 1.x (accessed: 26.12.2021).

2. Browser connection limitations // Push Technology: [web page]. — URL: https://docs.pushtechnology.com/cloud/latest/manual/html/designguide/solution/support/connection_limit ations.html (accessed: 26.12.2021).

3. Optimizing Application Delivery // High Performance Browser Networking: [web page]. — URL: https://hpbn.co/optimizing-application-delivery/#optimizing-for-http1x (accessed: 26.12.2021).

4. SPDY Protocol // The Chromium Projects: [web page]. — URL: https://dev.chromium.org/spdy/spdy-protocol (accessed: 26.12.2021).

5. HTTP/2 // Wikipedia (eng.): [web page]. — URL: https://en.wikipedia.org/wiki/HTTP/2 (accessed: 26.12.2021).

6. SPDY Protocol — Draft 3.1 // The Chromium Projects: [web page]. — URL: https://www.chromium .org/spdy/spdy-protocol/spdy-protocol-draft3 -1 (accessed: 26.12.2021).

7. CVE-2012-4930 // CVE: [web page]. — URL: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-4929 (accessed: 26.12.2021).

8. Module ngx_http_spdy_module // nginx documentation: [web page]. — URL: http://nginx.org/en/docs/http/ngx http spdy module.html (accessed: 26.12.2021).

9. Usage statistics of SPDY for websites // W3Techs: [web page]. — URL: https://w3techs.com/technologies/details/ce-spdy (accessed: 26.12.2021).

10. HTTP/2 // High Performance Browser Networking: [web page]. — URL: https://hpbn.co/http2/ (accessed: 26.12.2021).

11. HTTP/2 can shut you down! // SecPod: [web page]. — URL: https://www.secpod.com/blog/http2-dos-vulnerabilities/ (accessed: 26.12.2021).

12. HTTP/2: The Sequel is Always Worse // PortSwigger: [web page]. — URL: https://portswigger.net/research/http2 (accessed: 26.12.2021).

13. HTTP/2: In-depth analysis of the top four flaws of the next generation web protocol // Imperva [web page]. — URL: https://www.imperva.com/docs/Imperva HII HTTP2.pdf (accessed: 26.12.2021).

14. CVE-2016-7153 // CVE: [web page]. — URL: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7153 (accessed: 26.12.2021).

15. Usage statistics of HTTP/2 for websites // W3Techs: [web page]. — URL: https://w3techs.com/technologies/details/ce-http2 (accessed: 26.12.2021).

16. QUIC, a multiplexed transport over UDP // The Chromium Projects: [web page]. — URL: https://www.chromium.org/quic (accessed: 26.12.2021).

17. QUIC: What is behind the experimental Google Protocol? // Digital Guide IONOS: [web page]. — URL: https://www.ionos.com/digitalguide/hosting/technical-matters/quic-the-internet-transport-protocol-based-on-udp/ (accessed: 26.12.2021).

18. Usage statistics of QUIC for websites // W3Techs: [web page]. — URL: https://w3techs.com/technologies/details/ce-quic (accessed: 26.12.2021).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

19. HTTP/3 // Wikipedia (eng.): [web page]. URL:https://en.wikipedia.org/wiki/HTTP/3 (accessed: 26.12.2021).

20. Usage statistics of HTTP/3 for websites // W3Techs: [web page]. — URL: https://w3techs.com/technologies/details/ce-http3 (accessed: 26.12.2021).

Об авторе:

Селиванов Максим Александрович, студент кафедры «Вычислительные системы и информационная безопасность» Донского государственного технического университета (344003, РФ, г. Ростов-на-Дону, пл. Гагарина, 1), sog7698@icloud.com

About the Author:

Selivanov, Maksim A., Student, Department of Computing Systems and Information Security, Don State Technical, sog7698@icloud.com

i Надоели баннеры? Вы всегда можете отключить рекламу.