Фрагмент для ознакомления
2
1.1 Анализ особенностей функционирования TLS-протокола
Протокол TLS предназначен для обеспечения безопасного канала связи между клиентом и сервером. Его работа начинается с фазы «рукопожатия» (handshake), в процессе которой стороны согласуют параметры безопасного соединения. Именно данные, передаваемые в открытом виде на этапе handshake, представляют наибольшую ценность для идентификации TLS-соединений.
Ключевые параметры TLS handshake, используемые для идентификации, включают [2, 3]:
1. Версия протокола (TLS Version): указывает на версию протокола (например, SSL 3.0, TLS 1.0, TLS 1.2, TLS 1.3). Устаревшие версии часто свидетельствуют о небезопасной конфигурации.
2. Список поддерживаемых шифров (Cipher Suites): это перечень криптографических алгоритмов, предлагаемых клиентом серверу для выбора. Каждый набор включает алгоритмы для обмена ключами, аутентификации, шифрования и контроля целостности. Состав и порядок списка cipher suites являются высокоуникальными для различных операционных систем, браузеров и приложений.
3. Расширения TLS (TLS Extensions): механизм для добавления новых функций в протокол. К наиболее информативным расширениям относятся:
o Server Name Indication (SNI): позволяет клиенту указать имя запрашиваемого хоста, что является критически важным параметром для идентификации целевого сервиса.
o Application-Layer Protocol Negotiation (ALPN): позволяет согласовать протокол прикладного уровня (например, HTTP/2, h3) еще до установления соединения.
o Supported Groups (Elliptic Curves): Список поддерживаемых групп эллиптических кривых для обмена ключами.
o Signature Algorithms: Список поддерживаемых алгоритмов подписи.
o Extended Master Secret: Расширение, повышающее безопасность сеанса.
4. Методы сжатия (Compression Methods): исторически использовались, но из-за уязвимостей (например, CRIME) сейчас редко применяются [6, 17, 20]. Их наличие или отсутствие также является идентифицирующим признаком.
Анализ комбинации этих параметров позволяет построить «цифровой отпечаток» (fingerprint) TLS-клиента или сервера (для TLS такими детерминирующими полями являются Cipher Suites и Extensions).
Особенности функционирования TLS-протокола.
Ключевой особенностью TLS, позволяющей проводить его идентификацию, является тот факт, что процесс установления безопасного соединения (фаза «рукопожатия» – handshake) содержит критически важные метаданные, передаваемые в открытом виде. Этапы рукопожатия в TLS 1.2 (наиболее распространенной на текущий момент версии) включают:
5. Client Hello: Инициирующее сообщение от клиента к серверу. Это сообщение содержит основную массу идентифицирующих параметров:
o Версия протокола (TLS Version): указывает наивысшую версию TLS, поддерживаемую клиентом.
o Случайное число (Client Random): 32-байтовая последовательность, часть которой (первые 4 байта – Unix timestamp) может использоваться для выявления аномалий (например, системное время зловредного ПО).
o Идентификатор сессии (Session ID): используется для возобновления предыдущей сессии, что может быть индикатором определенного поведения.
o Список поддерживаемых шифр-наборов (Cipher Suites): это упорядоченный список криптографических алгоритмов, которые клиент готов использовать. Каждый шифр-набор определяет:
Алгоритм обмена ключами (Key Exchange): например, RSA, ECDHE, DHE.
Алгоритм аутентификации: например, RSA, ECDSA.
Алгоритм симметричного шифрования: например, AES_128_GCM, CHACHA20_POLY1305.
Алгоритм хэширования: например, SHA256, SHA384. Состав и порядок шифр-наборов являются высокодетерминированными для конкретных реализаций TLS-стеков (OpenSSL, BoringSSL, Secure Transport) и приложений (браузеры, мобильные приложения, IoT-устройства), что делает их мощнейшим идентификатором.
o Список поддерживаемых методов сжатия: исторически использовался, но в современных реализациях обычно пуст из-за уязвимостей (например, CRIME).
o Расширения (Extensions): наиболее гибкий и информативный компонент. Ключевые расширения для идентификации включают:
Server Name Indication (SNI): позволяет клиенту указать имя запрашиваемого хоста (домена) на этапе handshake, что необходимо для виртуальных хостингов. SNI является прямым идентификатором целевого сервиса.
Application-Layer Protocol Negotiation (ALPN): позволяет согласовать протокол прикладного уровня (HTTP/2, h3, grpc) до начала передачи данных.
Supported Groups (ранее Elliptic Curves): список поддерживаемых групп эллиптических кривых для алгоритмов на их основе (ECDHE).
Signature Algorithms: список поддерживаемых алгоритмов подписи для аутентификации сервера.
Extended Master Secret: расширение, повышающее безопасность сеанса. Его отсутствие может указывать на устаревшее или небезопасно сконфигурированное ПО.
Key Share: используется в TLS 1.3 для передачи клиентом своих параметров ключа.
6. Server Hello: ответ сервера, в котором он подтверждает выбранные параметры:
o Выбранная версия протокола.
o Выбранный шифр-набор из списка клиента.
o Собственное случайное число (Server Random).
o Подтвержденные расширения.
7. Обмен сертификатами и ключами: далее следует аутентификация сервера (и опционально клиента) и выработка общего мастер-секрета. Эта часть зашифрована или использует криптографию с открытым ключом, но сами сертификаты передаются в открытом виде и также могут быть использованы для идентификации (например, по издателю или серийному номеру).
В версии TLS 1.3 протокол был значительно упрощен и усилен с точки зрения безопасности. Многие устаревшие и небезопасные шифр-наборы и алгоритмы были удалены. Однако фаза Client Hello осталась в открытом виде, хотя ее структура изменилась (например, список шифр-наборов был заменен на более компактный список «предложений по шифрованию» – Cipher Suites). Это делает методы идентификации, основанные на анализе Client Hello, актуальными и для TLS 1.3.
Технология идентификации TLS-соединений.
Идентификация TLS-соединений основана на анализе открытых метаданных фазы handshake. Основные технологические подходы включают:
1. Пассивное фингерпринтирование (Passive Fingerprinting) [8, 22]. Этот метод не требует активного вмешательства в соединение и основан на анализе параметров Client Hello. Алгоритм работы следующий:
o Захват пакетов: средство мониторинга (NGFW, IDS, анализатор трафика) захватывает пакеты, содержащие Client Hello.
o Извлечение параметров: из сообщения извлекаются ключевые поля: версия TLS, полный список шифр-наборов, полный список расширений (включая их порядок).
o Формирование отпечатка (Fingerprint). Извлеченные параметры преобразуются в уникальную строку-идентификатор. Исторически это были длинные и неудобные для сравнения конкатенированные строки. Современные методы, такие как JA4, решают эту проблему путем стандартизации процесса:
Параметры сортируются в алфавитном порядке для устранения вариативности порядка.
Строки объединяются через разделитель.
Полученная строка хэшируется алгоритмом SHA-256, и берутся первые 12 символов хэша для получения компактного и уникального идентификатора (например, t13d1516h2_8daaf6152771).
o Сопоставление: Сгенерированный отпечаток сверяется с базой данных известных отпечатков, где каждому хэшу сопоставлена информация о клиенте (например, «Chrome 120 на Windows 10», «Cobalt Strike Beacon 4.7», «IoT-камера производителя X»).
2. Активный зондирование (Active Probing). Если пассивного отпечатка недостаточно, система может инициировать собственное TLS-соединение с целевым сервером, используя различные параметры Client Hello (например, специфические наборы шифров или устаревшие версии протоколов), и анализировать ответ сервера (Server Hello). Это позволяет построить отпечаток сервера и выявить его тип и версию (например, nginx 1.18.0, Apache Tomcat 9.0).
3. Анализ поведенческих метрик: Помимо статических параметров handshake, для идентификации могут использоваться динамические характеристики:
o Время между пакетами handshake.
o Размеры сообщений.
o Частота установления новых соединений.
o Регулярность трафика (периодические «рукопожатия» могут указывать на heartbeat C2-канала).
Рассмотрим преимущества технологии идентификации на основе TLS handshake:
• Работает с шифрованным трафиком, т.е. не требует расшифровки, сохраняя конфиденциальность пользователей.
• Высокая точность, что позволяет с высокой долей вероятности идентифицировать приложение или устройство.
• Проактивность. Позволяет обнаруживать угрозы на самой ранней стадии установления соединения.
Ограничения:
• Изменчивость: Обновления ПО могут изменять отпечатки.
• Обфускация: Злоумышленники могут настраивать свои инструменты для имитации отпечатков легитимных приложений.
• Энтропия TLS 1.3: Упрощение протокола в TLS 1.3 несколько снижает вариативность отпечатков, что требует более тонких методов анализа.
Таким образом, идентификация TLS-соединений на основе анализа метаданных фазы «рукопожатия» представляет собой мощный и необходимый механизм в арсенале современных систем безопасности, позволяющий восстанавливать «видимость» в условиях повсеместного шифрования и эффективно противостоять угрозам, скрывающимся в TLS-трафике.
1.2 Технология JA4/JA4+: принципы формирования хэшей
В ответ на необходимость в стандартизированном и эффективном методе fingerprinting'а была разработана технология JA4/JA4+ [9]. В отличие от сложных для анализа и сравнения списков cipher suites, JA4 преобразует ключевые параметры TLS handshake в компактные, легко сравниваемые строки-хэши.
Технология JA4/JA4+ представляет собой методологию пассивного фингерпринтинга, предназначенную для стандартизированного и эффективного формирования цифровых отпечатков сетевых соединений, в частности, на основе метаданных протокола TLS. Ключевой задачей данной технологии является преобразование неструктурированных и избыточных параметров фазы «рукопожатия» (handshake) в компактные, детерминированные и легко сравниваемые строковые идентификаторы (хэши).
1.2.1 Алгоритмические основы формирования базового хэша JA4
Формирование хэша JA4 для TLS-клиента осуществляется по детерминированному алгоритму [9, 12], состоящему из последовательных этапов обработки параметров сообщения Client Hello.
1. Этап извлечения параметров. Из захваченного пакета Client Hello извлекаются три ключевые группы параметров:
o Версия протокола (T). Числовое значение версии TLS (например, 0x0303 для TLS 1.2). Для использования в строке оно преобразуется в десятичный формат (например, 769 для 0x0301 или 771 для 0x0303).
o Список поддерживаемых наборов шифров (Cipher Suites, C). Представляет собой массив шестнадцатеричных кодов, упорядоченный клиентом в порядке предпочтения.
o Список расширений TLS (Extensions, E). Массив идентификаторов расширений, также следующих в определенном порядке.
2. Этап нормализации и квантификации. Для обеспечения детерминированности (то есть, чтобы одинаковый набор параметров всегда давал один и тот же хэш, независимо от первоначального порядка) выполняется:
o Сортировка списков. Оба извлеченных списка (Cipher Suites и Extensions) сортируются в лексикографическом (алфавитном) порядке. Это критически важный шаг, который нивелирует вариативность порядка, вносимую разными версиями ПО или настройками.
o Подсчет элементов. Для каждого отсортированного списка вычисляется количество элементов. Это позволяет сократить итоговую строку и добавить дополнительный идентифицирующий признак.
3. Этап конкатенации и формирования исходной строки. На данном этапе производится сборка нормализованной строки по установленному шаблону:
t[T]c[Qc]e[Qe]_[С]_[E], где:
o t[T] – префикс и версия протокола.
o c[Qc] – префикс и количество (quantifier) наборов шифров.
o e[Qe] – префикс и количество расширений.
o [С] – строка, содержащая отсортированные и сцепленные (без разделителей) шестнадцатеричные коды шифров.
o [E] – строка, содержащая отсортированные и сцепленные (без разделителей) строковые названия расширений.
Пример промежуточной строки:
t771c21e11_c02bc02fcca9..._extended_master_secretserver_name...
4. Этап хэширования и получения финального отпечатка. Для сокращения длины и унификации формата полученная строка хэшируется с использованием алгоритма SHA-256. Финальным значением JA4 являются первые 12 символов (96 бит) шестнадцатеричного представления вычисленного хэша.
Пример итогового хэша JA4:
t13d1516h2_8daaf6152771
1.2.2 Модульное расширение JA4+
Технология JA4+ является эволюционным развитием JA4 и представляет собой не единый хэш, а модульный набор специализированных отпечатков, каждый из которых решает конкретную задачу анализа трафика.
• JA4+_t (Total Fingerprint). Наиболее полный отпечаток, включающий все параметры базового JA4. Предназначен для точной идентификации клиентского программного обеспечения.
• JA4+_h (Host Fingerprint). Формируется на основе значения расширения Server Name Indication (SNI). Позволяет проводить быструю классификацию и группировку трафика по целевому доменному имени, что эффективно для категоризации веб-активности и выявления связей с известными вредоносными ресурсами.
• JA4+_s (Server Fingerprint). Анализирует параметры сообщения Server Hello, такие как выбранный набор шифров и расширения сервера. Позволяет проводить фингерпринтинг серверного программного обеспечения (например, идентифицировать веб-сервер nginx или Apache Tomcat).
Таким образом, технология JA4/JA4+ формализует процесс пассивного фингерпринтинга за счет строгой алгоритмической последовательности: извлечение, нормализация (сортировка и квантификация), конкатенация и хэширование. Этот подход позволяет преодолеть inherent variability (присущую изменчивость) параметров TLS и получать стабильные, репрезентативные и машиночитаемые идентификаторы, пригодные для автоматизированного анализа и сопоставления в системах информационной безопасности. Модульная архитектура JA4+ обеспечивает гибкость, позволяя использовать специализированные отпечатки для различных сценариев мониторинга и расследования инцидентов.
Фрагмент для ознакомления
3
1. ГОСТ Р 58912-2020. Защита информации. Межсетевые экраны. Требования к средствам технической защиты информации. – Введ. 2021-09-01. – М. : Стандартинформ, 2021. – 24 с.
2. RFC 8446. The Transport Layer Security (TLS) Protocol Version 1.3 / E. Rescorla. – IETF, 2018. – 160 p. – URL: https://www.rfc-editor.org/rfc/rfc8446.html (дата обращения: 08.11.2025).
3. RFC 5246. The Transport Layer Security (TLS) Protocol Version 1.2 / T. Dierks, E. Rescorla. – IETF, 2008. – 104 p. – URL: https://www.rfc-editor.org/rfc/rfc5246.html (дата обращения: 08.11.2025).
4. Анализ киберугроз для финансовых организаций за 2023 год [Электронный ресурс] // Positive Technologies. – 2024. – Февраль. – URL: https://www.ptsecurity.com/ru-ru/research/analytics/financial-cybersecurity-threats-2023/ (дата обращения: 08.11.2025).
5. Алгазинов, Е. А. Атаки на криптографические протоколы транспортного уровня / Е. А. Алгазинов, Д. А. Прокопов // Информационно-управляющие системы. – 2019. – № 4. – С. 85–95.
6. Бондаренко, М. Ю. Методы и средства анализа защищенности сетевых протоколов : монография / М. Ю. Бондаренко, С. В. Гуркин. – М.: Горячая линия – Телеком, 2021. – 198 с.
7. Васенков, А. В. Разработка системы обнаружения сетевых аномалий на основе анализа метаданных / А. В. Васенков, И. С. Жуков // Труды СПИИРАН. – 2022. – Т. 21, № 1. – С. 121–144.
8. Гошко, Д. В. Технологии пассивного фингерпринтинга для идентификации сетевых устройств и приложений / Д. В. Гошко // Безопасность информационных технологий. – 2020. – № 3. – С. 45–58.
9. JA4+ Network Fingerprinting [Электронный ресурс] // FoxIO, LLC. – 2025. – URL: https://fox.io/ja4 (дата обращения: 08.11.2025).
10. FoxIO Community JA4Hash DB [Электронный ресурс] : [база данных] // FoxIO, LLC. – 2024. – URL: https://fox.io/ja4hashdb (дата обращения: 08.11.2025).
11. Комаров, А. П. Современные угрозы информационной безопасности и методы противодействия / А. П. Комаров. – СПб.: БХВ-Петербург, 2022. – 352 с.
12. Лысов, А. А. Эффективность систем обнаружения вторжений при анализе зашифрованного трафика / А. А. Лысов, М. Н. Коржов // Информация и космос. – 2021. – № 2. – С. 67–73.
13. Официальный сайт Suricata [Электронный ресурс] // Open Information Security Foundation (OISF). – 2024. – URL: https://suricata-ids.org/ (дата обращения: 08.11.2025).
14. Официальный сайт Zeek [Электронный ресурс] // The Zeek Project. – 2024. – URL: https://zeek.org/ (дата обращения: 08.11.2025).
15. Официальный сайт Scapy [Электронный ресурс] // SecDev. – 2024. – URL: https://scapy.net/ (дата обращения: 08.11.2025).
16. Рекомендации по стандарту TLS 1.3 [Электронный ресурс] // ФСТЭК России. – 2021. – URL: http://fstec.ru/tekhnicheskaya-zashchita-informatsii/16-spetsialnye-kontent-filtry/12236-rekomendatsii-po-standartu-tls-1-3 (дата обращения: 08.11.2025).
17. Сабанов, В. И. Криптографические протоколы: теория и практика / В. И. Сабанов. – М. : Интернет-Университет Информационных Технологий (ИНТУИТ), 2020. – 316 с.
18. Семенов, Ю. А. Протоколы Интернет и их безопасность / Ю. А. Семенов. – М. : ДМК Пресс, 2019. – 412 с.
19. Тюрин, В. В. Обнаружение вредоносной активности в зашифрованном трафике с помощью машинного обучения / В. В. Тюрин, К. Р. Саркисян // Прикладная информатика. – 2023. – Т. 18, № 1(103). – С. 92–105.
20. Шнайер, Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си / Б. Шнайер ; пер. с англ. – 2-е изд. – М. : Триумф, 2019. – 816 с.
21. F5 Labs. 2024 TLS Telemetry Report: The State of Encrypted Traffic Analysis [Электронный ресурс] / F5 Networks. – 2024. – URL: https://www.f5.com/labs/articles/threat-intelligence/2024-tls-telemetry-report-the-state-of-encrypted-traffic-analysis (дата обращения: 08.11.2025).
22. Velan, P. A survey of methods for encrypted traffic classification and analysis / P. Velan, M. Čermák, P. Čeleda, M. Drašar // Computer Networks. – 2015. – Vol. 90. – P. 3 – 15.
23. Z. Durumeric, Z. Ma, D. Springall, R. Barnes, N. Sullivan, E. Bursztein, M. Bailey, J. A. Halderman, V. Paxson. The Security Impact of HTTPS Interception // Proceedings of the 2017 Network and Distributed System Security Symposium (NDSS). – 2017.